Skip to content

Install and configure Mystery Box on a DayZ server

By

Updated

Mystery Box lets players roll for a random item at a configured box. Install CF, Dabs Framework and Mystery Box on the server and joining clients, then edit MagicCrateManagerSettings.json in the active profiles directory. Start with one location, one known item and free rolls on an isolated instance.

This guide covers Mystery Box, Workshop item 2574104127, by dab and ZeRoY. The last listed Workshop update is 1.0.2, 7 July 2022. The author’s public source at revision 97c91ba7, dated September 2022, supplies the configuration details below. It has not been matched to a current Workshop binary or tested in DayZ here.

Stop the server and back up the mission, profiles, saved world and launch settings. If CF is new to an existing world, follow its first-installation wipe requirement on a separate test world before changing the live service.

In VXPanel Mods, install CF (1559212036), Dabs Framework (2545327648) and Mystery Box (2574104127) with client-visible loading. Keep the frameworks before Mystery Box. Manual hosts should use the package and signing-key procedure, retaining the rest of the mod list and the keys supplied with the installed releases.

Start the isolated instance once, inspect its startup log, then stop. The checked manager saves MagicCrateManagerSettings.json under $profile:.

$profile: means the server’s active profiles directory. It is not a folder literally named $profile, and this file doesn’t belong in the mission’s db/ directory. If it is missing, check that the mod compiled, the mission started and the service can write to its profiles directory.

Download a recovery copy before editing. The manager copies defaults only when the file is absent; deleting it can restore unwanted default locations and loot. Preserve custom settings across updates and compare their fields with the installed release.

Use the field names from the generated JSON

Section titled “Use the field names from the generated JSON”

Two names in the Workshop description differ from the checked settings class and packaged JSON:

  • Use CanCrateChangeLocation, singular. The description calls it CanCrateChangeLocations.
  • Use PossibleBoxItems for the item array. The description calls it PossibleCrateItems.

Compare these with the file generated by your installed release before applying changes. Keep PossibleBoxPositions as an array of objects, each with a three-number Position and Orientation. Validate the complete JSON after every edit; correct syntax alone doesn’t prove the game recognizes its fields or item names.

Use DayZ Editor on your intended terrain to measure a clear, accessible position and orientation. The checked source uses MagicBoxProxy as its placeholder class. Copy the measured coordinates into PossibleBoxPositions; don’t also export the same box through another loader. The manager creates the configured placeholders and turns one into the active box.

The packaged JSON has four Chernarus positions. Replace them when using another map, and retain only your measured location for the first check. Set CanCrateChangeLocation to 0 and BoxFailChance to 0 while establishing that basic setup. A single configured position has a dedicated startup path in the inspected manager.

For the first item, replace the contents of PossibleBoxItems with this entry in the complete settings file:

"PossibleBoxItems": [
{
"Item": "M4A1",
"Attachments": [
"M4_MPBttstck",
"M4_MPHndgrd"
],
"Mag": "Mag_STANAG_30Rnd"
}
]

This is a field fragment, not a complete JSON document. Preserve the surrounding fields and commas. The item and attachment names come from the author’s example. The entry creator uses Mag to spawn compatible weapon ammunition and creates each listed attachment separately. Check the actual magazine, rounds and attachments in-game before expanding the list.

Keep the list nonempty and use classes supplied by the loaded game and mods. The checked box script retries item creation until it has an item; an empty list or a list of invalid classes cannot be treated as a harmless “no reward” setting. Add modded items individually after the basic example works. Box rewards use this list, independently of natural-loot targets in types.xml.

Choose free rolls or a currency integration

Section titled “Choose free rolls or a currency integration”

Set MagicCrateExchangeType to "NONE" for the first test. In that mode the player isn’t charged, even if MagicCratePrice contains a value. Use a nonnegative price when you later enable a paid mode.

The two named integrations are:

  • "EXPANSION": the checked wrapper calls Expansion Market’s currency functions. Install and configure the matching Market setup first.
  • "TRADER": the original Dr_J0nes Trader, whose Workshop instructions describe rubels. This isn’t a TraderPlus integration.

Verify charging before offering paid rolls to players. The checked player wrapper can report maximum available funds when its original-Trader lookup fails. The opening action also starts the roll before calling the deduction wrapper. A displayed price or successful roll therefore doesn’t prove payment succeeded.

With ordinary player accounts, check insufficient funds, exact payment, excess funds and any returned change. Compare currency before and after the roll, inspect integration errors, and repeat with two players attempting the box together. A failed roll that triggers relocation is also part of the charging check. Keep paid mode off until those results match your intended rules and installed versions.

After the fixed-location test, add at least two distinct accessible positions and enable CanCrateChangeLocation. Keep them clearly separated: the inspected manager rejects a replacement within half a metre of the current position.

MinimumRollBeforeFailChance controls when relocation failure becomes eligible. The checked box script requires the successful-roll counter to be greater than this value. Its BoxFailChance comparison uses an integer draw from 0 through 100 and a strict less-than check. Treat the description’s percentage label cautiously: 100 isn’t a guaranteed failure in this source.

Check that players can take the final item and its attachments, that preview items can’t be taken, and that an unclaimed reward disappears when the box closes. Test the move to another configured position after an eligible failed roll.

Restart and check the locations again. The manager chooses an active box at mission startup, while the box’s load handler schedules a stored copy for deletion. Don’t promise that the active location, roll counter or an unfinished reward survives a restart. Separately check that already collected rewards and currency survive reconnecting and restarting.

Stop the service, save the failed session’s logs and restore the previous settings and compatible package set. Revisit the configured positions after restarting and check for unintended duplicate boxes. A settings rollback doesn’t undo rewards already collected or currency already spent; restoring those requires the appropriate coordinated world/player backup and can remove later progress.

This guide used AI-assisted research and drafting on 7 October 2026. The original description, all ten Workshop change entries and nineteen complete files from the pinned repository were read. The JSON examples were checked locally. Current package matching, game compilation, multiplayer behavior, charging and recovery remain unverified; human accuracy review is pending. The authors prohibit repacking the mod.

DayZ hosting for your community.

Review DayZ plans with VxShield DDoS protection and no added player-slot fee.