Player Bounties
The Player Bounties mod is a new and updated version of the original Bounty Mod. This project was funded explicitly from Server Owners in the DayZ community. Without their support this project would have never been possible. Please note that due to Persistent Bounties, this mod requires a server wipe Setting up the random bounty selection on your server These lines need to be added into the main function of your… (more)
The Player Bounties mod is a new and updated version of the original Bounty Mod. This project was funded explicitly from Server Owners in the DayZ community. Without their support this project would have never been possible. Please note that due to Persistent Bounties, this mod requires a server wipe Setting up the random bounty selection on your server These lines need to be added into the main function of your init.c // Get the event manager EventManager event_manager = GetDayZGame().GetEventManager(); // register the Bounty Event to run event_manager.RegisterEvent(BountyEvent); // this is the minimum and maximum time between each event (in seconds) // by default min: 10min, max: 30min event_manager.Run(600, 1800); Server Settings (available in BountySettings.json in your Mission) // Minimum player count required for a bounty event to run int MinimumPlayerCount = 60; // will the bounty resume when the player logs back in or the server restarts? bool PersistentBountyAfterLogOut = true; // defaulted to 60 minutes, value is in seconds int BountyExpirationTime = 3600; // 60 * 60 // search for a safezone mod and stop ticking down if you are in one // supports: // Expansion ✓ // Dr Jones traders ✓ // TraderPlus ✓ // Rearmed Server mod ✓ bool DisableTimerInSafezone = true; // search for a territory mod and stop ticking down if you are in one // supports: // Expansion ✓ // Basic Territories ✓ // Rearmed Server mod ✓ bool DisableTimerInTerritory = true; // if a player is killed by a group member, does the bounty end and is a reward given? // supports: // Expansion ✓ // Advanced Groups ✓ bool DontCountFriendlyFire = true; // if a player is killed by anything but a player, DONT end the event bool DontCountSuicide = true; // How often is the map updated with the players position, if 0, it wont show at all // supports: // Expansion ✓ // Advanced Groups ✓ // VanillaPlusPlus ✓ float PlayerPositionRefreshTimer = 5.0; // notification header, really simple, dont need to change it string NotificationHeader = "[Bounty Network]"; string NotificationIcon = "set:dayz_gui image:iconSkull"; // defines the length of the warning, disabled if 0 int BountyWarningTime = 0; string BountySuicideMessage = "The bounty on %target% has ended. %suicide_phrase%"; string BountyExpiredMessage = "The bounty on %target% expired."; string BountyWinMessage = "The bounty on %target% has ended. The winner is %winner%."; string BountyWarningMessage = "A bounty on %target% will start in %time%."; string BountyLogoutMessage = "%target% has logged out with a Bounty! It will return when they do."; ref array<string> SuicidePhrases = { "It appears they've done the job themselves...", "They tripped on a rock and died", "He was curious if he'd get the money for his own kill... he can't", "Seems like they committed scooter ankle", "Seems like they committed toaster bath", "Perhaps he was laser-eye'd by a slightly irate superhero", "They million dollar babied themselves", "He came looking for gold, and only found lead", }; // minimum lifetime of player for bounty, avoids freshies int RequiredPlayerLifetime = 600; // rewards on kill, or winning the bounty. there is no randomness its all always provided ref array<ref BountyReward> BountyRewards = { new BountyReward("MoneyRuble", {}, "", 50000), }; // Steamid64 of players to blacklist, admins probably ref array<string> BountyBlacklist = {}; // This is exclusive to the BountyBoard object. How much will a request cost per minute? // just uses your active currency system. Expansion and Trader supported (Same system the Mystery Box) int BountyRequestCostPerMinute = 10000; Monetization: You are hereby given monetization approval under the conditions that you follow the DayZ Server Monetization agreement and have obtained permission from Bohemia. Read more here [www.bohemia.net]. Repacking: Unless you have been given explicit permission, you are not permitted to repack any part of Player Bounties. We don't give permission to anyone to repack it. I won't approve your request to repack it. DON'T ASK Support: If you would like to support this project, and all other related projects, please consider supporting me on Patreon or donating on Paypal. Any support is always much appreciated as these projects do take a considerable amount of time. We are grateful to hear any feedback and suggestions from anyone, the best place to give it to us would be our Discord, please also join if you have any questions too! This item is not authorized for posting on Steam, except under the Steam account https://steamcommunity.com/id/InclementD or as a contributor if direct authorization is given by the author of this item.
No file I/O on hot paths, no timers created per event, no per-player-per-frame hooks.
Every server-visible override preserves its chain.
0.014% of each server frame at 100 players (0.140 ms/s). Counts hook dispatch and timers only, not what the hooks do inside. Methodology.
Structural load of the 328 scripted mods analyzed, lightest on the left. This mod's bar is lit; 39 others share it. Ranked list.
Repeating timers carry 100% of this mod's structural load. 0.140 ms/s in all.
5 hooks · 0.00001 ms/s
1 timer · 0.14 ms/s
| Lifecycle hooksrun when an entity is created, loaded or deleted | 5 hooks | 0.00001 ms/s | <0.1% | ExplosivesBase.EEKilled, MissionServer.InvokeOnDisconnect, PlayerBase.EEKilled and 2 more |
| Repeating timersstay in the timer queue, which is walked every frame | 1 timer | 0.14 ms/s | 100% | every 1 s |
Counts how often each hook is dispatched and how many timers stay alive, not what the code inside does. Some rates are order-of-magnitude estimates; the methodology lists which.
Which vanilla methods the mod hooks, which of them drop the chain, how often each hook fires, and which risky calls sit inside hot hooks.
How long hook bodies take, network cost, or engine-side load. Measured across live fleets, most server lag comes from the engine and world state, not mod script chains — a light footprint does not clear a mod of lag, and a heavy one does not convict it. Methodology.
Everything else
All 12 overrides
Surface is the dispatch tier the rubric can price (— = unpriced); server is whether the override exists on a dedicated server; super() shows whether the vanilla chain is preserved on a server.
| method | surface | server | super() | where |
|---|---|---|---|---|
ActionArmExplosive.OnFinishProgressServer |
— | yes | ✓ | Scripts.pbo::4_World\BountyMod\Classes\UserActionComponent\Continuous\ActionArmExplosive.c:3 |
ActionPin.OnExecute |
— | yes | ✓ | Scripts.pbo::4_World\BountyMod\Classes\UserActionComponent\SingleUse\ActionPin.c:3 |
ActionUnpin.OnExecute |
— | yes | ✓ | Scripts.pbo::4_World\BountyMod\Classes\UserActionComponent\SingleUse\ActionUnpin.c:3 |
DayZGame.SetMissionPath |
— | yes | ✓ | Scripts.pbo::3_Game\BountyMod\gameplay.c:6 |
ExplosivesBase.EEKilled |
T3 | yes | ✓ | Scripts.pbo::4_World\BountyMod\Entities\ItemBase\ExplosivesBase.c:6 |
MissionGameplay.OnMissionStart |
T3 | yes | ✓ | Scripts.pbo::5_Mission\BountyMod\Mission\MissionGameplay.c:13 |
MissionGameplay.OnUpdate |
T0 | yes | ✓ | Scripts.pbo::5_Mission\BountyMod\Mission\MissionGameplay.c:21 |
MissionServer.InvokeOnDisconnect |
T3 | yes | ✓ | Scripts.pbo::5_Mission\BountyMod\Mission\MissionServer.c:3 |
PlayerBase.EEKilled |
T3 | yes | ✓ | Scripts.pbo::4_World\BountyMod\Entities\ManBase\PlayerBase.c:133 |
PlayerBase.OnStoreLoad |
T3 | yes | ✓ | Scripts.pbo::4_World\BountyMod\Entities\ManBase\PlayerBase.c:203 |
PlayerBase.OnStoreSave |
T3 | yes | ✓ | Scripts.pbo::4_World\BountyMod\Entities\ManBase\PlayerBase.c:214 |
PlayerBase.OnConnect |
— | yes | ✓ | Scripts.pbo::4_World\BountyMod\Entities\ManBase\PlayerBase.c:224 |
Dispatch surfaces and timers the grade prices
| surface | tier | rate (Hz) | rate source | ms/s |
|---|---|---|---|---|
ExplosivesBase.EEKilled | T3 | 0.1 | placeholder | 0.0000 |
PlayerBase.EEKilled | T3 | 0.1 | placeholder | 0.0000 |
PlayerBase.OnStoreLoad | T3 | 0.1 | placeholder | 0.0000 |
PlayerBase.OnStoreSave | T3 | 0.1 | placeholder | 0.0000 |
MissionServer.InvokeOnDisconnect | T3 | 0.1 | placeholder | 0.0000 |
Repeating timers
| period (ms) | residency ms/s | firing ms/s | where |
|---|---|---|---|
| 1000 | 0.1400 | 0.000025 | Scripts.pbo::4_World\BountyMod\Entities\ManBase\PlayerBase.c:45 |
Includes 0.000 ms/s from placeholder-rated surfaces.
Load-order constraints (CfgPatches)
What each PBO declares: its addon identity and the addons it requires to be loaded first (requiredAddons). A partial load-order signal from the mod's own metadata.
Buildings.pbo
AD_Heist— requiresDZ_Data
GUI.pbo
BountyMod_GUIrequiredVersion 0.1 — no requiredAddons
Scripts.pbo
BountyMod_ScriptsrequiredVersion 0.1 — requiresDZ_Scripts
census 1.1 · findings 1.1 · hash c50cd6d8fad81c05