{
  // Do NOT modify the configVersion, as it is used to determine if the config needs to be updated with new default values.
  "configVersion": 3,
  "worldGen": {
    // Should DMZ structures be generated?
    "generateCustomStructures": true,
    // Should Dragon Balls be generated in the world?
    // This also disable the Dragon Ball rescattering from Shenron/Porunga
    "generateDragonBalls": true,
    // Is otherworld dimension active?
    // Note: Dimension generates always, but this disables
    // the events to it, like SpacePod travel, death system, etc.
    "otherworldActive": true,
    // Dragon Ball spawn range from world origin (0,0)
    "dbSpawnRange": 1000,
    // How many Dragon Ball sets should be generated in the world? From 0 to 10.
    "dragonBallSets": 1
  },
  "gameplay": {
    // Should console output be enabled? Players will always receive the output besides of this setting.
    "commandOutputOnConsole": true,
    // How much time should a Player have to wait before being able to revive
    "reviveCooldownSeconds": 300,
    // Multiplier to TP gain from ALL sources.
    "tpGainMultiplier": 1.0,
    // -----[ TP Cost Settings ]-----
    // Please read and understand the TP Cost formula before changing these values, as they are
    // all interconnected, changing one value may require changing others to maintain balance.
    //
    // - TotalStats : Sum of STR + SKP + RES + VIT + PWR + ENE
    // - Multiplier : globalTPCostMultiplier * raceTpCostMultiplier
    // - Discount : If TotalStats < maxTPDiscount, then maxTPDiscount - TotalStats, else 0
    // - BaseCost : minTPCost + (TotalStats * 1.5)
    //
    //  Final Cost calculation:
    //  FinalCost = (BaseCost * Multiplier) - Discount
    //
    // Global multiplier to TP Cost (only stats) for all races and classes.
    "globalTPCostMultiplier": 1.0,
    // Minimum TP cost for leveling up stats
    "minTPCost": 16,
    // If you have more total stats than this value, you will not have any
    // TP Discount, this is only used for early game balancing
    "maxTPDiscount": 140,
    // How much TP in percentage is gained by killing an entity, based on their max health
    "tpHealthRatio": 0.1,
    // How much TP is gained per hit landed on an entity
    "tpPerHit": 2,
    // TP Multiplier while being in the Hyperbolic Time Chamber
    "HTCTpMultiplier": 2.5,
    // Self explanatory
    "maxStatValue": 10000,
    // Is Story Mode enabled? Should we generate the default Sagas?
    "storyModeEnabled": true,
    "createDefaultSagas": true,
    "senzuCooldownTicks": 240,
    "foodRegenerations": {
      // Food item registry name : [health, ki, stamina] restored
      // Has support for modded food items or vanilla items
      // IE: "minecraft:cooked_beef": [0.1, 0.0, 0.0]
      "dragonminez:frog_legs_cooked": [
        0.10,
        0.10,
        0.10
      ],
      "dragonminez:might_tree_fruit": [
        0.35,
        0.35,
        0.35
      ],
      "dragonminez:raw_dino_meat": [
        0.10,
        0.10,
        0.10
      ],
      "dragonminez:dino_tail_raw": [
        0.15,
        0.15,
        0.15
      ],
      "dragonminez:frog_legs_raw": [
        0.05,
        0.05,
        0.05
      ],
      "dragonminez:heart_medicine": [
        1.0,
        1.0,
        1.0
      ],
      "dragonminez:cooked_dino_meat": [
        0.15,
        0.15,
        0.15
      ],
      "dragonminez:dino_tail_cooked": [
        0.20,
        0.20,
        0.20
      ],
      "dragonminez:senzu_bean": [
        1.0,
        1.0,
        1.0
      ]
    },
    // Stat multiplier for Effects
    "mightFruitPower": 1.2,
    "majinPower": 1.3,
    "metamoruFusionThreshold": 0.5,
    "fusionBoosts": [
      "STR",
      "SKP",
      "PWR"
    ],
    "fusionDurationSeconds": 900,
    "fusionCooldownSeconds": 1800,
    // If true, the Stats Multipliers become multiplicative, meaning they will be weaker early on, but stronger when combined with other multipliers at higher levels.
    // If false, the Stat Multipliers are additive, meaning they will be stronger early on, but weaker when combined with other multipliers at higher levels.
    "multiplicationInsteadOfAdditionForMultipliers": false
  },
  // Combat configuration
  "combat": {
    // If true, players who log out during combat will be killed upon next login (Only PvP)
    "killPlayersOnCombatLogout": true,
    // Stamina cost relative to damage dealt
    "staminaConsumptionRatio": 0.125,
    // Base Drain value for all forms. Formula used: formDrain * baselineFormDrain = finalDrain
    // IE, having 0.15 energyDrain on a form would mean: 0.15 * 200 = 30 energy drain per second.
    "baselineFormDrain": 200,
    // Enable to make attacks respect attack cooldown like in vanilla Minecraft.
    // Disable to make attacks not respect attack cooldown, allowing for faster attacks, like 1.8 PvP.
    "respectAttackCooldown": true,
    // Parrying needs blocking to be true to work
    "enableBlocking": true,
    "enableParrying": true,
    // How much defense is effective when the player has their guard broken
    "effectiveDefenseOnGuardBreak": 0.33,
    "enableComboAttacks": true,
    "comboAttacksCooldownSeconds": 8,
    "enablePerfectEvasion": true,
    "parryWindowMs": 150,
    // How much damage can block reduce
    "blockDamageReductionCap": 0.8,
    "blockDamageReductionMin": 0.4,
    // How much damage is converted into poise damage when blocking
    "poiseDamageMultiplier": 0.25,
    "poiseRegenCooldown": 100,
    "blockBreakStunDurationTicks": 60,
    "perfectEvasionWindowMs": 150,
    "dashCooldownSeconds": 4,
    "doubleDashCooldownSeconds": 12,
    // Ki weapons config, first value is damage multiplier, second value is Ki Cost multiplier
    "kiBladeConfig": [
      1.0,
      0.05
    ],
    "kiScytheConfig": [
      1.5,
      0.075
    ],
    "kiClawLanceConfig": [
      2.0,
      0.125
    ]
  },
  "racialSkills": {
    // Needs to be true for racial skills to work, but you can disable a specific skill if needed
    "enableRacialSkills": true,
    "humanRacialSkill": true,
    // 1.4 means 40% more ki regen
    "humanKiRegenBoost": 1.4,
    "saiyanRacialSkill": true,
    // How many Zenkai activations are possible, no way to gain more than this
    // But can be reset with a Shenron wish
    "saiyanZenkaiAmount": 3,
    // Health regen ratio upon Zenkai activation
    "saiyanZenkaiHealthRegen": 0.2,
    // Stat boost multiplier upon Zenkai activation, 0.1 means 10% boost
    "saiyanZenkaiStatBoost": 0.1,
    // Which stats are boosted upon Zenkai activation
    "saiyanZenkaiBoosts": [
      "STR",
      "SKP",
      "PWR"
    ],
    "saiyanZenkaiCooldownSeconds": 900,
    "namekianRacialSkill": true,
    "namekianAssimilationAmount": 4,
    "namekianAssimilationHealthRegen": 0.35,
    "namekianAssimilationStatBoost": 0.15,
    "namekianAssimilationBoosts": [
      "STR",
      "SKP",
      "PWR"
    ],
    // If true, Namekian assimilation can be done on NPCs from Namek (Traders and Villagers)
    "namekianAssimilationOnNamekNpcs": true,
    "frostDemonRacialSkill": true,
    // 1.25 means 25% more TP gain, this stacks with other TP gain multipliers in a ADDITIVE way, not multiplicative
    "frostDemonTPBoost": 1.25,
    "bioAndroidRacialSkill": true,
    "bioAndroidCooldownSeconds": 180,
    // 0.25 means 25% of the target HP is dealt as damage, the user is healed for the same amount.
    "bioAndroidDrainRatio": 0.25,
    "majinAbsoprtionSkill": true,
    // Majin Revive Skill is still WIP.
    "majinReviveSkill": true,
    "majinAbsorptionAmount": 3,
    "majinAbsorptionHealthRegen": 0.3,
    "majinAbsorptionStatsCopy": 0.1,
    "majinAbsorptionBoosts": [
      "STR",
      "SKP",
      "PWR"
    ],
    // If true, Majin absorption can be done on mobs (any MOB, not ENTITY)
    "majinAbsorptionOnMobs": true,
    "majinReviveCooldownSeconds": 3600,
    "majinReviveHealthRatioPerBlop": 0.25
  },
  // Storage configuration
  // Available storage types: "NBT", "JSON", "DATABASE", case sensitive
  "storage": {
    "storageType": "NBT",
    "host": "localhost",
    "port": 3306,
    "database": "dragonminez",
    "table": "player_data",
    "username": "root",
    "password": "password",
    "poolSize": 10,
    "threadPoolSize": 4
  }
}