Status: Planned. None of the value events on this page exist yet; they will be added in minor API versions, and names and fields may change. What exists today: the action events in Complete event list (some with mutable fields) and mixins on the game’s targets (Mixin targets).
Engine computations that mods may change are published as value events (the simple path; for anything deeper see mixins, Mixins). Value events will be ordinary events whose payload carries the inputs and a mutable result that starts as the vanilla value. Handlers run in priority order; each sees the value left by the previous one and may change it. Nothing replaces engine code, so mods compose and engine updates keep them working.
The event name is the category and the computation (living.fall_damage). The C constant is CL_EV_ plus the name in upper case with . replaced by _, and the payload is cl_ev_<name with . replaced by _>. Each entry lists the vanilla method it mirrors (ref:).
Ctx: T = TICK, P = PARALLEL, R = RENDER, N = NET. Side: S/C/B. With no subscriber an event costs one byte load at its site.
Block
Event
Payload fields
result
Ctx
Side
ref
block.destroy_progress
player, level, pos, state
f32
T
B
BlockBehaviour#getDestroyProgress
block.explosion_resistance
level, pos, state, explosion
f32
T
S
Block#getExplosionResistance
block.friction
state, entity
f32
T
B
Block#getFriction
block.speed_factor
state, entity
f32
T
B
Block#getSpeedFactor
block.jump_factor
state, entity
f32
T
B
Block#getJumpFactor
block.light_emission_at
level, pos, state
u8
T
B
dynamic light (cached per position)
block.can_survive
level, pos, state
bool
T
S
BlockBehaviour#canSurvive
block.signal
level, pos, state, dir
i32
T
S
getSignal
block.push_reaction
state
enum
T
S
getPistonPushReaction
block.can_be_replaced
state, place_ctx
bool
T
B
canBeReplaced
block.fluid_can_spread
level, from, to, fluid
bool
T
S
FlowingFluid#canSpreadTo
block.crop_growth_chance
level, pos, state
f32
T
S
CropBlock#getGrowthSpeed
block.bonemeal_success
level, pos, state
bool
T
S
BonemealableBlock#isBonemealSuccess
Entity and living
Event
Payload fields
result
Ctx
Side
ref
entity.travel
entity, input
motion (mutable)
T
B
LivingEntity#travel
entity.gravity
entity
f64
T
B
Entity#getGravity
entity.eye_height
entity, pose
f32
T
B
getEyeHeight
entity.pickup_range
entity
f64
T
S
item pickup inflate
entity.can_ride
entity, vehicle
bool
T
B
canRide
entity.is_pushed_by_fluid
entity
bool
T
B
isPushedByFluid
living.fall_damage
entity, fall_distance, multiplier, damage_type
i32
T
S
calculateFallDamage
living.damage_after_armor
entity, source, amount
f32
T
S
getDamageAfterArmorAbsorb
living.damage_after_magic
entity, source, amount
f32
T
S
getDamageAfterMagicAbsorb
living.knockback
entity, strength, x, z
vec3
T
S
knockback
living.jump_power
entity
f32
T
B
getJumpPower
living.max_air
entity
i32
T
B
getMaxAirSupply
living.can_breathe_underwater
entity
bool
T
B
canBreatheUnderwater
living.visibility_percent
entity, looker
f64
T
S
getVisibilityPercent
living.can_be_affected
entity, effect
bool
T
S
canBeAffected
mob.despawn_check
mob, nearest_player_dist_sq
bool
T
S
checkDespawn
mob.spawn_rules
type, level, reason, pos
bool
T
S
SpawnPlacements#checkSpawnRules
mob.goal_selection
mob, selector
motion (mutable)
T
S
GoalSelector#tick
mob.experience_reward
mob, killer
i32
T
S
getBaseExperienceReward
mob.equipment_drop_chance
mob, slot
f32
T
S
getEquipmentDropChance
animal.breeding_cooldown
animal
i32
T
S
setAge(6000)
Player
Event
Payload fields
result
Ctx
Side
ref
player.block_reach
player
f64
T
B
the block_interaction_range attribute (post)
player.entity_reach
player
f64
T
B
entity_interaction_range
player.dig_speed
player, state, pos
f32
T
B
Player#getDestroySpeed
player.has_correct_tool
player, state
bool
T
B
hasCorrectToolForDrops
player.attack_strength
player, partial
f32
T
B
getAttackStrengthScale
player.crit_check
player, target
bool
T
S
critical-hit condition
player.exhaustion
player, amount, cause
f32
T
S
causeFoodExhaustion
player.natural_regen
player
bool
T
S
FoodData#tick regen condition
player.xp_needed
player, level
i32
T
B
getXpNeededForNextLevel
player.respawn_position
player
pos+level
T
S
respawn resolution
player.can_sleep
player, pos
enum problem
T
S
startSleepInBed
player.keep_inventory
player
bool
T
S
death drop decision
World
Event
Payload fields
result
Ctx
Side
ref
level.is_raining_at
level, pos
bool
T
B
Level#isRainingAt
level.day_time_step
level
i64
T
S
daylight cycle increment
level.random_tick_speed
level, section_pos
i32
T
S
the randomTickSpeed rule per section
level.mob_cap
level, category
i32
T
S
NaturalSpawner cap
level.explosion_ray
explosion, pos, state, power
f32
T
S
ray power decay
level.raid_waves
raid, difficulty
i32
T
S
Raid#getNumGroups
level.portal_search_radius
level, portal_type
i32
T
S
portal forcer radius
Worldgen
Event
Payload fields
result
Ctx
Side
ref
worldgen.biome_at
qx, qy, qz, source_result, level_key
ident
P
S
after BiomeSource#getNoiseBiome
worldgen.feature_should_place
placed_feature, origin, region
bool
P
S
before PlacedFeature#place
worldgen.structure_spacing
structure_set
spacing
P
S
StructurePlacement
Network
Event
Payload fields
result
Ctx
Side
ref
net.block_state_remap
state, player (connection)
state
N
S
per-connection chunk and block-update encode
net.item_remap
stack, player
stack
N
S
slot and equipment encode
net.entity_type_remap
entity, player
type + metadata
N
S
add-entity encode
net.server_status
status
status
N
S
status response
Client (RENDER unless noted)
Client value events can be subscribed and unsubscribed at any time, so a client feature that is turned off has no subscription and costs nothing.