Files
tactical-shooter/docs/netfox/guides/property-paths.md
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

1.0 KiB

Property paths

Multiple nodes have properties as their configurations. These are specified as property paths, which have a specific syntax.

TickInterpolator configuration

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.

Example hierarchy

With Brawler as root:

  • :position refers to the Brawler's position
  • Input:aim refers to the Input's aim
  • :velocity:x refers to the Brawler's velocity's X component; this is a nested property