Skip to main content

ModCallback

Enumeration Members

POST_NPC_UPDATE

POST_NPC_UPDATE = 0

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postNPCUpdate(npc: EntityNPC): void {}

Defined in

ModCallback.ts:11


POST_UPDATE

POST_UPDATE = 1

You cannot filter this callback.

function postUpdate(): void {}

Defined in

ModCallback.ts:20


POST_RENDER

POST_RENDER = 2

You cannot filter this callback.

function postRender(): void {}

Defined in

ModCallback.ts:29


POST_USE_ITEM

POST_USE_ITEM = 3

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the CollectibleType provided.
function useItem(
collectibleType: CollectibleType,
rng: RNG,
player: EntityPlayer,
useFlags: BitFlags<UseFlag>,
activeSlot: int,
customVarData: int,
):
| boolean
| { Discharge: boolean; Remove: boolean; ShowAnim: boolean }
| undefined;

Defined in

ModCallback.ts:50


POST_PEFFECT_UPDATE

POST_PEFFECT_UPDATE = 4

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PlayerType provided.
function postPEffectUpdate(player: EntityPlayer): void {}

Deprecated

Consider using the ModCallbackCustom.POST_PEFFECT_UPDATE_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:65


POST_USE_CARD

POST_USE_CARD = 5

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the CardType provided.
function postUseCard(
cardType: CardType,
player: EntityPlayer,
useFlags: BitFlags<UseFlag>,
): void {}

Defined in

ModCallback.ts:80


POST_FAMILIAR_UPDATE

POST_FAMILIAR_UPDATE = 6

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the FamiliarVariant provided.
function postFamiliarUpdate(familiar: EntityFamiliar): void {}

Defined in

ModCallback.ts:91


POST_FAMILIAR_INIT

POST_FAMILIAR_INIT = 7

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the FamiliarVariant provided.
function postFamiliarInit(familiar: EntityFamiliar): void {}

Defined in

ModCallback.ts:110


EVALUATE_CACHE

EVALUATE_CACHE = 8

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the CacheFlag provided.

Note that you can only use single CacheFlag values as a third argument. (You cannot use a combination of two or more CacheFlag.)

function evaluateCache(player: EntityPlayer, cacheFlag: CacheFlag): void {}

Defined in

ModCallback.ts:124


POST_PLAYER_INIT

POST_PLAYER_INIT = 9

This will fire at the beginning of a run, upon continuing a saved run, and when a player enters a Genesis room.

For most cases of general purpose player initialization, you should use the POST_PLAYER_INIT_FIRST custom callback instead (in order to exclude the case of a player continuing a saved run).

This callback has a special property where most EntityPlayer methods (such as e.g. EntityPlayer.AddCollectible) will silently fail if the player is continuing a saved run. (This behavior was introduced in Repentance.) See the docs for more details about which specific methods are affected.

The isChildPlayer helper function does not work in this callback (because EntityPlayer.Parent is not initialized yet at this point). If you want to exclude non-real players, use the POST_PLAYER_INIT_FIRST or the POST_PLAYER_INIT_LATE custom callbacks instead.

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PlayerVariant provided.
function postPlayerInit(player: EntityPlayer): void {}

Defined in

ModCallback.ts:152


POST_USE_PILL

POST_USE_PILL = 10

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PillEffect provided.
function postUsePill(
pillEffect: PillEffect,
player: EntityPlayer,
useFlags: BitFlags<UseFlag>,
): void {}

Defined in

ModCallback.ts:167


ENTITY_TAKE_DMG

ENTITY_TAKE_DMG = 11

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function entityTakeDmg(
entity: Entity,
amount: float,
damageFlags: BitFlags<DamageFlag>,
source: EntityRef,
countdownFrames: int,
): boolean | undefined {}

Defined in

ModCallback.ts:184


POST_CURSE_EVAL

POST_CURSE_EVAL = 12

You cannot filter this callback.

function postCurseEval(curses: BitFlags<LevelCurse>): BitFlags<LevelCurse> | undefined {}

Defined in

ModCallback.ts:193


INPUT_ACTION

INPUT_ACTION = 13

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the InputHook provided.
function inputAction(
entity: Entity | undefined,
inputHook: InputHook,
buttonAction: ButtonAction,
): boolean | float | undefined {}

Defined in

ModCallback.ts:208


POST_GAME_STARTED

POST_GAME_STARTED = 15

You cannot filter this callback.

function postGameStarted(isContinued: boolean): void {}

Deprecated

Consider using the ModCallbackCustom.POST_GAME_STARTED_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:221


POST_GAME_END

POST_GAME_END = 16

You cannot filter this callback.

function postGameEnd(isGameOver: boolean): void {}

Defined in

ModCallback.ts:230


PRE_GAME_EXIT

PRE_GAME_EXIT = 17

You cannot filter this callback.

function preGameExit(shouldSave: boolean): void {}

Defined in

ModCallback.ts:239


POST_NEW_LEVEL

POST_NEW_LEVEL = 18

Unlike the POST_GAME_STARTED callback, this callback does not fire when resuming a saved run.

You cannot filter this callback.

function postNewLevel(): void {}

Deprecated

Consider using the ModCallbackCustom.POST_NEW_LEVEL_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:254


POST_NEW_ROOM

POST_NEW_ROOM = 19

You cannot filter this callback.

function postNewRoom(): void {}

Deprecated

Consider using the ModCallbackCustom.POST_NEW_ROOM_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:267


GET_CARD

GET_CARD = 20

You cannot filter this callback.

function getCard(
rng: RNG,
cardType: CardType,
includePlayingCards: boolean,
includeRunes: boolean,
onlyRunes: boolean,
): CardType | undefined {}

Defined in

ModCallback.ts:282


GET_SHADER_PARAMS

GET_SHADER_PARAMS = 21

You cannot filter this callback.

function getShaderParams(shaderName: string): Record<string, unknown> {}

Defined in

ModCallback.ts:291


EXECUTE_CMD

EXECUTE_CMD = 22

You cannot filter this callback.

function executeCmd(
command: string,
parameters: string,
player: EntityPlayer,
): void {}

Defined in

ModCallback.ts:304


PRE_USE_ITEM

PRE_USE_ITEM = 23

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the CollectibleType provided.
function preUseItem(
collectibleType: CollectibleType,
rng: RNG,
player: EntityPlayer,
useFlags: BitFlags<UseFlag>,
activeSlot: ActiveSlot,
customVarData: int,
): boolean | undefined {}

Defined in

ModCallback.ts:322


PRE_ENTITY_SPAWN

PRE_ENTITY_SPAWN = 24

If you want to prevent an entity from spawning, you cannot return an EntityType of 0, since that will cause the game to crash.

Sometimes, if you return a type other than the original type (e.g. replacing a pickup with an effect), the game will crash. Thus, you should replace a pickup with a new pickup, and so on.

You cannot filter this callback.

function preEntitySpawn(
entityType: EntityType,
variant: int,
subType: int,
position: Vector,
velocity: Vector,
spawner: Entity | undefined,
initSeed: Seed,
): [entityType: EntityType, variant: int, subType: int, initSeed: Seed] | undefined {}

Defined in

ModCallback.ts:345


POST_FAMILIAR_RENDER

POST_FAMILIAR_RENDER = 25

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the FamiliarVariant provided.
function postFamiliarRender(
entityFamiliar: EntityFamiliar,
renderOffset: Vector,
): void {}

Defined in

ModCallback.ts:359


PRE_FAMILIAR_COLLISION

PRE_FAMILIAR_COLLISION = 26

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the FamiliarVariant provided.
function preFamiliarCollision(
familiar: EntityFamiliar,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:374


POST_NPC_INIT

POST_NPC_INIT = 27

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postNPCInit(npc: EntityNPC): void {}

Defined in

ModCallback.ts:393


POST_NPC_RENDER

POST_NPC_RENDER = 28

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postNPCRender(npc: EntityNPC, renderOffset: Vector): void {}

Defined in

ModCallback.ts:404


POST_NPC_DEATH

POST_NPC_DEATH = 29

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postNPCDeath(npc: EntityNPC): void {}

Defined in

ModCallback.ts:415


PRE_NPC_COLLISION

PRE_NPC_COLLISION = 30

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function preNPCCollision(
npc: EntityNPC,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:430


POST_PLAYER_UPDATE

POST_PLAYER_UPDATE = 31

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PlayerVariant provided.
function postPlayerUpdate(player: EntityPlayer): void {}

Deprecated

Consider using the ModCallbackCustom.POST_PLAYER_UPDATE_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:445


POST_PLAYER_RENDER

POST_PLAYER_RENDER = 32

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PlayerVariant provided.
function postPlayerRender(player: EntityPlayer, renderOffset: Vector): void {}

Deprecated

Consider using the ModCallbackCustom.POST_PLAYER_RENDER_REORDERED callback from isaacscript-common instead, since it will fire in the correct order and prevent bugs relating to data structures not being properly initialized.

Defined in

ModCallback.ts:460


PRE_PLAYER_COLLISION

PRE_PLAYER_COLLISION = 33

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PlayerVariant provided.
function prePlayerCollision(
player: EntityPlayer,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:475


POST_PICKUP_INIT

POST_PICKUP_INIT = 34

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PickupVariant provided.
function postPickupInit(pickup: EntityPickup): void {}

Defined in

ModCallback.ts:494


POST_PICKUP_UPDATE

POST_PICKUP_UPDATE = 35

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PickupVariant provided.
function postPickupUpdate(pickup: EntityPickup): void {}

Defined in

ModCallback.ts:505


POST_PICKUP_RENDER

POST_PICKUP_RENDER = 36

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PickupVariant provided.
function postPickupRender(pickup: EntityPickup, renderOffset: Vector): void {}

Defined in

ModCallback.ts:516


POST_PICKUP_SELECTION

POST_PICKUP_SELECTION = 37

You cannot filter this callback.

function postPickupSelection(
pickup: EntityPickup,
variant: PickupVariant,
subType: int,
): [pickupVariant: PickupVariant, subType: int] | undefined {}

Defined in

ModCallback.ts:529


PRE_PICKUP_COLLISION

PRE_PICKUP_COLLISION = 38

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the PickupVariant provided.
function prePickupCollision(
pickup: EntityPickup,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:544


POST_TEAR_INIT

POST_TEAR_INIT = 39

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the TearVariant provided.
function postTearInit(tear: EntityTear): void {}

Defined in

ModCallback.ts:563


POST_TEAR_UPDATE

POST_TEAR_UPDATE = 40

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the TearVariant provided.
function postTearUpdate(tear: EntityTear): void {}

Defined in

ModCallback.ts:574


POST_TEAR_RENDER

POST_TEAR_RENDER = 41

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the TearVariant provided.
function postTearRender(tear: EntityTear, renderOffset: Vector): void {}

Defined in

ModCallback.ts:585


PRE_TEAR_COLLISION

PRE_TEAR_COLLISION = 42

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the TearVariant provided.
function preTearCollision(
tear: EntityTear,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:600


POST_PROJECTILE_INIT

POST_PROJECTILE_INIT = 43

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the ProjectileVariant provided.
function postProjectileInit(projectile: EntityProjectile): void {}

Defined in

ModCallback.ts:619


POST_PROJECTILE_UPDATE

POST_PROJECTILE_UPDATE = 44

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the ProjectileVariant provided.
function postProjectileUpdate(projectile: EntityProjectile): void {}

Defined in

ModCallback.ts:630


POST_PROJECTILE_RENDER

POST_PROJECTILE_RENDER = 45

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the ProjectileVariant provided.
function postProjectileRender(
projectile: EntityProjectile,
renderOffset: Vector,
): void {}

Defined in

ModCallback.ts:644


PRE_PROJECTILE_COLLISION

PRE_PROJECTILE_COLLISION = 46

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the ProjectileVariant provided.
function preProjectileCollision(
projectile: EntityProjectile,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:659


POST_LASER_INIT

POST_LASER_INIT = 47

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the LaserVariant provided.
function postLaserInit(laser: EntityLaser): void {}

Defined in

ModCallback.ts:678


POST_LASER_UPDATE

POST_LASER_UPDATE = 48

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the LaserVariant provided.
function postLaserUpdate(laser: EntityLaser): void {}

Defined in

ModCallback.ts:689


POST_LASER_RENDER

POST_LASER_RENDER = 49

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the LaserVariant provided.
function postLaserRender(laser: EntityLaser, renderOffset: Vector): void {}

Defined in

ModCallback.ts:700


POST_KNIFE_INIT

POST_KNIFE_INIT = 50

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the sub-type provided. (This is bugged and is NOT the KnifeVariant like you would expect!)
function postKnifeInit(knife: EntityKnife): void {}

Defined in

ModCallback.ts:720


POST_KNIFE_UPDATE

POST_KNIFE_UPDATE = 51

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the sub-type provided. (This is bugged and is NOT the KnifeVariant like you would expect!)
function postKnifeUpdate(knife: EntityKnife): void {}

Defined in

ModCallback.ts:732


POST_KNIFE_RENDER

POST_KNIFE_RENDER = 52

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the sub-type provided. (This is bugged and is NOT the KnifeVariant like you would expect!)
function postKnifeRender(knife: EntityKnife, renderOffset: Vector): void {}

Defined in

ModCallback.ts:744


PRE_KNIFE_COLLISION

PRE_KNIFE_COLLISION = 53

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the sub-type provided. (This is bugged and is NOT the KnifeVariant like you would expect!)
function preKnifeCollision(
knife: EntityKnife,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:760


POST_EFFECT_INIT

POST_EFFECT_INIT = 54

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EffectVariant provided.
function postEffectInit(effect: EntityEffect): void {}

Defined in

ModCallback.ts:779


POST_EFFECT_UPDATE

POST_EFFECT_UPDATE = 55

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EffectVariant provided.
function postEffectUpdate(effect: EntityEffect): void {}

Defined in

ModCallback.ts:790


POST_EFFECT_RENDER

POST_EFFECT_RENDER = 56

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EffectVariant provided.
function postEffectRender(effect: EntityEffect, renderOffset: Vector): void {}

Defined in

ModCallback.ts:801


POST_BOMB_INIT

POST_BOMB_INIT = 57

Unlike in Afterbirth+, in Repentance this callback properly populates the following fields:

  • Position
  • SpawnerEntity
  • SpawnerType
  • SpawnerVariant
  • Velocity

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the BombVariant provided.
function postBombInit(bomb: EntityBomb): void {}

Defined in

ModCallback.ts:820


POST_BOMB_UPDATE

POST_BOMB_UPDATE = 58

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the BombVariant provided.
function postBombUpdate(bomb: EntityBomb): void {}

Defined in

ModCallback.ts:831


POST_BOMB_RENDER

POST_BOMB_RENDER = 59

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the BombVariant provided.
function postBombRender(bomb: EntityBomb, renderOffset: Vector): void {}

Defined in

ModCallback.ts:842


PRE_BOMB_COLLISION

PRE_BOMB_COLLISION = 60

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the BombVariant provided.
function preBombCollision(
bomb: EntityBomb,
collider: Entity,
low: boolean,
): boolean | undefined {}

Defined in

ModCallback.ts:857


POST_FIRE_TEAR

POST_FIRE_TEAR = 61

You cannot filter this callback.

function postFireTear(tear: EntityTear): void {}

Defined in

ModCallback.ts:866


PRE_GET_COLLECTIBLE

PRE_GET_COLLECTIBLE = 62

You cannot filter this callback.

function preGetCollectible(
itemPoolType: ItemPoolType,
decrease: boolean,
seed: Seed,
): CollectibleType | undefined {}

Defined in

ModCallback.ts:879


POST_GET_COLLECTIBLE

POST_GET_COLLECTIBLE = 63

You cannot filter this callback.

function postGetCollectible(
collectibleType: CollectibleType,
itemPoolType: ItemPoolType,
decrease: boolean,
seed: Seed,
): CollectibleType | undefined {}

Defined in

ModCallback.ts:893


GET_PILL_COLOR

GET_PILL_COLOR = 64

You cannot filter this callback.

function getPillColor(seed: Seed): PillColor | undefined {}

Defined in

ModCallback.ts:902


GET_PILL_EFFECT

GET_PILL_EFFECT = 65

You cannot filter this callback.

function getPillEffect(
pillEffect: PillEffect,
pillColor: PillColor,
): PillEffect | undefined {}

Defined in

ModCallback.ts:914


GET_TRINKET

GET_TRINKET = 66

You cannot filter this callback.

function getTrinket(
trinketType: TrinketType,
rng: RNG,
): TrinketType | undefined {}

Defined in

ModCallback.ts:926


POST_ENTITY_REMOVE

POST_ENTITY_REMOVE = 67

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postEntityRemove(entity: Entity): void {}

Defined in

ModCallback.ts:937


POST_ENTITY_KILL

POST_ENTITY_KILL = 68

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function postEntityKill(entity: Entity): void {}

Defined in

ModCallback.ts:948


PRE_NPC_UPDATE

PRE_NPC_UPDATE = 69

When registering this callback with the Mod.AddCallback method:

  • You can provide an optional third argument that will make the callback only fire if it matches the EntityType provided.
function preNPCUpdate(entity: Entity): boolean | undefined {}

Defined in

ModCallback.ts:959


PRE_SPAWN_CLEAR_AWARD

PRE_SPAWN_CLEAR_AWARD = 70

In vanilla, this is PRE_SPAWN_CLEAN_AWARD, which is a typo.

You cannot filter this callback.

function preSpawnClearAward(
rng: RNG,
spawnPosition: Vector,
): boolean | undefined {}

Defined in

ModCallback.ts:973


PRE_ROOM_ENTITY_SPAWN

PRE_ROOM_ENTITY_SPAWN = 71

You can use the isGridEntityXMLType helper function to convert the entityTypeOrGridEntityXMLType argument to an EntityType or GridEntityXMLType, if needed.

You cannot filter this callback.

function preRoomEntitySpawn(
entityTypeOrGridEntityXMLType: EntityType | GridEntityXMLType,
variant: int,
subType: int,
gridIndex: int,
initSeed: Seed,
): [type: EntityType | GridEntityXMLType, variant: int, subType: int] | undefined {}

Defined in

ModCallback.ts:991


PRE_ENTITY_DEVOLVE

PRE_ENTITY_DEVOLVE = 72

You cannot filter this callback.

function preEntityDevolve(entity: Entity): boolean | undefined {}

Defined in

ModCallback.ts:1000


PRE_MOD_UNLOAD

PRE_MOD_UNLOAD = 73

You cannot filter this callback.

function preModUnload(mod: Mod): void {}

Defined in

ModCallback.ts:1009