-
Notifications
You must be signed in to change notification settings - Fork 83
Game rules
One of the most important things you need to understand in order to work effectively with DungeonsXL is the game rule priority system. Game rules define the frame conditions of your DXL games.
Game rules follow a principle of subsidiarity and can be fetched from multiple sources. Thus, dungeon and floor configurations are by design not created automatically. In case of contradicting game rules, only one rule will finally affect the game. Which one is determinated by the inheritance system (first = overriding; last = subsidiary):
1. Dungeon config override values
2. Floor config values
Note that not all floor configuration values are game rules, like for example the list of invited players.
4. Main config default values
If no values are set, DXL will use its internal default values.
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
fly | If players who may normally fly may do so in the dungeon. | Boolean | false | |
timeUntilKickOfflinePlayer | The time in seconds until a player who left the game is kicked from the dungeon. | Integer | 0 (= instant) | -1 = never |
gameCommandWhitelist | Commands that are not to be blocked. | List of commands | (empty) | The dxl.bypass permission still allows a player to perform commands. All /dxl commands are allowed by default. |
gamePermissions | Permission nodes players have only in the dungeon. | List of permission nodes | empty list | |
groupTagEnabled | If group name tags are used. | Boolean | false | Requires HolographicDisplays |
foodLevel | If food levels (hunger) are used. | Boolean | true |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
messages | Messages that can be sent in the dungeon. | Map of ID Integers and message Strings | Empty map | This can be set in edit mode with /dxl msg |
title | The title that shows when the game begins. | Title data | null (Strings) | If the game rule isn't used (=null), the name of the dungeon will be sent. |
Title data: These values set the sent messages:
- title.title - String
- title.subtitle - String
- title.actionBar - String
These values set for how many ticks the title is showed:
- title.fadeIn - Integer (20)
- title.show - Integer (60)
- title.fadeOut - Integer (20)
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
requirements | The requirements to start this dungeon. | List of requirements | Empty list | How exactly a requirement is represented in YAML is determined by its type or even by a custom reader. See here. |
timeToNextLoot | The time in hours until a player can get loot from this dungeon again. | Integer | 0 | This does not prevent the player from playing the game. He may still join the game and help others getting rewards, but won't get any himself. |
DungeonsXL currently does not use the rewards game rule internally. However, addons may use the API in order to add rewards through it.
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
playerVersusPlayer | If players in general may hurt each other. | Boolean | false | |
friendlyFire | If players in the same group may hurt each other. | Boolean | false | |
initialLives | Initial per player lives. | Integer | -1 | Do not use this together with group lives. -1 = unlimited |
initialGroupLives | Initial per group lives. | Integer | -1 | Do not use this together with player lives. -1 = unlimited |
deathScreen | If disabled, players who lose all of their health are healed, teleported to their respawn point and their inventory and experience is dropped as if they actually died. This saves some performance and time. | Boolean | false |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
breakBlocks | If or which blocks may be broken (with which tools). | "true", "false", "placed", or map of materials to break and tools to use to do so | false | Keep the value list empty to allow any tool. "placed" means blocks that have been placed by a player may be broken. |
interactionBlacklist | Blocks that players may not interact with. | Map of materials to interact with and tools to use to do so | null | Keep the value list empty to allow any tool. |
damageProtectedEntities | Entities that may not be damaged. | Set of entities | [ARMOR_STAND, ITEM_FRAME, PAINTING] | |
interactionProtectedEntities | Entities that players may not interact with. | Set of entities | [ARMOR_STAND, ITEM_FRAME] | |
placeBlocks | If or which blocks may be placed. | Boolean or list of materials | false | |
fireTick | = Vanilla doFireTick | Boolean | false | |
blockFadeDisabled | Blocks that don't fade away. | Set of blocks | null | Add e.g. "ICE" to prevent ice from melting. |
mobExpDrops | If or which mobs drop experience points. | Boolean or list of entities | false | |
mobItemDrops | If or which mobs drop items. | Boolean or list of entities | false |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
keepInventoryOnEnter | If the inventory shall be kept when the player enters the dungeon. | Boolean | false | |
keepInventoryOnDeath | If the inventory shall be kept when the player dies. | Boolean | true | |
keepInventoryOnFinish | If the inventory shall be kept when the player finishs the dungeon. | Boolean | false | |
keepInventoryOnEscape | If the inventory shall be kept when the player escapes through a sign, command, losing the last life or anything else without finishing the dungeon. | Boolean | false | |
secureObjects | Items that are given to other group members if the player who has them leaves. | List of materials | Empty list | |
resetClassInventoryOnRespawn | If the class inventory shall be reset when the player dies. | Boolean | false |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
rain | Enforces permanent downfall. | Boolean | null | null = Vanilla weather |
thunder | Enforces permanent thunder. | Boolean | null | null = Vanilla weather |
time | The world time in ticks. | Integer | null | null = Vanilla time |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
gameMode | Vanilla game mode. | "ADVENTURE", "CREATIVE", "SPECTATOR" or "SURVIVAL" | SURVIVAL | |
difficulty | Vanilla difficulty. | "PEACEFUL", "EASY", "NORMAL" or "HARD" | NORMAL | |
gameGoal | Sets the goal of the game. | Game goal | {type: "END", timeToFinish: -1} | |
timeToNextWave | The time until a new mob waves begins when enough mobs are killed. | Integer | 10 |
Name | Explanation | Possible values | Default value | Annotation |
---|---|---|---|---|
escapeLocation | Where the player respawns if he leaves the dungeon without finishing the game. | Location* | null | null = where the player entered the instance. |
finishLocation | Where the player respawns after he finished the dungeon. | Location* | null | null = where the player entered the instance. |
*Format is "world,x,y,z(,yaw,pitch)", e.g. "spawnworld,49.5,65.0,598.5" or "spawnworld,49.5,65.0,598.5,29.0,-84.4"
- Boolean: "true" or "false"
- Integer: Numeric value; no decimals
- Double: Numeric value, decimals allowed
- String: Text
- List: A list of values
- Map: A list of key / value pairs
Wiki: © 2015-2021 Daniel Saukel and contributors, licensed under CC BY-SA (only unless otherwise stated)
- General information
- General setup and usage
- Dungeon setup
- Signs
- Game rules
- Linked dungeon configuration
- Dungeon world configuration
- Details
- Examples (WIP)
- Simple dungeon
- Bedwars TODO
- PVP arena TODO
- Mob arena TODO
- Tutorial TODO
- Data structure guide
- FAQ