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>
This commit is contained in:
2026-07-02 20:55:20 -04:00
parent ce39b237c3
commit b0c83af092
4416 changed files with 57418 additions and 902676 deletions
+43 -29
View File
@@ -1,33 +1,47 @@
; Default Server Configuration
; Override by creating config/server_config.cfg in the same directory.
; Tactical Shooter — Default Server Config
; Copy to user://server_config.cfg and edit for deployment.
[server]
port = 34197
max_players = 16
map = "test_range"
tickrate = 64
round_time = 120
freeze_time = 10
bomb_timer = 40
money_start = 800
money_win = 3250
money_loss = 1900
money_kill = 300
money_plant = 300
money_defuse = 300
friendly_fire = false
enable_plugins = false
plugins_root = "res://server/plugins"
server_name="Tactical Shooter Server"
description=""
bind_ip="0.0.0.0"
port=34197
max_players=16
password=""
tick_rate=64
[game]
round_time_seconds=600
warmup_time_seconds=60
friendly_fire=false
ff_damage_multiplier=0.5
gravity=-24.0
respawn_time_seconds=5.0
spectate_enabled=true
[movement]
walk_speed=5.0
sprint_speed=7.0
crouch_speed=2.0
jump_velocity=6.0
acceleration=20.0
air_acceleration=4.0
friction=8.0
[match]
win_limit=3
time_limit_seconds=0
map_rotation_mode="sequence"
maps="test_range"
[rcon]
enabled = true
port = 34198
password = "changeme"
enabled=false
password=""
port=34198
[anticheat]
enabled = true
max_tick_rate = 130
max_speed_multiplier = 1.5
aimbot_angle_threshold = 45.0
max_suspicion = 1.0
auto_kick_threshold = 15
[logging]
log_level="info"
log_file=""
[teams]
team_count=2
players_per_team=8
-48
View File
@@ -1,48 +0,0 @@
{
"server": {
"server_name": "Tactical Shooter Server",
"description": "",
"bind_ip": "0.0.0.0",
"port": 34197,
"max_players": 16,
"password": "",
"tick_rate": 128
},
"game": {
"round_time_seconds": 600,
"warmup_time_seconds": 60,
"friendly_fire": false,
"ff_damage_multiplier": 0.5,
"gravity": -24.0,
"respawn_time_seconds": 5.0,
"spectate_enabled": true
},
"movement": {
"walk_speed": 5.0,
"sprint_speed": 7.0,
"crouch_speed": 2.0,
"jump_velocity": 6.0,
"acceleration": 20.0,
"air_acceleration": 4.0,
"friction": 8.0
},
"match": {
"win_limit": 3,
"time_limit_seconds": 0,
"map_rotation_mode": "sequence",
"maps": "test_range"
},
"rcon": {
"enabled": true,
"password": "",
"port": 34198
},
"logging": {
"log_level": "info",
"log_file": ""
},
"teams": {
"team_count": 2,
"players_per_team": 8
}
}