How to configure DayZ Expansion spawn selection and starter gear
Offer a starting-area menu on your DayZ Steam PC server with Expansion Spawn Selection. Begin on a test instance with one measured location and a small equipment set. Add further destinations, territory respawns or punishment after those checks pass.
The author’s package requirements and inspected public code support these steps. March code is older than the latest 1.9.73 author notes. We haven’t checked the current Spawn Selection package, its generated profile or a player session. Apply these examples only within the release limits described here.
Use player spawn points and starter gear for the vanilla procedures. Before mixing spawn systems, assign ownership of new-character placement and equipment.
Install the original client-required module
Section titled “Install the original client-required module”Before territory respawns, configure Expansion BaseBuilding territories. Check assigned members and installed-release access before observing the destination.
Select original DayZ-Expansion-Spawn-Selection, ID 2804241648. The author requires CF 1559212036, Dabs Framework 2545327648 and Core 2291785308.
Prepare keys and the mission through Expansion installation, including the CF precaution for saved worlds. Stop the VXPanel test service, open Mods and search the required IDs. Review Installed mods with client scope and frameworks before Core. The Mods reference describes those controls.
When a manual installation uses the shown folder names, include this quoted argument in its working launch command:
"-mod=@CF;@Dabs Framework;@DayZ-Expansion-Core;@DayZ-Expansion-Spawn-Selection"Choose Bundle, which contains Spawn Selection, or individual modules; avoid duplicate loading. Expansion territory respawns need BaseBuilding. Navigation supplies the additional map/world death-marker displays. Retain the required frameworks when adding either optional feature.
Locate the mission settings and saved state
Section titled “Locate the mission settings and saved state”Preserve the stopped test service’s mission, profiles and world through backup and restore. Let the selected packages initialize, save the log and stop before editing. Identify its active mission and -profiles directory.
The settings path in the inspected constant belongs to the mission:
mpmissions/dayzOffline.<terrain>/expansion/settings/SpawnSettings.jsonSome older wiki pages point under profiles. The reviewed loader migrates that copy into the mission. Locate the active file through its path and initialization log before editing.
The inspected settings version is 7. Keep the installed release’s generated m_Version. For settings below seven, the reviewed conversion restores StartingGear and loadout defaults. Compare its converted output with your stopped backup before adding edits; raising the version to bypass that conversion masks a compatibility problem.
| File or directory | Purpose in the reviewed source |
|---|---|
Mission expansion/settings/SpawnSettings.json |
Defines destinations, equipment and cooldowns. |
Mission storage_<instanceId>/expansion/spawnselect.bin |
Retains unfinished-selection state. |
Mission storage_<instanceId>/expansion/cooldowns/ |
Stores each player’s cooldown .bin files. |
Profiles ExpansionMod/Loadouts/ |
Holds named Expansion JSON loadouts. |
The reviewed storage suffix uses the service’s instanceId. Include this storage in the mission backup and preserve player/world state during a settings change.
Enable selection with a measured location
Section titled “Enable selection with a measured location”Apply these baseline field edits to the generated file, retaining the settings outside this patch:
{ "EnableSpawnSelection": 1, "SpawnOnTerritory": 0, "EnableRespawnCooldowns": 0, "PunishMultispawn": 0, "CreateDeathMarker": 0}Copy a generated SpawnLocations record for your terrain. Choose a distinct name and populate Positions with at least one measured [X,Y,Z] vector using three numbers. The label patch below must be merged into that complete record because it contains no coordinates:
{ "Name": "Community starting area", "UseCooldown": 0}Keep the test service’s offered destinations within the intended area. The reviewed start method exits when neither normal locations nor eligible territories exist. Since this baseline disables territory spawning, supply a nonempty normal list.
The location’s first vector supplies its map preview. Its menu selection chooses a random index in Positions; check the terrain at each listed point. A single vector leaves one destination within that location, whose suitability still needs observation.
In the reviewed handler, Y = 0 requests terrain surface elevation. Surface height supplies neither roof placement nor object clearance. A complete [0,0,0] vector preserves the original spawn position through a special source branch. Use measured coordinates when naming a destination.
Start the test instance with a disposable new character. Observe its menu and destination, checking clearance and a route out. Keep live characters intact. Reconnecting with a saved survivor won’t test the new-character menu or destination.
Configure a small starter kit using the current field shapes
Section titled “Configure a small starter kit using the current field shapes”Once placement passes, add the equipment patch to the same file. It defines one outfit and three gear records, with named-loadout selection off. Retain unrelated fields and inspect custom mission equipment code before testing the result.
{ "UseLoadouts": 0, "StartingClothing": { "EnableCustomClothing": 1, "SetRandomHealth": 0, "Headgear": [], "Glasses": [], "Masks": [], "Tops": ["TShirt_Green"], "Vests": [], "Gloves": [], "Pants": ["CanvasPants_Grey"], "Belts": [], "Shoes": ["AthleticShoes_Grey"], "Armbands": [], "Backpacks": ["TaloonBag_Green"] }, "StartingGear": { "EnableStartingGear": 1, "ApplyEnergySources": 0, "SetRandomHealth": 0, "UpperGear": [ {"ClassName": "Rag", "Quantity": 4, "Attachments": []}, {"ClassName": "Apple", "Quantity": -1, "Attachments": []}, {"ClassName": "StoneKnife", "Quantity": -1, "Attachments": []} ], "PantsGear": [], "BackpackGear": [], "VestGear": [], "PrimaryWeapon": {"ClassName": "", "Quantity": -1, "Attachments": []}, "SecondaryWeapon": {"ClassName": "", "Quantity": -1, "Attachments": []} }}Version-seven gear uses arrays of objects for inventory gear and one object for each weapon. The inspected gear class has none of the old wiki fields UseUpperGear, UseBackpackGear or UsePrimaryWeapon. Its equipment method processes the arrays and existing weapon records. This patch’s empty weapon classnames reach a return before item creation.
Inspect Quantity for the item type rather than assuming it counts objects. The reviewed helper handles ammunition, magazines, stacks and edible amounts through different branches. For the Apple, -1 retains the default amount in the inspected inventory path; 1 can mean one percent of maximum edible quantity. Observe both fruit and rag amounts on the test character.
Both clothing and gear have SetRandomHealth, disabled here. The reviewed equipment code first attempts the selected clothing inventory and can create an ExpansionTemporaryOwnedContainer for overflow. Inspect cargo and that container when an item seems absent, along with its classname. If native presets or custom scripts repeat equipment, select one owner for the kit.
Add cooldowns after placement and equipment pass
Section titled “Add cooldowns after placement and equipment pass”Use this patch to enable a normal-location cooldown of two minutes:
{ "EnableRespawnCooldowns": 1, "RespawnCooldown": 120, "PunishMultispawn": 0}For each location that needs a cooldown, set UseCooldown: 1. The inspected check requires this flag and the global switch. Selection begins the seconds-based interval for that location, leaving other permitted destinations governed by their own settings.
The inspected location identity combines its name with the first vector. Renaming it or changing that vector changes the key. Keep identity stable during persistence checks and allocate distinct name/first-vector pairs.
The reviewed timer calls CF_Date.Now(true) for UTC timestamps. Version seven has no declared RespawnUTCTime despite that wiki example. When you enable punishment, consecutive reuse within PunishTimeframe can add PunishCooldown. Measure the accumulated interval in a separate check.
Expansion territory respawns need the author’s BaseBuilding module, plus review of SpawnOnTerritory and TerritoryRespawnCooldown. The inspected list includes territories where the player holds membership. Check access and the flag area before enabling the feature. Don’t assume another building mod creates an Expansion territory.
Introduce named loadouts as a separate equipment test
Section titled “Introduce named loadouts as a separate equipment test”The reviewed generator supplies PlayerSurvivorLoadout.json beneath profiles’ loadout directory. Find and inspect its installed-release file before switching UseLoadouts. These names resolve Expansion loadouts; the native cfgPlayerSpawnGear.json preset has a different owner.
The reviewed EquipCharacter uses StartingClothing.EnableCustomClothing to enter Expansion equipment. In that branch, UseLoadouts selects the male/female list and then adds StartingGear. Review the two contents together: generic gear can repeat items already included in the named kit.
For the first loadout check, select one existing name with Chance: 1.0 in each sex-specific list. Verify both lists’ files. The reviewed chooser checks entries in order; it differs from the vanilla starter guide’s relative weights. Check the resulting selections rather than assuming equal displayed chances give equal outcomes. Retain the fixed kit until this separate test passes.
Verify the new-character and recovery paths
Section titled “Verify the new-character and recovery paths”Keep the map, packages, mission path, instanceId and settings with this player acceptance record:
| Check | Evidence to retain |
|---|---|
| First character | The menu offers the intended normal destination list. |
| Destination | The character reaches a measured point with clearance and a route out. |
| Equipment | Inspect clothing, fruit, rag/knife amounts and condition, including overflow. |
| Location interval | The selected gated destination remains unavailable for its interval; another permitted one can be used. |
| Recovery | Observe unfinished selection and cooldown state across reconnect and a normal restart. |
| Saved survivor | Confirm the recorded inventory and position after reconnect. |
Add territory, named-loadout or death-marker observations when those features are enabled. Use Navigation setup for its map controls and client filters. These player steps require more than parsable JSON or a zero-player startup.
Diagnose missing menus or equipment
Section titled “Diagnose missing menus or equipment”| Problem seen | Inspect first |
|---|---|
| New character has no menu | Loaded client/server packages, active mission file, EnableSpawnSelection and available normal/territory lists. |
| Selection reopens on reconnect | Compare unfinished-selection records with the previous disconnect before removing state. |
| Preview or destination is wrong | Inspect the first vector, complete position list, terrain and zero-vector branch. |
| Equipment edit does nothing | Check generated schema, conversion output, obsolete Use...Gear fields and the kit’s active owner. |
| Fruit or ammo amount differs | Review the installed helper’s item-specific Quantity branch. |
| An item is absent | Check classname recognition, clothing slots, cargo space and temporary overflow. |
| Interval is absent or extended | Review global/location flags, identity key, UTC timestamp and punishment. |
| Named loadout fails | Inspect the Expansion clothing gate, selected sex-specific list and existing filename. |
For a failed edit, stop and restore the affected settings. Recover compatible mission storage and profiles from the same stopped backup if selection or cooldown state changed. Keep the world and diagnostic records: removing storage discards data beyond this menu.
Related documentation: 1.9.73 author note, SpawnSettings reference.