; 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
