-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration
Home | Commands | Permissions | Configuration | Back to Bukkit
The configuration for Dungeon Master is quite extensive and thus has been broken down into smaller, more manageable pieces.
Each file, when first deployed, comes with a fully commented description of what settings they contain.
These documentation pages expand into further details on each area.
General Information:
Configuration files:
- Main - config.json
- Abilities - abilities.json Example
- Saves - saves.json Example
- Gear - gear.json Example
- Weapons - weapons.json Example
- Races - races.json Example
- Classes - classes.json Example
- Levels - levels.json Example
This configuration is found in config.json.
The following settings are available within the main configuration.
{
// This is the range (in blocks) in which people will "hear"
// attack results and also be allowed to participate.
"globalCombatProximity": 20,
// This is the amount of HP to gain back per second
// when using the "/character sleep" command.
"regenPerSecond": 1,
// These two settings are for producing additional logging
// If you're trying to track down an issue, turn these on.
// Verbose will create a significant amount of additional (but helpful) logging.
"loggingDebug": false,
"loggingDebugVerbose": false
}
Many of the configurations have "base" values and are then altered using various "modifiers" based on race, class, abilities, gear, weapons and levels.
Each configuration will have their own modifiers defined as you'll see, however, there is one that is "global" and is applied to various area's. This is known as the combatModifier and adjusts a set of values that pertain to the character overall.
A typical combatModifier will look like this:
"combatModifier": {
"attack": 0.0,
"damage": 0.0,
"health": 0.0,
"defense": 0.0,
"initiative": 0.0,
"diceRoll": "d4"
}
The settings above relate to the following:
- attack Combined with a dice roll, this determines the characters ability to "hit" the player/monster they're in combat with.
- damage Combined with a dice roll, this is the amount of damage they do if they should hit their target.
- health Their maximum health.
- defense Their ability to avoid being hit themselves.
- initiative This is used in determining their position in combat for who's turn is next. Everyone gets a turn, but those with the higher initiative get to go first.
- diceRoll This is the dice (2d6 for example) to use for the damage calculation.
Notes on diceRoll
The convention for this value following the same D20 system used by the /attack command (see Commands for details).
For this case, you can only use a single dice combination (2d6, 1d6, d4, 2d5+10 etc)
The diceRoll does not stack with previous versions and only one is applied; last one read in the modifier check chain is the one used.
The order of modifier check chain is:
- Chestplate
- Helmet
- Leggings
- Boots
- Weapon
- Race
- Base
- Chestplate
- Helmet
- Leggings
- Boots
- Weapon
- Class
- Base
- Chestplate
- Helmet
- Leggings
- Boots
- Weapon
- Level
- Base
- Race
- Class
For example:
Give a Weapon "sword" a diceRoll of 2d6. (Weapon->sword)
Give a racial bonus (Orc) for "sword" a diceRoll of 3d6. (Race->Orc->Weapon->sword)
Give a class bonus (Warrior) for "sword" a diceRoll of 4d6. (Class->Warrior->Weapon->sword)
Results:
A non-Orc, non-Warrior character would get 2d6 added to their damage roll. (Weapon->sword = 2d6)
A Warrior (Non-Orc) would get 4d6 added to their damage roll. (Class->Warrior->Weapon->sword = 4d6)
An Orc would get 3d6 added to their damage roll. (Race->Orc->Weapon->sword = 3d6)
An Orc Warrior would get the Warrior bonus applied instead since class is checked after race and gets 4d6. (Class->Warrior->Weapon->sword = 4d6)
The next turn for an attack is determined by first finding out who is close to the attacker (as per the globalCombatProximity).
Once we have a list of people close to the attacker, we then determine who of that group has recently been involved in combat.
From that list, we then determine who has recently attacked and who hasn't had a turn since the others have attacked.
Now that we have a list of players who haven't attacked recently, and are within range of the original attacker, we then sort them by their characters initiative value. The person with the highest value then gets to have the next turn.
This allows us to have multiple groups of people in PVP battle with each other and not "hear" or be "included" in each others combats. (Assuming they're not within range of each other). If by chance people "merge into" other battles, everyone ends up on the same lists and we end up with out right war !
Right now turns are "suggested" and there is nothing in place to stop others from taking turns out of sequence. If this happens, the "next turn" will still follow the same rules above and continue to make suggestions.