Config Guide


Show all Mods:

Common

Currencies.json (easy)
Copy

Shared config between all LBmaster Mods for all setting up money items
  • version: Internal Version Tracking (Current Version: 1)
  • currencyPrefix: Some currencies like $ put the symbol before the number. This can be set here
  • currencySuffix: Some currencies like € put the symbol after the number. This can be set here
  • currencyValues: List of items, which can be used as currencies (make sure the Item has a quantity and can be stacked. Otherwise the Item will not be recognized)
    • itemclassname: The Classname (case sensitive) of the Item
    • value: Value one Item is worth (not a whole stack). For example there is a 1 Dollar bill and you can stack them up to 500, then the value is 1 and not 500
    • depositableOnly: Set if the currency can only be deposited, for example to deposit something like Gold Bars at the ATM, but don't give them back when withdrawing money

Icons.json (easy)
Copy

Icons for messages displayed at the top of the screen
  • version: Version for internal Version tracking (Current Version: 1)
  • error: Icon for error messages, which are caused by the mod being configured wrong
  • warning: Icon for warning messages, which are caused by the player doing something wrong
  • info: Icon for info messages, which are sent when the player is informed about an action he just did
  • applied: Icon for info messages, which are sent when something was saved
  • abort: Icon for info messages, which are sent when something was canceled
  • building: Icon for info messages related to (Base)building actions

Logger.json (easy)
Copy

Config for setting how much information should be logged in the LBmaster Log
  • version: Version for internal Version tracking (Current Version: 1)
  • logLevel: Defines how much information will be logged (0 to 6) (none to everything). (0 = None, 1 = Fatal, 2 = Error, 3 = Admin, 4 = Info (default), 5 = Debug, 6 = Verbose)
  • logFullTimestamp: 0 to only log the time of the Day in the log. 1 to log the full timestamp including the date in the log
  • logFolder: Folder where the LBmaster log will be saved to (default is the profiles folder to allow easy log rotation for the server managers)
  • logToScriptlog: Toggle if the log should be written to the scriptlog too. This does not disable the logging to the LBmaster Log

Webhooks.json (medium)
Copy

Set Webhooks to send certain messages via Discord webhooks to Discord channels (like Ingame chat etc)
  • version: For internal Version Tracking (Current Version: 1)
  • webhooks: List of all Webhooks
    • enabled: Enable / Disable that messages should be sent to the webhook
    • description: Description to keep track of the Webhooks (only visible from the config)
    • webhookURL: URL of the Webhook when copying it from the Discord Channel (https://discord.com/api/webhooks/...)
    • webhookMessages: List of Messages, which should be sent to this webhook. Use the names from below to send only specific messages to have the option for multiple webhooks with different purpose like chat logging and admin logging etc.
    • overwrittenMessages: overwrite any message for example to not include any information, which should not be visible for public channels. An Entry will have the same structure like one entry in the webhookMessages list
  • webhookMessages: List of the raw Webhook messages with placeholders represented as $$x$$ where x is a number. See below for information how to setup the message correctly
    • GlobalChat: Triggered when a chat message is sent to the Global Chat (Advanced Groups integrated Chat).
      • $$1$$ = Player Name
      • $$2$$ = Message
    • GroupChat: Triggered when a chat message is sent to the Global Chat (Advanced Groups integrated Chat).
      • $$1$$ = Group Tag
      • $$2$$ = Player Name
      • $$3$$ = Message
    • GroupDelete: Sent when a Group is deleted (Advanced Groups) (last player left the group).
      • $$1$$ = Group Name
      • $$2$$ = Group Tag
      • $$3$$ = Reason (admin delete, player left, inactive)
    • GroupCreate: Sent when a new Group is created by a player.
      • $$1$$ = Group Name
      • $$2$$ = Group Tag
      • $$3$$ = Steamid of the Player
      • $$4$$ = Name of the Player
    • DirectChat: Triggered when a chat message is sent to the direct Chat (Advanced Groups integrated Chat).
      • $$1$$ = Player Name
      • $$2$$ = Message
For how to create a Discord Webhook message, please check out the Discord Developer API and use a Json Escape Tool to escape the special characters (for example " will become \") Also check the predefined webhooks to see how the formatting works Also use a Json Validator to validate the webhooks.json file and also your webhook to make sure it works properly

LootPreset.json (hard)
Copy

This file defines the Presets for the spawn select mod, which can be added to the layouts either via the config, or the ingame admin menu, which is recommended. Important: Make sure you don't have any circular items in the presets ! Otherwise the Server might end up in an infinite loop when trying to spawn a preset. Example Preset_Weapons_Medium in Preset_Military in Preset_Weapons_Medium
  • base: List of presets, which can contain other presets or items. If you want to spawn items, you need to define a preset in the items list for each Item !
    • presetName: Name of the preset it is referenced by. The name must be unique, otherwise the behaviour is undefined
    • individualChance: If set to 1, the chance for the preset to spawn is defined by chance (0.0 = 0%, 0.5 = 50%, and 1.0 = 100%). If set to 0, the chance is defined by summing up all chances of presets with also have individualChance set to 0 and in the same parent preset. So this basically allows to spawn one of the child presets with the option to have one spawn more often than the other. For example different scopes on weapons, where only one should be spawned, but some should be more common than others
    • chance: explained above
    • items: List of presets, which can spawn within this preset. This will be the parent preset referenced in the individualChance explaination. This contains the presetName of either a basePreset or an itemsPreset
    • root: Set this to 1 if the preset should be visible in the Spawn Select admin menu for adding it to the loadouts list of a spawn to not have too many entries in the list. Some of the Presets will be used as intermediate Presets like Preset_Military_Clothing, which then contains more different clothing presets to allow more precise controll over which items to spawn with their chance
  • items: the List of items, which can have other presets as children to allow either cargo items or attachments or even weapon magazines
    • presetName, individualChance, chance, items: Same as above for the basePresets
    • itemname: The item classname for the item, which should be spawned. E.g TShirt_White, ShortJeans_Red, Apple
    • addToHotbar: If the preset is spawned on a player, the item will be placed in the next free hotbar slot. So make sure the order of the presets has the items first, which should be in the first slots of the hotbar. Useful for weapons, magazines or bandages
    • quantmin: -1.0 to spawn with default quantity. Used for ammo stacks, magazines (also when attached to weapons), bottles, money etc. Otherwise it's 0.0 to 1.0 for 0% and 100% minimum quantity. So this is not an absolute number
    • quantmax: -1.0 to spawn with default quantity. Otherwise it's 0.0 to 1.0 for 0% and 100% maximum quantity. So this is not an absolute number
    • spawnIn: Very powerful option, which defines the location the item is spawned. The following options are available (make sure to use the exact lowercase name !):
      • any: Tries to spawn the item in any location (attachment or cargo where attachment is tried first and then cargo) of the parent item. Useful to have items still spawning in cargo when no attachment slot is free
      • att: Tries to spawn the item as attachment of the parent Item. If it failes, the item is not spawned at all
      • cargo: Tries to spawn the item in the cargo space of the parent item. If it failed, the item is not spawned at all
      • root: Tries to spawn the item like any, but the parent item is the root item the preset is spawned at. For example the player. This is especially useful when wanting to spawn extra mags with weapons in the player inventory. any would try to spawn the item in the cargo of the weapon and it will fail. root will spawn the item in the player inventory instead.
      • hands: Tries to spawn the item in the Hands of the Player when the root entity is a player. If it's not a player or the player already has an item in hands, the item will be spawned like described in any
      • mag: Tries to spawn the item in the magazine slot of the parent weapon. If the parent is not a weapon or already has a magazine, it will fail. Otherwise the weapon will be properly loaded with the mag and can be fired by the player right away. useful to be combined with the parent weapon spawning in hands and magazines in the weapon to give the player a fire ready weapon in hands. If the weapon does not have a magazine, you can also use the ammo stacks to load the internal magazine (addToHotbar and quantity does not apply to the internal magazine spawning)

Admins.json
Copy

This file is used to define the admins for all LBmaster mods. After adding your Steamid to the file, you can enable Admin mode by pressing U This enabled some interaction options to configure items like ATMs or Garages To access the Admin Menu, you need to have admin mode enabled and press I These are the default buttons used, which can be changed in the DayZ Controls
  • admins: List of Admins. Each admin needs their own Entry ({... steamid ...})
    • steamid: The steamid of this admin. Remeber that there can only be one admin per {... steamid ...}. Each other Admin will need their own entry with steamid, comment, ...
    • ingameNameForPermissions: if set to "" the Admin can join with any name to receive their admin permissions. If set to any value like "Peter", the Player needs to join with the ingame name Peter to have admin permissions, otherwise he will be treated as a normal player
    • comment: Comment field to remember which admin it is, because Steamids are hard to recognize
    • grantAllPermissions: Set to 1 to give the Admin all available permissions regardless of their permissionGroups
    • permissionGroups: Permission Groups the admin is associated with. An Admin can be in multiple groups at the same time. There are 4 default groups, but you can add them yourself by adding a new entry in the groups list below. The name of that group must exactly match the entry in the list
  • groups: List of different Permission Groups / Ranks (Owner / Admin / Moderator / Supporter etc.)
    • name: Name of the permission group
    • permissions: List of granted permissions ("name.of.the.permission": 1) for granting permissions or ("name.of.the.permission": 0) for explicitly revoking a permission, but it's not necessary since all permissions are revoked by default

Appearance.json
Copy

This file contains the path to your logo, which will be displayed on some mod menus. The default path is set to LB_Server_Logo/gui/images/logo.paa A PBO with the logo inside at this location can easily be generated via The Logo Generator Follow the instructions there to generate the PBO
  • logoPath: Path to the logo displayed in some mod menus. Currently only used by Advanced Groups and Virtual Garage.

Raid Alert

Config.json (easy)
Copy

  • destroyTowerSeconds: Time is takes in seconds to destroy the Tower with the specified tools. Destroying can be done by any player
  • destroyTowerToolDamage: How much HP damage the destroy Tools takes. Check the configs how much max HP the item has
  • destroyTowerTowerDamage: Damage applied to the Tower items when destroyed to not make them last infinite
  • destroyTowerTools: Classnames of the Tools, that can be used to destroy the Tower. Clear this list to disable destroying
  • dismantleTowerSeconds: Time it takes to dismantle a Tower. Dismantling can only be done by the player, who setup the Tower
  • dismantleTowerToolDamage: How much HP damage the dismantle Tools takes. Check the configs how much max HP the item has
  • dismantleTowerTowerDamage: Damage applied to the Tower items when dismantled to not make them last infinite
  • dismantleTowerTools: Leave at least one item in here to allow players to dismantle the Tower again
  • assembleTowerSeconds: Time it takes to assemble the tower. The player who assembles the tower will be the owner of it and has full permissions to edit the config
  • assembleTowerToolDamage: Damage the tool takes when assembling the tower
  • autoAssembleWhenSenderAttached: Enable (1) to auto assemble the tower when the Sender Item is attached and don't require the player to assemble the tower with an extra item
  • assembleTowerTools: Tools that can be used to assemble the tower
  • alertRequiresBattery: Enable / Disable if the tower needs a LB_RaidAlertBattery to function
  • energyConsumedForAlertMessage: LB_RaidAlertBattery has 10000 Energy when full. 100 would be 1% of the total charge or 100 minutes with default settings
  • alertTriggerTimeout: Timeout before the next raid alert is triggered and webhooks are sent again. Webhooks have a 30 second hard timeout, which cannot be lowered
  • alertTriggerRadius: Radius of the Tower, where it picks up raid actions
  • energyConsumedPerMinute: LB_RaidAlertBattery has 10000 Energy when full. One battery would last for 10.000 minutes, which is about 7 days
  • sendBatteryLowWebhooks: Enable / Disable if players should receive webhooks for low battery warnings
  • batteryLowThreshold: Threshold when the Low battery message should be sent. 0.2 = 20% remaining battery
  • sendIngameRaidAlert: Enable / Disable if players should receive a warning ingame when online and their base is being raided

Types.xml
Copy

This is the types.xml for the Raid Alert mod. Modify the norminal and min values depending on how many items you want to spawn on the map. Be aware, that placed down items in bases will always count to the nominal value, because they don't change the item when placed down, so you might want to add them to the Trader
<type name="LB_RaidAlertBattery">
    <nominal>30</nominal>
    <lifetime>7200</lifetime>
    <restock>1800</restock>
    <min>20</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <cost>100</cost>
    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    <usage name="Militarty"/>
  </type>
  <type name="LB_RaidAlertBase">
    <nominal>20</nominal>
    <lifetime>3888000</lifetime>
    <restock>1800</restock>
    <min>15</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <cost>100</cost>
    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    <usage name="Militarty"/>
  </type>
  <type name="LB_RaidAlertSender">
    <nominal>10</nominal>
    <lifetime>7200</lifetime>
    <restock>1800</restock>
    <min>5</min>
    <quantmin>-1</quantmin>
    <quantmax>-1</quantmax>
    <cost>100</cost>
    <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    <usage name="Militarty"/>
  </type>

Advanced Groups

MainConfig.json (easy - medium)
Copy

  • configVersion: Do NOT Touch ! Only for internal Version tracking
  • serverLogoPath: Path to your Server logo. For help with getting the logo to display, refer to The Logo Creator
  • canSeeOwnPlayerOnMap: enable / disable if players should be able to see their own position on the map
  • enableKOTHMarkers: enable / disable KOTH markers (for KOTH mod https://steamcommunity.com/sharedfiles/filedetails/?id=2350401726)
  • inactiveGroupLifetimeDays: Time after a group will be deleted when no member was active for x Days
  • tacticalPingLifetimeSeconds: Time before a Tactical Ping will be deleted automatically
  • tacticalPingMaxConcurrentMarkersPerPlayer: Amount of tactical Pings each player can place. This can be increased per level in the Levels.json
  • inviteCooldownSeconds: Time a player needs to wait to invite the same player again to prevent spam
  • inviteMaxDistance: (not used yet !)
  • inviteActionEnabled: (not used yet !)
  • inviteActionShowName: (not used yet !)
  • markerConfig: Config for all Marker Types available:
    • type: Internal ID for the specific Marker Types
    • typeString: Descriptive name of this Marker Type
    • maxDistance: Maximum Distance the Marker Type will be visible in 3D and on the Compass
    • display3d: enable / disable if the Marker Type is Visible in 3D
    • displayDistance: enable / disable if the Marker Type should have a distance displayed in 3D
    • displayMap: enable / disable if the Marker Type is Visible on the Map
    • displayCompass: enable / disable if the Marker Type is Visible on the Compass
    • displayGPS: enable / disable if the Marker Type is Visible on the GPS
  • addPlayerDeathMarker: enable / disable if Death Markers should be added at the Death position of a player
  • deathMarkerPrivate: enable / disable if the Death Marker should be added as a private Marker
  • deathMarkerGroup: enable / disable if the Death Marker should be added as a group Marker
  • deleteOldDeathMarker: enable / disable if old Death Markers should be deleted or must be deleted manually by the player
  • preventFriendlyFire: Set to 1 to disable players taking damage from players, which are in the same group as them. That only prevents the player from dying from direct hits like bullets fired by the other player or melee hits. Things like clothing will still be damaged
  • preventFriendlyFireOnlyInSameSubgroup: Set to 1 to only prevent friendly fire when they are in the same subgroup (enableSubGroups must be enabled for that). Otherwise players will still take damage even though they are in the same group
  • deathMarkerIcon: Icon of the Death Marker
  • enableMapLegend: Show the Map legend in the bottom right to make the map less cluttered with markers, which are placed a lot on the map
  • mapLegendTitle: Title which is displayed on the Map Legend
  • mapLegend: List of entries, which will be displayed on the Map Legend. The order will be the same as in this list
    • iconPath: Path to the icon, which is displayed for this entry (Check the availableIcons list for icons you can use)
    • iconColorA: Alpha Color of the Icon
    • iconColorR: Red Color of the Icon
    • iconColorG: Green Color of the Icon
    • iconColorB: Blue Color of the Icon
    • name: Name displayed on the Map Legend
    • nameColorA: Alpha Color of the Text
    • nameColorR: Red Color of the Text
    • nameColorG: Green Color of the Text
    • nameColorB: Blue Color of the Text
  • availableIcons: List of all Icons the Players can choose from when creating a new Marker
  • customMapLayoutFolder, customPlayerlistLayoutFolder, customCompassLayoutFolder: will be removed in future releases
  • layoutStyles: Do not edit ! all Styles can be found in the gui/layouts folder of the mod and must be named correctly. If changed, you may end up without a map gui !
  • enableCompassHud: enable / disable the compass at the top of the Players screen
  • compassRequireItem: make the Compass require an ingame item (like a compass or similar items)
  • compassItems: List of items counting as a compass item. (only one of the items in the list is needed. Not all together)
  • enableGPS: enable / disable the GPS (due to the implementation of the DayZ Map, this will reduce the Client FPS noticable if shown. Players can still disable the GPS in their Client Config)
  • gpsDisplayAngle: Display the Angle the Player is looking to on the GPS
  • gpsDisplaySpeed: Display the current Speed of the Player on the GPS
  • gpsDisplayCoords: Display the current Coordinates on the GPS
  • gpsRequireItem: Require the player to have an item in their inventory to enable the GPS
  • gpsItems: Items that count as a GPS (only one of the items in the list is needed. Not all together)
  • gpsOnlyInVehicles: Force the GPS only to show if the Player is in a vehicle
  • mapRequireItem: Require the player to have an item in their inventory to see the map. Otherwise the text below is displayed instead of the map and markers cannot be added or removed from the map
  • mapItems: Items that count as a Map (only one of the items in the list is needed. Not all together)
  • mapNotFoundText: Text, which is displayed when mapRequireItem is enabled and the player does not have any of the items listed in mapItems
  • mapNotFoundImage: Path to the image displayed together with the mapNotFoundText
  • vehiclesWithGPS: List of vehicle with an "inbuild GPS" (do not require the GPS Item if needed)
  • groupManagePageObfuscatePlayernames: enable / disable player Names being displayed in the Player list. If disabled the Names will be shown as usual. If enabled, the names will just be random numbers, which change every restart
  • enablePlayerList: enable / disable the Player List in the top left corner
  • enablePlayerListDistance: enable / disable if the Distance to the other Players should be displayed in the Player List
  • enableSubGroups: enable / disable subgroups / firegroups to split larger groups into smaller groups. This should make it harder for larger groups to run around as on big squad and wipe out every small group
  • enableSubGroupSharedPlayerMapMarker: If enabled, the players can still see eachother even if not in the same subgroup, which makes the subgroups pointless
  • enableSubGroupSharedPingMapMarker: Enable if the Ping Markers should be shared in the subgroups
  • enableInfoPanelSurvivorCount: Show the Amount of online Players on the Info Panel of the Map
  • enableInfoPanelCursorCoordinates: Show the current cursor Coordinates on the Info Panel of the Map
  • enableUIPlayerPosition: Show the current Player Position on the Info Panel of the Map
  • enableInfoPanelIngameTime: Show the current Ingame Time on the Info Panel of the Map
  • enableInfoPanelRealTime: Show the current Real Time on the Info Panel of the Map (Time set as system Time)
  • disableInfoPanelModCreatorMention: disable if the small message with my Name should be hidden on the Info panel
  • groupMarkerLimit: Base limit of Group Markers, that can be added (can be expanded per level in the levels.json)
  • offlinePlayer3dMarkerDistance: Distance the Offline Member Markers should be shown in 3D (numbers smaller than 0 will disable it)
  • subGroupNames: Names of the Subgroups. Make sure you have enough names for the amount of subgroups for the highest level (see levels.json)
  • buttonConfig: List of all Buttons shown on the Info Panel:
    • buttonName: Display Name of the Button (Text on the Button)
    • subtext: Short descriptive Text under the button
    • link: URL to the Website, that should be opened if the button is clicked

Levels.json (medium)
Copy

  • List of all Group Levels available (at least one level is required !)
    • level: current level number (starts with 0. Do not use the same for different levels and do not skip numbers)
    • maxPlayerCount: Maximum Total Player Count
    • upgradeCost: Cost to upgrade the group to this level (upgradeCost for level 0 will be the creation cost of the group)
    • subgroupCount: If Subgroups are enabled (see MainConfig): The amount of subgroups this level has
    • subgroupSize: Size fo each subgroup. subgroupCount * subgroupSize must be bigger than the maxPlayerCount to allow players to switch groups. ! Offline players will also occupy a subgroup slot so make sure the Group has enough room for switching around !
    • groupMarkerLimitAdded: Group Marker Limit added to the groupMarkerLimit in the MainConfig.json
    • groupPingsLimitAdded: Added amount of Pings per player since players can set multiple pings
    • groupPlotpolesLimitAdded: If Plotpole DLC is used: Max Count of Plotpoles adding to the base Limit defaultPlotpoleCountPerGroup in PlotpoleConfig.json

ChatConfig.json (easy)
Copy

Disable with LBmaster_GroupDisableChat.pbo If you want to use your own Chat Mod

  • currentVersion: Do NOT Touch ! Only for internal Version tracking
  • displayGroupTagsInfrontOfName: enable / disable if group Tags should be displayed infront of the Playername in chat. (Each Group Leader can decide to hide their tag too)
  • forceDisplayGroupTagsInChat: Set to 1 so Group Leaders cannot disable that their Group Tag is hidden in chat
  • enableMuteVote: Enable if players should be able to vote if another player should be muted
  • muteVoteMinPlayers: Min Players online for a vote to begin
  • muteVoteMuteTimeMins: time a player should be muted if the vote was successful
  • muteVotePercentile: Percentile of players, that need to vote for the player (0 = 0%, 0.5 = 50%, 1.0 = 100%)
  • channels: All channels available
    • channelName: Name of the Channel displayed when switching channels and when opening the chat
    • channelColor: Color of the Playername in the Chat (argb colors from 0 to 255 for Alpha, Red, Green and Blue Channel)
    • globalChannel: set to 1 if Channel is a global channel
    • groupChannel: set to 1 if Channel is a group channel
    • directChannel: set to 1 if Channel is a direct (proximity) channel
    • defaultChannel: set to 1 if this is the default channel selected when the player joins
  • colorBattleyeMessage: argb Color for Battleye messages (e.g. RCON / Server Messages from CF Tools)
  • prefixGroups: List of custom prefixes for players (e.g. Admins)
    • prefix: text infront of the playername (adding a tailing space is recommended)
    • colorR: Red Channel Color from 0 to 255
    • colorG: Green Channel Color from 0 to 255
    • colorB: Blue Channel Color from 0 to 255
    • members: List of all Steamids, which should be in this group
    • permissionToApplyGroup: Permission, which can be added to the Admins.json to automatically assign this prefix for that admin
  • badWords: List of all Bad words, which should be censored. (Not Casesensitive)
  • enabledBadWordsCensor: enable / disable if Bad Words should be censored / punished with chat mute
  • blockBadWordContainingMessages: enable / disable if the message should be sent even if bad words were detected
  • badWordsBlockedMessage: message sent to the user when bad words were detected
  • badWordsMuteTime: Time in minutes the player will be muted if bad words were detected

NoBuildZones.json (medium)
Copy

  • version: Do NOT Touch ! Only for internal Version tracking
  • enabled: enable / disable no Build Zones feature
  • displayOnMap: enable / disable if No Build Zones should be visible on the Map (can be disabled in the Client Settings)
  • notificationTitle: Title of the Notification sent to the Player if he wants to deploy objects in a No Build Zone
  • notificationMessage: Message of the Notification {pos} can be used as a placeholder for the name of the Zone the Player is in
  • ignoreItems list of items, which can still be deployed in the No Build Zones
  • circleColorR: Red Color of the Circle
  • circleColorG: Green Color of the Circle
  • circleColorB: Blue Color of the Circle
  • zones: list of all the zones defined
    • name: Name of the Zone (displayed in the notificaion Message)
    • x: X-Coordinate of the Zone
    • y: Y-Coordinate of the Zone
    • r: Radius of the Zone

StaticMarkers.json (medium)
Copy

Can be easily edited ingame with the correct Permissions (see Admins.json) List of all the Static / Global Markers e.g. for Traders or special locations
  • type: should always be 0 for type STATIC_MARKER (see MainConfig.json)
  • uid: unique ID for each marker (if you use the same ID for multiple markers, you will delete all markers if one is deleted and players will hide all markers if one is hidden)
  • name: displayname of the Marker shown on the Map / 3D / Compass / GPS
  • icon: path to the icon of the Marker
  • position: x,y,z of the Marker
  • currentSubgroup: Not used here
  • colorA: Alpha Channel of the color
  • colorR: Red Channel of the color
  • colorG: Green Channel of the color
  • colorB: Blue Channel of the color
  • creatorSteamID: Not used here
  • circleRadius: Radius of the Marker. The ingame panel also has the option to edit the circle radius
  • circleColorA: Circle Alpha Color
  • circleColorR: Circle Red Color
  • circleColorG: Circle Green Color
  • circleColorB: Circle Blue Color
  • circleStriked: Set to 1 to display the lines inside the circle to fill it partially
  • showAllPlayerNametags: Set to 1 to display player nametags within the radius. Refer to the SafezoneMarkers.json for more information how to set them up
  • toSurface: calculate height of the marker based on the terrain height at the position (overwrites y of the marker position)
  • display3d: enable / disable if the Marker is shown in 3D
  • displayMap: enable / disable if the Marker is shown on the Map
  • displayGPS: enable / disable if the Marker is shown on the GPS
Markers added ingame have the following attributes set:
  • type = 0
  • uid = random
  • name = set ingame
  • icon = set ingame
  • position = set ingame
  • colorA, colorR, colorG, colorB = set ingame
  • toSurface = true / 1
  • display3d = true / 1
  • displayMap = true / 1
  • displayGPS = true / 1

ClanClothing.json (hard)
Copy

  • version: Do NOT Touch ! Only for internal Version tracking
  • active: enable / disable Clan clothing extension
  • entries: List of all ClanClothing entries
    • clanTags: List of all Clans, which this config should apply to (clans can be in multiple configs)
    • steamids: List of individual Players, which this config should apply to (players can be in multiple configs)
    • itemNames: List of the Itemnames, which should be retextured
    • fileNames: List of the Paths to the hiddenSelectionTextures of the item (blank is the default texture)
itemNames and fileNames must be of the same length ! The first entry for an Item will correspond to the first hiddenSelection of this item. Adding an Item to this list will not create a new Item ! It will only change the texture of this item

Example:
Retexture of Hoodie_Black (defined in DZ/characters/tops/config.cpp): Step 1: Check how many hidden selections the item has Hidden Selections for the Hoddie and almost all clothing items: hiddenSelections[] = {"camoGround","camoMale","camoFemale"}; (3) Step 2: Find the path of the texture you want to add to the config. Something like MyClothingMod/textures/hoodie/xyz/texture_co.paa Step 3: Edit the config. You can add a new Entry for a Clan like this:
{
    "clanTags": ["XYZ"],
    "steamids": [],
    "itemNames": [
        "Hoodie_Black",
        "Hoodie_Black",
        "Hoodie_Black"
    ],
    "fileNames": [
        "MyClothingMod/textures/hoodie/xyz/texture_co.paa",
        "MyClothingMod\\textures\\hoodie\\xyz\\texture_co.paa",
        "MyClothingMod/textures/hoodie/xyz/texture_co.paa"
    ]
}
Note: Filenames with \ must be \\ (double backslash) or single slash /

Permissions.json (expert)
Copy

  • List of all Permission Groups / Ranks for the Clan (default: Temp, Trial, Member, Admin, Leader)
  • UID: Unique ID of this Rank (will be used to store the current Rank of the Player in the Groups json File)
  • nextGroupUID: UID of the higher group (-1 if highest Rank)
  • previousGroupUID: UID of the lower group (-1 if lowest Rank)
  • inheritGroupUID: UID of the Rank, this Rank should inherit from (in most cases the previousGroupUID)
  • permName: Displayname of the Rank shown behind the Playername in the Group overview
  • markerPermissions: List of all Permissions for each Marker Type (see MainConfig.json):
    • param1: type of the Marker (refer to MainConfig.json for all types available)
    • param2: 0 if not visible / 1 if visible
  • canUpgrade: enable / disable if the Player can Upgrade the Group to the next level
  • canPromote: enable / disable if the Player can Promote others
  • canDemote: enable / disable if the Player can Demote others
  • canInvite: allow the Player to invite new Players to the Group
  • promotePower: Power the Player has to promote others. Needs to be greater than the promoteNeedPower of the target rank of the promoted player
  • demotePower: Power the player has to demote others. Needs to be greater than the demoteNeedPower of the current rank of the demoted player
  • canDoBasebuilding: Allow the player to build / dismandle / destroy Basebuilding items
  • canPackPlotpole: can destroy the Flagpole owned by the Group
  • canCreateSeeATMAccount: (only with ATM DLC) can see the Balance of the Group Account
  • canCreateGroupATMAccount: Can buy the Group account
  • canWithdrawGroupMoney: Can withdraw money from the group account
  • canDepositGroupMoney: Can deposit money to the group account
  • canOpenGroupGarage: Can open the Group Garage when combined with the Virtual Garage Mod
  • tempGroup: 1 if players in this group should be removed after server restart. 0 if group is persistent

MuteConfig.json (don't touch)
Copy

Contains a list of all Muted Players. This will be overwritten while the Server is running ! If you want to unmute a player or mute a player, use the ingame Admin Menu

Groups/[GROUP_TAG].json
Copy

This is the config file for each group on the Server. Delete them all, if you want to wipe all groups. Note: I would not recommend editing this file, because it will be overwritten while the Server is running and it can cause the Group to disappear. Use the Admin Tab on the Map instead ! Is can be useful for seaching for players, but you can also do that on the Admin Page
  • configVersion: Internal Version Counter
  • name: Full Name of the Group
  • shortname: Short Group Tag (visible in chat if configured)
  • level: Level of the Group. Levels are defined in the Levels.json
  • maxPlayers: Only temporary number to save max players. Max players is determined by the Level and will be overwritten after Server restart
  • subGroupSize: Only temporary number to save Sub-Group Size. It's determined by the Level and will be overwritten after Server restart
  • subGroupCount: Only temporary number to save Sub-Group Count. It's determined by the Level and will be overwritten after Server restart
  • lastActivity: Last time a player of this group was active. Used to delete old Groups, which are not active. Lifetime can be set in MainConfig.json
  • creationDate: Timestamp when the Group was created
  • markerLimit: Only temporary number to save Marker limit. It's determined by the Level and will be overwritten after Server restart
  • plotpoleLimit: Only temporary number to save Plotpole Count. It's determined by the Level and will be overwritten after Server restart (Does not have an effect if PlotPole DLC is not installed)
  • hasATMAccount: Used to save if the Group has a Group Account when using Enhanced Banking
  • showTagInChat: Enable if the Group Tag should be visible in the Chat. Can be disabled by the Leader
  • hasCustomChatColor: Set a custom Group Tag color for the Chat. Can be used for VIP Clan packages. (I recommend to set the color ingame via the Admin Panel or while the Server is offline)
  • chatColorR: Red Channel color of the Tag Color (0-255)
  • chatColorG: Green Channel color of the Tag Color (0-255)
  • chatColorB: Blue Channel color of the Tag Color (0-255)
  • members: List of Members in the Group
    • type: Always 4 for GROUP_PLAYER_MARKER (MainConfig.json)
    • uid: Unique ID of the Marker
    • name: Last ingame Name
    • icon: Overwritten by the Icon set in the MainConfig.json
    • position: Last Position of the Player (x,y,z)
    • currentSubgroup: Save the current Subgroup if Subgroups are enabled in the MainConfig.json
    • colorA: Overwritten by Individual Client Color settings
    • colorR: Overwritten by Individual Client Color settings
    • colorG: Overwritten by Individual Client Color settings
    • colorB: Overwritten by Individual Client Color settings
    • creatorSteamID: Unused
    • circleRadius: Not used
    • circleColorA: Not used
    • circleColorR: Not used
    • circleColorG: Not used
    • circleColorB: Not used
    • circleStriked: Not used
    • steamid: Steamid of the Player
    • permissionGroup: Rank of the Member in the Group. Value is the UID of the Rank in the Permissions.json
    • online: set to 1 if Player is currently online
    • health: Health of the Player (0-100)
    • tempMember: Automatically set to 1 if the Rank is a temp rank (Overwritten by the Server)
  • markers: List of all Group Markers
    • type: Always 3 for GROUP_MARKER (MainConfig.json)
    • uid: Unique ID of the Marker
    • name: Name of the Marker
    • icon: Icon set by the Player
    • position: Position of the Marker (x,y,z)
    • currentSubgroup: Ignored
    • colorA: Alpha Channel Color of the Marker (set ingame via the Color picker)
    • colorR: Red Channel Color of the Marker (set ingame via the Color picker)
    • colorG: Green Channel Color of the Marker (set ingame via the Color picker)
    • colorB: Blue Channel Color of the Marker (set ingame via the Color picker)
    • creatorSteamID: Steamid of the Player who setup the Marker
    • circleRadius: Not used
    • circleColorA: Not used
    • circleColorR: Not used
    • circleColorG: Not used
    • circleColorB: Not used
    • circleStriked: Not used

Timeout.json
Copy

Config that handles the group swap timeouts so player do not swap groups to gain advantages (disabled by default)
  • version: Internal Version handling (Current Version: 0)
  • enableTimeout: Set to 1 to enable the timeouts
  • timeoutDifferentGroupDurationSeconds: Time in seconds a player needs to wait until he can join a different group than his last group (The timer will start when the player joined the first group and not when he left)
  • timeoutSameGroupDurationSeconds: Time in seconds a player needs to wait until he can join the same group he was in before (The timer starts when he joins the first group)
  • players: List of the current timeouts
    • steamid: Steamid of the Player
    • lastGroup: The last group the player was in to track if he joins the same group or a different group and to apply the according timeout set above
    • timeoutStartTimestamp: Unix timestamp when the Player jast joined the lastGroup so players which have been in a group for a long time and want to change the group will not be punished, but players wanting to swap groups all the time will have the timeout

SafezoneMarkers.json
Copy

This file contains the config for Safezone Markers. They are only markers and do not add any safezone functionality. The zones themselves are static markers with the showAllPlayerNametags parameter set to 1. They need a radius set too. The color of the radius can be invisible (circleColorA set to 0), if you don't want to show the circle on the map, but still want the nametags to be visible
  • version: Used for internal version tracking
  • enablePlayerMarkers: Enable / disable the whole feature
  • obfuscatePlayerNames: Show the obfuscated version of the Playernames instead of the real names. Will behave exactly the same like the obfuscation of player names on the online players list for the group invites. The IDs of the players will also be printed in the LBmaster log when they login so you can find out who the person was
  • maxPlayerDistance: Maximum distance the nametags will be shown. Cannot exceed the network far bubble (~1000m by default)
  • playerTagPrefix: Prefix for normal players (is not displayed when name obfuscation is enabled)
  • playerTagColor: Color of the nametag for players
  • adminTagPrefix: Prefix for admins, which have the "groups.nametags.admin" permission set
  • adminTagColor: Color of the Admin nametag

Automarkers.json (hard)
Copy

This config is used to automatically add markers to the map, whithout having to do any scripting work This can be used for marking vanilla Helicrahes or different things. An example on how you would mark helicrashes is included in the default config This can also be used to track players in vehicles in a car race Be aware, that all markers will be STATIC_DYNAMIC markers. So they will be visible for all players and will be deleted when the object they belog to is deleted or when the server restarts New markers are created when the server starts and also when new objects are created. For example a helicrash spawns, then the marker will be added. When it despawns, then the marker will be deleted again This can also be used to mark things like Traders on the map
  • enabled: Enable / disable the whole system
  • automaticMarkers: List of markers you want to have added to the map automatically
    • itemnames: List of itemnames, which should automatically have a marker attached
    • markerIcon: Icon path of the marker. You can use custom files as long as the path is correct and they exist or use one from the list in the Mainconfig.json
    • markerName: Display Name of the Marker. This can have several Placeholders: {displayName} will be replaced with the Display Name of the Item the marker is attached to. {rootDisplayName} will look for the root owner of the item (for example a player, who has the item in his inventory) or it will be the same as {displayName} if there is no item higher up the hierarchy. You can also let it execute a whole script function, which must return a string. This function must exist in the script class of this entity ! Otherwise it will not work and could lead to crashes ! {TheFunctionName()} would call a function string TheFunctionName() {return "My cool string";}. This function must not be static or private and must exist in the class of the entity where the marker is added to
    • yOffset: Additional height offset from the origin of the Item. Some items have a very low center. You can add an additional Y-Offset here to place the marker a bit higher (only relevant if you use 3D Markers)
    • updateInvervalSeconds: If set to a value greater than 0, the position of all markers of this category will be updated each x seconds. By default markers are not updated after they were initially placed. If you want them to update, then you need to define an interval here. This would be used for something like a car race. Heli Crashes do not need to be updated, because they will stay at the same position the whole time
    • display3D: Enable / Disable 3D Markers for this Auto Marker
    • displayMap: Enable / Disable if the marker should be shown on the map
    • displayGPS: Enable / Disable if the marker should be shown on the GPS
    • markerColorFunction: Similar to the placeholders in the markerName, you can define a custom function, which should be called to get the color of the marker. If left blank (""), then markerColor is used as a static color, which should be enough for most use cases. If you want the color to change, you first need to have an updateInvervalSeconds set. Otherwise it will never check if the color should be updated. And you also need to put a function name in here, which exists in the class of the entity the marker is added to. Make sure to not have () at the end ! Only use the function name ! The function must return an ARGB int value. so for example int GetMyColor() {return ARGB(255,255,255,255);} would return a white color all the time. You then need to have "GetMyColor" as the value of this parameter
    • markerColor: Default color of the Marker and Icon when no markerColorFunction is set
    • markerRadiusFunction: Same as the markerColorFunction, but now it must return a float
    • radius: default radius of the marker
    • radiusColorFunction: Same as the markerColorFunction, but now for the color of the radius
    • radiusColor: Color of the outer edge of the radius
    • strikedRadius: Enable / disable the striked style of the inner part of radius
    • showOnlyInsideStaticMarkerRadius: If enabled, markers will only be added to items which are inside static markers with a radius (markers added to the staticmarkers.json). This can be useful to mark all Traders or ATMs, but only the ones in the safezones and maybe not the ones hidden on the map

AirdropMarkers.json (easy) (Airdrop upgraded Plugin)
Copy

This config is only available when using the LBmaster_Groups_AirdropUpgraded.pbo from the OptionalContent/Plugins folder
  • version: Tracking of the current Config version (current: 0)
  • enableAirdropMarkers: Toggle if the Markers should be shown
  • updatePositionWhenDropped: Update the position to the exact drop location when it's dropped (Airdrop Upgraded has a radius the crate will be dropped)
  • markerForRandomAirdrop: Add Markers for Airdrops, which spawned random (not player called ones)
  • markerForPlayerCalledAirdrop: Add Markers for Airdrops called by players
  • nameBeforeDrop: Name displayed at the rough drop location before the Airdorp arrived
  • nameAfterDrop: Name displayed after the crate was dropped by the plane
  • icon: Icon of the Marker, that will be displayed
  • markerColorA: Alpha (opacity) of the Marker
  • markerColorR: Red Color of the Marker
  • markerColorG: Green Color of the Marker
  • markerColorB: Blue Color of the Marker

Plotpole DLC

PlotpoleConfig.json
Copy

This is the Main Config with all Plotpole Settings:
  • configVersion: Version number of the Config
  • enablePlotpoleExtension: Must be set to 1. Otherwise everything is disabled !
  • syncPlotpolesToCFCloud: Show Plotpoles on the CF Cloud interactive Map
  • doObjectLifetimeReset: Reset the Lifetime of objects within the Plotpole Radius
  • enableLifetimeResetWorkaround: Enables a workaround when Items are not refreshed properly to find all items around the flagpole and individually reset the lifetime of each item to make sure they are all reset to max lifetime
  • flagLifetimeRefreshTime analog to the FlagRefreshFrequency from the globals.xml. The globals.xml value will be ignored. This is the interval in seconds between two lifetime resets. All Objects, which should not despawn must have a lifetime higher than this value
  • flagUptimeDuration analog to the FlagRefreshMaxDuration from the globals.xml. The globals.xml value will be ignored. This is how long the Flag will take from 100% up to completely lowered. When the Flag reaches the lowered state, it will once more refresh the lifetime of the objects near it and then the lifetime of the objects remain until they despawn.
  • preventUnauthorizedDeploying: Set to 1 to prevent people from deploying objects in enemy territories. This will not prevent people from dropping items like barrels !
  • deployInOthersTerritoryExceptions: List of items, which can still be deployed in enemy territories like C4 or Traps
  • forceDeployingInTerritory: Set to 1 to force all players to build inside a territory. If set to 0, players can build everywhere, but they are not protected by the Flag
  • forceExceptions: Exceptions to this rule. Add things like Campfires or similar things to allow people to use them in the wild
  • preventUnauthorizedBuilding: Set to 1 to disable building basebuilding parts in enemy territories
  • preventUnauthorizedDismantling: Set to 1 to disable dismantling basebuilding parts in enemy territories
  • preventUnauthorizedDestroying: Set to 1 to disable destroying of basebuilding parts in enemy territories (DayZ changed the way basebuilding objects are destroyed !)
  • remainingFlagLifetimeWhenGroupDeleted: When a group owning the flag is deleted, the lifetime of the flag is set to this value. Keep in mind: Groups are deleted when the last player in the group left
  • instantBuildPlotpole: Instantly build the flagpole when the kit is placed. The Flag does not yield any ressources when destroyed
  • autoAttachFlag: Attach a random Flag when instant build is enabled and choose a Flag from the list below
  • autoRaiseFlag: Raise the Flag to 100% when enabled and instant build is enabled
  • autoFlagAttachedItemnames: List of Flags, that can be attached when autoAttachFlag is enabled. A random itemname will be choosen from the list
  • displayPlotpolesOnMap: Create a Marker in the Group when the Flag is placed down (this is not public and can be removed)
  • allowOthersPlotpoleDestroy: Set to 1 to allow players not owning the Flag to destroy it (destroying a flag requires the flag to be lowered !)
  • allowOthersPlotpoleLowerFlag: Set to 1 to allow players not owning the Flag to lower it and stop the lifetime reset of the Basebuilding items
  • allowDismantleInUnclaimedTeritorry: Set to 1 to allow anybody to dismantle unprotected basebuilding items e.g. The Flag is despawned or the Group owning it was deleted
  • allowDestroyInUnclaimedTeritorry: Set to 1 to allow anybody to destroy unprotected basebuilding items e.g. The Flag is despawned or the Group owning it was deleted
  • plotpoleRadius: Radius of the Plotpole (Shape of the Radius is a Cylinder, not a Sphere !)
  • plotpoleHeightUp: Height up of the Plotpole radius from the center of the plotpole
  • plotpoleHeightDown: Height down from the Plotpole center
  • plotpoleDistanceMinHostile: Minimum distance between Plotpoles when owned by different Groups
  • plotpoleDistanceMinFriendly: Minimum distance between Plotpoles when owned by the same Group
  • defaultPlotpoleCountPerGroup: Plotpole Limit for each Group (can be upgraded via the Level.json)

Enhanced Item Restrictions

GeneralConfig.json (easy)
Copy

  • showRestrictionsOnGroupMapMenu: Enable (1) / Disable (0) if the Group and Player restrictions should have their own Tab in the Advanced Groups Map Menu. (There is currently no other way to view the restrictions other than this menu)
  • showMapInRestrictionMenu: Enable (1) / Disable (0) if a map with the positions of the placed items should be shown on the restrictions menu
  • showPlayerPositionInRestrictionMenu: Enable (1) / Disable (0) if the current player position should be shown on the resitrctions menu. The menu will auto center on the players position if enabled. If disabled, it will take the first item it can find and center on that
  • canSeePlacedItemsMarkersOnPanelMap: Enable (1) / Disable (0) if the items placed down should be visible on the map
  • useMemberCountAsGroupLevel: Enable (1) / Disable (0) if the levels for the group restrictions should be the level of the group, or the member count. Be aware, that group levels start at 0, which is the first entry in the levels list of the restriction entry. Member counts will start at 1 member, because groups with 0 members don't make any sense and will be deleted anyways. If you enable it and use the member count as levels, then you might want to add a placeholder level at the beginning

PlayerRestrictions.json (medium)
Copy

  • enabled: Enable / Disable the whole restriction file
  • restrictions: List of all restrictions, which should apply to the Player, Group or Plotpole
    • displayName: Name displayed in the menu of the Player
    • kitItemNames: List of Items, which should initiate the counting of objects when they are placed down
    • countItemNames: List of Items, which are actually counted. Some items like the FenceKit would transform into a different item (Fence) after placing. Having items like Tents, which do not transform into a different item, but only change their state would need to be added to both list in order to work
    • limits: A list of limits, which allows a leveling system. This is not a list for each individual item in the countItemNames list, but a limit of the total over all items found by this group. Each entry here is for one level. The first entry is level 0 and is required in order for the limits to work. Some mods like Advanced Groups already have a level system built in, which can be used here to increase the limits of groups based on their group level. Some plotpole mods might have that functionality and would need to overwrite the int LBGetLevel() {} method in their plotpole class. This also works for players with the same method if you have some kind of Player Leveling system
    • isAttachment: Specify if the entry should look for attachments (1) or the default option, ground items (0). Attachments could be something like CombinationLock to limit how many locks players can put on their fences.
    • showOnMap: Enable if placed items should be shown on the limits map of the player
    • show3D: Enable if placed items are displayed with a 3D Marker when the player enters the display 3d items mode

GroupRestrictions.json (medium)
Copy

  • enabled: Enable / Disable the whole restriction file
  • restrictions: List of all restrictions, which should apply to the Player, Group or Plotpole
    • displayName: Name displayed in the menu of the Player
    • kitItemNames: List of Items, which should initiate the counting of objects when they are placed down
    • countItemNames: List of Items, which are actually counted. Some items like the FenceKit would transform into a different item (Fence) after placing. Having items like Tents, which do not transform into a different item, but only change their state would need to be added to both list in order to work
    • limits: A list of limits, which allows a leveling system. This is not a list for each individual item in the countItemNames list, but a limit of the total over all items found by this group. Each entry here is for one level. The first entry is level 0 and is required in order for the limits to work. Some mods like Advanced Groups already have a level system built in, which can be used here to increase the limits of groups based on their group level. Some plotpole mods might have that functionality and would need to overwrite the int LBGetLevel() {} method in their plotpole class. This also works for players with the same method if you have some kind of Player Leveling system
    • isAttachment: Specify if the entry should look for attachments (1) or the default option, ground items (0). Attachments could be something like CombinationLock to limit how many locks players can put on their fences.
    • showOnMap: Enable if placed items should be shown on the limits map of the player
    • show3D: Enable if placed items are displayed with a 3D Marker when the player enters the display 3d items mode

PlotpoleRestrictions.json (medium)
Copy

  • enabled: Enable / Disable the whole restriction file
  • restrictions: List of all restrictions, which should apply to the Player, Group or Plotpole
    • displayName: Name displayed in the menu of the Player
    • kitItemNames: List of Items, which should initiate the counting of objects when they are placed down
    • countItemNames: List of Items, which are actually counted. Some items like the FenceKit would transform into a different item (Fence) after placing. Having items like Tents, which do not transform into a different item, but only change their state would need to be added to both list in order to work
    • limits: A list of limits, which allows a leveling system. This is not a list for each individual item in the countItemNames list, but a limit of the total over all items found by this group. Each entry here is for one level. The first entry is level 0 and is required in order for the limits to work. Some mods like Advanced Groups already have a level system built in, which can be used here to increase the limits of groups based on their group level. Some plotpole mods might have that functionality and would need to overwrite the int LBGetLevel() {} method in their plotpole class. This also works for players with the same method if you have some kind of Player Leveling system
    • isAttachment: Specify if the entry should look for attachments (1) or the default option, ground items (0). Attachments could be something like CombinationLock to limit how many locks players can put on their fences.
    • showOnMap: Enable if placed items should be shown on the limits map of the player
    • show3D: Enable if placed items are displayed with a 3D Marker when the player enters the display 3d items mode
  • plotpoles: List of all plotpole items with their radius settings, which should match the real plotpole radius. Since there are a lot of plotpole mods, which I would need to support, you just need to add your plotpole itemname and radius in the list and it should work just fine
    • radius: Set the radius of the Flag
    • radiusShape: can be either set to 0 for SPHERE Mode. This will take the radius and calculate all distances to check if an item is inside the radius in a 3D Sphere. Setting this option to 1 will change the Shape to a CYLINDER. This means the radius is used for X and Z calculations in a circle around the flag and the cylinderUp limits the height up and cylinderDown will limits the height down
    • cylinderUp: when Radius Shape is set to 1, which will determine the height of the Cylinder shape
    • cylinderDown: when Radius Shape is set to 1, which will determine the depth of the Cylinder shape
    • plotpoleItemnames: List of itemnames, which are used as Plotpoles. You can have multiple different plotpoles with different radius by adding more of these entries to the list

Quiz

quiz.json
Copy

  • requiredQuizToPlay: The uid of the Quiz, that needs to be passed before being able to play. Will be opened after the player joined. Set to -1 to disable it
  • quizList: List of all Quizzes available
    • uid: Unique Identifier of this quiz. Recommended is to increment this value by 1 for each new quiz added
    • name: Name of the quiz. Will be displayed in the menu when the quiz is required to execute the action and in the logs
    • title: Title of the quiz displayed at the top of the quiz menu. Should be roughly the same like the name. This will be displayed on all pages of the questions at the top
    • skipCover: Skip the first introduction screen, which can be used to explain things before starting the quiz. For example add server rules there and then ask questions about the server rules
    • coverImage: Image on the cover
    • coverHeading: Short text on the cover
    • startButtonText: Name of the button on the cover to start the quiz
    • coverLongTextLines: Lines on the cover. Each entry is a new line. Lines are not wrapped at the end, so don't make them too long. Empty "" will be a whole empty line
    • shuffleQuestions: Enable if the questions should be shuffled randomly at the start of the quiz. You can define exceptions for each questions to still display them first
    • maxQuestions: Maximum amount of questions in this quiz. For example you have a pool of 30 questions, but only 10 of them should be picked. You should enable shuffleQuestions if you set maxQuestions to a lower value whan the actual questions on the quiz
    • maxWrongAnswers: Maximum amount of wrong answers before the quiz is failed. Answering more questions wrong than allowed will cancel the quiz and it's considered as failed
    • secondsBeforeNextRetryAfterFailing: Seconds before the player can attempt the quiz again after failing. Starting a quiz and canceling it or closing the game will consider the quiz to be failed
    • secondsBeforeNextAttempt: Seconds before the player can attempt the quiz again after passing.
    • blockedActionsWithoutPassing: Classnames of actions, which cannot be executed without passing this test. when a player wants to execute one of the actions listed here, he will be promted with the quiz to complete it
    • questions: List of questions for this quiz
      • title: Title displayed at the top of the Quiz
      • titleImage: Path to an image which should be displayed at the top the the quiz underneath the title
      • guaranteedQuestion: 1 to always include the question in the pool of questions the player is asked. 0 to treat it as a normal question
      • excludeFromShuffle: 1 to show it at the start of the quiz. The order of questions, which are excluded from shuffle is determined by the order the questions are in the questions list of the quiz
      • answers: List of possible answers. At least one answer is required. if more than 4 answers are in the list, 3 random answers will be picked + the correct answer. All answers are shuffeled for each run of the quiz
        • correct: 1 if the answer is the correct answer. 0 if the answer is wrong. Currently exactly one answer per questions must be correct. Not 0 and not 2 correct answers !
        • text: Text shown on the answer button
        • answerImage: Path to an image, which should be shown on the answer button. Empty if you only want to use text answers. This can be mixed with text to show both at the same time

Safer Trading

config.json
Copy

  • tradingStroageItemname: The item spawned for trading. there are different items with different inventory Sizes. Available sizes: LB_SafeTradingStorage_20 (5x4), LB_SafeTradingStorage_50 (10x5), LB_SafeTradingStorage_70 (10x7), LB_SafeTradingStorage_100 (10x10), LB_SafeTradingStorage_200 (10x20), LB_SafeTradingStorage_250 (10x25)
  • storageLifetimeAfterTradingSeconds: Will delete the item after x seconds after it was used for trading to prevent people from using it as safe storage
  • allowTradingAnywhere: Don't check any safezones or custom zones, but just allow trading anywhere
  • allowTradingInTraderSafezones: Check if a player is in safezone and allow trading there. This can be combined with allowTradingInCustomZones so players must either be in a safezone, or a custom zone
  • allowTradingInCustomZones: Check if a player is in custom zone defined below and allow trading there. This can be combined with allowTradingInTraderSafezones so players must either be in a a custom zone or a safezone
  • customZones: Custom Zones for trading. They are simple sphere shaped zones
    • center: Center position of the zone
    • radius: Radius of the zone

Enhanced Banking

ATMConfig.json
Copy

  • importFromDeadcraftBanking: Set to 1 to migrate all Player Data from Deadcraft's Banking mod to this one. Make sure you uninstall the other Banking Mod first ! The value will be set back to 0 after the import was completed !
  • importFromKRBanking: Set to 1 to migrate all Player Data from Advanced Banking to this one. Make sure you uninstall the other Banking Mod first ! The value will be set back to 0 after the import was completed !
  • importFromTraderPlusBanking: Set to 1 to migrate all Player Data from the Trader Plus ATM to this format. Make sure to disable the other banking properly before importing the data. After the import finished, the value will be reset to 0 automatically
  • configVersion: Internal Value to upgrade older configs. Current Version: 3
  • personalATMAccountEnabled: Enable the personal Bank account
  • personalATMAccountMaxMoney: Max Money a player can have on his personal account
  • personalATMStartMoney: Start Money the Player has when first opening the ATM
  • transactionDelayMS: Delay between player actions like withdrawing or depositing money to prevent players spamming them
  • paycheckAmount: Paycheck each player receives after x minutes. Set to 0 to disable paychecks
  • paycheckIntervalMinutes: The interval the paycheck is received to the bank account
  • paycheckMultiplier: Temporary Paycheck multiplier (do not change here ! Use the Admin Panel instead)
  • paycheckMultiplierEnd: Timestamp when the multiplier is set back to 1
  • disableToPlayerTransfer: Disable is player to player transfers should be disabled
  • obfuscatePlayerNames: Obfuscate the Player names in the Transfer menu to stop players abusing it. They will be the same like for Advanced Groups
  • transferFeeBase: Transfer fee for player to player transfers. This value is independent of the amount of money sent
  • transferFeePercent: Additional Transfer fee added to the transferFeeBase depending on the amount of money transfered. The Transfer fee is subtracted from the senders bank account and does not change the transfered money. A value of 2.5 would be 2.5% so transfering 1000$ would cost 25$ + the base fee set above
  • hintRobAmount: Display a small hint to tell the player how much money they can expect from robbing the ATM
  • markRobbedATMOnMap: When using Advanced Groups, the ATM will be marked on the map when robbed
  • robmarkerName: Name of the Marker. $PLAYERNAME$ as placeholder for the Player Name of the player robbing the ATM
  • robmarkerIcon: Path to the icon for the Marker
  • notifyAllPlayersWhenATMIsRobbed: Display a notification on the top of each players screen when someone starts to rob an ATM
  • maxATMRobbedConcurrently: Maximum amout of ATMs that can be robbed at the same time
  • minPlayersOnlineToStartRobbing: Minimum Player Count to allow players to rob ATMs
  • robbingStartNotificationMessage: Message when an ATM is robbed (notifyAllPlayersWhenATMIsRobbed must be set to 1) use $PLAYERNAME$ as Placeholder for the Player Name, $ATM_POSITION$ Name of the ATM set for each ATM with robPosition
  • robbingFinishedNotificationMessage: Message when the ATM was successfully robbed. Use $PLAYERNAME$ as Placeholder for the Player Name, $ATM_POSITION$ Name of the ATM set for each ATM with robPosition or $MONEY$ for the amount of money the player got
  • robAmountHints: List of entries, which are needed when hintRobAmount is set to 1
    • minMoney: Minimal Money available to show this Hint (maximum is determined by the next entries minMoney)
    • description: Text to display
  • currencyValues: List of all Currencies available
    • itemclassname: Classname of the currency
    • value: Value for each item (Total Value of a Stack is determined by the quantity * value) e.g. 100 of 10 Rubles = 1000 Rubles total
  • belowValuesOnlyApplyWhenUsing_AdvancedGroups_Mod: All values below only apply if you use Advanced Groups
  • groupATMAccountEnabled: Enable Group account shared for all Group Members. Permissions for who can withdraw and deposit are managed in the Permissions.json
  • groupATMCreationCost: Cost for a Group account to be created
  • groupATMAccountBaseMoney: Base money a Group account has does not depend on the amount of players in the Group
  • groupATMAccountPerPlayer: Max money added to the limit for each player in the Group. Eample: 4 Players in the Group: Max Money = groupATMAccountBaseMoney + 4 * groupATMAccountPerPlayer or 20000 + 4 * 25000 = 120000 MAX
  • groupATMMinPlayers: Minimum Players in a Group to create a Group account

ATMPositions.json
Copy

List of all ATM Positions. EDIT WHILE SERVER IS OFFLINE Otherwise all changes will be lost ! Also Admins can place new ATMs ingame and fully configure them ingame, so please use that option instead of manually adjusting the settings here. It will also work without restarting and it will live update all the settings.
  • version: Internal Version number. Current Version: 3
  • classname: classname of the spawned ATM. If you add your own ATMs, make sure they inherit my Base class. See How do I add my own ATMs for more information
  • position: Vector Position where to spawn the ATM (x,y,z)
  • orientation: Orientation how to rotate the ATM (first value is rotation right - left)
  • robPosition: Name of the ATM, which is displayed in robbing messages and in the Robbing UI
  • canDepositMoney: Allow Players to deposit money here
  • canWithdrawMoney: Allow Players to Withdraw money here
  • maxRobbingDistance: Maximum distance a player can be away from the ATM while robbing. The Player needs to stay in a certain radius, rather than holding F while robbing
  • spawnChance: Spawn Chance for the ATM to spawn at this position if you want to randomize your ATM locations. 0.0 = 0% 0.5 = 50% 1.0 = 100%
  • canBeRobbed: enable if you want to allow players to rob this ATM. I would recommend to disable it for Safezones
  • robbingConfig: List of Items, which can be used to rob the ATM (you can set different robbing times for each item)
    • requiredRobbingItem: Classname of the Item, which should be used for robbing. "" (empty) for Hands
    • robbingItemDamage: Damage dealt to the Item when the player starts robbing (HP not percent !)
    • robbingTimeMinutes: Time in minutes it takes to complete the robbery
  • minutesLockedAfterRobbing: The the ATM is locked for ALL Players after starting the robbery to prevent people from depositing the money the just robbed
  • minutesNotRobbableAfterRobbing: Time it takes for any other player other then the player who robbed the ATM before it can be robbed again
  • minutesRobberNeedsToWaitBeforeRobbingAgain: Time it takes for the same player to rob the same ATM again
  • lastLockedTimestamp Timestamp to save when the atm was locked. Set to 0 if you want to unlock it (!Does not apply while the Server is running !)
  • lastRobTime: Timestamp to save when the ATM was last robbed.
  • useDepositedCashToCalculateRobbedMoney:
    • 1: Amount of money, which will be received after robbing the ATM will be deternimed by cashDeposited * robbedDepositedCashPercent. This means, that the amount of money depends on how much money the players have withdrawn and deposited in total ! It makes more sense if you want the ATM to only be robbable when players deposit money there. Minimum Money available is determined by robMinimalAvailableMoney in the ATMConfig.json
    • 0: Amount of money, which will be received after robbing atm ATM is a random value between staticMinRobbedCash and staticMaxRobbedCash
  • depositedCashIncreasePerMin: How much the cashDeposited value should increase per minute even though no players deposited money. This will slowly bring money into the economy. This will increase how much money can be robbed when useDepositedCashToCalculateRobbedMoney is set to 1
  • maxMoneyRobbedFromDepositedMoney: This caps the maximum money received from the ATM when using deposited cash to calculate how much money the robber should receive
  • needCreditCard: Require the player to hold a credit card in their hands to open the ATM (does not enable the credit card account !) The credit card will just be a required item to open the ATM. Any credit card can be used and the money is not stored on the credit card. To enable credit cards, which save money and to enable the credit card tab, see CreditCardConfig.json
  • lastRobbers: List of the last robbers with the timestamp and their Steamid and Name. They will be removed once their robbing timeout expired

ATMPlayers/[STEAMID].json
Copy

The Players Bank account info is stored here. Each json also has a corresponding .bin file, which is a backup of the json, if DayZ corrupts the json file
  • steamid: Of the Player. Should be the same from the filename
  • playername: Last Ingame Name of the player
  • currentMoney: Money the Player has on his personal Account
  • maxMoneyBonus: Additional amount of money for the account limit. Useful for Admins with extended Bank account limit or VIPs or Roleplay Roles
  • paycheckBonus: Additional Money for the Paychecks. the total paycheck will be paycheckAmount + paycheckBonus. If paycheckAmount is set to 0, but the bonus is set to 200, only this player will receive a Paycheck of 200, but the other players not. Useful for VIPs or Roleplay Roles like Police
  • ignoreTransferFee: Set to 1 if the player should not pay any transfer fees for transfers from his account. Transfers to his account still cost money
Note: This file can be edited while the server is running and while the player is on the Server. It will be read once the Player opens the ATM. So if you want to give players money back, you can do that here and they will instantly receive their money to the bank account

CreditCardConfig.json (easy)
Copy

This config manages the Credit Card Options. You can enable the Credit Card Tab on the ATM Menu here.
  • enableCreditCardAccount: Enable credit card tab on the ATM Menu
  • enablePosTerminal: Not implemented yet
  • enableCardPin: Set if credit Cards require a pin to access the money
  • cardPinLength: The max pin length of the credit cards
  • lockCardAfterWrongPins: Lock the credit card after x wrong pin tries
  • lockWrongPins: How often a pin can be entered wrong until the credit card is locked
  • timeLockedMinutes: Time how long a credit card will be locked
  • canSeeBalanceWithoutPin: Set to 1 if the player needs to enter the pin of the credit card to see the Balance of the Credit card or not
  • printCardDupeWarnings: Credit Cards have an unique ID assigned to them, making it useless to dupe them, because the access the same money pool. No money will be duplicated when a credit card item is duplicated. Enabling this option will print a warning if a duped credit card was found
  • defaultCreditCardMaxMoney: Default Max money the credit card can hold when not configured below
  • creditCardConfigs: List of all credit Cards with their maximum money capacity to allow different tiers of credit cards
    • classname: Classname of the Item. It does not allow generic names and it's casesensitive
    • maxmoney: Maximum Money this credit card can hold
  • cardUIDCounterDONOTEDIT: Do not edit this value ! It's used to generate the next Unique ID of a credit card if it's a fresh credit card

Types.xml
Copy

When you want to use the credit Cards, you will have to add them to your Types.xml in Order for them to spawn in the world / not despawn when dropped on the ground
        <type name="LB_ATM_Credit_Card_Black">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Blue">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Green">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_LightBlue">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Orange">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Pink">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Red">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_White">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="LB_ATM_Credit_Card_Yellow">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>

Advanced Groups Scripting

How to get the Group of a Player
Copy

// Requires the PlayerBase Object for the Player you want to get the Group from
PlayerBase player;

LBGroup group = player.GetLBGroup();
if (group == null) {
  // Player has no Group
  return;
}
string groupTag = group.shortname;
string groupName = group.name;
int groupLevel = group.level
// All Group Attributes can be found in LBmaster_Groups/scripts/4_World/Groups/configs/LBGroup.c

How to add Server Markers for events like Airdrops
Copy

// Save a reference to the Marker to delete it later. You can also only save the marker UID, which can be retrieved using `int markerUID = marker.uid`
LBServerMarker marker = LBStaticMarkerManager.Get().AddTempServerMarker(name, position, icon, ARGB(a, r, g, b), toSurface, display3D, displayMap, displayGPS);

// Changing Color, Position, name or icon can be easily done if the corresponding function and will be update for all client immediately. They need to be called on the Server to be synched for all Clients. Calling the functions on the Client, will only change them for this client !

marker.SetRadius(radius, a,r,g,b, striked); // Add a radius to the Marker. Striked set's the radius to have lines through the circle to color it in
marker.SetRadius(radius, color, striked); // Same as above, but a ARGB(a,r,g,b) color
marker.SetColorARGB(a,r,g,b); // Change Color
marker.SetPosition(position); // Set new Position
marker.SetName(name); // Change Name
marker.SetIcon(icon); // Change Icon

How to Remove Server Markers for events when they despawned
Copy

// You need to have a reference to the Marker Object or at least the Markers UID (see above)

bool success = LBStaticMarkerManager.Get().RemoveServerMarker(markerUID);
// OR
bool success = LBStaticMarkerManager.Get().RemoveServerMarker(markerObject);

// returns true if marker was found and deleted. If no marker was found, it will return false

I need to edit an Attribute of a Marker by it's UID
Copy

// To get a Marker Object by UID, you need to do the following:
LBServerMarker marker = LBStaticMarkerManager.Get().FindTempMarker(markerUID);

// You should check if the returned marker is not null. If it's null, a marker with this UID does not exist

I want to have a Group Object and find it by tag or name
Copy

// To find a Group by Group Tag, you need to use the Group Manager Class.
// Find by Group Tag
LBGroup group = LBGroupManager.Get().GetGroupByShortName(groupTag);
// Or by Group Name
LBGroup group = LBGroupManager.Get().GetGroupByName(groupName);

I want to get the Players group by his Steamid
Copy

// To get the Group of an offline Player by SteamID, you can use the Group Manager.
LBGroup group = LBGroupManager.Get().GetPlayersGroup(steamid);

I want to add a Player to a Group
Copy

// You need to have a PlayerBase object of the Player you want to add and also a LBGroup Object from the Group you want to add the Player to. How to get a LBGroup object is explained above.
LBGroup group;
PlayerBase player;
// returns false if Player already in a Group. Do not try to add Players to multiple Groups ! How to remove the Player from the Group: See below
bool success = group.AddMember(player);
if (!success) {
  // You can force the Player out of the Existing Group or handle it differently
  LBGroup oldGroup = player.GetLBGroup();
  oldGroup.RemoveMember(player);
  success = group.AddMember(player);
} else {
  Print("Player Added to the New Group");
}

I want to add / remove a Marker to a Group
Copy

// Group Markers require you to have a LBGroup object
LBGroup group;
LBMarker marker = group.AddGroupMarker(name, position, icon, ARGB(a,r,g,b));

// Remove the Marker again by using one of these functions:
group.RemoveGroupMarker(markerObject);
// OR
group.RemoveGroupMarker(markerUID);

Skin System

install.json
Copy

This file keeps track of the installation status of the Mod. This is required to not force everyone to wipe their server. Make sure to not copy this file over to your server after finishing setting it up on a testserver. Otherwise the new server will think the mod was installed and the persistence files will break ! If you want to uninstall the mod, you need to set the unInstallMode to 1 and let the server run for 5 Minutes. It will automatically shutdown again. Be aware, that the system is not perfect, because player inventories will still try to load the items wrong, when they not joined the server while in install mod after the first install of the mod. So you might want to consider to wipe player inventories by deleting the players.db in your mpmissions/storage folder
  • firstInstallation: Set to 1 when the mod is first installed. The server should at least run for 5 Minutes to not break the persistence. This value will be reset to 0 after 5 minutes automatically
  • unInstallMode: Set to 1 to uninstall the mod safely without breaking your current game persistence files. The server will shutdown after 5 minutes automatically and resets the unInstallMode back to 0. Make sure to then remove the mod and not let the server start again !

Permissions.json (easy)
Copy

This file manages the Permission of the Dynamic Skin system (Skins applied when picking up items and not changing the actual itemname)
  • name: The name of the Permission group. This is the name, which must be put in the permissionGroups list in the Repaints.json
  • members: List of players in the group
    • steamid: Steamid of the player
    • comment: This can be anything you want to quickly identify the member. For example the player name
    • expirydate: Date when the member is automatically removed from the list. Format: dd.MM.yyyy HH:mm:ss. Leave it empty for infinite duration
  • groups: List of groups, which should have the permission (Currently only Advanced Groups Group Tags are suppoerted)
    • groupTag: Shortname of the Group
    • comment: Any comment you want
    • expirydate: Date when the group is automatically removed from the list. Format: dd.MM.yyyy HH:mm:ss. Leave it empty for infinite duration

Repaints.json (hard)
Copy

List of skins for the dynamic skin system This system is harder to setup than the swap system, but gives a lot more flexibility to configure who can use a skin and how attachments are affected
  • itemnames: List of Itemnames (This can also be Base Classnames like M4A1_Base to allow repainting all M4A1 variants), which can have the skin applied
  • repaints: List of all the different repaints this item can have
    • name: Name of the repaint, which is shown in the Repaint Menu
    • overwrittenDisplayName: Overwrite the displayname of the item when the skin is applied. Use $original$ which will be replaced with the original displayname. for example "$original$ (Camo)" would display the original name + (Camo).
    • excludedItems: List of items, which should not show this repaint. For example you have a skin for M4A1 and one is the Green skin, then you don't want the M4A1_Green to basically have the same skin, which is already the default skin
    • hiddenSelectionTextures: List of textures applied to the main item. Make sure to properly setup the texture path here with forwardslash and no backslash and make sure they match the hiddenSelections in the config.cpp of the items. Clothing for example commonly uses three different textures. The first is the ground texture, the second for male characters and the third for female characters. So you also need to put the path to the image three times into the hiddenSelectionTextures list. Otherwise you will end up with items having the proper texture set when in hands / cargo / ground, but not when worn by the player on his character ! So make sure you always check the hiddenSelections list in the config.cpp of your item you are retexturing !
    • hiddenSelectionMaterials: Same as the hiddenSelectionTextures, but for rvmat materials
    • permissionGroups: List of groups, which should be able to access this skin. Groups are setup in the Permissions.json. If the list is empty, then everybody has access to the skin. !!! Empty is not [""] This would be a list with one entry for the group with the name "". Use [], which is 0 entries to make it available for everyone
    • attachments: List of attachments, which will be retextured automatically when applying the skin to the parent item. For example weapon attachments. itemnames, hiddenSelectionTextures and hiddenSelectionMaterials follow the same rules as described above
      • itemnames: List of Itemnames (This can also be Base Classnames), which can have the skin applied
      • hiddenSelectionTextures: See hiddenSelectionTextures above
      • hiddenSelectionMaterials: See hiddenSelectionMaterials above

Swaps.json (medium)
Copy

This config controlls the Swap System (the alternative to the dynamic system) Both can be used at the same time This config is a list of "groups", which allow all items to be swapped to another in the same group and groups considered lower value as the items current group
  • name: Name of the Group shown in the ingame menu and used to reference lower groups. All _ will be replaced with a space ingame
  • items: List of itemnames (no baseclasses !), which belog to the group. Items must not belog to more than 1 group !! Items can have a - as a prefix to indicate, that they cannot be swapped to, but can still be swapped to another item. So -M4A1_Green would allow the M4A1_Green item to be swapped to any other item from the group, but other items cannot be swapped to the M4A1_Green
  • targetGroups: List of groups, which should be included to the pool of available items. This recursively searches for items in lower groups, so make sure you don't create an infinite loop, which might crash the server !. So For example you have a Tier3 Guns group and you include the Tier2 Guns in that group. Then the Tier1 weapons will also be included when the Tier2 Weapons can be swapped to Tier1, essentially skipping one swap step for players, because they could swap to that weapon anyways. But make sure to not allow players to swap from Tier1 back to Tier3 ! You need to put them all in the same group if you want to allow that !

Types.xml
Copy

If you want to make the workbenches available for players in their base, you need to add a few things to the types.xml of your server. The types.xml is located in your mpmissions/<missionFile>/db/types.xml They are not configured to already the items and you might want to change the amount and location they spawn Content to add:

<types>
    <type name="Repaint_Workbench">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="Repaint_Workbench_Box">
        <nominal>0</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="Repair_Workbench">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="Repair_Workbench_Box">
        <nominal>0</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="Swap_Workbench">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="Swap_Workbench_Box">
        <nominal>0</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
</types>

Utility Workbenches

Repair.json (easy)
Copy

This is a small config for the Repair system of the mod
  • canRepairRuinedItem: Enable it to give players to option to repair their ruined items. Be aware, that items, like Wheels, which change the actual item when getting ruined, will not work here (Hatchback_02_Wheel turns into Hatchback_02_Wheel_Ruined)
  • repairMaxHealth: Max Health any item can be repaired to. 0.5 would be 50% and 0.7 would be 70%. 1.0 = 100%
  • repairHealthPerSecond: Change how fast items should be repaired. 0.01 = 1% per second. 0.05 = 5% per second etc.
  • costPerHP: Cost per HP of the Item. Items with more HP will cost more to repair
  • costPerPercent: Cost for each Percent this item needs to repair
  • costPerItem: Base Cost for all items no matter how much health can be repaired
  • ruinedRepairCost: Additional Cost when repairing a ruined item
  • blacklist: List of itemnames, that cannot be repaired at all. This accepts Base itemname like Ammunition_Base to blacklist all kinds of Ammo
  • costMultiplier: Multipliers for certain items when they fall into a certain category. Items falling into multiple categories will receive the multiplier of the first category they were found in

Spawn Select Lite

Types.xml
Copy

If you want to use Sleeping Bags, you need to add a few things to the types.xml of your server. The types.xml is located in your mpmissions/<missionFile>/db/types.xml They are configured to already spawn Bags You might want to change the amount and location they spawn Content to add:

<types>
    <type name="LBS_SleepingBag_New_Camo">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_New_Blue">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Red">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Blue">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Brown">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Green">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_LightPurple">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Purple">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingBag_Old_Orange">
        <nominal>0</nominal>
        <lifetime>3888000</lifetime>
        <restock>0</restock>
        <min>0</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_New_Camo">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_New_Blue">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Red">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Blue">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Brown">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Green">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_LightPurple">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Purple">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
    <type name="LBS_SleepingPacked_Old_Orange">
        <nominal>2</nominal>
        <lifetime>7200</lifetime>
        <restock>0</restock>
        <min>1</min>
        <quantmin>-1</quantmin>
        <quantmax>-1</quantmax>
        <cost>100</cost>
        <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
    </type>
</types>

SpawnSelectConfig.json
Copy

The Main Spawn Select Config. Bed Spawn Configs are not handled here !
  • spawn_clear_radius: when picking a spawn point there must not be any buildings in the radius of the picked spawn to allow the player to spawn there. The mod will make multiple spawning attempts if one fails
  • spawnPos: The Spawn Position when the player respawns and the Spawn menu is open. It will only be used if overwrite_default_spawnPos is set to 1. If set to 0, the position of the player will be choosen by DayZ
  • random_spawn_cost_money: If a player uses Spawn Random to spawn at a random spawn and this spawn costs money, then the money will be removed from his account according to how much the spawn would have cost when he spawns there manually
  • random_ignore_timeouts: Set to 1 to ignore all timeouts of the spawns, when clicking on Random Spawn. This allows players to spawn and kill themselves to get the spawn they want, if they really wanted to. Otherwise it could happen, that players cannot spawn anywhere, because all spawns are currently on a timeout. So be aware of that, before choosing to enable / disable this option
  • force_exact_spawn_pos: can be set to 1 to make the player spawn exactly at the position set in spawnPos. DayZ sometimes teleports the player on top of buildings. Enable if you have this issue. This is only for the initial spawn while the menu is open, not when the player selected a spawn ! That is configured per spawn
  • overwrite_default_spawnPos: If enabled, the player will spawn at spawnPos when respawning
  • openSpawnMenuOnce: Open the Spawn menu, when the player respawns when set to 1. If set to 0, the player will not see a spawn menu. Useful for spawn areas with a spawn sign somewhere to then teleport away
  • forceOpenSpawnMenu: openSpawnMenuOnce will be ignored and the menu cannot be closed by the player and the player is forced to choose a spawn. Useful if you don't have a spawn area and want the player to choose a spawn. If you have a spawn area you can set it to 0, but open the menu once to allow them to spawn, but if they want to run around in the spawn area first, they can to it. This will also work when overwrite_default_spawnPos is set to 0 to allow the players to either use the vanilla spawn they got, or teleport to somewhere else
  • hide_when_no_spawns_found: default set to 1 will not show the spawn menu, when the player cannot select any spawns. Useful if you only have sleeping bag spawns and only want to show the menu if the player can spawn at a sleeping bag
  • show_cost_in_spawnmenu: Set to 0 if the spawn cost should not be displayed on the spawn menu. It will also not show when all spawns are for free
  • show_remaining_bag_uses_in_spawnmenu: Enable to show how many bag uses are left for each bag when in the respawn menu
  • overwrite_stats_on_spawn: set to 1 to set Player Stats (Water, Food, Health) when player respawns and is in spawn menu. That will also make it work with setups, which don't use the spawn positions or not force the player to spawn at them. It will also be set again when the player spawned at a spawnpoint. This replaces the init.c method most server owners use
  • water_on_spawn: Water Stat when spawned. Vanilla Default: 600
  • food_on_spawn: Food Stat when spawned. Vanilla Default: 600
  • health_on_spawn: HP (Health) from 0 to 100 (0 is dead). Vanilla Default: 100
  • blood_on_spawn: Blood Level on spawn. Vanilla Default: 5000 (around 3000 is unconscious)
  • death_spawn_block_radius: Radius all Spawns will be blocked when the player dies near this spawn with a distance less than the set meter. This will not include Bed Spawns ! Can be set to 0 to disable it
  • death_spawn_block_timeout: Timeout the Spawn receives, when the player died near it. This can not exceed the spawn points timeout. E.g. Spawnpoint has 30min timeout, but death timeout is 1h, it can be 30mins max. If set to 0, it is disabled
  • respawnOpenedMenuSpawnpoints: Config for which spawns should be available in the spawn menu opened when respawning
    • disableRandomSpawn: Disable the Random Spawn Button for this spawn list
    • sleepingBags: Include all SleepingBags
    • allSpawnPoints: Include all enabled Spawnpoints
    • spawnPointsList: List of Spawnpoints to include when allSpawnPoints set to 0
  • signs: List of Spawn sign configs
    • disableRandomSpawn: Disable the Random Spawn Button for this spawn list
    • sleepingBags: Include all SleepingBags
    • allSpawnPoints: Include all enabled Spawnpoints
    • spawnPointsList: List of Spawnpoints to include when allSpawnPoints set to 0
    • itemname: Itemname of the item interacted with. Pre existing items: LBmaster_SpawnSign, LBmaster_SpawnSign_Safezone, LBmaster_SpawnSign_Spawn, LBmaster_SpawnSign_Event, LBmaster_SpawnSign_1, LBmaster_SpawnSign_2, LBmaster_SpawnSign_3, LBmaster_SpawnSign_4, LBmaster_SpawnSign_5
    • requiredSpawnTicket: Itemname of the Spawn Ticket required to spawn at any spawnpoint available at this spawnsign. Leave empty ("") if no Ticket is required
    • actionText: Action Text displayed when spawn menu can be opened. (A different text will be displayed when the required Spawn Ticket is missing)
  • positions: List of available spawn positions. This can be easily modified ingame !
    • pos: Center Position of the Spawn, which will show in the menu and is used for calculating the distance to the death position of the player
    • name: Displayed name in the Logs and the Spawn Menu
    • spawnCost: How much money the spawn should cost when a player wants to spawn there. Currently only Enhanced Banking is supported to remove money from the bank when spawing at this position
    • timeout: default timeout in seconds when the player spawned there. Will be overwrite the death_spawn_block_timeout, which means event spawns, which might have a timeout of 0 seconds, can always be spawned at
    • spawnRadius: Radius of each spawnPosition in the list below to prevent people from camping exact spots
    • enabled: Enabled / Disable spawns. E.g. have Event Spawns already setup and enable them when the event starts. When changed via admin menu, it will immediately take effect
    • spawnAtExactPosition: Spawn the player at the exact position selected randomly from the spawnPositions list to allow players spawning inside of buildings for events and not try to spawn them ontop of buildings / avoid buildings
    • spawnPlayerInAir: Spawns the player x meters above the ground level. Recommended with a parachute mod and loadout, which adds them in the player inventory
    • heightOverGround: The amount of meters the player is spawned above the ground
    • clearInventoryOnSpawn: if set to 1, all items will be removed from the player when spawning at this position (used to strip all clothings from the player when the loadout has clothing)
    • loadouts: List of loadouts, which are added to the player when spawning. All of the Loadouts are going to be spawned
    • spawnPositions: List of Positions the player can spawn at. The height will always be corrected by the Mod and players cannot spawn under the map

BedSpawnConfig.json
Copy

This file keeps track of the different sleeping bag configurations. For example old and new sleeping bags can have different respawn timeouts, respawn counts etc.
  • globalBagLimit:
  • bedConfigs: List of bed Configs
    • name: Name displayed in the Spawn Menu. Changing it will reset all currently active timers
    • itemnames: List of Sleeping Bag itemnames (not the packed variants). Base classes are accepted so you don't need to add all different color variants
    • timeoutSeconds: Timeout when the player spawned there before spawning there again. All timeouts are saved over relogs and restarts
    • timeoutPlacedDown: Timeout the Bag has when placed down. I would recommend at least the time set in timeoutSeconds to prevent people from packing and placing their bag after spawning there to reduce the timeout
    • killedTimeoutRadius: If the player dies within a distance of x meters from the sleeping bag to his death position, the timeoutSeconds will be triggered
    • itemLimit: Max item count which can be placed from this type. It counts all items in the itemnames list so you can have a setup which allows 2 green bags and 1 blue one or 3 orange ones, but max 3 of all types in total
    • spawnCost: How much it should cost to spawn at the location. This will automatically be removed from the Bank account if the Banking mod installed, is supported. Currently only Enhanced Banking is supported
    • forcePlaceOnGround: Force the bag to be placed on a surface. This will prevent players to place the bag in houses or in their base if set to 1
    • timeoutAllPlacedBags: If set to 1, all bags in this group will have their timeout triggered if the timeoutSeconds is triggered by one bag.
    • timeoutNearBagsDistance: All Bags within the range will be timeouted when a player spawns at another bag. For example a Player has 3 bags in his base, which are close to eachother, all bags in the bag will receive the timeout after spawning at one bag
    • maxBagUses: Set to 1 if the Bag should be a single use bag. Stored items in the Bag will be dropped to the ground
    • uncaimOldestBagIfLimitReached: If set to 1, the oldest bag placed (not respawned at) will be removed from the list of claimed bags when a sleeping bag was placed, which would exceed the limit of sleeping bags instead of blocking the player from placing the new bag down
    • nearPlacementCheckActive: Check if one of the items configured is near the position the sleeping bag should be placed. It must be near enough for one of the items in the forceNearAnyFromList list, not all items
    • requireItemNearToAllowSpawn: Check each time the player spawns if the required item is still present. Otherwise the bed can no longer be used to spawn at and does not appear in the spawn menu anymore
    • forceNearAnyFromList: List of items, which one of them must be near the bag in the specified radius. The vanilla TerritoryFlag is configured to be fully built and up to be detected. So placing down the Flagpole kit, which already spawns the TerritoryFlag, does not work
      • nearItemname: Itemname of the item to check for
      • radius: The radius the item is detected in. Do not set the value to more than 200m to prevent the check from taking too long and causing server lags
    • clearInventoryOnSpawn: Enable / Disable if the player inventory should be cleared when spawning at the bag
    • loadouts: The loadouts the player should receive when spawning there

Players/[STEAMID].json
Copy

Config file for each player to save respawn timers over restarts and relogs. It contains a list of all Spawn Points the player has a timeout for. Delete the file to reset all respawn timers. The file will be read when the spawn menu is opened so it can be deleted / edited while the server is running and all changes will take effect
  • name: Name of the Spawn Position. Is the same from the list in the SpawnSelectConfig.json
  • lastSpawn: Unix Timestamp when the player last Spawned at this position
  • bagID: when the entry is a Sleeping bag timeout, it will contain the unique ID of the sleeping bag
  • type: 0 for normal spawns and 1 for sleeping bags

Virtual Garage

Garages/[ConfigGroup]/[Steamid].json
Copy

This is the Garage File for each player for each Garage Group. All Garage Groups are independend of eachother and the vehicles stored there are different. This file can be edited while the Server is running. The file will be read when the Player opens the garage
  • steamid: Steamid of the Player
  • level: Level of the Garage (see config.json)
  • additionalVehicleCount: Additional Slots the player has + the slots from the level
  • vehicles: List of vehicle in the garage
    • uniqueID: Unique number for each Vehicle in the garage
    • infinite: Set this to 1 if the vehicle can be parked out, but not removed from the garage. Useful if you have a RP Server and this vehicle is a police vehicle, which can be retrived from the Police Garage
    • hasKey: Store if the vehicle has a key assigned
    • wasHacked: Used to know which vehicles have been hacked and which are not hacked yet
    • vehicleKeyHash1 - vehicleKeyHash4: Used to store the Vehicle Key information. Different Key mods make use of the variables differently
    • itemname: Item name of the vehicle
    • fuelAmmount: Absolute Fuel value in the Tank
    • coolantAmmount: Absolute Coolant value in the Vehicle
    • oilAmmount: Absolute Oil in the vehicle (not really used by DayZ atm)
    • brakeAmmount: Absolute Brake fuel in the vehicle (not really used by DayZ atm)
    • engineHealth: Health of the Engine (0 = Ruined, 1.0 = 100% -> Pristine)
    • fuelTankHealth: Health of the Tank (0 = Ruined, 1.0 = 100% -> Pristine)
    • vehicleHealth: Health of the Vehicle Chassis (0 = Ruined, 1.0 = 100% -> Pristine)
    • attachments: Attachments on the Vehicle (not saved in the persistence and could cause issues with modded vehicles)
      • itemname: Itemname of the Attachment
      • health: Health of the Item (0.0 = ruined, 1.0 = 100% -> pristine)
      • quantity: Quantity value of the Item. Used for barrels and other items, that have a quantity value
      • liquidType: Store the liquid Type in the Item (used for barrels)
      • attSlot: slot ID of the attachment to make sure all attachments are attached to the same slot again when restoring the vehicle
  • stolenVehicles: List of vehicles, which have been stolen. They are remembered to show the player, that the vehicle was stolen and did not disappear because of a bug
    • itemname: Classname of the vehicle, which was stolen
    • parkedInBySteamid: The steamid of the player, who parked in the vehicle originally
    • parkedInTimestamp: Tmestamp when the vehicle was parked in
    • attachments: Attachments to display when seeing the preview of the vehicle to not show a vehicle without any attachments
    • stolenBySteamid: Steamid of the player, who stole the vehicle
    • stolenTimestamp: Timestamp when the vehicle was stolen (not hacked !) to display the time, which has passed until the player opens the garage to see how long ago the vehicle was stolen

Types.xml
Copy

If you want to save the Vehicle Inventory, you need to add a few things to the types.xml of your server. The types.xml is located in your mpmissions/<missionFile>/db/types.xml Content to add:

        <type name="Garage_Item_Storage">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="Garage_Sign_PlayerKit">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="Garage_Sign_PlayerKit_2">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="Garage_Sign_Player">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>
        <type name="Garage_Sign_Player_2">
            <nominal>0</nominal>
            <lifetime>3888000</lifetime>
            <restock>0</restock>
            <min>0</min>
            <quantmin>-1</quantmin>
            <quantmax>-1</quantmax>
            <cost>100</cost>
            <flags count_in_cargo="0" count_in_hoarder="0" count_in_map="1" count_in_player="0" crafted="0" deloot="0"/>
        </type>

config.json
Copy

This is the main config of the Mod. Editing while the Server will not work and your changes might be overwritten by the Server !
  • version: Config Version number. Version of this Guide: 17
  • garageKeys: Change it to match the Vehicle Key Mod you use. 0 = None, 1 = Trader, 2 = Much Car Key, 3 = Expansion, 4 = Custom Mod, 5 = Trader Plus. If you have a custom mod, you will need an extra addon, which implements the functionality of the other Key Mod.
  • vehicleToSpawnPointDistanceToStore: Distance the Vehicle center must not exceed from the center of the Garage to be parked it. Do not set it to a too high value to prevent people from storing vehicles from too far away.
  • defaultSlotSize: Each vehicle can occupy a different amount of "Slots". Set the default value here (Some vehicles can have different Slot sizes, like big Helis or Big OP Cars)
  • wipeGarageInventories: If set to 1, all Garage Vehicle inventories of the stored vehicles will be cleared. It will be set back to 0 after finishing wiping the inventories. This will clear all items from the Parked vehicles
  • slotSizeOverwrites: Add vehicle with a different Slot size here:
    • itemname: Name of the Vehicle (can be the base class to include all vehicle colors. Like Truck_01_Base for all M3S color variants
    • slotSize: The desired slot Size
  • maxPrivateGaragesPerPlayer: Limit the amount of private Garages per Player (-1 = no limit)
  • maxPrivateGaragesPerGroup: Limit the amount of private Garages per Group (-1 = no limit) (Advanced Groups only)
  • maxPrivateGaragesPerFlagpole: Currently not implemented
  • checkLineOfSight: check if the vehicle is in line of sight with the player to prevent people from parking in vehicles through walls and parking them out somewhere else. (This also checks if the Park Area is within line of sight so they cannot move the spawn area somewhere else to circumvent the system)
  • maxSpawnAreaDistanceFromPlayerGarage: Maximum Distance in Meter players are allowed to place down the spawn area away from the garage sign.
  • allowPlayerGaragePackWithVehiclesStored: Currently not used
  • privateGaragePinLength: The maximum length of player pins. Setting it to 0 will disable the pin. Also be aware if you had the ping length set to 6 and lower it to 4, all garages with a pin longer than 4 digits, will be pretty much useless since the pin cannot be entered anymore. This needs to be enabled for Garage hacking to be active
  • healthDamageOnWrongPinEntered: When a player tries to bruteforce the pin of a garage, he will be damaged the specified amount of HP each time he enteres the wrong pin starting after startHealthDamageAfterXWrongTries wrong tries. The player has 100HP max
  • enablePrivateGarageHacking: Toggle if player placed garages can be hacked. This also works with Player garages, that are linked to trader garages. The garage will keep track of which vehicles were stored at a certain private garage and will pick a random vehicle when hacked. This also requires privateGaragePinLength set to something higher than 0
  • maxVehiclesRevealedAfterHacking: Max amount of vehicles, that can be revealed after finishing hacking the garage
  • minVehiclesRevealedAfterHacking: Min amount of vehicles guaranteed to be revealed after hacking the garage
  • hackingDurationSeconds: Time in seconds it takes until a garage was hacked successfully. This is a continuous action, so the player will be blocked the whole time and cannot defend himself
  • hackingStartMessage: Ingame Notification sent to everyone when a player starts hacking the garage. $player$ will be replaced by the player name, $x$, $y$, $z$ will be replaced with the coordinates, $time$ will be replaced with the time it takes until the hacking will be finished
  • hackingSuccessMessage: Message sent to everyone online when the garage was hacked successfully. Same placeholders as above apply, except for the $time$
  • hackingAbortMessage: Message sent to everyone online, when the player aborts hacking (e.g. Action canceled or player died)
  • markHackerPositionOnMap: Set to 1 to mark the position of the hacker on the map (currently only Advanced Groups is supported)
  • abortHackingWhenNoVehiclesLeft: Set to 1 to cancel the hacking immediately when no vehicles are in the garage, that can be hacked
  • chanceToRevealNextVehicle: Chance to reveal a vehicle after hacking finished successfully. The chance is for every next vehicle. That means if you did not get the first vehicle, you also don't get the chance for a second vehicle. And it's capped at the max anyways. So for example 50% for 1 vehicle, but then another 50% for the second vehicle, which makes it 25% for two vehicles effectively. Because when the first 50% fail, you cannot get the seconds vehicle
  • itemDamageAfterHacking: Damage the item used for hacking after a successfull hack. The Hacking Terminal added with the Garage Mod, has 100HP
  • disableDumpButton: Disables the Dump button in the Garage Menu to prevent people from dumping their vehicles (by accident)
  • showSpawnConesAtPublicTraders: If enabled (1), all public garages will always show the spawn area of the Garge
  • parkAreaIgnoreItems: Objects which are ignored when detected in the spawn area when withdrawing the vehicle
  • privateGarages: List of configurations for the private Garages. The default config will only have one entry, but you can add the second player garage by adding a new entry ({...},{...})
    • itemname: Name of the Placed sign, not the kit !
    • notLinkedTraderGroupname: This is the garage Group used when it is not linked to the admin placed garages with linkedToTraderGarages.
    • linkedToTraderGarages: If set to 0, the garage, will result in the vehicles being shared for all players. So the garage is not a personal garage, but all players see the same vehicles in the garage. This is the default behaviour. Setting it to 1, will make the garage behave like an access point to the admin placed garages. They will also be linked between other garages of the same type. Also linkedPersonalTraderGroupname and linkedGroupTraderGroupname will apply then instead of notLinkedTraderGroupname
    • linkedPersonalTraderGroupname: The name of the garage group for the Personal Garage when linkedToTraderGarages is enabled. Otherwise it's ignored
    • linkedGroupTraderGroupname: The name of the garage group for the Group Garage when linkedToTraderGarages is enabled. Otherwise it's ignored. Group Garages are only available together with Advanced Groups
  • garageGroups: List of config Groups to allow Admins to setup Heli only or Boat only or Vehicle only or all Vehicles Garages. When you have two garages with a different garage group, they will also have completely different vehicles stored inside
    • name: Name the config group is identified with. Must be unique !
    • costWithdraw: Money it costs to withdraw a vehicle (will be taken from the Player inventory) (When Enhanced Banking is installed, the money will be taken from the players atm)
    • costDeposit: Money it costs to deposit a vehicle
    • createNewKeyWhenWithdrawing: Create and Pair a new vehicle key in the player inventory when withdrawing the vehicle
    • spawnVehicleLocked: Spawn the vehicle locked to prevent people from stealing vehicles
    • requireKeyToDeposit: Require the player to have the vehicle key (if assigned) to prevent trolls from stealing cars and paking them in their Garage
    • requireVehicleLockedToStore: Require if a vehicle must have a lock to be stored. Vehicles, that don't have a lock cannot be stored
    • requireKeyToWithdraw: Require the player to have the vehicle key in the inventory in order to withdraw the vehicle
    • deleteKeyWhenDepositing: Delete the key from the player inventory when deposited. Enable createNewKeyWhenWithdrawing to make sure the players always have a key for the vehicle !
    • forceKeyAssignedToParkIn: If enabled, vehicles need a car lock assigned before they can be parked in at the garage. Depending on the car lock mod you use, this may not work when there is no way to determine if the car has a lock assigned, but most mods support that
    • saveInventory: Save the Inventory of the Vehicle. If you want to save the inventory, make sure you check out the Types.xml section ! The inventory will be saved in an invisible item to ensure the items are saved correctly
    • canBuyVehiclesAtAdminPlaced: Enable this option to allow players to buy vehicles on an admin placed garage of this group. This only allowes the player to buy vehicles added to the whitelist of this group
    • canBuyVehiclesAtPlayerPlaced: Enable this option to allow players to buy vehicles on a player placed garage of this group. This only allowes the player to buy vehicles added to the whitelist of this group
    • canSellVehiclesAtPlayerPlaced: Enable this option to allow players to sell vehicles on a player placed garage of this group. This allowes the player to sell any vehicle inside their garage
    • canSellVehiclesAtAdminPlaced: Enable this option to allow players to sell vehicles on an admin placed garage of this group. This allowes the player to sell any vehicle inside their garage
    • addKeyToBoughtVehicle: Enable if a key lock should automatically be added to the vehicle when bought. If you enable this option, one key will always be spawned when the player first withdraws the vehicle, so enabling spawnVehicleLocked will work just fine
    • canRepaintVehicles: Enable this option to allow players to repaint their vehicle to other colors. Check the vehicles.json to see how the colors work.
    • canRepairVehicle: Enable / Disable if vehicles in the garage should be repairable (this will only repair the engine)
    • baseVehicleRepairCost: Cost to repair vehicles engine. This can be multiplied by an individual multiplier later. All Vehicles will have a multiplier of 1.0 currently
    • singleAttachmentRepairCost: Cost for each damaged attachment when repairing attachments
    • canRepairVehicleAttachments: Enable / Disable if vehicle attachments should be repairable (This will filter for vehicle related attachments only like Doors, Wheels etc. Weapons or Barrels attached will be ignored to prevent exploiting the system)
    • canRepairRuinedAttachments: Enable to allow players to also repair attachments, that were ruined. Wheels will also be replaced by the non destroyed item variant
    • canRefuelVehicle: Enable / Disable if vehicles can be refueld in the garage and also controlls if the coolant can be refilled
    • fuelCostPerLiter: Cost for 1 Liter of Gasoline
    • waterCoolantCostPerLiter: Cost of coolant per Liter
    • vehicleWhitelist: Whitelist of vehicle, that can be parked in the Garage. It allowes to use Basclasses like Sedan_02 to allow all color variants to be parked in or even Transport to allow any vehicle to be parked in. This also applies to Helis and Boats since they also inherit from Transport
    • inventoryItemBlacklist: Blacklist of Items in the vehicle or as attachments, that prevents the player from parking in their vehicle when saveInventory is enabled. Players will be notified, which items to remove. All Items (attachments, inventory, inventory in inventory) will be checked
    • levels: Levels the players can upgrade the Garage slots to. At least one level it required !! All Garages are level 0 by default
      • level: Index ot the level. Make sure you don't skip a number. Start with 0, then 1, then 2, then 3 ...
      • cost: Money it costs to upgrade the Garage (will be taken from the inventory)
      • slots: Slots the Garage has with this level
  • traders: List of all Server Garages (can be placed ingame with the Garage_Sign_AdminSetupKit if you are Admin in the config) They can be configured via the Admin button when opening the Garage ingame:
    • traderItemClassname: Classname of the Garage Sign you want to spawn. Must inherit the Garage_Sign class if you want to use your own Object. NPCs are currently not supported !
    • objectPosition: Position of the Garage Object (x,y,z)
    • objectOrientation: Orientation of the Garage Object (first is left-right rotation)
    • vehicleSpawnPosition: Center position, the vehicle should be spawned at
    • vehicleSpawnOrientation: Orientation the vehicle should be spawned at
    • cameraDistance: Camera distance to the center position
    • cameraRotation: Rotation relative to the vehicle orientation. (use the ingame Admin Panel to configure it, it's much easier)
    • cameraAngle: Angle of the Camera (0 = flat on the ground, 45 = high angle to the vehicle, 90 = from the top of the vehicle)
    • blackboxPreview: Enable if the vehicle should be shown in a "blackbox" instead of showing it at the spawn position (Player placed Garages will always use the blackbox to prevent players from exploiting the camera to view through walls)
    • personalTraderGroupname: Name of the Garage Group for the Personal Garage. Settingit to "" will disable the personal Garage
    • groupTraderGroupname: Name of the Garage Group for the Personal Garage. Settingit to "" will disable the personal Garage. This requires Advanced Groups to work and players need to be in a group to access it

vehicles.json
Copy

This file contains information about all vehicles on your server and will generate new entries when new vehicles are found. This file is used to control which items are spawned when buying a vehicle, the cost of each vehicle and how much it costs to repaint it. It also contains sell Prices when players want to sell vehicle. To make buying vehicles work, check the canBuyVehiclesAtAdminPlaced and canBuyVehiclesAtPlayerPlaced parameters in the config.json To make selling vehicles work, check the canSellVehiclesAtPlayerPlaced and canSellVehiclesAtAdminPlaced parameters in the config.json
  • itemname: Classname of the vehicle
  • buyCost: Price of the vehicle including all attachments set in the config. The currency is setup in the currencies.json
  • sellPrice: Price of the vehicle body when selling it. This does not check for the existence of the attachments ! Make sure the sell price + the sell price of all attachments at any trader does not exceed the buy price. Otherwise players can buy vehicles, disassemble the whole vehicle, sell all attachments and then sell the vehicle again and make profit
  • repaintCost: Cost of repainting a vehicle of the same type to this color. For example a white sedan can be painted wine red, then it costs the repaintCost of the new color to repaint it to this color
  • attachments: List of itemnames spawned as attachments when buying this vehicle

Leaderboard

Leaderboardconfig.json
Copy

This is the Main Config for the Leaderboard
  • version: Internal Version tracking to automatically upgrade the config to the new Version if available
  • leaderboardHostname: Always leave at https://lennardboetcher.de:2118/leaderboard
  • server_api_id: Your CF Cloud Server ID. It's not the API Key. The Server ID is in a format like xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx. Check Where is the Server ID for the Config ? for how to find the Server ID
  • serverName: Must excatly match the Name on the Customer Panel for the Leaderboard
  • discordInviteLink: A Link to your Discord, which will be opened when the Player Klicks on the Discord Logo on the Leaderboard. Having it set to "" will hide the Discord Join Button
  • logoBannerPath: Path to your Logo Banner, which will be displayed at the bottom of the Leaderboard. Either .edds or .paa (Recommended Size: 2400x300px) This must be uploaded to your Serverpack (not the profiles folder)
  • headerBarColor: R,G,B,A Color Channels for changing the color of the Header Bar Background
  • headerBarTextColor: R,G,B,A Color Channels for changing the color of the Header Bar Text
  • sortByStat: Change which stat the Leaderboard should be sorted by. Available: kills, deaths, suicides, playtime, longest_kill, longest_shot, kdratio
  • moreIsBetter: Change how to sort by the stat selected in sortByStat. For example more kills is usualy better so you set it to 1, but less deaths is usualy better, so you set it to 0
  • stats: List of Stats, which should be displayed on the Leaderboard. Make sure the widthPercent adds up to maximum 1.0 (100%) otherwise columns to the right could be cut off
    • displayname: The Text, which will be displayed in the Header row
    • widthPercent: Width of the Colum as float. 0.1 will be equal to 10% and 0.4 is 40%
    • jsonDataName: Field from the Raw Leaderboard Data received by the Leaderboard Bot. Available: kills, deaths, longest_kill, longest_shot, suicides, playtime, kdratio, environment_deaths, infected_deaths, rank, latest_name

Killfeed

config.json
Copy

This file is the main config for the Killfeed mod.
  • displayGraphicalMessage: Enable if the graphical ingame messages should be shown
  • displayChatMessage: Enable if an ingame chat message should be shown as the killfeed
  • displayKillDistance: Enable if the distance should be shown on the graphical messages
  • displayGroupTag: Enable if group tags should be shown on the graphical messages (currently only Advanced Groups is supported)
  • displayPlayerTag: Enable if custom player tags should be shown on the graphical message. Currently only chat prefixes from Advanced Groups Chat system are supported
  • displayWeaponDisplayname: Enable if the Weapon name should be shown beneath the item on the graphical messages
  • displayWeaponItem: Enable if the weapon used to kill a player should be displayed as the exact item or only as a the same weapon icon for all weapons
  • teamkillPunishment: Punishment type for teamkills (Only Advanced Groups). 1 = NONE, 2 = Ingame annoucement, 4 = Reset killstreak, 8 = Subtract one kill from killstreak, 16 = don't count the kill. These can be combined (for example 2 + 4 = 6 would be Ingame annoucement AND Reset killstreak)
  • displayWeaponSoundIndicator: Display an indicator on the graphical killfeed message telling how loud the weapon used was. Possible indicators are muted (only when suppressed), quiet, medium and loud.
  • messageReceiveProximity: maximum distance a killfeed message is displayed. This is calculated from the killer and victim. So being within 100m of the victim or killer would mean you receive the message when this value is set to 100. Set to -1 to disable the check
  • displayKillstreak: Display killstreaks on the graphical messages
  • killStreakDisplayThreshold: Minimum killstreak to be displayed. Set to 5 to start displaying killstreaks when at least 5 players were killed. A killstreak of 4 players would not be displayed.
  • annouceKillStreak: Enable if killstreaks should be announced through the notification system of DayZ. The first annouced killstreak will be the one with killStreakDisplayThreshold kills
  • nextKillstreakAnnoucement: Determines how many kills it takes to be annouced ingame again. So when killStreakDisplayThreshold is set to 5 and nextKillstreakAnnoucement to 10, then killstreaks of 5, 15, 25, 35,... would be annouced.
  • resetKillstreaksOnRestart: Enable if killstreaks should be cleared after server restart or should be saved persistently
  • ignoreBotKills: Ignore kills of players, which do not belong to a human player
  • anonymizeKiller: Display "a player" instead of the playername of the killer in all messages (Graphical, Chat and Discord)
  • anonymizeVictim: Same as anonymizeKiller, but for the victim
  • colorVictim: Default color of the graphical message victim name
  • colorKiller: Default color of the graphical message killer name
  • overwriteColorsWithGroupTagColors: Allow the group tags to have different colors in the graphical messages if supported by the mod and setup for the group
  • messages: Enable / Disable all different kill types. This only applies to the Graphical Messages and Chat messages and the Kill_ANY and Kill_ANY_PLAYER Webhook. All other Discord webhooks all have their own one for each type. Available types: BLEEDING, VEHICLE, HANDS, UNKNOWN, SUICIDE, FALL, ANIMAL, ZOMBIE, GRENADE, MELEE, TRAP, DROWNING, WEAPON, STARVATION
  • messageDisplayDurationSeconds: Time in seconds the graphical messages should be displayed
  • messageDisplayDelaySeconds: Time in seconds how long a kill message should be delayed. This is for Graphical messages, chat and discord webhooks. If messages are in the queue for being sent will be stored in a temporary file to restore them after server restart. Delayed messages should not get lost

AFK Kick

AFKKickConfig.json
Copy

This is the Main Config for this mod and has all the things you should need.
  • warningMessagesTime: List of numbers in minutes when the player will be warned. if you put [1,2,3] in there, the player will be warned 1 minute before he is kicked, 2 minutes and 3 minutes before he is kicked. Remove all numbers to disable the warning
  • kickTimeoutMinutes: Time a player must be AFK to be kicked
  • minPositionChange: The distance in meters the player must move to reset the AFK timer. The Position is checked every updatePlayerPosTimerSeconds seconds
  • noticeTitle Title of all Messages sent to the client
  • kickInMessage: Warning messages the player receives in the interval configured in warningMessagesTime. %minutes% will be replaced with the time remaining before he is kicked
  • kickedMessage: Kick Message
  • noLongerAFKMessage: Message when the Player is no longer considered AFK. It will only be sent when the player received at least one Warning Message
  • updatePlayerPosTimerSeconds: Timer to check the current Player position and the last player position and check if the player is AFK
  • logoutTimer: The time the Mod waits before the player is diconnected after sending the Kick Message. Recommend to leave it 5
  • minPlayersBeforeKickActive: option to disable the kick check unless the player count is reached to only kick when server is (nearly) full. This is an absolute number so if you have a 60 Slot Server, setting it to around 50 would be recommended if you don't want to kick players when the server has less players