Skip to content
Critfall

Quick rating

Community listing page, reviews may not be monitored by the author.

Critfall

No reviews yet

Critfall turns Minecraft's damage into dice resolution. Every damaging action rolls d20 + modifiers against the target's Armor Class. A miss deals nothing; a hit rolls damage dice like 2d6+3 instead of a fixed number. Nat 20 crit, Nat 1 Fumble.

Mod Loaders
Minecraft

About

Description

Critfall

Critfall brings tabletop D20 combat to Minecraft. Every attack rolls a d20 against the target's Armor Class. A hit rolls damage dices, natural 20s crit and natural 1s can fumble. Every mechanic has its own switch, and every number comes from data you can change.

Features

Attack rolls against Armor Class

Melee hits, arrows, thrown tridents and spells roll a d20 plus an attack bonus against the target's Armor Class. A miss deals no damage. A hit rolls the weapon's damage dice. The action bar shows the roll, and the health the hit actually took when armor or Resistance changed it.

A hit on a zombie, with the roll on the action bar

Natural 20s crit

A natural 20 always hits and deals the most its dice can roll. It can also slow the target or knock it back, and a line in chat marks the moment. A jump attack rolls with advantage: two d20s, keep the higher.

A natural 20 on a zombie

Natural 1s fumble

A natural 1 always misses, and a second d20 decides whether it turns into a fumble. A fumble can land on whoever stands nearest. After a fumble, natural 1s are plain misses for 10 seconds, so fast fights don't fumble all the time. Weapon damage on a fumble is off until you turn it on, and datapacks can add fumbles that drop the weapon, hurt the attacker or make them stumble.

A fumble that lands on a pig

Stats for every mob and weapon

Vanilla mobs and weapons come with profiles: Armor Class, attack bonus, damage dice and crit range. Mobs and weapons from other mods get stats worked out from their attributes, so a modpack works without setup. /critfall inspect shows what a mob rolls with and which profile it came from.

The inspect command on an iron golem

For pack makers and mod developers

Profiles for mobs, weapons and spells are datapack JSON, matched by id or tag. /critfall generate writes an editable profile for every mob and weapon in the pack, and /critfall report lists which ones have a profile and which use worked out stats. Dry run shows every roll while vanilla damage still applies, so you can tune a pack in normal play. Three presets set crits and fumbles: Tempered (the default), Classic and Lite.

Mods build on the public Java API in studio.modroll.critfall.api: roll events, RollService and a dice parser. Checks, Initiative and the Headless Horseman use only this API. KubeJS scripts can call it too, with examples in the repo.

The check command on an iron sword

Requirements

Requires

  • Minecraft 1.21.1
  • NeoForge 21.1 or newer, or Fabric Loader 0.16.9 or newer with Fabric API
  • On a server, install it on the server. On clients it is optional: without it, players still see the roll as plain text, without the flavor lines, sounds and particles.

Optional

  • Mod Menu on Fabric, for the config button in the mod list.

Works with

  • Critfall: Checks: ability scores feed Critfall's attack bonus, damage, Armor Class and saving throws.
  • Critfall: Initiative: fights become turn based encounters. Critfall still rolls every attack and save.
  • Critfall: Headless Horseman: a Halloween boss whose attacks, damage and saves Critfall rolls.
  • Spell mods that tag their damage as magic: spells roll to hit or call for a saving throw. Tested with Iron's Spells 'n Spellbooks and Ars Nouveau on NeoForge.

Configuration

Open the config screen from the mod list: Mods → Critfall → Config on NeoForge, or the config button in Mod Menu on Fabric. The first page has a preset (Tempered, Classic or Lite) and the switches most players want. All settings has every rule. Save applies the rules at once.

The rules live in config/critfall/rules.json and are read again on /reload. On a server, the server's file applies. Each player's config/critfall/client.json turns the readout, flavor lines, sounds and particles on or off.

The config screen

Main options

config/critfall/rules.json. Options in bold are on the first page of the config screen.

Option Default What it does
attack_rolls.enabled true Master switch: off leaves all combat vanilla.
damage_dice.enabled true A hit deals rolled dice; off keeps the vanilla damage.
crits.enabled true Natural 20s crit. Off leaves crits to vanilla and other mods.
fumbles.enabled true A natural 1 can set off a fumble.
fumbles.durability_break.enabled false A fumble can damage the weapon.
fumbles.hit_nearest_ally.enabled true A fumble can land on the nearest creature instead.
feedback.roll_visibility everyone Who is sent the readout: everyone, attacker_only or off.
feedback.flavor.enabled true Flavor lines on crits, fumbles and some kills.
advantage_sources.jump_attack true A falling crit hit rolls two d20s and keeps the higher.

config/critfall/client.json

Option Default What it does
rolls true The roll readout on the action bar.
flavor true Flavor lines in chat.
sounds true A sound on hits, crits and fumbles.
particles true Particles on crits and fumbles.

The full reference, with every value each option takes, is in docs/rules-config.md.

Commands

All commands need operator permission.

Command What it does
/critfall inspect [entity] A mob's Armor Class, attack bonus and damage, and which profile they came from. Without an entity, the one you look at.
/critfall check [item] An item's dice, bonus, crit range and fumble and crit tables. Without an item, the one in your hand.
/critfall generate [missing] Writes a datapack with a profile for every mob and weapon in the game, ready to edit. missing only writes the ones without a profile.
/critfall report Writes a CSV and JSON list of every mob and item and where its stats come from.

Modpacks

Free to use in any modpack.

Links

Critfall

Critfall brings tabletop D20 combat to Minecraft. Every attack rolls a d20 against the target's Armor Class. A hit rolls damage dices, natural 20s crit and natural 1s can fumble. Every mechanic has its own switch, and every number comes from data you can change.

Features

Attack rolls against Armor Class

Melee hits, arrows, thrown tridents and spells roll a d20 plus an attack bonus against the target's Armor Class. A miss deals no damage. A hit rolls the weapon's damage dice. The action bar shows the roll, and the health the hit actually took when armor or Resistance changed it.

A hit on a zombie, with the roll on the action bar

Natural 20s crit

A natural 20 always hits and deals the most its dice can roll. It can also slow the target or knock it back, and a line in chat marks the moment. A jump attack rolls with advantage: two d20s, keep the higher.

A natural 20 on a zombie

Natural 1s fumble

A natural 1 always misses, and a second d20 decides whether it turns into a fumble. A fumble can land on whoever stands nearest. After a fumble, natural 1s are plain misses for 10 seconds, so fast fights don't fumble all the time. Weapon damage on a fumble is off until you turn it on, and datapacks can add fumbles that drop the weapon, hurt the attacker or make them stumble.

A fumble that lands on a pig

Stats for every mob and weapon

Vanilla mobs and weapons come with profiles: Armor Class, attack bonus, damage dice and crit range. Mobs and weapons from other mods get stats worked out from their attributes, so a modpack works without setup. /critfall inspect shows what a mob rolls with and which profile it came from.

The inspect command on an iron golem

For pack makers and mod developers

Profiles for mobs, weapons and spells are datapack JSON, matched by id or tag. /critfall generate writes an editable profile for every mob and weapon in the pack, and /critfall report lists which ones have a profile and which use worked out stats. Dry run shows every roll while vanilla damage still applies, so you can tune a pack in normal play. Three presets set crits and fumbles: Tempered (the default), Classic and Lite.

Mods build on the public Java API in studio.modroll.critfall.api: roll events, RollService and a dice parser. Checks, Initiative and the Headless Horseman use only this API. KubeJS scripts can call it too, with examples in the repo.

The check command on an iron sword

Requirements

Requires

  • Minecraft 1.21.1
  • NeoForge 21.1 or newer, or Fabric Loader 0.16.9 or newer with Fabric API
  • On a server, install it on the server. On clients it is optional: without it, players still see the roll as plain text, without the flavor lines, sounds and particles.

Optional

  • Mod Menu on Fabric, for the config button in the mod list.

Works with

  • Critfall: Checks: ability scores feed Critfall's attack bonus, damage, Armor Class and saving throws.
  • Critfall: Initiative: fights become turn based encounters. Critfall still rolls every attack and save.
  • Critfall: Headless Horseman: a Halloween boss whose attacks, damage and saves Critfall rolls.
  • Spell mods that tag their damage as magic: spells roll to hit or call for a saving throw. Tested with Iron's Spells 'n Spellbooks and Ars Nouveau on NeoForge.

Configuration

Open the config screen from the mod list: Mods → Critfall → Config on NeoForge, or the config button in Mod Menu on Fabric. The first page has a preset (Tempered, Classic or Lite) and the switches most players want. All settings has every rule. Save applies the rules at once.

The rules live in config/critfall/rules.json and are read again on /reload. On a server, the server's file applies. Each player's config/critfall/client.json turns the readout, flavor lines, sounds and particles on or off.

The config screen

Every option and its default

config/critfall/rules.json. Options in bold are on the first page of the config screen.

Option Default What it does
attack_rolls.enabled true Master switch: off leaves all combat vanilla.
attack_rolls.players true Players' attacks roll to hit.
attack_rolls.mobs true Mobs' attacks roll to hit.
attack_rolls.projectiles true Arrows, tridents and thrown items roll when they land.
attack_rolls.spells true Spell damage rolls to hit, or calls for a saving throw.
damage_dice.enabled true A hit deals rolled dice; off keeps the vanilla damage.
crits.enabled true Natural 20s crit. Off leaves crits to vanilla and other mods.
crits.rule max_dice Crit damage: max_dice, double_dice or double_total.
crits.nat20_always_hits true A natural 20 hits whatever the Armor Class.
crits.apply_effect.enabled true A crit can put a status effect on the target.
crits.knockback.enabled true A crit can knock the target back.
fumbles.enabled true A natural 1 can set off a fumble.
fumbles.nat1_always_misses true A natural 1 misses whatever the attack bonus.
fumbles.confirmation_roll.enabled true A second d20 must also fail before a fumble counts.
fumbles.confirmation_roll.dc 10 The second d20 must roll below this (2 to 20).
fumbles.cooldown_ticks 200 After a fumble, natural 1s are plain misses this long. 20 ticks = 1 second.
fumbles.durability_break.enabled false A fumble can damage the weapon.
fumbles.durability_break.mode set_to_1 Down to 1 durability (set_to_1), or lose a share of it (percent_loss).
fumbles.durability_break.percent 25 Share of max durability lost in percent_loss mode.
fumbles.hit_nearest_ally.enabled true A fumble can land on the nearest creature instead.
fumbles.hit_nearest_ally.radius 4 How far away, in blocks, that creature can be (1 to 64).
fumbles.hit_nearest_ally.can_hit_players true Off never turns a fumble into a hit on a player.
fumbles.hit_nearest_ally.respect_pvp_rules true Honors the server's PvP setting and team friendly fire.
fumbles.self_damage.enabled false Lets a datapack's fumble make the attacker hurt themselves.
fumbles.self_damage.dice 1d4 Damage a fumble deals to the attacker.
fumbles.drop_weapon.enabled false Lets a datapack's fumble knock the weapon out of the attacker's hand.
fumbles.stumble.enabled false Lets a datapack's fumble slow the attacker for a moment.
fumbles.stumble.slowness_ticks 40 How long the stumble lasts.
fumbles.applies_to players_and_mobs Whose natural 1s can fumble: players, mobs or players_and_mobs.
spells.saves.enabled true Area spells make the target save instead of rolling to hit.
spells.saves.default_dc 13 The DC when a spell names none (1 to 30).
spells.saves.on_success half A successful save takes half damage or none (negate).
fallbacks.unknown_entity derive Mobs without a profile: derive stats, or stay vanilla (vanilla_passthrough).
fallbacks.unknown_weapon derive Weapons without a profile: derive dice, or stay vanilla.
fallbacks.unknown_spell derive Spells without a profile: derive dice, or stay vanilla.
feedback.roll_visibility everyone Who is sent the readout: everyone, attacker_only or off.
feedback.flavor.enabled true Flavor lines on crits, fumbles and some kills.
feedback.flavor.cooldown_ticks 20 Least time between flavor lines on one target.
feedback.flavor.kill_chance_percent 25 Chance of a line on an ordinary kill. Named mobs and bosses always get one.
balance.global_damage_multiplier 1.0 Scales all rolled damage.
balance.disable_vanilla_armor_reduction false On, armor only raises Armor Class and no longer reduces hits.
balance.armor_ac_divisor 4 Armor points per point of Armor Class (1 to 100).
balance.toughness_ac_divisor 4 Armor toughness points per point of Armor Class (1 to 100).
balance.player_attack_bonus 5 Added to a player's attack bonus (−20 to 20).
dry_run.enabled false Rolls are shown, but vanilla damage still applies. For tuning a modpack.
modifier_providers.enabled true Use bonuses and Armor Class from a mod that supplies them, such as Checks.
advantage_sources.jump_attack true A falling crit hit rolls two d20s and keeps the higher.

config/critfall/client.json

Option Default What it does
rolls true The roll readout on the action bar.
flavor true Flavor lines in chat.
sounds true A sound on hits, crits and fumbles.
particles true Particles on crits and fumbles.

The full reference, with every value each option takes, is in docs/rules-config.md.

Commands

All commands need operator permission.

Command What it does
/critfall inspect [entity] A mob's Armor Class, attack bonus and damage, and which profile they came from. Without an entity, the one you look at.
/critfall check [item] An item's dice, bonus, crit range and fumble and crit tables. Without an item, the one in your hand.
/critfall generate [missing] Writes a datapack with a profile for every mob and weapon in the game, ready to edit. missing only writes the ones without a profile.
/critfall report Writes a CSV and JSON list of every mob and item and where its stats come from.

Modpacks

Free to use in any modpack.

Links