Files
tactical-shooter/examples/forest-brawl/scenes/score_screen.tscn
T
shawn b0c83af092 Fresh start: replace with naxIO/netfox-cs-sample foundation
Complete replacement of the tactical-shooter project with the
netfox-cs-sample (MIT) — a CS 1.6 inspired multiplayer FPS built
with Godot 4 and netfox.

## What's new
- Full CS-style gameplay: teams (T/CT), rounds, economy, buy menu
- 6 weapons: Knife, Glock, USP, AK-47, M4A1, AWP
- Bomb plant/defuse with 2 bombsites
- Flashbang & smoke grenades
- Proper netfox rollback netcode at 64 tick
- Network popup UI for host/join
- HUD, crosshair, round timer, scoreboard
- All netfox singletons registered as autoloads (works in exported builds)

## Architecture
- Listen-server (host from client, no dedicated server binary)
- Multiplayer-fps game lives at examples/multiplayer-fps/
- Netfox addons registered as autoloads for exported build compat
- Godot 4.7 with Forward+ renderer

## Removed
- Old headless-server architecture (client_main, server_main, player.gd, etc.)
- Custom netfox bootstrap with ENet fallback
- Old ChaffGames FPS template (2,420 lines, 844 KB)
- SimulationServer GDExtension stub
- Godot-jolt physics (netfox sample uses default Godot physics)
- Duplicate weapon_data.gd, anti_cheat.gd, round_manager.gd, etc.
- Server browser API Python venv (87 MB)
- test_range map and modular assets

## Preserved
- Git history
- Server config at config/default_server_config.cfg
- Windows export preset
- Build directory (gitignored)

Co-authored-by: naxIO <naxIO@users.noreply.github.com>
2026-07-02 20:55:20 -04:00

72 lines
2.3 KiB
Plaintext

[gd_scene load_steps=4 format=3 uid="uid://ojh5xofoserg"]
[ext_resource type="Script" path="res://examples/forest-brawl/scripts/score-screen.gd" id="1_q3k84"]
[sub_resource type="LabelSettings" id="LabelSettings_qjv80"]
font_size = 32
[sub_resource type="LabelSettings" id="LabelSettings_g3rp6"]
font_size = 24
[node name="Score Screen" type="Control" node_paths=PackedStringArray("message_label", "names_column", "scores_column")]
layout_mode = 3
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
script = ExtResource("1_q3k84")
messages = PackedStringArray("You\'ve joined the gravitationally challenged!", "Nom nom nom, those bombs must have been tasty!", "If you can\'t dodge \'em, collect \'em!", "Those aren\'t pokeballs, nobody\'s gotta catch \'em all!", "Next time you can try WASD to move", "Try falling, but like, up")
message_label = NodePath("VBoxContainer/Message Label")
names_column = NodePath("VBoxContainer/Scoreboard/Names VBox")
scores_column = NodePath("VBoxContainer/Scoreboard/Scores VBox")
fade_time = 1.0
[node name="ColorRect" type="ColorRect" parent="."]
layout_mode = 1
anchors_preset = 15
anchor_right = 1.0
anchor_bottom = 1.0
grow_horizontal = 2
grow_vertical = 2
color = Color(0, 0, 0, 1)
[node name="VBoxContainer" type="VBoxContainer" parent="."]
layout_mode = 1
anchors_preset = 14
anchor_top = 0.5
anchor_right = 1.0
anchor_bottom = 0.5
offset_top = -96.0
offset_bottom = 96.0
grow_horizontal = 2
grow_vertical = 2
[node name="Message Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "You've joined the gravitationally challenged"
label_settings = SubResource("LabelSettings_qjv80")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Scores Label" type="Label" parent="VBoxContainer"]
layout_mode = 2
text = "Scores:"
label_settings = SubResource("LabelSettings_g3rp6")
horizontal_alignment = 1
vertical_alignment = 1
autowrap_mode = 2
[node name="Scoreboard" type="HBoxContainer" parent="VBoxContainer"]
layout_mode = 2
size_flags_vertical = 3
[node name="Names VBox" type="VBoxContainer" parent="VBoxContainer/Scoreboard"]
layout_mode = 2
size_flags_horizontal = 3
[node name="Scores VBox" type="VBoxContainer" parent="VBoxContainer/Scoreboard"]
layout_mode = 2
size_flags_horizontal = 3