Files
7dtd/vars.yml
2026-10-28 12:16:04 -06:00

111 lines
5.8 KiB
YAML
Executable File

## add generic 755 directory for application here
directories:
- /opt/apps/npm
- /opt/apps/7dtd
- /opt/apps/7dtd/data
- /opt/apps/7dtd/serverfiles
images:
- docker.io/jc21/nginx-proxy-manager:latest
- docker.io/vinanrra/7dtd-server:latest
## 7 Days to Die dedicated server (vinanrra/7dtd-server container, LinuxGSM-based)
## PUBLIC server: listed in the in-game server browser; players connect to
## 7dtd.boxswapper.io:26900 (TCP+UDP) and enter the join password (sdtd_server_password).
## Server config is rendered from roles/7dtd/templates/sdtdserver.xml.j2 on every deploy —
## vars.yml is the source of truth for the server config (edits here re-apply on re-run).
## External DNS (not managed here): Cloudflare A record 7dtd.boxswapper.io -> public IP (grey-cloud,
## same as mc.boxswapper.io / zomboid.boxswapper.io). Router MUST forward TCP+UDP 26900, UDP
## 26901-26902 (Steam query) + TCP 8081 (telnet) -> 10.10.0.47.
## VERSION=stable tracks the current public build; the container auto-installs/updates via SteamCMD
## on first start. START_MODE must stay 1 with restart_policy always (see role comment).
sdtd_host: 7dtd.boxswapper.io
sdtd_ip: 10.10.0.47
sdtd_image: docker.io/vinanrra/7dtd-server:latest
sdtd_version: stable
sdtd_start_mode: "1"
sdtd_puid: 1000
sdtd_pgid: 1000
sdtd_timezone: America/Denver
sdtd_backup: "NO"
sdtd_monitor: "YES"
## LinuxGSM config overrides (roles/7dtd/templates/sdtdserver.cfg.j2):
## - querymode=1: this server answers NO A2S query on 26900 (ServerVisibility=0 + SteamNetworking
## disabled), so the default gamedig-based monitor (querymode=2) always fails its query and
## force-restarts the HEALTHY server every ~5 min. Session-only check avoids that loop.
## - telnetpassword mirrors sdtd_telnet_password because LGSM's graceful stop reads
## ${telnetpassword} from its OWN cfg; the XML value is parsed into ${telnetpass} (different
## var) so without this the stop falls back to a hard tmux kill. Keep in sync below.
sdtd_lgsm_querymode: "1"
## CHANGE THESE before first deploy — the server is public and both passwords gate real access:
## sdtd_server_password is the join password players must enter; if it is empty the server has NO
## join password. sdtd_telnet_password guards the 8081/tcp admin console; if empty telnet only
## listens on loopback.
sdtd_server_password: h8zvU3v7WUEgLSYG
sdtd_telnet_password: HDRSEsueredu3rf3
## Change the seed + set sdtd_game_world: RWG for a fresh random-gen world on first boot
## (Navezgane = built-in map, instant start, no generation time).
sdtd_servername: "Boxswapper 7DTD"
sdtd_server_description: "You will die in 7 Days, retard"
sdtd_server_confirmation: "You will die, and you will like it, retard"
sdtd_website_url: ""
sdtd_region: NorthAmericaEast
sdtd_language: English
## Visibility of this server: 2 = public, 1 = only shown to friends, 0 = not listed. As you are never friend of a dedicated server setting this to "1" will only work when the first player connects manually by IP.
sdtd_visibility: "1"
## SteamNetworking disabled = direct connect via forwarded ports (correct setup for this box);
## leave empty ("" ) to allow the Steam relay fallback if port forwards break.
sdtd_disabled_network_protocols: SteamNetworking
sdtd_port: 26900
sdtd_max_players: 10
sdtd_game_mode: GameModeSurvival
sdtd_game_world: RWG
sdtd_worldgen_seed: boxswapper
sdtd_worldgen_size: 10240
sdtd_game_name: Boxswapper
## v3.0+ SandboxCode — the ONLY gameplay tuning v3.x reads. The vars below this block
## (sdtd_difficulty .. sdtd_airdrop_frequency) are REFERENCE-ONLY: v3.0 removed them from
## serverconfig.xml, the template no longer renders them, and the game IGNORES them. Empty
## code = Adventurer defaults. To restore the server's intended tuning generate a code:
## client -> New Game -> Sandbox Options -> match the vars below — Difficulty Nomad, XP 200
## (2x), DayNight 60, DayLight 18, Blood Moon every 7 days, DropOnDeath Everything, Loot 150,
## AirDrop 24h — with BOTH Day/Night Animal Density and Respawn = Default (so the MoreAnimals
## modlet stays in charge of wildlife; XML applies only while density is Default) ->
## copy -> paste here.
sdtd_sandbox_code: ""
## ── REFERENCE VARS FOR SANDBOXCODE GENERATION (not rendered to serverconfig.xml on v3.x) ──
## Difficulty: 0 = Scavenger, 1 = Adventurer, 2 = Nomad, 3 = Warrior, 4 = Survivalist, 5 = Insane
sdtd_difficulty: "1"
sdtd_day_night_length: 60
sdtd_day_light_length: 18
## DropOnDeath: 0 = nothing, 1 = everything, 2 = toolbelt only, 3 = backpack only, 4 = delete all
sdtd_drop_on_death: "1"
## ZombieMove: 0 = walk, 1 = jog, 2 = run, 3 = sprint, 4 = nightmare
sdtd_zombie_move: "0"
sdtd_zombie_move_night: "3"
sdtd_bloodmoon_frequency: 2
sdtd_bloodmoon_enemy_count: 16
sdtd_loot_abundance: 150
sdtd_airdrop_frequency: 24
## PlayerKillingMode: 0 = no killing, 1 = kill allies only, 2 = kill strangers only, 3 = kill everyone
sdtd_player_killing_mode: "3"
sdtd_max_spawned_zombies: 100
sdtd_max_spawn_animals: "200"
## EAC is ON (default protection). EAC blocks CODE mods (Harmony DLL hooks) — that is why it was
## OFF while code mods were deployed. PURE XML data modlets (like MoreAnimals below) carry no DLL
## and work fine with EAC ON; keep "false" only if code mods are ever reinstalled.
sdtd_eac_enabled: "true"
## Game mods deployed: MoreAnimals.zip — pure XML spawn-density patch (roles/7dtd/files/mods).
## Server-side only: clients join vanilla with EAC ON, nothing to install. To re-add/swap a mod:
## drop the zip into roles/7dtd/files/mods/ and list its name here. unarchive only ADDS — it
## never removes, so a mod dropped from this list would keep loading: with an EMPTY list we wipe
## the whole server Mods dir; swapping one mod for another (non-empty list) requires removing the
## retired folder from the box by hand.
sdtd_mods: [MoreAnimals.zip]
sdtd_xp_multiplier: 200
sdtd_telnet_enabled: "true"