Gameplay Settings¶
Open the in-game editor with /kc config gameplay (requires operator level 2 by default). Changes apply immediately or after a player data refresh depending on the setting. The raw file is kimetsucraft-gameplay-common.toml in your server's config folder.
The Entities tab exposes per-profile NPC overrides — base stats, attributes, and weapons for each Slayer or demon profile:
Controls command access and breathing style selection.
| Setting | Default | Description |
|---|---|---|
commands.minPermissionLevel |
2 |
Permission level required to use /kc commands. 0 = everyone, 2 = operator (default), 4 = server owner only. |
combat.breathSelection.healthBonus |
20.0 HP |
HP granted when a player selects a breathing style. Set to 0 to disable the bonus. |
combat.breathSelection.onlyAdminSelectBreathing |
true |
If true, only operators can open the breath selection GUI. Players without a style see an info screen instead. |
Controls the priority system, damage rules, knockback, and NPC behavior.
Priority & Damage
| Setting | Default | Description |
|---|---|---|
combat.damageTiePolicy |
ATTACKER_WINS |
What happens when an attack priority ties the defender's priority shield. Options: ATTACKER_WINS, DEFENDER_WINS. |
combat.allowShieldBreak |
true |
If true, an attack with higher priority immediately breaks the defender's priority shield. |
combat.knockbackWhileSuperArmor |
0.0 |
Knockback scale (0.0–1.0) when super armor is active. 0.0 cancels knockback entirely. |
combat.slayerNpcPlayerFriendlyFire |
true |
If false, Slayer NPCs and Slayer players cannot damage each other. Player vs. player is unaffected. |
combat.npcAttackDebugAnnouncements |
true |
If true, NPCs broadcast their attack and technique usage in chat. Useful for debugging, disable on live servers. |
combat.techniqueScaling.maxScalingLevel |
72 |
Maximum level at which technique damage continues to scale. |
Damage Modifiers
| Setting | Default | Description |
|---|---|---|
combat.damageModifiers.maxAttackBonus |
1.0 |
Maximum outgoing damage increase (1.0 = +100% cap). |
combat.damageModifiers.maxAttackReduction |
0.9 |
Maximum outgoing damage reduction (0.9 = always deal at least 10%). |
combat.damageModifiers.maxDefenseBonus |
0.9 |
Maximum incoming damage reduction (0.9 = always take at least 10%). |
combat.damageModifiers.maxDefenseReduction |
1.0 |
Maximum incoming damage increase (1.0 = +100% cap). |
Marks
Each mark type (fire, immunity, stasis, root, silence, invulnerable, priorityShield, superArmor, attackPriority) has three fields:
| Field | Description |
|---|---|
defaultDurationTicks |
Default duration in ticks (20 = 1s). Most marks use 0, meaning duration is ability-driven. |
priority |
Resolution priority when two marks conflict. Higher wins. |
tags |
Group tags used in exclusive group rules (e.g., control, immunity, elemental). |
| Mark | Priority | Tags |
|---|---|---|
| Immunity | 100 | immunity |
| Invulnerable | 95 | immunity |
| Defense Priority (DP) | 90 | immunity, priority |
| Stasis | 85 | control |
| Root | 80 | control |
| Super Armor | 70 | armor, immunity |
| Silence | 75 | control |
| Attack Priority | 60 | attack |
| Fire | 10 | elemental |
marks.rules.exclusiveGroups (default: ["immunity", "elemental", "control"]) — groups where only one mark can be active at a time. marks.rules.immunityReplaceTags (default: ["elemental"]) — tags cleared when immunity is applied.
Controls XP gain, stamina, and stat point values.
XP Curve
| Setting | Default | Description |
|---|---|---|
xp.curve.base |
60 |
Base XP constant in the level-up formula: floor(base × (1 + level × growth)). |
xp.curve.growth |
0.05 |
Growth factor per level in the formula. |
xp.curve.maxLevel |
72 |
Maximum level a player can reach. |
xp.curve.globalMultiplier |
1.0 |
Multiplier applied to all XP gains. 2.0 = double XP server-wide. |
Enemy XP
| Enemy | Default XP | Tier |
|---|---|---|
| Weak Demon | 25 | 5 |
| Normal Demon | 70 | 10 |
| Strong Demon | 150 | 15 |
| Lower Moon 6–1 | 60–100 | 25–40 |
| Upper Moon 6–1 | 180–450 | 48–68 |
| Vanilla hostile mob | 15% of Weak Demon | — |
xp.weapon.nonNichirinFraction (default: 0.15) — XP fraction when killing with a non-Nichirin weapon.
XP Multipliers
| Setting | Default | Description |
|---|---|---|
xp.multipliers.quickKillBonus |
+20% |
Bonus for killing within quickKillThresholdSec seconds of the first hit. |
xp.multipliers.quickKillThresholdSec |
10s |
Time window for a quick kill. |
xp.multipliers.comboBonus |
+5%/kill |
Bonus per consecutive kill in a combo chain, up to comboCap kills. |
xp.multipliers.comboCap |
20 kills |
Maximum number of combo kills that grant bonus. |
xp.multipliers.comboTimerSec |
15s |
Maximum gap between kills to maintain the combo. |
xp.multipliers.levelDisadvantageThreshold |
5 levels |
Minimum level difference (enemy − player) to activate the underdog level bonus. |
xp.multipliers.levelDisadvantagePerLevel |
+2%/level |
Bonus per level of difference above the threshold. |
xp.multipliers.levelDisadvantageCap |
+30% |
Maximum bonus from level disadvantage. |
xp.multipliers.underdogBonus |
+50% |
Bonus when your HP was at or below underdogHpThreshold when the enemy died. |
xp.multipliers.underdogHpThreshold |
10% |
HP threshold for the underdog bonus. |
xp.multipliers.totalBonusCap |
250% |
Maximum total bonus from all multipliers combined. |
xp.slayersFocus.level1/2/3 |
+20/40/60% |
XP bonus from Slayer's Focus enchantment at each level. |
Diminishing Returns & Daily Cap
| Setting | Default | Description |
|---|---|---|
xp.diminishing.perLevel |
0.03 |
XP scale reduction per level the player is above the enemy tier. |
xp.diminishing.floor |
0.50 |
Minimum XP factor — enemies always give at least 50% regardless of level gap. |
xp.dailyCap.enabled |
false |
Enable daily XP cap. |
xp.dailyCap.threshold |
1000 |
XP earned per day before reduction kicks in. |
xp.dailyCap.reduction |
30% |
Reduction applied once the daily threshold is hit. |
Stamina
| Setting | Default | Description |
|---|---|---|
stamina.baseStaminaMax |
100 |
Base max stamina with 0 Concentration points. |
stamina.staminaPerConcentration |
+15/pt |
Extra max stamina per Concentration point. |
stamina.baseStaminaRegenPerSecond |
1.2/s |
Base stamina regeneration per second. |
stamina.staminaRegenPerSecondPerConc |
+0.1/s/pt |
Extra stamina regen per second per Concentration point. |
Stats
| Setting | Default | Description |
|---|---|---|
stats.vitalityHealthPerPoint |
15 HP/pt |
Max health added per Vitality point. |
stats.dexterityFirst6DamagePerPoint |
0.5/pt |
Technique damage added per Dexterity point for the first 6 points. |
stats.dexterityNext6DamagePerPoint |
0.25/pt |
Technique damage added per Dexterity point for points 7–12. |
stats.speedMaxMultiplierAtCap |
+60% |
Total movement speed bonus at 12 Speed points. |
stats.reachMaxBlocksAtCap |
+3.0 blocks |
Total reach extension at 12 Range points. |
stats.baseHealthRegenPerSecond |
0.3 HP/s |
Passive health regen with 0 Regeneration points. |
stats.regenerationHealthPerPointPerSecond |
+0.1 HP/s/pt |
Extra health regen per Regeneration point. |
stats.armorPenetration.enabled |
true |
Enable Dexterity-based armor penetration. |
stats.armorPenetration.perPoint |
5%/pt |
Armor penetration per Dexterity point. |
stats.armorPenetration.cap |
60% |
Maximum armor penetration. |
stats.armorPenetration.affectsPlayers |
true |
Apply armor penetration against player targets. |
stats.armorPenetration.affectsNpcs |
true |
Apply armor penetration against NPC targets. |
Controls demon behavior: sun damage, regeneration, immortality, spawning, and desperate regeneration.
Sun
| Setting | Default | Description |
|---|---|---|
demon.sun.damagePerSecond |
50.0 |
Damage dealt to demons per second while exposed to sunlight. |
demon.sun.fireSeconds |
30s |
Seconds the demon is set on fire when exposed (visual + fire tick damage). |
demon.sun.helmetProtection |
true |
If true, wearing any helmet protects demons from sun damage. |
Regeneration
| Setting | Default | Description |
|---|---|---|
demon.regeneration.regenPerSecond |
4.0 HP/s |
Global passive HP regen rate. Individual demon profiles override this (see Demon Variants). Suppressed by Nichirin hits. |
demon.regeneration.nichirinSuppressTicks |
200 ticks (10s) |
How long a Nichirin hit suppresses demon regen. |
Immortality & Downed State
| Setting | Default | Description |
|---|---|---|
demon.immortality.enabled |
true |
If true, non-execution damage can't kill demons — they enter downed state at 1 HP instead. |
demon.immortality.downedRegenDelayTicks |
40 ticks (2s) |
Delay before downed demons start recovering — the execution window. |
demon.immortality.downedRegenPulseTicks |
10 ticks (0.5s) |
How often downed demons regenerate HP. |
demon.immortality.downedMinDurationTicks |
80 ticks (4s) |
Minimum time a demon stays downed before returning to normal. |
demon.execution.requiresNichirin |
true |
If true, only Nichirin-class weapons can execute downed demons. |
Spawn
| Setting | Default | Description |
|---|---|---|
demon.spawn.progressiveSpawn |
false |
If true, demons only spawn near players who have a breathing style or carry Nichirin items. |
demon.spawn.progressiveSpawnRadius |
128 blocks |
Radius to check for eligible players when progressive spawning is enabled. |
demon.spawn.despawnOnPeaceful |
true |
Remove demons when difficulty is set to Peaceful. |
demon.spawn.exclusiveSpawn |
false |
If true, only demons and Slayer NPCs spawn as hostile entities. All vanilla monster spawns are cancelled. |
Desperate Regeneration
| Setting | Default | Description |
|---|---|---|
demon.desperateRegen.enabled |
true |
Enable the flee-and-heal mechanic when demons drop below the health threshold. |
demon.desperateRegen.healthThreshold |
15% |
HP percentage that triggers desperate regeneration. |
demon.desperateRegen.maxFleeTicks |
300 ticks (15s) |
Maximum duration of the flee phase. Ends early if far enough from the target. |
demon.desperateRegen.stopFleeDistance |
20 blocks |
Distance at which the demon stops fleeing and starts healing. |
demon.desperateRegen.healTicks |
200 ticks (10s) |
Duration of the healing phase. |
demon.desperateRegen.healPctPerSecond |
4%/s |
Percentage of max HP healed per second during the healing phase. |
demon.desperateRegen.cooldownTicks |
1200 ticks (60s) |
Cooldown before the ability can trigger again. |
demon.desperateRegen.nichirinInterrupts |
true |
If true, a Nichirin hit immediately stops the healing phase. |
Controls the area repulsion of Wisteria blocks and the Splash Wisteria Poison.
| Setting | Default | Description |
|---|---|---|
wisteria.repulsion.radius |
16 blocks |
Radius around Wisteria Leaves that repels demons. Demons reroute to avoid the area. |
wisteria.repulsion.damagePerSecond |
6.7 HP/s |
Damage dealt per second to demons caught inside the repulsion area. Set to 0 for avoidance-only with no damage. |
wisteria.poison.damage |
3.0 HP/s |
Damage per second dealt to demons by Splash Wisteria Poison. |
wisteria.poison.radius |
4 blocks |
Splash area of effect radius. |
wisteria.poison.regenSuppressTicks |
200 ticks (10s) |
How long the poison suppresses demon regeneration. |
Controls how XP gain and combat marks are rendered.
Floating XP Text
| Setting | Default | Description |
|---|---|---|
xp.floatingText.enabled |
true |
Show floating text when gaining XP. |
xp.floatingText.lifetimeTicks |
40 ticks (2s) |
How long the floating text stays visible. |
xp.floatingText.scale |
2.0 |
Size multiplier for the floating text. |
xp.floatingText.shadow |
true |
Draw a shadow behind the text. |
xp.floatingText.bold |
true |
Render text in bold. |
xp.floatingText.seeThrough |
false |
If true, floating text is visible through blocks. |
xp.floatingText.ySpeed |
1.5 blocks |
How far the text floats upward over its lifetime. |
xp.floatingText.xpColor |
#55FF55 (green) |
Color for XP gain text. |
xp.floatingText.levelUpColor |
#FFD700 (gold) |
Color for level-up text. |
xp.floatingText.rankColor |
#FF55FF (purple) |
Color for rank-up text. |
Mark Icon Rendering
| Setting | Default | Description |
|---|---|---|
marks.render.iconSize |
10.0 px |
Icon size in the name-tag pixel scale. |
marks.render.iconSpacing |
12.0 px |
Horizontal spacing between icons. |
marks.render.yOffset |
0.4 |
Vertical offset above the name tag. |
marks.render.maxDistance |
48 blocks |
Maximum distance at which marks are rendered. 0 disables distance culling. |
marks.render.hideWhenSneaking |
false |
Hide mark icons when the player is sneaking. |
marks.render.constantLight |
true |
Render icons with full-bright lighting regardless of in-world light level. |
marks.render.mode |
TEXT |
Render mode: TRANSLUCENT, TEXT, CUTOUT, or PARTICLE. |
marks.render.noFiltering |
true |
Disable texture filtering — keeps icon edges sharp. |
marks.render.colorBoost |
100.0 |
Color intensity multiplier. 100.0 = full-bright look. |
marks.render.textTopmost |
true |
When using TEXT mode, render marks above particles and clouds. |

