Skip to content

Events

Cooking events are synchronous and fire only while the runtime owns the relevant player, location, or global transaction boundary.

EventTiming/threadCancellableMutable fieldCancellation/effect
CookingRecipeCompleteEventBefore output delivery and completion actions; global-region ownerYesdropResultStops output delivery and completion actions; dropResult selects drop versus inventory delivery.
PlayerNutritionConsumeEventBefore nutrition values and food-source actions are applied; player ownerYesNonePrevents all matching nutrition effects/actions.
NutritionThresholdChangeEventAfter a single/combo threshold edge changes; player ownerNoNoneInformational. Read Kind before interpreting type/value versus match counters.
CookingStationInteractEventBefore dispatch to station handling; relevant player/location ownerNoNoneInformational; station handling decides the interaction and the event feeds catalog().recentStation.

CookingRecipeCompleteEvent.getPlayer() can be null when an automatic station completes, so null-check it before use.

No event is synthesized while the API is unavailable or reloading. createOutputs and completion-condition queries are API operations, not recipe-completion event publishers.