Documentation Index
Fetch the complete documentation index at: https://mintlify.com/ProfessorFichte/More-RPG-Classes/llms.txt
Use this file to discover all available pages before exploring further.
Overview
Custom spell impacts allow you to create unique spell behaviors beyond the standard Spell Engine impacts. The More RPG Library provides 14 custom impact handlers that can be used in your spell.json files.Usage
Add custom impacts to your spell.json file using this format:spell.json
Must be set to
"CUSTOM" for custom impactsThe intent of the impact. Can be
"HARMFUL" or "HELPFUL"The identifier of the custom impact handler (see list below)
Available Impact Handlers
Movement & Mobility Impacts
knock_up
Handler ID:more_rpg_classes:knock_up
Knocks the target upward with power scaling based on spell tier and spell power.
Behavior:
- Calculates knock amount:
base + (multiplier * spellTier * power) - Capped at configurable maximum
- Applies slow falling effect for 1 second
- Resets vertical velocity before applying knockup
KnockUpSpellImpact.java:15
Example Usage
knock_up_fixed
Handler ID:more_rpg_classes:knock_up_fixed
Knocks the target upward with a fixed height (0.75 Y-velocity by default).
Behavior:
- Fixed upward velocity from config
- Applies slow falling effect for 1 second
- Resets vertical velocity before applying knockup
- Does not scale with spell power
KnockUpFixedSpellImpact.java:15
forward_dash_range
Handler ID:more_rpg_classes:forward_dash_range
Dashes the caster forward based on the spell’s range value.
Behavior:
- Dash strength:
spell.range / 4 - Maintains or applies minimum upward velocity (0.25)
- Direction based on caster’s look vector
ForwardDashRangeSpellImpact.java:12
Example Usage
backward_dash_fixed
Handler ID:more_rpg_classes:backward_dash_fixed
Dashes the caster backward with fixed range and height values.
Behavior:
- Uses configurable speed and height values
- Direction opposite to caster’s look vector
- Applies both horizontal and vertical velocity
BackwardDashFixedSpellImpact.java:13
backward_dash_range
Handler ID:more_rpg_classes:backward_dash_range
Dashes the caster backward based on the spell’s range value.
Behavior:
- Dash strength:
spell.range / 4 - Maintains or applies minimum upward velocity (0.25)
- Direction opposite to caster’s look vector
BackwardDashRangeSpellImpact.java:12
rush_forward_to_target
Handler ID:more_rpg_classes:rush_forward_to_target
Rapidly moves the caster to directly in front of the target.
Behavior:
- Calculates position 1 block in front of target
- Maintains caster’s Y-coordinate
- Velocity matches distance to cover
- Only executes on server side
RushForwardToTargetSpellImpact.java:12
Example Usage
Pull & Displacement Impacts
pull_to_caster_direct
Handler ID:more_rpg_classes:pull_to_caster_direct
Pulls the target directly to 1 block in front of the caster with high speed.
Behavior:
- Target position: 1 block in front of caster’s look direction
- Maintains target’s Y-coordinate
- Speed configurable via config file
- Instant displacement effect
PullInToCasterDirectSpellImpact.java:14
pull_to_caster_slow
Handler ID:more_rpg_classes:pull_to_caster_slow
Pulls the target slowly toward the caster. Ideal for channeled spells.
Behavior:
- Target position: 1 block in front of caster’s look direction
- Maintains target’s Y-coordinate
- Slower speed than direct variant
- Speed configurable via config file
PullInToCasterSlowSpellImpact.java:14
Channeled Pull Example
Knockback & Force Impacts
range_scaled_knockback
Handler ID:more_rpg_classes:range_scaled_knockback
Applies knockback that increases the closer the target is to the caster.
Behavior:
- Knockback formula:
0.1 + ((range - distance) / 5) + enchantment_power - Considers Punch and Knockback enchantments from caster’s main hand
- Higher knockback at close range
- Distance calculated using block positions
KnockbackRangeScaledSpellImpact.java:14
trembling
Handler ID:more_rpg_classes:trembling
Throws the target in random directions. Only affects grounded entities.
Behavior:
- Random horizontal velocity within configured range
- Fixed upward velocity (0.2)
- Only applies to targets on the ground
- Adds to existing velocity
TremblingImpact.java:13
Example Usage
Utility Impacts
stop_arrows
Handler ID:more_rpg_classes:stop_arrows
Stops all arrows within range by setting their velocity to zero.
Behavior:
- Detection range:
spell.range * 1.5 - Creates box: full width/depth, reduced height (range/3)
- Affects all
PersistentProjectileEntityinstances - Sets velocity to zero
StopArrowsImpact.java:14
Arrow Defense Example
Environmental Impacts
lightning
Handler ID:more_rpg_classes:lightning
Summons a friendly lightning entity at the target’s position.
Behavior:
- Spawns
FriendlyLightningEntity - Won’t damage allies
- Won’t set fire to blocks
- Visual and audio lightning effects
- Server-side only
LightningStrikeImpact.java:14
Damage Impacts
damage_according_to_missing_health
Handler ID:more_rpg_classes:damage_according_to_missing_health
Deals damage based on the target’s missing health percentage.
Behavior:
- Above 50% health:
0.25xdamage multiplier - 25-50% health:
1.0xdamage multiplier - Below 25% health:
1.75xdamage multiplier - Base damage: caster’s spell school attribute value
- Final damage:
schoolAttributeValue * damageMultiplier - Resets health regeneration timer
DamageToMissingHealthSpellImpact.java:13
Execute-Style Spell
Status Effect Impacts
frozen_ticks
Handler ID:more_rpg_classes:frozen_ticks
Adds 40 frozen ticks to the target, stacking with existing freeze.
Behavior:
- Adds 40 frozen ticks
- Stacks with existing freeze ticks
- Uses custom freeze stack method
- Only affects
LivingEntitytargets
FrozenTicksSpellImpact.java:13
Implementation Reference
All custom impacts are registered inCustomSpellImpacts.java:11 during mod initialization:
Registration Example
Configuration
Many impacts use configurable values fromMRPGCMod.tweaksConfig.value:
- Knock up base, multiplier, and cap
- Pull speeds (direct and slow)
- Dash ranges and heights
- Trembling range
- Missing health damage multipliers
Notes
Most movement-based impacts only execute on the server side to prevent desync issues.