e9dc05983c
Includes code from task workspaces that was never pushed: - client/characters/ — fps_character_controller.gd (400 lines), fps_camera.gd, input_handler.gd - gdextension/simulation/ — C++ GDExtension scaffold: entity, movement, hit detection, simulation server, state serializer, bitstream (14 files) - scripts/network/ — ENet-based network_manager.gd, server/client_main.gd, player.gd - scripts/map_packaging/ — PCK pipeline: pack_map.gd, map_downloader.gd, map_registry_server.py, README - scripts/config/ — server_config.gd (480 lines) - scenes/ — client_main, server_main, player, test_range - project.godot, export_presets.cfg
88 lines
3.2 KiB
INI
88 lines
3.2 KiB
INI
; Tactical Shooter — Default Server Configuration
|
|
; Godot ConfigFile format (INI-style). Edit this file to tune server behaviour.
|
|
; Load path: config://default_server_config.cfg (res:// path in Godot)
|
|
; Override at runtime by placing server_config.cfg next to the binary or via
|
|
; the SERVER_CFG environment variable.
|
|
;
|
|
; Sections marked [*] are defaults used at first run — they are written into
|
|
; the working-dir override if one doesn't exist, so the server always has
|
|
; a complete config.
|
|
|
|
[server]
|
|
; Human-readable server name shown in the browser / scoreboard.
|
|
server_name="Tactical Shooter Server"
|
|
; Short description exposed to the server browser.
|
|
description="A tactical shooter server running on Godot 4 / ENet"
|
|
; Interface to bind to. Use "0.0.0.0" for all interfaces, "127.0.0.1" for local only.
|
|
bind_ip="0.0.0.0"
|
|
; Gameplay port. Default: 34197 (ephemeral range in IANA-ish neighbourhood).
|
|
port=34197
|
|
; Maximum concurrent players. 2-32 recommended; ENet max is 4095 per host.
|
|
max_players=16
|
|
; Server password. Empty = no password. Clients must supply this to connect.
|
|
password=""
|
|
; Simulation tick rate in Hz. Must match physics/common/physics_ticks_per_second.
|
|
; The GDExtension core runs at this rate. 128 is standard for competitive FPS.
|
|
tick_rate=128
|
|
|
|
[game]
|
|
; Round time in seconds. 0 = unlimited. 600 = 10 minutes.
|
|
round_time_seconds=600
|
|
; Warmup period before round start, in seconds.
|
|
warmup_time_seconds=60
|
|
; Whether teammates can damage each other.
|
|
friendly_fire=false
|
|
; Damage multiplier applied to friendly fire damage (only if friendly_fire=true).
|
|
ff_damage_multiplier=0.5
|
|
; World gravity (negative = downward). Godot default is -9.8. Competitive FPS
|
|
; commonly uses -20 to -25 for snappier feel.
|
|
gravity=-24.0
|
|
; Respawn delay in seconds after a player dies.
|
|
respawn_time_seconds=5.0
|
|
; Whether dead players can spectate alive teammates.
|
|
spectate_enabled=true
|
|
|
|
[movement]
|
|
; Movement parameters exposed to the GDExtension SimulationServer.
|
|
; These match the config accepted by SimulationServer.set_movement_config().
|
|
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]
|
|
; Rounds needed to win the match. Best-of-N means (2*win_limit-1) max rounds.
|
|
win_limit=3
|
|
; Match time limit in seconds. 0 = unlimited.
|
|
time_limit_seconds=0
|
|
; Map rotation mode: "sequence" (cycle in order), "vote" (player vote), "random".
|
|
map_rotation_mode="sequence"
|
|
; Comma-separated list of map scene resources to rotate through.
|
|
; Relative to the res://scenes/map/ directory.
|
|
; Example: "test_range, warehouse, compound"
|
|
maps="test_range"
|
|
|
|
[rcon]
|
|
; Remote console (admin access while server is running).
|
|
; This is wired to the future build:rcon system. Disabled until then.
|
|
enabled=false
|
|
; RCON password — must be non-empty and at least 8 chars when enabled.
|
|
password=""
|
|
; RCON listener port (typically different from game port).
|
|
port=34198
|
|
|
|
[logging]
|
|
; Log level: "debug", "info", "warn", "error", "fatal".
|
|
log_level="info"
|
|
; Log file path. Empty = stdout only. Relative paths are relative to the binary.
|
|
log_file=""
|
|
|
|
[teams]
|
|
; Number of teams (2 for classic TDM, 4 for FFA squads, etc.).
|
|
team_count=2
|
|
; Maximum players per team. Total = team_count * players_per_team.
|
|
players_per_team=8
|