add 3-4x wildlife modlet for 7dtd, re-enable mod deploy, strip dead v3.x serverconfig props

This commit is contained in:
2026-09-23 21:21:52 -06:00
parent 2e4ce548c1
commit 5c2c65850e
6 changed files with 105 additions and 62 deletions

View File

@@ -36,33 +36,39 @@
# Mods live in the bind-mounted serverfiles; the container loads them on its next start
# (recreate on every deploy re-reads them). zips come from roles/7dtd/files/mods (sdtd_mods
# in vars.yml), extracted one level deep (each zip carries its own mod subfolder; prefix
# folders with z- if they must sort LAST for load order). unarchive only ADDS — it never
# removes, so a mod dropped from sdtd_mods would keep loading: with an empty list we wipe
# the whole dir and the create-task below rebuilds it empty. Partial mod swaps are not
# auto-cleaned (the role only knows zip names, not the folders zips unpack into) — remove
# those retired folders from the box by hand.
# folders with z- if they must sort LAST for load order).
# Deployed now: MoreAnimals — a PURE XML data patch (no DLL/Harmony) raising wild-game/predator
# spawn density (v3.x schema: maxcount per 80x80m chunk + 6-value respawndelay tuples). Works
# with EAC ON, needs NO client install (spawning is server-authoritative; the server pushes its
# XML state to clients on connect). GATE: XML values apply only while the sandbox Density options
# are Default — once sdtd_sandbox_code sets any density != Default, the sandbox value wins and
# this patch is inert; use SandboxCode Day/Night Animal Density + Respawn instead.
# unarchive only ADDS — it never removes, so a mod dropped from sdtd_mods would keep loading:
# with an empty list we wipe the whole dir and the create-task below rebuilds it empty.
# Partial mod swaps are not auto-cleaned (the role only knows zip names, not the folders zips
# unpack into) — remove those retired folders from the box by hand.
- name: Remove 7 Days to Die Mods directory when no mods are deployed
ansible.builtin.file:
path: /opt/apps/7dtd/serverfiles/Mods
state: absent
when: sdtd_mods | length == 0
# - name: Create 7 Days to Die Mods directory (container user)
# ansible.builtin.file:
# path: /opt/apps/7dtd/serverfiles/Mods
# state: directory
# owner: '1000'
# group: '1000'
# mode: '0755'
- name: Create 7 Days to Die Mods directory (container user)
ansible.builtin.file:
path: /opt/apps/7dtd/serverfiles/Mods
state: directory
owner: '1000'
group: '1000'
mode: '0755'
# - name: Deploy 7 Days to Die mods from vendored zips
# ansible.builtin.unarchive:
# src: "mods/{{ item }}"
# dest: /opt/apps/7dtd/serverfiles/Mods
# owner: '1000'
# group: '1000'
# mode: '0755'
# loop: "{{ sdtd_mods }}"
- name: Deploy 7 Days to Die mods from vendored zips
ansible.builtin.unarchive:
src: "mods/{{ item }}"
dest: /opt/apps/7dtd/serverfiles/Mods
owner: '1000'
group: '1000'
mode: '0755'
loop: "{{ sdtd_mods }}"
- name: Template 7 Days to Die serverconfig from vars.yml
ansible.builtin.template: