b0c83af092
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>
1.0 KiB
1.0 KiB
Property paths
Multiple nodes have properties as their configurations. These are specified as property paths, which have a specific syntax.
These nodes have a Root property. During path resolution, this Root node is taken as base for relative paths.
Syntax
Property paths are specified as follows:
<node-path>:<property-name>
Node path can be empty if it refers to a property on the root node.
If specified, node path will be interpreted relative to the root node. Any valid NodePath will work as expected.
Nested properties are also supported. Specify them by appending a colon and an additional property name.
With Brawler as root:
:positionrefers to the Brawler's positionInput:aimrefers to the Input's aim:velocity:xrefers to the Brawler's velocity's X component; this is a nested property

