From f1426e3e8079a273bf6a3c30e834c45de18a91e4 Mon Sep 17 00:00:00 2001 From: GitHub Action Date: Fri, 19 Jan 2024 19:50:56 +0000 Subject: [PATCH] Deployed c41f39f9 with MkDocs version: 1.5.3 --- PlayerManager.html | 6 +++--- search/search_index.json | 2 +- sitemap.xml.gz | Bin 1829 -> 1829 bytes 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/PlayerManager.html b/PlayerManager.html index b2f86ed5a..0739dcbd6 100644 --- a/PlayerManager.html +++ b/PlayerManager.html @@ -6507,7 +6507,7 @@

Global Class "PlayerManager" Example Code -
1
local sprite = PlayerManager.AnyoneHasTrinket(TrinketType.TRINKET_SWALLOWED_PENNY)
+
1
local hasTrinket = PlayerManager.AnyoneHasTrinket(TrinketType.TRINKET_SWALLOWED_PENNY)
 
@@ -6530,14 +6530,14 @@

FirstBirthrightOwner ()EntityPlayer FirstBirthrightOwner ( PlayerType PlayerType )⚓︎


FirstCollectibleOwner ()⚓︎

-

EntityPlayer FirstCollectibleOwner ( CollectibleType Collectible, boolean LazSharedGlobalTag )⚓︎

+

EntityPlayer FirstCollectibleOwner ( CollectibleType Collectible, boolean LazSharedGlobalTag = true )⚓︎

Returns nil if the specified collectible has never been picked up.


FirstPlayerByType ()⚓︎

EntityPlayer FirstPlayerByType ( PlayerType PlayerType )⚓︎


FirstTrinketOwner ()⚓︎

-

EntityPlayer FirstTrinketOwner ( TrinketType Trinket, RNG RNG, boolean LazSharedGlobalTag )⚓︎

+

EntityPlayer FirstTrinketOwner ( TrinketType Trinket, RNG RNG = nil, boolean LazSharedGlobalTag = true )⚓︎

Returns nil if the specified trinket has never been picked up.


GetEsauJrState ()⚓︎

diff --git a/search/search_index.json b/search/search_index.json index 8d6fb72e7..09f81710d 100644 --- a/search/search_index.json +++ b/search/search_index.json @@ -1 +1 @@ -{"config":{"lang":["en"],"separator":"[\\s\\-,:!=\\[\\]()\"/_]+|(?!\\b)(?=[A-Z][a-z])|\\.(?!\\d)|&[lg]t;","pipeline":["stopWordFilter"]},"docs":[{"location":"Ambush.html","title":"Global Class \"Ambush\"","text":"Info

You can get this class by using the Ambush global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local currwave = Ambush.GetCurrentWave()\n
","tags":["Global","Class"]},{"location":"Ambush.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Ambush.html#getcurrentwave","title":"GetCurrentWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getcurrentwave","title":"int GetCurrentWave ( )","text":"

Returns the current wave number of the current challenge room or boss rush room.

","tags":["Global","Class"]},{"location":"Ambush.html#getmaxbossrushwaves","title":"GetMaxBossrushWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getmaxbossrushwaves","title":"int GetMaxBossrushWaves ( )","text":"

Returns the maximum amount of boss rush waves.

By default, the maximum amount of boss rush waves are 15. It's important to note that mods can modify the maximum amount of boss rush waves.

","tags":["Global","Class"]},{"location":"Ambush.html#getmaxchallengewaves","title":"GetMaxChallengeWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getmaxchallengewaves","title":"int GetMaxChallengeWaves ( )","text":"

Returns the maximum amount of challenge room waves.

By default, the maximum amount of challenge room waves are 3. It's important to note that mods can modify the maximum amount of challenge room waves.

","tags":["Global","Class"]},{"location":"Ambush.html#getnextwave","title":"GetNextWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#roomconfigroom-getnextwave","title":"RoomConfigRoom GetNextWave ( )","text":"

Returns the RoomConfigRoom of the next challenge room wave. Calling this function outside of a challenge room will result in an error.

","tags":["Global","Class"]},{"location":"Ambush.html#getnextwaves","title":"GetNextWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#roomconfigroom-getnextwaves","title":"RoomConfigRoom[] GetNextWaves ( )","text":"

Returns a table containing the RoomConfigRoom of the next challenge room waves.

","tags":["Global","Class"]},{"location":"Ambush.html#setmaxbossrushwaves","title":"SetMaxBossrushWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-setmaxbossrushwaves-int-waves","title":"void SetMaxBossrushWaves ( int Waves )","text":"

Sets the maximum amount of boss rush waves. As of now, there is a maximum cap of 25 waves.

","tags":["Global","Class"]},{"location":"Ambush.html#setmaxchallengewaves","title":"SetMaxChallengeWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-setmaxchallengewaves-int-waves","title":"void SetMaxChallengeWaves ( int Waves )","text":"

Sets the maximum amount of challenge room waves.

Bug

Currently this value is not reset on game restart. This will be fixed as soon as we figure out how to cleanly run code on init on the C++ side!

","tags":["Global","Class"]},{"location":"Ambush.html#spawnbossrushwave","title":"SpawnBossrushWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-spawnbossrushwave","title":"void SpawnBossrushWave ( )","text":"

Spawns a boss rush wave in the current room.

Bug

Calling this function will do nothing unless a boss rush has been triggered at least once during the current game session.

","tags":["Global","Class"]},{"location":"Ambush.html#spawnwave","title":"SpawnWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-spawnwave","title":"void SpawnWave ( )","text":"

Spawns a challenge room wave associated with the current floor.

Bug

Calling this function crashes the game if the current game mode is Greed or Greedier.

The game also crashes if the current floor is Blue Womb.

","tags":["Global","Class"]},{"location":"Ambush.html#startchallenge","title":"StartChallenge ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-startchallenge","title":"void StartChallenge ( )","text":"

Triggers the challenge room or boss rush.

Bug

Calling this function outside of the boss rush room or a challenge room will do nothing except permanently close the doors, resulting in a softlock.

","tags":["Global","Class"]},{"location":"AnimationData.html","title":"Class \"AnimationData\"","text":"

Cached data for one animation from a loaded ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Can be obtained via Sprite:GetAnimationData(), Sprite:GetCurrentAnimationData() or Sprite:GetOverlayAnimationData().

","tags":["Class"]},{"location":"AnimationData.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationData.html#getalllayers","title":"GetAllLayers ()","text":"","tags":["Class"]},{"location":"AnimationData.html#animationlayer-getalllayers","title":"AnimationLayer[] GetAllLayers ( )","text":"

Returns a table of AnimationLayers, in order from bottom to top (NOT ordered by layer ID).

","tags":["Class"]},{"location":"AnimationData.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"AnimationData.html#animationlayer-getlayer-int-layerid","title":"AnimationLayer GetLayer ( int LayerId )","text":"

Gets an AnimationLayer by that layer's ID number.

","tags":["Class"]},{"location":"AnimationData.html#getlength","title":"GetLength ()","text":"","tags":["Class"]},{"location":"AnimationData.html#int-getlength","title":"int GetLength ( )","text":"

Length of this animation in frames.

","tags":["Class"]},{"location":"AnimationData.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"AnimationData.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"AnimationData.html#isloopinganimation","title":"IsLoopingAnimation ()","text":"","tags":["Class"]},{"location":"AnimationData.html#boolean-isloopinganimation","title":"boolean IsLoopingAnimation ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html","title":"Class \"AnimationFrame\"","text":"

Cached data for a single frame of one layer of an animation from an ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Note that interpolation and root animations have already been baked into these values.

Otherwise, these values correspond to the same ones viewable in the ANM2 editor, and have been named the same way.

Obtained via AnimationLayer:GetFrame().

","tags":["Class"]},{"location":"AnimationFrame.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-color-getcolor","title":"const Color GetColor ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getcrop","title":"GetCrop ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getcrop","title":"const Vector GetCrop ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getheight","title":"GetHeight ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getheight","title":"float GetHeight ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getpivot","title":"GetPivot ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getpivot","title":"const Vector GetPivot ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getpos","title":"const Vector GetPos ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getscale","title":"const Vector GetScale ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getwidth","title":"GetWidth ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getwidth","title":"float GetWidth ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#isinterpolated","title":"IsInterpolated ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#boolean-isinterpolated","title":"boolean IsInterpolated ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"AnimationLayer.html","title":"Class \"AnimationLayer\"","text":"

Cached data for one layer of an animation from a loaded ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Obtained via AnimationData:GetLayer().

","tags":["Class"]},{"location":"AnimationLayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationLayer.html#getframe","title":"GetFrame ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#animationframe-getframe-int-frame","title":"AnimationFrame GetFrame ( int Frame )","text":"","tags":["Class"]},{"location":"AnimationLayer.html#getlayerid","title":"GetLayerID ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#int-getlayerid","title":"int GetLayerID ( )","text":"","tags":["Class"]},{"location":"AnimationLayer.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"Backdrop.html","title":"Class \"Backdrop\"","text":"Info

You can get this class by using the following functions:

  • Room:GetBackdrop()
Example Code
local backdrop = Game():GetRoom():GetBackdrop()\n
","tags":["Class"]},{"location":"Backdrop.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Backdrop.html#getfloorimage","title":"GetFloorImage ()","text":"","tags":["Class"]},{"location":"Backdrop.html#image-getfloorimage","title":"Image GetFloorImage ( )","text":"

Returns the buffer containing the floor texture of the current room.

","tags":["Class"]},{"location":"Backdrop.html#getwallimage","title":"GetWallImage ()","text":"","tags":["Class"]},{"location":"Backdrop.html#image-getwallimage","title":"Image GetWallImage ( )","text":"

Returns the buffer containing the wall texture of the current room.

","tags":["Class"]},{"location":"Camera.html","title":"Class \"Camera\"","text":"Info

You can get this class by using the following functions:

  • Room:GetCamera()
Example Code
local camera = Game():GetRoom():GetCamera()\n
","tags":["Class"]},{"location":"Camera.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Camera.html#setfocusposition","title":"SetFocusPosition ()","text":"","tags":["Class"]},{"location":"Camera.html#void-setfocusposition-vector-pos","title":"void SetFocusPosition ( Vector Pos )","text":"

Sets the camera's current focus position, causing it to shift towards the specified position

The camera will only move if the current room size is larger than 1x1. If the room size is 1x1 or smaller, the camera will remain stationary and this function will do nothing.

This function must be called on every game update, otherwise the game will override the camera's position.

","tags":["Class"]},{"location":"Camera.html#snaptoposition","title":"SnapToPosition ()","text":"","tags":["Class"]},{"location":"Camera.html#void-snaptoposition-vector-pos","title":"void SnapToPosition ( Vector Pos )","text":"

Sets the camera's position instantly to the specified position.

The camera will only move if the current room size is larger than 1x1. If the room size is 1x1 or smaller, the camera will remain stationary and this function will do nothing.

This function must be called on every game update, otherwise the game will override the camera's position.

Bug

This function seems to only work when Active Camera is off.

","tags":["Class"]},{"location":"Capsule.html","title":"Class \"Capsule\"","text":"

An example mod using the Capsule class can be found here.

Info

You can get this class by using the following functions:

  • Entity:GetCollisionCapsule()
  • Entity:GetNullCapsule()
","tags":["Class"]},{"location":"Capsule.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"Capsule.html#capsule","title":"Capsule ()","text":"","tags":["Class"]},{"location":"Capsule.html#capsule-capsule-vector-position-vector-sizemult-float-rotation-float-size","title":"Capsule Capsule ( Vector Position, Vector SizeMult, float Rotation, float Size )","text":"","tags":["Class"]},{"location":"Capsule.html#capsule-capsule-vector-position-vector-targetposition-float-size","title":"Capsule Capsule ( Vector Position, Vector TargetPosition, float Size )","text":"","tags":["Class"]},{"location":"Capsule.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Capsule.html#collide","title":"Collide ()","text":"","tags":["Class"]},{"location":"Capsule.html#boolean-collide-capsule-capsule-vector-point","title":"boolean Collide ( Capsule Capsule, Vector Point )","text":"","tags":["Class"]},{"location":"Capsule.html#getdirection","title":"GetDirection ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getdirection","title":"Vector GetDirection ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getf1","title":"GetF1 ()","text":"","tags":["Class"]},{"location":"Capsule.html#float-getf1","title":"float GetF1 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getf2","title":"GetF2 ()","text":"","tags":["Class"]},{"location":"Capsule.html#float-getf2","title":"float GetF2 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getposition","title":"GetPosition ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getposition","title":"Vector GetPosition ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getvec2","title":"GetVec2 ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getvec2","title":"Vector GetVec2 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getvec3","title":"GetVec3 ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getvec3","title":"Vector GetVec3 ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html","title":"Class \"ChallengeParam\"","text":"Info

You can get this class by using the following functions:

  • Game():GetChallengeParams()
  • DailyChallenge.GetChallengeParams()
Example Code
local params = Game():GetChallengeParams()\n
","tags":["Class"]},{"location":"ChallengeParam.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ChallengeParam.html#canshoot","title":"CanShoot ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-canshoot","title":"boolean CanShoot ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getachievementlist","title":"GetAchievementList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#achievement-getachievementlist","title":"Achievement[] GetAchievementList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getadddamage","title":"GetAddDamage ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#float-getadddamage","title":"float GetAddDamage ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getblackhearts","title":"GetBlackHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getblackhearts","title":"int GetBlackHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcoins","title":"GetCoins ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcoins","title":"int GetCoins ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcollectiblelist","title":"GetCollectibleList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#collectibletype-getcollectiblelist","title":"CollectibleType[] GetCollectibleList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcollectibletwinlist","title":"GetCollectibleTwinList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#collectibletype-getcollectibletwinlist","title":"CollectibleType[] GetCollectibleTwinList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcurse","title":"GetCurse ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcurse","title":"int GetCurse ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcursefilter","title":"GetCurseFilter ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcursefilter","title":"int GetCurseFilter ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getdifficulty","title":"GetDifficulty ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#difficulty-getdifficulty","title":"Difficulty GetDifficulty ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getendstage","title":"GetEndStage ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#levelstage-getendstage","title":"LevelStage GetEndStage ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#gethearts","title":"GetHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-gethearts","title":"int GetHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getmaxhearts","title":"GetMaxHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getmaxhearts","title":"int GetMaxHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getminfirerate","title":"GetMinFireRate ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#float-getminfirerate","title":"float GetMinFireRate ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#playertype-getplayertype","title":"PlayerType GetPlayerType ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getroomfilter","title":"GetRoomFilter ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#roomtype-getroomfilter","title":"RoomType[] GetRoomFilter ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getsoulhearts","title":"GetSoulHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getsoulhearts","title":"int GetSoulHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getstartingcard","title":"GetStartingCard ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#card-getstartingcard","title":"Card GetStartingCard ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getstartingpill","title":"GetStartingPill ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#pilleffect-getstartingpill","title":"PillEffect GetStartingPill ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#gettrinketlist","title":"GetTrinketList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#trinkettype-gettrinketlist","title":"TrinketType[] GetTrinketList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isaltpath","title":"IsAltPath ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isaltpath","title":"boolean IsAltPath ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isbigrangeenabled","title":"IsBigRangeEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isbigrangeenabled","title":"boolean IsBigRangeEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#ismaxdamageenabled","title":"IsMaxDamageEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-ismaxdamageenabled","title":"boolean IsMaxDamageEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#ismegasatanrun","title":"IsMegaSatanRun ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-ismegasatanrun","title":"boolean IsMegaSatanRun ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isminshotspeedenabled","title":"IsMinShotSpeedEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isminshotspeedenabled","title":"boolean IsMinShotSpeedEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#issecretpath","title":"IsSecretPath ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-issecretpath","title":"boolean IsSecretPath ( )","text":"","tags":["Class"]},{"location":"Color.html","title":"Class \"Color\"","text":"Info

This class can be accessed using its constructor:

Example Code
local redColor = Color(1,0,0,1)\n
","tags":["Class"]},{"location":"Color.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Color.html#color","title":"Color ()","text":"","tags":["Class"]},{"location":"Color.html#color-color-float-r-1-float-g-1-float-b-1-float-a-1-float-ro-0-float-go-0-float-bo-0-float-rc-0-float-gc-0-float-bc-0-float-ac-0","title":"Color Color ( float R = 1, float G = 1, float B = 1, float A = 1, float RO = 0, float GO = 0, float BO = 0, float RC = 0, float GC = 0, float BC = 0, float AC = 0 )","text":"

All arguments are now optional. Colorize can now be set through the constructor.

","tags":["Class"]},{"location":"Color.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Color.html#getcolorize","title":"GetColorize ()","text":"","tags":["Class"]},{"location":"Color.html#table-getcolorize","title":"table GetColorize ( )","text":"

Returns a table corresponding to the color's current Colorize values: {R, G, B, A}

","tags":["Class"]},{"location":"Color.html#getoffset","title":"GetOffset ()","text":"","tags":["Class"]},{"location":"Color.html#table-getoffset","title":"table GetOffset ( )","text":"

Returns a table corresponding to the color's current Offset values: {R, G, B}

While the Color class does already contain .RO, .GO and .BO variables for this, GetOffset() has been measured to be ~30% faster in cases where access to all three values is necessary and is recommended in that scenario as a result. Performance is near identical when accessing two variables, and worse when accessing one. In cases where only one or two offset values are needed, stick with the variables.

","tags":["Class"]},{"location":"Color.html#gettint","title":"GetTint ()","text":"","tags":["Class"]},{"location":"Color.html#table-gettint","title":"table GetTint ( )","text":"

Returns a table corresponding to the color's current Tint values: {R, G, B, A}

","tags":["Class"]},{"location":"Color.html#print","title":"Print ()","text":"","tags":["Class"]},{"location":"Color.html#string-print","title":"string Print ( )","text":"

Returns a string representation of the color object.

","tags":["Class"]},{"location":"Color.html#__tostring","title":"__tostring ()","text":"","tags":["Class"]},{"location":"Color.html#string-__tostring","title":"string __tostring ( )","text":"

Creates a string representation of the color object.

This enables direct printing of the object by doing print(myColorObj)

","tags":["Class"]},{"location":"Color.html#constants","title":"Constants","text":"","tags":["Class"]},{"location":"Color.html#coloremberfade","title":"Color.EmberFade","text":"","tags":["Class"]},{"location":"Color.html#color-emberfade","title":"Color EmberFade","text":"

Used for enemies like Crackles and Coal Spiders. This color has a hardcoded special property; gibs start orange and fade into grey.

Tint of (0, 0, 0, 1.1) Colorize of (0, 0, 0, 0) Offset of (1, 0.514, 0.004)

","tags":["Class"]},{"location":"Color.html#colorlaseralmond","title":"Color.LaserAlmond","text":"","tags":["Class"]},{"location":"Color.html#color-laseralmond","title":"Color LaserAlmond","text":"

Used for lasers with the Almond Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlaserchocolate","title":"Color.LaserChocolate","text":"","tags":["Class"]},{"location":"Color.html#color-laserchocolate","title":"Color LaserChocolate","text":"

Used for lasers with the Chocolate Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlasercoal","title":"Color.LaserCoal","text":"","tags":["Class"]},{"location":"Color.html#color-lasercoal","title":"Color LaserCoal","text":"

Used for lasers with the A Lump of Coal effect.

","tags":["Class"]},{"location":"Color.html#colorlaserfiremind","title":"Color.LaserFireMind","text":"","tags":["Class"]},{"location":"Color.html#color-laserfiremind","title":"Color LaserFireMind","text":"

Used for lasers fired by players with Fire Mind.

","tags":["Class"]},{"location":"Color.html#colorlaserhoming","title":"Color.LaserHoming","text":"","tags":["Class"]},{"location":"Color.html#color-laserhoming","title":"Color LaserHoming","text":"

Used for homing lasers.

","tags":["Class"]},{"location":"Color.html#colorlaseripecac","title":"Color.LaserIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-laseripecac","title":"Color LaserIpecac","text":"

Used for lasers with the Ipecac effect.

","tags":["Class"]},{"location":"Color.html#colorlasermother","title":"Color.LaserMother","text":"","tags":["Class"]},{"location":"Color.html#color-lasermother","title":"Color LaserMother","text":"

Used for Mother's mega laser.

","tags":["Class"]},{"location":"Color.html#colorlasernumberone","title":"Color.LaserNumberOne","text":"","tags":["Class"]},{"location":"Color.html#color-lasernumberone","title":"Color LaserNumberOne","text":"

Used for lasers fired by players with Number One.

","tags":["Class"]},{"location":"Color.html#colorlasersoy","title":"Color.LaserSoy","text":"","tags":["Class"]},{"location":"Color.html#color-lasersoy","title":"Color LaserSoy","text":"

Used for lasers with the Soy Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlaserpoison","title":"Color.LaserPoison","text":"","tags":["Class"]},{"location":"Color.html#color-laserpoison","title":"Color LaserPoison","text":"

Used for poisonous lasers fired by players with items like Scorpio or Common Cold.

","tags":["Class"]},{"location":"Color.html#colorprojectilecageblue","title":"Color.ProjectileCageBlue","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecageblue","title":"Color ProjectileCageBlue","text":"

Used for ProjectileVariant.PROJECTILE_PUKEs fired by The Cage.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseclusterdark","title":"Color.ProjectileCorpseClusterDark","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseclusterdark","title":"Color ProjectileCorpseClusterDark","text":"

Used for clustered ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseclusterlight","title":"Color.ProjectileCorpseClusterLight","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseclusterlight","title":"Color ProjectileCorpseClusterLight","text":"

Used for clustered ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsegreen","title":"Color.ProjectileCorpseGreen","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsegreen","title":"Color ProjectileCorpseGreen","text":"

Used for green ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

Also used for the green laser fired by Chimera.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsepink","title":"Color.ProjectileCorpsePink","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsepink","title":"Color ProjectileCorpsePink","text":"

Used for pink-ish white-ish ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsewhite","title":"Color.ProjectileCorpseWhite","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsewhite","title":"Color ProjectileCorpseWhite","text":"

Used for white-ish grey-ish ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseyellow","title":"Color.ProjectileCorpseYellow","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseyellow","title":"Color ProjectileCorpseYellow","text":"

Used for yellow ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like The Scourge.

","tags":["Class"]},{"location":"Color.html#colorprojectilefirewave","title":"Color.ProjectileFireWave","text":"","tags":["Class"]},{"location":"Color.html#color-projectilefirewave","title":"Color ProjectileFireWave","text":"

Used for fire-pillar-wave-spawning ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Crackle.

","tags":["Class"]},{"location":"Color.html#colorprojectilehoming","title":"Color.ProjectileHoming","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehoming","title":"Color ProjectileHoming","text":"

Used for homing ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Psychic Maw.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushblue","title":"Color.ProjectileHushBlue","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushblue","title":"Color ProjectileHushBlue","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushgreen","title":"Color.ProjectileHushGreen","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushgreen","title":"Color ProjectileHushGreen","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushyellow","title":"Color.ProjectileHushYellow","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushyellow","title":"Color ProjectileHushYellow","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectileipecac","title":"Color.ProjectileIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-projectileipecac","title":"Color ProjectileIpecac","text":"

Used for explosive ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Gurgles.

","tags":["Class"]},{"location":"Color.html#colorprojectilemegasatanblack","title":"Color.ProjectileMegaSatanBlack","text":"","tags":["Class"]},{"location":"Color.html#color-projectilemegasatanblack","title":"Color ProjectileMegaSatanBlack","text":"

Used for black ProjectileVariant.PROJECTILE_NORMALs fired by Mega Satan.

","tags":["Class"]},{"location":"Color.html#colorprojectilemegasatanwhite","title":"Color.ProjectileMegaSatanWhite","text":"","tags":["Class"]},{"location":"Color.html#color-projectilemegasatanwhite","title":"Color ProjectileMegaSatanWhite","text":"

Used for white ProjectileVariant.PROJECTILE_NORMALs fired by Mega Satan.

","tags":["Class"]},{"location":"Color.html#colorprojectilesoy","title":"Color.ProjectileSoy","text":"","tags":["Class"]},{"location":"Color.html#color-projectilesoy","title":"Color ProjectileSoy","text":"

Used for soy ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Soy Creep.

","tags":["Class"]},{"location":"Color.html#colorprojectiletar","title":"Color.ProjectileTar","text":"","tags":["Class"]},{"location":"Color.html#color-projectiletar","title":"Color ProjectileTar","text":"

Used for tar ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Clot.

","tags":["Class"]},{"location":"Color.html#colortearalmond","title":"Color.TearAlmond","text":"","tags":["Class"]},{"location":"Color.html#color-tearalmond","title":"Color TearAlmond","text":"

Used for tears fired by players with Soy Milk.

","tags":["Class"]},{"location":"Color.html#colortearchocolate","title":"Color.TearChocolate","text":"","tags":["Class"]},{"location":"Color.html#color-tearchocolate","title":"Color TearChocolate","text":"

Used for tears fired by players with Chocolate Milk.

","tags":["Class"]},{"location":"Color.html#colortearcoal","title":"Color.TearCoal","text":"","tags":["Class"]},{"location":"Color.html#color-tearcoal","title":"Color TearCoal","text":"

Used for tears fired by players with A Lump of Coal.

","tags":["Class"]},{"location":"Color.html#colortearcommoncold","title":"Color.TearCommonCold","text":"","tags":["Class"]},{"location":"Color.html#color-tearcommoncold","title":"Color TearCommonCold","text":"

Used for poison tears fired by players with Common Cold.

","tags":["Class"]},{"location":"Color.html#colortearhoming","title":"Color.TearHoming","text":"","tags":["Class"]},{"location":"Color.html#color-tearhoming","title":"Color TearHoming","text":"

Used for homing tears fired by players with Spoon Bender.

","tags":["Class"]},{"location":"Color.html#colortearipecac","title":"Color.TearIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-tearipecac","title":"Color TearIpecac","text":"

Used for explosive tears fired by players with Ipecac.

","tags":["Class"]},{"location":"Color.html#colortearnumberone","title":"Color.TearNumberOne","text":"","tags":["Class"]},{"location":"Color.html#color-tearnumberone","title":"Color TearNumberOne","text":"

Used for tears fired by players with Number One.

","tags":["Class"]},{"location":"Color.html#colortearscorpio","title":"Color.TearScorpio","text":"","tags":["Class"]},{"location":"Color.html#color-tearscorpio","title":"Color TearScorpio","text":"

Used for poison tears fired by players with Scorpio.

","tags":["Class"]},{"location":"Color.html#colortearserpentskiss","title":"Color.TearSerpentsKiss","text":"","tags":["Class"]},{"location":"Color.html#color-tearserpentskiss","title":"Color TearSerpentsKiss","text":"

Used for poison tears fired by players with Serpent's Kiss.

","tags":["Class"]},{"location":"Color.html#colortearsoy","title":"Color.TearSoy","text":"","tags":["Class"]},{"location":"Color.html#color-tearsoy","title":"Color TearSoy","text":"

Used for tears fired by players with Soy Milk.

","tags":["Class"]},{"location":"Color.html#colorteartar","title":"Color.TearTar","text":"","tags":["Class"]},{"location":"Color.html#color-teartar","title":"Color TearTar","text":"

Used for tar tears fired by familiars like Little Gish.

","tags":["Class"]},{"location":"ColorModifier.html","title":"Class \"ColorModifier\"","text":"Info

This class can be accessed by using its constructor:

Example Code
local tintRed = ColorModifier(1,0,0,0.33,0,1)\n
","tags":["Class"]},{"location":"ColorModifier.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier","title":"ColorModifier ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-colormodifier-float-r-1-float-g-1-float-b-1-float-a-0-float-brightness-0-float-contrast-1","title":"ColorModifier ColorModifier ( float R = 1, float G = 1, float B = 1, float A = 0, float Brightness = 0, float Contrast = 1 )","text":"","tags":["Class"]},{"location":"ColorModifier.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"ColorModifier.html#a","title":"A","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-a","title":"float A","text":"Warning

This acts as a strength multiplier and must be non-zero in order for RGB to have any effect!

","tags":["Class"]},{"location":"ColorModifier.html#b","title":"B","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-b","title":"float B","text":"","tags":["Class"]},{"location":"ColorModifier.html#brightness","title":"Brightness","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-brightness","title":"float Brightness","text":"","tags":["Class"]},{"location":"ColorModifier.html#contrast","title":"Contrast","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-contrast","title":"float Contrast","text":"","tags":["Class"]},{"location":"ColorModifier.html#g","title":"G","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-g","title":"float G","text":"","tags":["Class"]},{"location":"ColorModifier.html#r","title":"R","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-r","title":"float R","text":"","tags":["Class"]},{"location":"ColorModifier.html#operators","title":"Operators","text":"","tags":["Class"]},{"location":"ColorModifier.html#__add","title":"__add ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__add-colormodifier-right","title":"ColorModifier __add ( ColorModifier right )","text":"

Defines the addition of two ColorModifier objects using the + operator.

","tags":["Class"]},{"location":"ColorModifier.html#__div","title":"__div ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__div-colormodifier-right","title":"ColorModifier __div ( ColorModifier right )","text":"

Defines the division of a ColorModifier object and a float using the / operator. The ColorModifier must be on the left side.

","tags":["Class"]},{"location":"ColorModifier.html#__eq","title":"__eq ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__eq-colormodifier-right","title":"ColorModifier __eq ( ColorModifier right )","text":"

Defines equal of two ColorModifier objects using the == operator.

","tags":["Class"]},{"location":"ColorModifier.html#__mul","title":"__mul ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__mul-colormodifier-right","title":"ColorModifier __mul ( ColorModifier right )","text":"

Defines the multiplication of a ColorModifier object and a float using the * operator. The ColorModifier must be on the left side.

","tags":["Class"]},{"location":"ColorModifier.html#__sub","title":"__sub ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__sub-colormodifier-right","title":"ColorModifier __sub ( ColorModifier right )","text":"

Defines the subtraction of two ColorModifier objects using the - operator.

","tags":["Class"]},{"location":"ColorParams.html","title":"Class \"ColorParams\"","text":"Info

This class can be accessed using its constructor:

Example Code
local fiveSecondRedColor = ColorParams(Color(1,0,0,1),255,150,false,false)\n
","tags":["Class"]},{"location":"ColorParams.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ColorParams.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"ColorParams.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getduration","title":"GetDuration ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getduration","title":"int GetDuration ( )","text":"

Defines the time in update frames that these parameters should last. Has no effect on how many frames are left, but does affect fadeout speed (calculated as Lifespan / Duration) if Fadeout is enabled.

","tags":["Class"]},{"location":"ColorParams.html#getfadeout","title":"GetFadeout ()","text":"","tags":["Class"]},{"location":"ColorParams.html#boolean-getfadeout","title":"boolean GetFadeout ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getlifespan","title":"GetLifespan ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getlifespan","title":"int GetLifespan ( )","text":"

Defines how many update frames are left before this expires. This is decremented by 1 each non-interpolation update at a rate of 30 per second. Altering this will directly effect how many frames are left before these parameters expire.

","tags":["Class"]},{"location":"ColorParams.html#getpriority","title":"GetPriority ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getpriority","title":"int GetPriority ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getshared","title":"GetShared ()","text":"","tags":["Class"]},{"location":"ColorParams.html#boolean-getshared","title":"boolean GetShared ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setcolor-color-color","title":"void SetColor ( Color Color )","text":"","tags":["Class"]},{"location":"ColorParams.html#setduration","title":"SetDuration ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setduration-int-duration","title":"void SetDuration ( int Duration )","text":"","tags":["Class"]},{"location":"ColorParams.html#setfadeout","title":"SetFadeout ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setfadeout-boolean-value","title":"void SetFadeout ( boolean Value )","text":"","tags":["Class"]},{"location":"ColorParams.html#setlifespan","title":"SetLifespan ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setlifespan-int-duration","title":"void SetLifespan ( int Duration )","text":"","tags":["Class"]},{"location":"ColorParams.html#setpriority","title":"SetPriority ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setpriority-int-priority","title":"void SetPriority ( int Priority )","text":"","tags":["Class"]},{"location":"ColorParams.html#setshared","title":"SetShared ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setfadeout-boolean-value_1","title":"void SetFadeout ( boolean Value )","text":"","tags":["Class"]},{"location":"Console.html","title":"Global Class \"Console\"","text":"Info

You can get this class by using the Console global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local cmdhistory = Console.GetCommandHistory()\n
","tags":["Global","Class"]},{"location":"Console.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Console.html#getcommandhistory","title":"GetCommandHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#string-getcommandhistory","title":"string[] GetCommandHistory ( )","text":"

Returns a table containing current command history.

","tags":["Global","Class"]},{"location":"Console.html#gethistory","title":"GetHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#string-gethistory","title":"string[] GetHistory ( )","text":"

Returns a table containing every previous entry printed to the console this run.

This is ordered last-to-first- the first entry will be the currently blank line awaiting user input, followed by the previous print, and so on. The last line will always be Repentance Console.

","tags":["Global","Class"]},{"location":"Console.html#pophistory","title":"PopHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-pophistory-int-amount-1","title":"void PopHistory ( int Amount = 1 )","text":"

Removes previous lines from history. Optionally, use amount to define how many entries should be removed. The line currently awaiting user input in the console counts as a part of the history, but this is already accounted for on the C++ side.

","tags":["Global","Class"]},{"location":"Console.html#printerror","title":"PrintError ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-printerror-string-error","title":"void PrintError ( string Error )","text":"

Prints an error to the console, errors display in red text.

","tags":["Global","Class"]},{"location":"Console.html#printwarning","title":"PrintWarning ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-printwarning-string-warning","title":"void PrintWarning ( string Warning )","text":"

Prints a warning to the console, warnings display in yellow text.

","tags":["Global","Class"]},{"location":"Console.html#registercommand","title":"RegisterCommand ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-registercommand-string-name-string-desc-string-helptext-boolean-showonmenu-autocompletetype-type","title":"void RegisterCommand ( string Name, string Desc, string HelpText, boolean ShowOnMenu, AutocompleteType Type )","text":"

Registers a command in the new console. These will show up in the new console's autocomplete.

  • Desc will show when typing the help command.
  • HelpText will show when typing help (Name).
  • AutocompleteType will make the command inherit that autocomplete type. If the command doesn't fit into any of the standard types, use CUSTOM combined with MC_CONSOLE_AUTOCOMPLETE to create a bespoke one for this command.
","tags":["Global","Class"]},{"location":"Console.html#registermacro","title":"RegisterMacro ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-registermacro-string-name-string-commands","title":"void RegisterMacro ( string Name, string[] Commands )","text":"

Registers a macro in the new console. These will show up in the new console's autocomplete for the macro command.

  • Commands is a table of strings containing the commands that should be executed, in order.
","tags":["Global","Class"]},{"location":"CostumeSpriteDesc.html","title":"Class \"CostumeSpriteDesc\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetCostumeSpriteDescs()
Example Code
local firstCostumeDesc = Isaac.GetPlayer():GetCostumeSpriteDescs()[1]\n
","tags":["Class"]},{"location":"CostumeSpriteDesc.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#canoverwritecolor","title":"CanOverwriteColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-canoverwritecolor","title":"boolean CanOverwriteColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getbodycolor","title":"GetBodyColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getbodycolor","title":"int GetBodyColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getheadcolor","title":"GetHeadColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getheadcolor","title":"int GetHeadColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getitemconfig","title":"GetItemConfig ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#itemconfig_item-getitemconfig","title":"ItemConfig_Item GetItemConfig ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getplayertype","title":"int GetPlayerType ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getpriority","title":"GetPriority ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getpriority","title":"int GetPriority ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getsprite","title":"GetSprite ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"

Returns sprite of associated to the costume.

","tags":["Class"]},{"location":"CostumeSpriteDesc.html#hasoverlay","title":"HasOverlay ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-hasoverlay","title":"boolean HasOverlay ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#hasskinalt","title":"HasSkinAlt ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-hasskinalt","title":"boolean HasSkinAlt ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isflying","title":"IsFlying ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isflying","title":"boolean IsFlying ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isitemanimplaying","title":"IsItemAnimPlaying ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isitemanimplaying","title":"boolean IsItemAnimPlaying ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isitemstateonly","title":"IsItemStateOnly ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isitemstateonly","title":"boolean IsItemStateOnly ( )","text":"","tags":["Class"]},{"location":"DailyChallenge.html","title":"Global Class \"DailyChallenge\"","text":"Info

You can get this class by using the DailyChallenge global table.

Example Code
local dailyparams = DailyChallenge.GetChallengeParams()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks.

","tags":["Global","Class"]},{"location":"DailyChallenge.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"DailyChallenge.html#getchallengeparams","title":"GetChallengeParams ()","text":"","tags":["Global","Class"]},{"location":"DailyChallenge.html#challengeparam-getchallengeparams","title":"ChallengeParam GetChallengeParams ( )","text":"","tags":["Global","Class"]},{"location":"Debug.html","title":"Global Class \"Debug\"","text":"Info

You can get this class by using the Debug global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local loadedFiles = Debug.ListLoadedFiles()\n
","tags":["Global","Class"]},{"location":"Debug.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Debug.html#forceunload","title":"ForceUnload ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#void-forceunload-string-modulename","title":"void ForceUnload ( string ModuleName )","text":"","tags":["Global","Class"]},{"location":"Debug.html#getsignature","title":"GetSignature ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#string-getsignature-int-address","title":"string GetSignature ( int Address )","text":"","tags":["Global","Class"]},{"location":"Debug.html#listloadedfiles","title":"ListLoadedFiles ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#string-listloadedfiles","title":"string[] ListLoadedFiles ( )","text":"

Returns a list of all files loaded into the LUA environment.

","tags":["Global","Class"]},{"location":"DebugRenderer.html","title":"Global Class \"DebugRenderer\"","text":"Info

You can get this class by using the DebugRenderer global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local shapeone = DebugRenderer.Get(1,true)\n
","tags":["Global","Class"]},{"location":"DebugRenderer.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"DebugRenderer.html#get","title":"Get ()","text":"","tags":["Global","Class"]},{"location":"DebugRenderer.html#shape-get-int-index-boolean-unknown","title":"Shape Get ( int Index, boolean Unknown)","text":"","tags":["Global","Class"]},{"location":"EntitiesSaveState.html","title":"Class \"EntitiesSaveState\"","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getb1","title":"GetB1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#boolean-getb1","title":"boolean GetB1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getb2","title":"GetB2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#boolean-getb2","title":"boolean GetB2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getdropseed","title":"GetDropSeed ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getdropseed","title":"int GetDropSeed ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getf1","title":"GetF1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#float-getf1","title":"float GetF1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getf2","title":"GetF2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#float-getf2","title":"float GetF2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getgridspawnidx","title":"GetGridSpawnIdx ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getgridspawnidx","title":"int GetGridSpawnIdx ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti1","title":"GetI1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti1","title":"int GetI1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti2","title":"GetI2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti2","title":"int GetI2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti3","title":"GetI3 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti3","title":"int GetI3 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti4","title":"GetI4 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti4","title":"int GetI4 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti5","title":"GetI5 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti5","title":"int GetI5 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti6","title":"GetI6 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti6","title":"int GetI6 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti7","title":"GetI7 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti7","title":"int GetI7 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti8","title":"GetI8 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti8","title":"int GetI8 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getinitseed","title":"GetInitSeed ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getinitseed","title":"int GetInitSeed ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getspawnertype","title":"GetSpawnerType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#entitytype-getspawnertype","title":"EntityType GetSpawnerType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getspawnervariant","title":"GetSpawnerVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getspawnervariant","title":"int GetSpawnerVariant ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getsubtype","title":"GetSubType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getsubtype","title":"int GetSubType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#entitytype-gettype","title":"EntityType GetType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getu1","title":"GetU1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getu1","title":"int GetU1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getvariant","title":"GetVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getvariant","title":"int GetVariant ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setb1","title":"SetB1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setb1-boolean-b1","title":"void SetB1 ( boolean B1 )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setb2","title":"SetB2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setb2-boolean-b2","title":"void SetB2 ( boolean B2 )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setf1","title":"SetF1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setf1-float-num","title":"void SetF1 ( float Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setf2","title":"SetF2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setf2-float-num","title":"void SetF2 ( float Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti1","title":"SetI1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti1-int-num","title":"void SetI1 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti2","title":"SetI2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti2-int-num","title":"void SetI2 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti3","title":"SetI3 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti3-int-num","title":"void SetI3 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti4","title":"SetI4 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti4-int-num","title":"void SetI4 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti5","title":"SetI5 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti5-int-num","title":"void SetI5 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti6","title":"SetI6 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti6-int-num","title":"void SetI6 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti7","title":"SetI7 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti7-int-num","title":"void SetI7 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti8","title":"SetI8 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti8-int-num","title":"void SetI8 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setpos","title":"SetPos ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setpos-vector-pos","title":"void SetPos ( Vector Pos )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setsubtype","title":"SetSubType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setsubtype-int-subtype","title":"void SetSubType ( int SubType )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#settype","title":"SetType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-settype-entitytype-type","title":"void SetType ( EntityType Type )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setu1","title":"SetU1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setu1-int-num","title":"void SetU1 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setvariant","title":"SetVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setvariant-int-variant","title":"void SetVariant ( int Variant )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html","title":"Class \"EntitiesSaveStateVector\"","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#get","title":"Get ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#entitiessavestate-get-int-index","title":"EntitiesSaveState Get ( int Index )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#getbytype","title":"GetByType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#entitiessavestate-getbytype-entitytype-type-int-variant-0-int-subtype-0","title":"EntitiesSaveState GetByType ( EntityType Type, int Variant = 0, int SubType = 0 )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#__len","title":"__len ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#int-__len","title":"int __len ( )","text":"","tags":["Class"]},{"location":"Entity.html","title":"Class \"Entity\"","text":"","tags":["Class"]},{"location":"Entity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Entity.html#addbaited","title":"AddBaited ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbaited-entityref-source-int-duration","title":"void AddBaited ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addbleeding","title":"AddBleeding ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbleeding-entityref-source-int-duration","title":"void AddBleeding ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addbrimstonemark","title":"AddBrimstoneMark ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbrimstonemark-entityref-source-int-duration","title":"void AddBrimstoneMark ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addice","title":"AddIce ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addice-entityref-source-int-duration","title":"void AddIce ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addknockback","title":"AddKnockback ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addknockback-entityref-source-vector-pushdirection-int-duration-boolean-takeimpactdamage","title":"void AddKnockback ( EntityRef Source, Vector PushDirection, int Duration, boolean TakeImpactDamage )","text":"Duration info

The Duration has a maximum of 0.5 seconds / 15 frames.

","tags":["Class"]},{"location":"Entity.html#addmagnetized","title":"AddMagnetized ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addmagnetized-entityref-source-int-duration","title":"void AddMagnetized ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addweakness","title":"AddWeakness ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addweakness-entityref-source-int-duration","title":"void AddWeakness ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#computestatuseffectduration","title":"ComputeStatusEffectDuration ()","text":"","tags":["Class"]},{"location":"Entity.html#int-computestatuseffectduration-int-initiallength-entityref-source","title":"int ComputeStatusEffectDuration ( int InitialLength, EntityRef Source )","text":"","tags":["Class"]},{"location":"Entity.html#copystatuseffects","title":"CopyStatusEffects ()","text":"","tags":["Class"]},{"location":"Entity.html#void-copystatuseffects-boolean-copycolor-true","title":"void CopyStatusEffects ( boolean CopyColor = true )","text":"","tags":["Class"]},{"location":"Entity.html#void-copystatuseffects-entity-target-boolean-copycolor-true","title":"void CopyStatusEffects ( Entity Target, boolean CopyColor = true )","text":"

If no Entity is specified, this will recursively copy status effects to all Child Entities.

","tags":["Class"]},{"location":"Entity.html#forcecollide","title":"ForceCollide ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-forcecollide-entity-entity-boolean-low","title":"boolean ForceCollide ( Entity Entity, boolean Low )","text":"","tags":["Class"]},{"location":"Entity.html#getbaitedcountdown","title":"GetBaitedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbaitedcountdown","title":"int GetBaitedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbleedingcountdown","title":"GetBleedingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbleedingcountdown","title":"int GetBleedingCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbossstatuseffectcooldown","title":"GetBossStatusEffectCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbossstatuseffectcooldown","title":"int GetBossStatusEffectCooldown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbrimstonemarkcountdown","title":"GetBrimstoneMarkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbrimstonemarkcountdown","title":"int GetBrimstoneMarkCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getburncountdown","title":"GetBurnCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getburncountdown","title":"int GetBurnCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getburndamagetimer","title":"GetBurnDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getburndamagetimer","title":"int GetBurnDamageTimer ( )","text":"","tags":["Class"]},{"location":"Entity.html#getcharmedcountdown","title":"GetCharmedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getcharmedcountdown","title":"int GetCharmedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getcollisioncapsule","title":"GetCollisionCapsule ()","text":"","tags":["Class"]},{"location":"Entity.html#capsule-getcollisioncapsule-vector-vector","title":"Capsule GetCollisionCapsule ( Vector Vector )","text":"","tags":["Class"]},{"location":"Entity.html#getcolorparams","title":"GetColorParams ()","text":"","tags":["Class"]},{"location":"Entity.html#colorparams-getcolorparams","title":"ColorParams[] GetColorParams ( )","text":"

Returns a table of all colors currently queued by SetColor alongside their parameters.

","tags":["Class"]},{"location":"Entity.html#getconfusioncountdown","title":"GetConfusionCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getconfusioncountdown","title":"int GetConfusionCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getdamagecountdown","title":"GetDamageCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getdamagecountdown","title":"int GetDamageCountdown ( )","text":"

If the entity recently took damage with the DAMAGE_COUNTDOWN DamageFlag, this returns how many more frames must pass before they can take damage with the DAMAGE_COUNTDOWN DamageFlag again.

Note that this is NOT the same as the player's invincibility frames (EntityPlayer:GetDamageCooldown()). The DAMAGE_COUNTDOWN DamageFlag and this associated countdown are typically used to control how rapidly an enemy will take damage from the few sources that uses that flag, such as the the collision damage effects from the \"My Little Unicorn\", \"The Nail\", and \"The Gamekid\".

","tags":["Class"]},{"location":"Entity.html#getdebugshape","title":"GetDebugShape ()","text":"","tags":["Class"]},{"location":"Entity.html#shape-getdebugshape-boolean-unknown","title":"Shape GetDebugShape ( boolean Unknown )","text":"","tags":["Class"]},{"location":"Entity.html#getentityconfigentity","title":"GetEntityConfigEntity ()","text":"","tags":["Class"]},{"location":"Entity.html#entityconfigentity-getentityconfigentity","title":"EntityConfigEntity GetEntityConfigEntity ( )","text":"

Returns the corresponding EntityConfig entry for this entity.

","tags":["Class"]},{"location":"Entity.html#getfearcountdown","title":"GetFearCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfearcountdown","title":"int GetFearCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getfiredamagecooldown","title":"GetFireDamageCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfiredamagecooldown","title":"int GetFireDamageCooldown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getfreezecountdown","title":"GetFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfreezecountdown","title":"int GetFreezeCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#gethitlistindex","title":"GetHitListIndex ()","text":"","tags":["Class"]},{"location":"Entity.html#int-gethitlistindex","title":"int GetHitListIndex ( )","text":"","tags":["Class"]},{"location":"Entity.html#geticecountdown","title":"GetIceCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-geticecountdown","title":"int GetIceCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getknockbackcountdown","title":"GetKnockbackCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getknockbackcountdown","title":"int GetKnockbackCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getknockbackdirection","title":"GetKnockbackDirection ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getknockbackdirection","title":"Vector GetKnockbackDirection ( )","text":"","tags":["Class"]},{"location":"Entity.html#getmagnetizedcountdown","title":"GetMagnetizedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getmagnetizedcountdown","title":"int GetMagnetizedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getmidasfreezecountdown","title":"GetMidasFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getmidasfreezecountdown","title":"int GetMidasFreezeCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getminecart","title":"GetMinecart ()","text":"","tags":["Class"]},{"location":"Entity.html#entitynpc-getminecart","title":"EntityNPC GetMinecart ( )","text":"

Returns the minecart the entity is riding.

Return

If the entity is not riding a minecart, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#getnullcapsule","title":"GetNullCapsule ()","text":"","tags":["Class"]},{"location":"Entity.html#capsule-getnullcapsule-string-nulllayername","title":"Capsule GetNullCapsule ( string NullLayerName )","text":"","tags":["Class"]},{"location":"Entity.html#getnulloffset","title":"GetNullOffset ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getnulloffset-string-nulllayername","title":"Vector GetNullOffset ( string NullLayerName )","text":"

Returns position of null layer mark. Alternatively returns Vector.Zero if the layer is not visible, has no frame available for the current animation, or for other unknown reasons.

","tags":["Class"]},{"location":"Entity.html#getpausetime","title":"GetPauseTime ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpausetime","title":"int GetPauseTime ( )","text":"","tags":["Class"]},{"location":"Entity.html#getpoisoncountdown","title":"GetPoisonCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpoisoncountdown","title":"int GetPoisonCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getpoisondamagetimer","title":"GetPoisonDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpoisondamagetimer","title":"int GetPoisonDamageTimer ( )","text":"","tags":["Class"]},{"location":"Entity.html#getposvel","title":"GetPosVel ()","text":"","tags":["Class"]},{"location":"Entity.html#posvel-getposvel","title":"PosVel GetPosVel ( )","text":"

Returns 2 values, both Vectors. 1st the Position of the entity, 2nd the Velocity of the entity.

","tags":["Class"]},{"location":"Entity.html#getpredictedtargetposition","title":"GetPredictedTargetPosition ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getpredictedtargetposition-entity-target-float-delay","title":"Vector GetPredictedTargetPosition ( Entity Target, float Delay )","text":"

The prediction is the target's current position plus their velocity multiplied by the distance between this and the target. Delay acts as a multiplier for how far ahead the prediction should be. For example, 1.0 would predict where the target's velocity would place them on the next update.

","tags":["Class"]},{"location":"Entity.html#getshadowsize","title":"GetShadowSize ()","text":"","tags":["Class"]},{"location":"Entity.html#float-getshadowsize","title":"float GetShadowSize ( )","text":"","tags":["Class"]},{"location":"Entity.html#getshrinkcountdown","title":"GetShrinkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getshrinkcountdown","title":"int GetShrinkCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getslowingcountdown","title":"GetSlowingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getslowingcountdown","title":"int GetSlowingCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getspeedmultiplier","title":"GetSpeedMultiplier ()","text":"","tags":["Class"]},{"location":"Entity.html#float-getspeedmultiplier","title":"float GetSpeedMultiplier ( )","text":"","tags":["Class"]},{"location":"Entity.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"Entity.html#entitytype-gettype","title":"EntityType GetType ( )","text":"","tags":["Class"]},{"location":"Entity.html#getweaknesscountdown","title":"GetWeaknessCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getweaknesscountdown","title":"int GetWeaknessCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#giveminecart","title":"GiveMinecart ()","text":"","tags":["Class"]},{"location":"Entity.html#entitynpc-giveminecart-vector-position-vector-velocity","title":"EntityNPC GiveMinecart ( Vector Position, Vector Velocity )","text":"","tags":["Class"]},{"location":"Entity.html#ignoreeffectfromfriendly","title":"IgnoreEffectFromFriendly ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-ignoreeffectfromfriendly-entityref-source","title":"boolean IgnoreEffectFromFriendly ( EntityRef Source )","text":"

Used to determine if this entity should ignore any status effect coming from Source.

","tags":["Class"]},{"location":"Entity.html#makebloodpoof","title":"MakeBloodPoof ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-makebloodpoof-vector-position-selfposition-color-color-default-float-scale-10","title":"EntityEffect MakeBloodPoof ( Vector Position = self.Position, Color Color = default, float Scale = 1.0 )","text":"Info

This function spawns two effects; the second will be the the Child of the one returned.

","tags":["Class"]},{"location":"Entity.html#makegroundpoof","title":"MakeGroundPoof ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-makegroundpoof-vector-position-selfposition-color-color-default-float-scale-10","title":"EntityEffect MakeGroundPoof ( Vector Position = self.Position, Color Color = default, float Scale = 1.0 )","text":"Info

This function spawns two effects; the second will be the the Child of the one returned.

","tags":["Class"]},{"location":"Entity.html#setbaitedcountdown","title":"SetBaitedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbaitedcountdown-int-countdown","title":"void SetBaitedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setbleedingcountdown","title":"SetBleedingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbleedingcountdown-int-countdown","title":"void SetBleedingCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setbossstatuseffectcooldown","title":"SetBossStatusEffectCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbossstatuseffectcooldown-int-cooldown","title":"void SetBossStatusEffectCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"Entity.html#setbrimstonemarkcountdown","title":"SetBrimstoneMarkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbrimstonemarkcountdown-int-countdown","title":"void SetBrimstoneMarkCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setburncountdown","title":"SetBurnCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setburncountdown-int-countdown","title":"void SetBurnCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setburndamagetimer","title":"SetBurnDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setburndamagetimer-int-timer","title":"void SetBurnDamageTimer ( int Timer )","text":"","tags":["Class"]},{"location":"Entity.html#setcharmedcountdown","title":"SetCharmedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setcharmedcountdown-int-countdown","title":"void SetCharmedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setcolorparams","title":"SetColorParams ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setcolorparams-colorparams-params","title":"void SetColorParams ( ColorParams[] Params )","text":"

Sets colors to be used alongside their parameters.

","tags":["Class"]},{"location":"Entity.html#setconfusioncountdown","title":"SetConfusionCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setconfusioncountdown-int-countdown","title":"void SetConfusionCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setdamagecountdown","title":"SetDamageCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setdamagecountdown-int-countdown","title":"void SetDamageCountdown ( int countdown )","text":"

Sets how many frames must pass before the entity can take damage that has the DAMAGE_COUNTDOWN DamageFlag.

Note that this is NOT the same as the player's invincibility frames (EntityPlayer:GetDamageCooldown()). The DAMAGE_COUNTDOWN DamageFlag and this associated countdown are typically used to control how rapidly an enemy will take damage from the few sources that uses that flag, such as the the collision damage effects from the \"My Little Unicorn\", \"The Nail\", and \"The Gamekid\".

","tags":["Class"]},{"location":"Entity.html#setdead","title":"SetDead ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setdead-boolean-isdead","title":"void SetDead ( boolean IsDead )","text":"","tags":["Class"]},{"location":"Entity.html#setfearcountdown","title":"SetFearCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfearcountdown-int-countdown","title":"void SetFearCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setfiredamagecooldown","title":"SetFireDamageCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfiredamagecooldown-int-cooldown","title":"void SetFireDamageCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"Entity.html#setfreezecountdown","title":"SetFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfreezecountdown-int-countdown","title":"void SetFreezeCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#seticecountdown","title":"SetIceCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-seticecountdown-int-countdown","title":"void SetIceCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setinvincible","title":"SetInvincible ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setinvincible-boolean-isinvincible","title":"void SetInvincible ( boolean IsInvincible )","text":"","tags":["Class"]},{"location":"Entity.html#setknockbackcountdown","title":"SetKnockbackCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setknockbackcountdown-int-countdown","title":"void SetKnockbackCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setknockbackdirection","title":"SetKnockbackDirection ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setknockbackdirection-vector-direction","title":"void SetKnockbackDirection ( Vector Direction )","text":"","tags":["Class"]},{"location":"Entity.html#setmagnetizedcountdown","title":"SetMagnetizedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setmagnetizedcountdown-int-countdown","title":"void SetMagnetizedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setmidasfreezecountdown","title":"SetMidasFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setmidasfreezecountdown-int-countdown","title":"void SetMidasFreezeCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setpausetime","title":"SetPauseTime ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpausetime-int-duration","title":"void SetPauseTime ( int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#setpoisoncountdown","title":"SetPoisonCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpoisoncountdown-int-countdown","title":"void SetPoisonCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setpoisondamagetimer","title":"SetPoisonDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpoisondamagetimer-int-timer","title":"void SetPoisonDamageTimer ( int Timer )","text":"","tags":["Class"]},{"location":"Entity.html#setshadowsize","title":"SetShadowSize ()","text":"","tags":["Class"]},{"location":"Entity.html#float-setshadowsize-float-size","title":"float SetShadowSize ( float Size )","text":"","tags":["Class"]},{"location":"Entity.html#setshrinkcountdown","title":"SetShrinkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setshrinkcountdown-int-countdown","title":"void SetShrinkCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setslowingcountdown","title":"SetSlowingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setslowingcountdown-int-countdown","title":"void SetSlowingCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setspeedmultiplier","title":"SetSpeedMultiplier ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setspeedmultiplier-float-amount","title":"void SetSpeedMultiplier ( float Amount )","text":"","tags":["Class"]},{"location":"Entity.html#setweaknesscountdown","title":"SetWeaknessCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setweaknesscountdown-int-countdown","title":"void SetWeaknessCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#spawnbloodeffect","title":"SpawnBloodEffect ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-spawnbloodeffect-int-subtype-0-vector-position-selfposition-vector-offset-vectorzero-color-color-default-vector-velocity-vectorzero","title":"EntityEffect SpawnBloodEffect ( int SubType = 0, Vector position = self.Position, Vector Offset = Vector.Zero, Color Color = Default, Vector Velocity = Vector.Zero )","text":"","tags":["Class"]},{"location":"Entity.html#spawnwaterimpacteffects","title":"SpawnWaterImpactEffects ()","text":"","tags":["Class"]},{"location":"Entity.html#void-spawnwaterimpacteffects-vector-position-vector-velocity-vectorzero-float-strength","title":"void SpawnWaterImpactEffects ( Vector Position, Vector Velocity = Vector.Zero, float Strength )","text":"Warning

This function will only spawn effects if the Room's water amount is above or equal to 0.2.

","tags":["Class"]},{"location":"Entity.html#teleporttorandomposition","title":"TeleportToRandomPosition ()","text":"","tags":["Class"]},{"location":"Entity.html#void-teleporttorandomposition","title":"void TeleportToRandomPosition ( )","text":"","tags":["Class"]},{"location":"Entity.html#todelirium","title":"ToDelirium ()","text":"","tags":["Class"]},{"location":"Entity.html#entitydelirium-todelirium","title":"EntityDelirium ToDelirium ( )","text":"

Convert an Entity userdata to an EntityDelirium userdata. The conversion will only succeed if the source entity is an instance of Delirium (in its normal form or in a transformed form).

Return behavior

If the conversion fails, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#toslot","title":"ToSlot ()","text":"","tags":["Class"]},{"location":"Entity.html#entityslot-toslot","title":"EntitySlot ToSlot ( )","text":"

Used to cast an Entity object to an EntitySlot object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#trythrow","title":"TryThrow ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-trythrow-entityref-source-vector-throwdirection-float-force","title":"boolean TryThrow ( EntityRef Source, Vector ThrowDirection, float Force )","text":"","tags":["Class"]},{"location":"EntityBomb.html","title":"Class \"EntityBomb\"","text":"","tags":["Class"]},{"location":"EntityBomb.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityBomb.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityBomb.html#getcostumelayersprite","title":"GetCostumeLayerSprite ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#sprite-getcostumelayersprite-bombcostumelayer-layerid","title":"Sprite GetCostumeLayerSprite ( BombCostumeLayer LayerID )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getexplosioncountdown","title":"GetExplosionCountdown ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#int-getexplosioncountdown","title":"int GetExplosionCountdown ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getfallingspeed","title":"GetFallingSpeed ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getfallingspeed","title":"float GetFallingSpeed ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getheight","title":"GetHeight ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getheight","title":"float GetHeight ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getscale","title":"float GetScale ( )","text":"

Used to apply animation set for bomb costume.

","tags":["Class"]},{"location":"EntityBomb.html#isloadingcostumes","title":"IsLoadingCostumes ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#boolean-isloadingcostumes","title":"boolean IsLoadingCostumes ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setfallingspeed","title":"SetFallingSpeed ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setfallingspeed-float-speed","title":"void SetFallingSpeed ( float Speed )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setheight","title":"SetHeight ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setheight-float-height","title":"void SetHeight ( float Height )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setloadcostumes","title":"SetLoadCostumes ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setloadcostumes-boolean-load-true","title":"void SetLoadCostumes ( boolean Load = true )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setscale","title":"SetScale ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setscale-float-scale","title":"void SetScale ( float Scale )","text":"

Should be used with SetLoadCostumes method.

","tags":["Class"]},{"location":"EntityBomb.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-updatedirtcolor","title":"void UpdateDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityConfig.html","title":"Global Class \"EntityConfig\"","text":"Info

These functions can be accessed via the EntityConfig global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local gaperConfig = EntityConfig.GetEntity(EntityType.ENTITY_GAPER)\n
","tags":["Global","Class"]},{"location":"EntityConfig.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#getentity","title":"GetEntity ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#entityconfigentity-getentity-entitytype-type-int-variant-1-int-subtype-1","title":"EntityConfigEntity GetEntity ( EntityType Type, int Variant = -1, int SubType = -1 )","text":"

Returns nil if no entity exists with the specified Type.

Providing Variant and/or SubType is optional. If a non-existent Variant/SubType is requested, returns the base version of that entity.

","tags":["Global","Class"]},{"location":"EntityConfig.html#getmaxplayertype","title":"GetMaxPlayerType ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#int-getmaxplayertype","title":"int GetMaxPlayerType ( )","text":"

Returns the highest PlayerType currently assigned to a valid character.

","tags":["Global","Class"]},{"location":"EntityConfig.html#getplayer","title":"GetPlayer ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#entityconfigplayer-getplayer-playertype-playertype","title":"EntityConfigPlayer GetPlayer ( PlayerType PlayerType )","text":"

Returns nil if no character exists with the specified PlayerType.

","tags":["Global","Class"]},{"location":"EntityConfigEntity.html","title":"Class \"EntityConfigEntity\"","text":"Info

You can get this class by using the following functions:

  • EntityConfig.GetEntity()
Example Code
local gaperConfig = EntityConfig.GetEntity(EntityType.ENTITY_GAPER)\n
","tags":["Class"]},{"location":"EntityConfigEntity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canbechampion","title":"CanBeChampion ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canbechampion","title":"boolean CanBeChampion ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canbererolledinto","title":"CanBeRerolledInto ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canbererolledinto","title":"boolean CanBeRerolledInto ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canshutdoors","title":"CanShutDoors ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canshutdoors","title":"boolean CanShutDoors ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getanm2path","title":"GetAnm2Path ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getanm2path","title":"string GetAnm2Path ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbasehp","title":"GetBaseHP ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getbasehp","title":"float GetBaseHP ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryanimation","title":"GetBestiaryAnimation ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryanimation","title":"string GetBestiaryAnimation ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryanm2path","title":"GetBestiaryAnm2Path ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryanm2path","title":"string GetBestiaryAnm2Path ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryflooralt","title":"GetBestiaryFloorAlt ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryflooralt","title":"string GetBestiaryFloorAlt ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryoffset","title":"GetBestiaryOffset ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#const-vector-getbestiaryoffset","title":"const Vector GetBestiaryOffset ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryoverlay","title":"GetBestiaryOverlay ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryoverlay","title":"string GetBestiaryOverlay ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryscale","title":"GetBestiaryScale ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getbestiaryscale","title":"float GetBestiaryScale ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbossid","title":"GetBossID ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getbossid","title":"int GetBossID ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisiondamage","title":"GetCollisionDamage ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getcollisiondamage","title":"float GetCollisionDamage ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisioninterval","title":"GetCollisionInterval ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getcollisioninterval","title":"int GetCollisionInterval ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisionradius","title":"GetCollisionRadius ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getcollisionradius","title":"float GetCollisionRadius ( )","text":"

Also known as \"Size\".

","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisionradiusmultiplier","title":"GetCollisionRadiusMultiplier ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#const-vector-getcollisionradiusmultiplier","title":"const Vector GetCollisionRadiusMultiplier ( )","text":"

Also known as \"SizeMulti\".

","tags":["Class"]},{"location":"EntityConfigEntity.html#getcustomtags","title":"GetCustomTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#table-getcustomtags","title":"table GetCustomTags ( )","text":"

Returns a table containing all the strings specified in the entity's customtags attribute in entities2.xml. Tags are always provided in all lowercase. See entities2.xml for more information on customtags.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getentitytags","title":"GetEntityTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getentitytags","title":"int GetEntityTags ( )","text":"

Returns the bitmask of EntityTags for this entity.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getfriction","title":"GetFriction ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getfriction","title":"float GetFriction ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getgibflags","title":"GetGibFlags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgibflags","title":"int GetGibFlags ( )","text":"

Returns the bitmask of GibFlags for this entity.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getgibsamount","title":"GetGibsAmount ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgibsamount","title":"int GetGibsAmount ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getgridcollisionpoints","title":"GetGridCollisionPoints ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgridcollisionpoints","title":"int GetGridCollisionPoints ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getmass","title":"GetMass ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getmass","title":"float GetMass ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getmodname","title":"GetModName ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getmodname","title":"string GetModName ( )","text":"

Name string of the mod that entity is from.

Returns nil for vanilla entities.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getportraitid","title":"GetPortraitID ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getportraitid","title":"int GetPortraitID ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getshadowsize","title":"GetShadowSize ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getshadowsize","title":"float GetShadowSize ( )","text":"

Note that this value is the \"shadowSize\" specified in the XML divided by 100.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getshieldstrength","title":"GetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getshieldstrength","title":"float GetShieldStrength ( )","text":"

The amount of armor the entity has.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getstagehp","title":"GetStageHP ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getstagehp","title":"float GetStageHP ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getsubtype","title":"GetSubType ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getsubtype","title":"int GetSubType ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-gettype","title":"int GetType ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getvariant","title":"GetVariant ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getvariant","title":"int GetVariant ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#hascustomtag","title":"HasCustomTag ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hascustomtag-string-tag","title":"boolean HasCustomTag ( string tag )","text":"

Returns true if the entity has the provided string specified in its customtags attribute in entities2.xml. Capitalization does not matter. See entities2.xml for more information on customtags.

","tags":["Class"]},{"location":"EntityConfigEntity.html#hasentitytags","title":"HasEntityTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasentitytags-int-tags","title":"boolean HasEntityTags ( int Tags )","text":"

Returns true if the entity has all EntityTags specified in the provided bitset.

","tags":["Class"]},{"location":"EntityConfigEntity.html#hasflooralts","title":"HasFloorAlts ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasflooralts","title":"boolean HasFloorAlts ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#hasgibflags","title":"HasGibFlags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasgibflags-int-flags","title":"boolean HasGibFlags ( int Flags )","text":"

Returns true if the entity has all GibFlags specified in the provided bitset.

","tags":["Class"]},{"location":"EntityConfigEntity.html#isboss","title":"IsBoss ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-isboss","title":"boolean IsBoss ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html","title":"Class \"EntityConfigPlayer\"","text":"Info

You can get this class by using the following functions:

  • EntityConfig.GetPlayer()
Example Code
local cainConfig = EntityConfig.GetPlayer(PlayerType.PLAYER_CAIN)\n
","tags":["Class"]},{"location":"EntityConfigPlayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#canshoot","title":"CanShoot ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-canshoot","title":"boolean CanShoot ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getachievementid","title":"GetAchievementID ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#achievement-getachievementid","title":"Achievement GetAchievementID ( )","text":"

Returns -1 if the character is not locked behind a vanilla achievement (or -2 for \"hidden\" vanilla characters).

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbirthrightdescription","title":"GetBirthrightDescription ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getbirthrightdescription","title":"string GetBirthrightDescription ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getblackhearts","title":"GetBlackHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getblackhearts","title":"int GetBlackHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbombs","title":"GetBombs ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getbombs","title":"int GetBombs ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbrokenhearts","title":"GetBrokenHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getbrokenhearts","title":"int GetBrokenHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcard","title":"GetCard ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#card-getcard","title":"Card GetCard ( )","text":"

Returns 0 if the character does not start with any vanilla card.

Does not include starting cards obtained via unlocks.

Does not include cards added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcoins","title":"GetCoins ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getcoins","title":"int GetCoins ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcollectibles","title":"GetCollectibles ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#collectibletype-getcollectibles","title":"CollectibleType[] GetCollectibles ( )","text":"

Returns a table of CollectibleTypes for the character's starting items.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcostumeid","title":"GetCostumeID ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getcostumeid","title":"int GetCostumeID ( )","text":"

Returns -1 if the character does not have any XML-defined starting costume (like Maggy's hair).

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcostumesuffix","title":"GetCostumeSuffix ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getcostumesuffix","title":"string GetCostumeSuffix ( )","text":"

Directory suffix used for character-specific costume sprites.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getextraportraitpath","title":"GetExtraPortraitPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getextraportraitpath","title":"string GetExtraPortraitPath ( )","text":"

Path to a .anm2 file displayed on top of the character's level transition and boss VS screen portrait.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getkeys","title":"GetKeys ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getkeys","title":"int GetKeys ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedcontrolssprite","title":"GetModdedControlsSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedcontrolssprite","title":"Sprite GetModdedControlsSprite ( )","text":"

Returns the Sprite used for a modded character's starting room controls.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedcoopmenusprite","title":"GetModdedCoopMenuSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedcoopmenusprite","title":"Sprite GetModdedCoopMenuSprite ( )","text":"

Returns the Sprite used for a modded character's icon in the co-op character select wheel.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedgameoversprite","title":"GetModdedGameOverSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedgameoversprite","title":"Sprite GetModdedGameOverSprite ( )","text":"

Returns the Sprite used for a modded character's game over screen (ie, their name).

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedmenubackgroundsprite","title":"GetModdedMenuBackgroundSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedmenubackgroundsprite","title":"Sprite GetModdedMenuBackgroundSprite ( )","text":"

Returns the Sprite used for a modded character's character select screen.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedmenuportraitsprite","title":"GetModdedMenuPortraitSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedmenuportraitsprite","title":"Sprite GetModdedMenuPortraitSprite ( )","text":"

Returns the Sprite used for a modded character's character select portrait.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getnameimagepath","title":"GetNameImagePath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getnameimagepath","title":"string GetNameImagePath ( )","text":"

Path to the PNG file used for the character's name on the boss VS screen.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getpill","title":"GetPill ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#pillcolor-getpill","title":"PillColor GetPill ( )","text":"

Does not include starting pills obtained via unlocks.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getplayertype","title":"int GetPlayerType ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getpocketactive","title":"GetPocketActive ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#collectibletype-getpocketactive","title":"CollectibleType GetPocketActive ( )","text":"

Does not include items added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getportraitpath","title":"GetPortraitPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getportraitpath","title":"string GetPortraitPath ( )","text":"

Path to the PNG file used for the character's main level transition and boss VS screen portrait.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getredhearts","title":"GetRedHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getredhearts","title":"int GetRedHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getskincolor","title":"GetSkinColor ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#skincolor-getskincolor","title":"SkinColor GetSkinColor ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getskinpath","title":"GetSkinPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getskinpath","title":"string GetSkinPath ( )","text":"

Path to the PNG file used for the character's primary sprite sheet.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getsoulhearts","title":"GetSoulHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getsoulhearts","title":"int GetSoulHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#gettaintedcounterpart","title":"GetTaintedCounterpart ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#entityconfigplayer-gettaintedcounterpart","title":"EntityConfigPlayer GetTaintedCounterpart ( )","text":"

For non-tainted characters, returns their tainted counterpart, or returns nil if there is none.

For tainted characters, returns their non-tainted counterpart.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#gettrinket","title":"GetTrinket ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#trinkettype-gettrinket","title":"TrinketType GetTrinket ( )","text":"

Does not include starting trinkets obtained via unlocks.

Does not include trinkets added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#ishidden","title":"IsHidden ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-ishidden","title":"boolean IsHidden ( )","text":"

Returns true if the character is not visible/selectable from the character select screen.

Doesn't include characters who are only hidden until unlocked.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#istainted","title":"IsTainted ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-istainted","title":"boolean IsTainted ( )","text":"","tags":["Class"]},{"location":"EntityDelirium.html","title":"Class \"EntityDelirium\"","text":"","tags":["Class"]},{"location":"EntityDelirium.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityDelirium.html#getteleportationtimer","title":"GetTeleportationTimer ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-getteleportationtimer","title":"int GetTeleportationTimer ( )","text":"

Return the number of frames before Delirium teleports.

","tags":["Class"]},{"location":"EntityDelirium.html#isredmode","title":"IsRedMode ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#boolean-isredmode","title":"boolean IsRedMode ( )","text":"

Returns a boolean indicating if the red mode is activated or not.

About red mode

Red mode is mechanic in the Delirium fight where Delirium's sprite is tinted red. While this mode is active, Delirium's movement speed is increased in a way that cannot be observed through the modding API as it occurs outside of the update callbacks.

","tags":["Class"]},{"location":"EntityDelirium.html#setredmode","title":"SetRedMode ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-setredmode-boolean-on","title":"void SetRedMode ( boolean On )","text":"

Enable or disable red mode according to the parameter on.

About red mode

Please refer to the note in the documentation of IsRedMode for an explanation of red mode.

","tags":["Class"]},{"location":"EntityDelirium.html#setteleportationtimer","title":"SetTeleportationTimer ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-setteleportationtimer-int-timer","title":"void SetTeleportationTimer ( int Timer )","text":"

Set the number of frames before Delirium teleports. Negative values are not allowed.

","tags":["Class"]},{"location":"EntityDelirium.html#transform","title":"Transform ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-transform-int-type-int-variant-0","title":"void Transform ( int Type, int Variant = 0 )","text":"

Transform Delirium into the entity with the specified type and variant.

Warning

The validation of the type and variant is only as strong as the validation performed by the game when it attempts to transform Delirium. In other words, this behaves exactly as if the game itself attempted to transform Delirium, with everything it implies if the specified entity is invalid.

Warning

In order to properly handle transformations, we use the native transformation mechanic of Delirium. As such, the transformation will not be effective immediately, but instead on the next frame. Internally, this function forces the transformation timer to 1 frame and lets Delirium's AI update as needed.

","tags":["Class"]},{"location":"EntityDelirium.html#attributes","title":"Attributes","text":"","tags":["Class"]},{"location":"EntityDelirium.html#angle","title":"Angle","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int8-angle","title":"int8 Angle","text":"

Angle of Delirium's projectiles.

Geometric system

This variable is an eight bit integers, so the allowed values are the integers from 0 to 255 (inclusive). You can use a linear interpolation between the [0: 255] and the [0: 360[ ranges in order to convert angles in degree to this system.

WTH

All of Delirium bullet hell patterns can be influenced by this variable. Unlike most bosses, Delirium does not aim its projectiles at the player, instead spawning them in random directions (with some control to prevent \"absurd\" patterns). For instance, if Delirium spawns eight tears around it, and Angle is set to 0, the 8 tears will fire in the cardinal and ordinal directions. If Angle is set to 32, all tears will be rotated by 45\u00b0. No, I have no idea why Nicalis used an eight bits integer to represent an angle (analyzing the memory layout of Delirium shows that it would have made no difference using a 32 bits float).

","tags":["Class"]},{"location":"EntityDelirium.html#attackid","title":"AttackID","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-attackid","title":"int AttackID","text":"

Internal I1 value used by Delirium to identify the bullet hell pattern it is currently executing.

","tags":["Class"]},{"location":"EntityDelirium.html#bosstype","title":"BossType","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-bosstype","title":"int BossType","text":"

EntityType of the boss Delirium is currently transformed as.

","tags":["Class"]},{"location":"EntityDelirium.html#bossvariant","title":"BossVariant","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-bossvariant","title":"int BossVariant","text":"

Variant of the boss Delirium is currently transformed as.

","tags":["Class"]},{"location":"EntityDelirium.html#cycle","title":"Cycle","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-cycle","title":"int Cycle","text":"

Internal I2 value used by Delirium to identify whether red mode is activated and the amount of time before a teleportation. You should not use this variable directly and instead rely on the GetTeleportationTimer, SetTeleportationTimer, IsRedMode and SetRedMode functions instead. The only reason to use this variable directly is if you want to freeze it to a certain value that you know will do exactly what you want (for instance disable red mode and prevent teleportation).

Format of the variable

The variable is 32 bits wide and is structured as follows: bits 0 to 6 (inclusive) are unknown, bits 7 to 14 (inclusive) indicate whether red mode is active (it is active if any of the bits is set) and bits 15 to 25 (inclusive) are the teleportation timer.

Preservation of state

The aforementioned methods used to manipulate this variable preserve the bits of the variable that are irrelevant to the operation performed. For instance, enabling or disabling red mode will not change the transformation timer.

","tags":["Class"]},{"location":"EntityDelirium.html#remainingattacks","title":"RemainingAttacks","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-remainingattacks","title":"int RemainingAttacks","text":"

Number of attacks remaining before Delirium transforms into another boss.

About remaining attacks

This variable is Nicalis answer to prevent Delirium from performing too many attacks as a single boss before transforming. Under certain conditions, the game will decrement this value by 1. If it reaches 0, Delirium transforms regardless of the transformation timer. The conditions that must be met (simultaneously) are: the StateFrame variable must be 1 during the current frame, and the State variable must be set to any of the attack states. This is the reason why Delirium will sometimes initiate an attack as a boss and immediately transform. You can refer to the complete breakdown of bosses AI configurations to see the AI configuration of each attack.

","tags":["Class"]},{"location":"EntityDelirium.html#stated","title":"StateD","text":"","tags":["Class"]},{"location":"EntityDelirium.html#npcstate-stated","title":"NpcState StateD","text":"

Internal State of Delirium.

","tags":["Class"]},{"location":"EntityDelirium.html#transformationtimer","title":"TransformationTimer","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-transformationtimer","title":"int TransformationTimer","text":"

Get or set the amount of time before Delirium transforms into another boss.

On transformations

Delirium can transform in two situations: either this value reaches 0, or the value of RemainingAttacks reaches 0. Refer to the documentation of RemainingAttacks for a more detailed explanation of that mechanic.

","tags":["Class"]},{"location":"EntityEffect.html","title":"Class \"EntityEffect\"","text":"","tags":["Class"]},{"location":"EntityEffect.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityEffect.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityEffect.html#createlight","title":"CreateLight ()","text":"","tags":["Class"]},{"location":"EntityEffect.html#entityeffect-createlight-vector-position-float-scale-randomfloat00-10-int-lifespan-1-int-state-6-color-color-default","title":"EntityEffect CreateLight ( Vector Position, float Scale = RandomFloat[0.0-1.0], int Lifespan = -1, int State = 6, Color Color = Default)","text":"Warning

This is a static function and must be called via EntityEffect.CreateLight.

","tags":["Class"]},{"location":"EntityFamiliar.html","title":"Class \"EntityFamiliar\"","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityFamiliar.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getdirtcolor","title":"GetDirtColor ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#color-getdirtcolor","title":"Color GetDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getfollowerpriority","title":"GetFollowerPriority ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#followerpriority-getfollowerpriority","title":"FollowerPriority GetFollowerPriority ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getpathfinder","title":"GetPathFinder ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#pathfinder-getpathfinder","title":"PathFinder GetPathFinder ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getweapon","title":"GetWeapon ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#weapon-getweapon","title":"Weapon GetWeapon ( )","text":"

Returns nil for familiars that don't mimic the player's attacks (Incubus, etc).

","tags":["Class"]},{"location":"EntityFamiliar.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#tryaimatmarkedtarget","title":"TryAimAtMarkedTarget ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#vector-tryaimatmarkedtarget-vector-aimdirection-direction-direction","title":"Vector TryAimAtMarkedTarget ( Vector AimDirection, Direction Direction)","text":"

Returns nil if unsuccessful.

","tags":["Class"]},{"location":"EntityFamiliar.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#void-updatedirtcolor","title":"void UpdateDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityKnife.html","title":"Class \"EntityKnife\"","text":"","tags":["Class"]},{"location":"EntityKnife.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityKnife.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityKnife.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityKnife.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html","title":"Class \"EntityLaser\"","text":"","tags":["Class"]},{"location":"EntityLaser.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityLaser.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"EntityLaser.html#homingtype","title":"HomingType","text":"","tags":["Class"]},{"location":"EntityLaser.html#int-homingtype","title":"int HomingType","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"EntityLaser.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityLaser.html#getdisablefollowparent","title":"GetDisableFollowParent ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getdisablefollowparent","title":"boolean GetDisableFollowParent ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#int-gethitlist","title":"int GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getonehit","title":"GetOneHit ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getonehit","title":"boolean GetOneHit ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#float-getscale","title":"float GetScale ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getshrink","title":"GetShrink ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getshrink","title":"boolean GetShrink ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-gettimeout","title":"boolean GetTimeout ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#resetspritescale","title":"ResetSpriteScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-resetspritescale","title":"void ResetSpriteScale ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#rotatetoangle","title":"RotateToAngle ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-rotatetoangle-float-angle-float-speed-80","title":"void RotateToAngle ( float Angle, float Speed = 8.0 )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setdisablefollowparent","title":"SetDisableFollowParent ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setdisablefollowparent-boolean-value","title":"void SetDisableFollowParent ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setscale","title":"SetScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setscale-float-value","title":"void SetScale ( float Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setshrink","title":"SetShrink ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setshrink-boolean-value","title":"void SetShrink ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-settimeout-boolean-value","title":"void SetTimeout ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityNPC.html","title":"Class \"EntityNPC\"","text":"","tags":["Class"]},{"location":"EntityNPC.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityNPC.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"EntityNPC.html#playsound","title":"PlaySound ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-playsound-int-id-float-volume-10-int-framedelay-2-boolean-loop-true-float-pitch-10","title":"void PlaySound ( int ID, float Volume = 1.0, int FrameDelay = 2, boolean Loop = true, float Pitch = 1.0 )","text":"

All arguments besides ID are now optional.

","tags":["Class"]},{"location":"EntityNPC.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityNPC.html#firebossprojectilesex","title":"FireBossProjectilesEx ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-firebossprojectilesex-int-numprojectiles-vector-targetpos-float-trajectorymodifier-projectileparams-params","title":"EntityProjectile[] FireBossProjectilesEx ( int NumProjectiles, Vector TargetPos, float TrajectoryModifier, ProjectileParams Params )","text":"

Same as FireBossProjectiles, but returns a table containing the list of spawned projectiles.

","tags":["Class"]},{"location":"EntityNPC.html#firegridentity","title":"FireGridEntity ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-firegridentity-sprite-gridentitysprite-gridentitydesc-gridentitydesc-vector-velocity-backdroptype-backdrop-backdroptypebasement","title":"EntityProjectile FireGridEntity ( Sprite GridEntitySprite, GridEntityDesc GridEntityDesc, Vector Velocity, BackdropType Backdrop = BackdropType.BASEMENT )","text":"","tags":["Class"]},{"location":"EntityNPC.html#fireprojectilesex","title":"FireProjectilesEx ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-fireprojectilesex-vector-position-vector-velocity-projectilesmode-mode-projectileparams-params","title":"EntityProjectile[] FireProjectilesEx (Vector Position, Vector Velocity, ProjectilesMode Mode, ProjectileParams Params)","text":"

Same as FireProjectiles, but returns a table containing the list of spawned projectiles.

","tags":["Class"]},{"location":"EntityNPC.html#getcontrollerid","title":"GetControllerId ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-getcontrollerid","title":"int GetControllerId ( )","text":"

Returns the ControllerId for the NPC, which indicates which player is controlling it. Will return -1 when not being controlled by any player.

","tags":["Class"]},{"location":"EntityNPC.html#getdirtcolor","title":"GetDirtColor ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#color-getdirtcolor","title":"Color GetDirtColor ( )","text":"

Returns the dynamic dirt color of the entity. This lets entities like Nightcrawler blend in to the environment.

","tags":["Class"]},{"location":"EntityNPC.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#getshieldstrength","title":"GetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#float-getshieldstrength","title":"float GetShieldStrength ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#setcontrollerid","title":"SetControllerId ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-setcontrollerid-int-controllerid","title":"int SetControllerId ( int ControllerId )","text":"

Sets the ControllerId for the NPC, which indicates which player will control it. Set it to -1 for no player controls(back to normal behaviour).

","tags":["Class"]},{"location":"EntityNPC.html#setshieldstrength","title":"SetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-setshieldstrength-float-strength","title":"void SetShieldStrength ( float Strength )","text":"","tags":["Class"]},{"location":"EntityNPC.html#shootmaggotprojectile","title":"ShootMaggotProjectile ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-shootmaggotprojectile-vector-target-float-velocity-240-float-yoffset-80","title":"EntityNPC ShootMaggotProjectile ( Vector Target, float Velocity = -24.0, float YOffset = -8.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#spawnbloodcloud","title":"SpawnBloodCloud ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityeffect-spawnbloodcloud-vector-position-color-color","title":"EntityEffect SpawnBloodCloud ( Vector Position, Color Color )","text":"","tags":["Class"]},{"location":"EntityNPC.html#spawnbloodsplash","title":"SpawnBloodSplash ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-spawnbloodsplash","title":"void SpawnBloodSplash ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwleech","title":"ThrowLeech ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwleech-entity-source-vector-target-float-yposoffset-100-boolean-big-false","title":"EntityNPC ThrowLeech ( Entity Source, Vector Target, float YPosOffset = -10.0, boolean Big = false )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwmaggotatpos","title":"ThrowMaggotAtPos ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwmaggotatpos-vector-origin-float-velocity-80-float-yoffset-00","title":"EntityNPC ThrowMaggotAtPos ( Vector Origin, float Velocity = -8.0, float YOffset = 0.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwrockspider","title":"ThrowRockSpider ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwrockspider-entity-source-vector-target-int-variant-0-float-yposoffset-100","title":"EntityNPC ThrowRockSpider ( Entity Source, Vector Target, int Variant = 0, float YPosOffset = -10.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwstrider","title":"ThrowStrider ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwstrider-entity-source-vector-target","title":"EntityNPC ThrowStrider ( Entity Source, Vector Target )","text":"","tags":["Class"]},{"location":"EntityNPC.html#tryforcetarget","title":"TryForceTarget ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#boolean-tryforcetarget-entity-target-int-duration","title":"boolean TryForceTarget ( Entity Target, int Duration )","text":"

Used by Lost Fly to force this NPC to focus on a specific target.

","tags":["Class"]},{"location":"EntityNPC.html#trythrow","title":"TryThrow ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#boolean-trythrow-entityref-source-vector-direction-float-force","title":"boolean TryThrow ( EntityRef Source, Vector Direction, float Force )","text":"Info

Force only applies to NPC poop (it's modified and then used as V1.y, with V1.x being -20.0) and may be incorrect. This needs further investigation.

","tags":["Class"]},{"location":"EntityNPC.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-updatedirtcolor-boolean-immediate","title":"void UpdateDirtColor ( boolean Immediate )","text":"

Instructs the entity to update its dirt color. This is generally done automatically on vanilla entities, but up until now, modded ones have been quite limited in this reagard.

If Immediate is set, the dirt color will be set to exactly what is beneath the entity. Otherwise, it will be updated smoothly over the course of multiple frames.

","tags":["Class"]},{"location":"EntityNPC.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"EntityNPC.html#v1","title":"V1","text":"","tags":["Class"]},{"location":"EntityNPC.html#vector-v1","title":"Vector V1","text":"

Fix of original function that now correctly returns a pointer to the Vector.

","tags":["Class"]},{"location":"EntityNPC.html#v2","title":"V2","text":"","tags":["Class"]},{"location":"EntityNPC.html#vector-v2","title":"Vector V2","text":"

Fix of original function that now correctly returns a pointer to the Vector.

","tags":["Class"]},{"location":"EntityPickup.html","title":"Class \"EntityPickup\"","text":"","tags":["Class"]},{"location":"EntityPickup.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityPickup.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityPickup.html#addcollectiblecycle","title":"AddCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-addcollectiblecycle-int-id","title":"boolean AddCollectibleCycle ( int id )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getalternatepedestal","title":"GetAlternatePedestal ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getalternatepedestal","title":"int GetAlternatePedestal ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getcollectiblecycle","title":"GetCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#collectibletype-getcollectiblecycle","title":"CollectibleType[] GetCollectibleCycle ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getdropdelay","title":"GetDropDelay ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getdropdelay","title":"int GetDropDelay ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getpricesprite","title":"GetPriceSprite ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#sprite-getpricesprite","title":"Sprite GetPriceSprite ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getrandompickupvelocity","title":"GetRandomPickupVelocity ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#vector-getrandompickupvelocity-vector-position-rng-rng-nil-int-velocitytype-0","title":"Vector GetRandomPickupVelocity ( Vector Position, RNG RNG = nil, int VelocityType = 0 )","text":"

VelocityType seems to only affect pickups in Challenge Rooms, causing them to have a weaker velocity.

Warning

This is a static function and must be called via EntityPickup.GetRandomPickupVelocity(Position, RNG, VelocityType).

","tags":["Class"]},{"location":"EntityPickup.html#getvardata","title":"GetVarData ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getvardata","title":"int GetVarData ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#isblind","title":"IsBlind ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-isblind","title":"boolean IsBlind ( )","text":"

Returns whether a collectible is being hidden by the Curse of the Blind question mark graphics. Always returns false for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#makeshopitem","title":"MakeShopItem ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-makeshopitem-int-shopitemid","title":"void MakeShopItem ( int ShopItemID )","text":"","tags":["Class"]},{"location":"EntityPickup.html#removecollectiblecycle","title":"RemoveCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-removecollectiblecycle","title":"void RemoveCollectibleCycle ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#setalternatepedestal","title":"SetAlternatePedestal ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setalternatepedestal-int-pedestaltype","title":"void SetAlternatePedestal ( int PedestalType )","text":"

Sets the graphics of the item pedestal. Does nothing for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#setdropdelay","title":"SetDropDelay ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setdropdelay-int-delay","title":"void SetDropDelay ( int Delay )","text":"","tags":["Class"]},{"location":"EntityPickup.html#setforceblind","title":"SetForceBlind ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setforceblind-boolean-setblind","title":"void SetForceBlind ( boolean SetBlind )","text":"

Hides pedestal items similar to Curse of the Blind. Does nothing for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#setnewoptionspickupindex","title":"SetNewOptionsPickupIndex ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-setnewoptionspickupindex","title":"int SetNewOptionsPickupIndex ( )","text":"

Returns the new pickup index.

","tags":["Class"]},{"location":"EntityPickup.html#setvardata","title":"SetVarData ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setvardata-int-vardata","title":"void SetVarData ( int VarData )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryflip","title":"TryFlip ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryflip","title":"boolean TryFlip ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryinitoptioncycle","title":"TryInitOptionCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryinitoptioncycle-int-numcycle","title":"boolean TryInitOptionCycle ( int NumCycle )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryremovecollectible","title":"TryRemoveCollectible ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryremovecollectible","title":"boolean TryRemoveCollectible ( )","text":"

Attempts to remove the collectible from an item pedestal.

Returns true if a collectible was successfully removed from the pedestal. Returns false if the pedestal was already empty, or if called on a non-collectible EntityPickup.

","tags":["Class"]},{"location":"EntityPlayer.html","title":"Class \"EntityPlayer\"","text":"

This class contains both new functions and modified reimplementations of existing ones.

","tags":["Class"]},{"location":"EntityPlayer.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityPlayer.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addcacheflags","title":"AddCacheFlags ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addcacheflags-cacheflag-cacheflag-boolean-evaluateitems-false","title":"void AddCacheFlags ( CacheFlag CacheFlag, boolean EvaluateItems = false )","text":"

Now accepts an optional bool to determine if EntityPlayer:EvaluateItems() should be automatically called after adding cache flags. In most cases, you'll want to do this.

","tags":["Class"]},{"location":"EntityPlayer.html#cleardeadeyecharge","title":"ClearDeadEyeCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-cleardeadeyecharge-boolean-force-false","title":"void ClearDeadEyeCharge ( boolean Force = false )","text":"

Now accepts a Force argument to forcefully reset the charge instead of only rolling for a change to reset.

","tags":["Class"]},{"location":"EntityPlayer.html#getmultishotparams","title":"GetMultiShotParams ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#multishotparams-getmultishotparams-weapontype-weapontype","title":"MultiShotParams GetMultiShotParams ( WeaponType WeaponType )","text":"

Now returns a proper MultiShotParams object.

","tags":["Class"]},{"location":"EntityPlayer.html#getmultishotpositionvelocity","title":"GetMultiShotPositionVelocity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#posvel-getmultishotpositionvelocity-int-loopindex-weapontype-weapontype-vector-shotdirection-float-shotspeed-multishotparams-params","title":"PosVel GetMultiShotPositionVelocity ( int LoopIndex, WeaponType WeaponType, Vector ShotDirection, float ShotSpeed, MultiShotParams Params )","text":"

This magically vanished from the API some time after 1.7.8.

Compared to the vanilla function, this implementation has been further augmented to throw an error if LoopIndex is higher than MultiShotParams:GetNumTears().

","tags":["Class"]},{"location":"EntityPlayer.html#getpocketitem","title":"GetPocketItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#pocketitem-getpocketitem-activeslot-slotid","title":"PocketItem GetPocketItem ( ActiveSlot SlotId )","text":"

Now returns a proper PocketItem object.

","tags":["Class"]},{"location":"EntityPlayer.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"EntityPlayer.html#babyskin","title":"BabySkin","text":"","tags":["Class"]},{"location":"EntityPlayer.html#babysubtype-babyskin","title":"BabySubType BabySkin","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"EntityPlayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addactivecharge","title":"AddActiveCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-addactivecharge-int-charge-activeslot-slot-boolean-flashhud-true-boolean-overcharge-false-boolean-force-false","title":"int AddActiveCharge ( int Charge, ActiveSlot Slot, boolean FlashHUD = true, boolean Overcharge = false, boolean Force = false )","text":"

Returns the true amount of charge added, which may have been capped by the targeted item's MaxCharge.

","tags":["Class"]},{"location":"EntityPlayer.html#addboneorbital","title":"AddBoneOrbital ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addboneorbital-vector-position","title":"void AddBoneOrbital ( Vector Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addinnatecollectible","title":"AddInnateCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addinnatecollectible-collectibletype-collectible-int-amount-1","title":"void AddInnateCollectible ( CollectibleType Collectible, int Amount = 1 )","text":"Bug

Currently this function directly modifies the contents of WispCollectiblesList, so if this list was updated on wisp init/delete, or the player exits the run, your added innate items will not be saved.

","tags":["Class"]},{"location":"EntityPlayer.html#addleprosy","title":"AddLeprosy ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addleprosy","title":"void AddLeprosy ( )","text":"Info

This is currently still capped at a max of three familiars, and would require further modification to change this.

","tags":["Class"]},{"location":"EntityPlayer.html#addlocust","title":"AddLocust ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addlocust-collectibletype-collectible-vector-position","title":"void AddLocust ( CollectibleType Collectible, Vector Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addsmeltedtrinket","title":"AddSmeltedTrinket ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-addsmeltedtrinket-trinkettype-trinket-boolean-firsttimepickingup-true","title":"boolean AddSmeltedTrinket ( TrinketType Trinket, boolean FirstTimePickingUp = true )","text":"

Adds a smelted trinket directly to the player's inventory.

Returns true if the trinket was successfully added, otherwise false.

","tags":["Class"]},{"location":"EntityPlayer.html#addurnsouls","title":"AddUrnSouls ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addurnsouls-int-count-0","title":"void AddUrnSouls ( int Count = 0 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canaddcollectibletoinventory","title":"CanAddCollectibleToInventory ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canaddcollectibletoinventory-collectibletype-collectible","title":"boolean CanAddCollectibleToInventory ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#cancrushrocks","title":"CanCrushRocks ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-cancrushrocks","title":"boolean CanCrushRocks ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canoverrideactiveitem","title":"CanOverrideActiveItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canoverrideactiveitem-collectibletype-collectible","title":"boolean CanOverrideActiveItem ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canusepill","title":"CanUsePill ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canusepill-pilleffect-id","title":"boolean CanUsePill ( PillEffect ID )","text":"

By some conditions, usually health-related, determines whether a player can use a given pill effect.

","tags":["Class"]},{"location":"EntityPlayer.html#checkfamiliarex","title":"CheckFamiliarEx ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityfamiliar-checkfamiliarex-int-familiarvariant-familiar-int-targetcount-rng-rng-itemconfigitem-sourceitemconfigitem-nil-int-familiarsubtype-1","title":"EntityFamiliar[] CheckFamiliarEx ( int FamiliarVariant Familiar, int TargetCount, RNG rng, ItemConfigItem SourceItemConfigItem = nil, int FamiliarSubType = -1 )","text":"

A version of CheckFamiliar that returns all familiars spawned by the function as a table.

","tags":["Class"]},{"location":"EntityPlayer.html#clearcollectibleanim","title":"ClearCollectibleAnim ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearcollectibleanim-collectibletype-collectible","title":"void ClearCollectibleAnim ( CollectibleType Collectible)","text":"","tags":["Class"]},{"location":"EntityPlayer.html#clearitemanimcollectible","title":"ClearItemAnimCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearitemanimcollectible-collectibletype-id","title":"void ClearItemAnimCollectible ( CollectibleType ID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#clearitemanimnullitems","title":"ClearItemAnimNullItems ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearitemanimnullitems","title":"void ClearItemAnimNullItems ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#dropcollectible","title":"DropCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-dropcollectible-collectibletype-collectible-entitypickup-existingpedestal-nil-boolean-removefromplayerform-false","title":"void DropCollectible ( CollectibleType Collectible, EntityPickup ExistingPedestal = nil, boolean RemoveFromPlayerForm = false )","text":"

If ExistingPedestal is set, the collectible it contains will be swapped out for the dropped collectible instead of a new pedestal spawning.

","tags":["Class"]},{"location":"EntityPlayer.html#dropcollectiblebyhistoryindex","title":"DropCollectibleByHistoryIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entitypickup-dropcollectiblebyhistoryindex-int-idx-entitypickup-existingpedestal-nil","title":"EntityPickup DropCollectibleByHistoryIndex ( int Idx, EntityPickup ExistingPedestal = nil )","text":"

If ExistingPedestal is set, the collectible it contains will be swapped out for the dropped collectible instead of a new pedestal spawning.

","tags":["Class"]},{"location":"EntityPlayer.html#enableweapontype","title":"EnableWeaponType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-enableweapontype-weapontype-weapon-boolean-set","title":"void EnableWeaponType ( WeaponType Weapon, boolean Set )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#firebrimstoneball","title":"FireBrimstoneBall ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-firebrimstoneball-vector-position-vector-velocity-vector-offset-vectorzero","title":"EntityEffect FireBrimstoneBall ( Vector Position, Vector Velocity, Vector Offset = Vector.Zero )","text":"Info

If the player has Tech X, this function will fire an EntityLaser as well. The laser will have the Brimstone ball effect as a parent, it's unclear if the effect also links back to the laser.

","tags":["Class"]},{"location":"EntityPlayer.html#getactiveitemdesc","title":"GetActiveItemDesc ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#activeitemdesc-getactiveitemdesc-activeslot-slot-activeslotslot_primary","title":"ActiveItemDesc GetActiveItemDesc ( ActiveSlot Slot = ActiveSlot.SLOT_PRIMARY )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveitemslot","title":"GetActiveItemSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#activeslot-getactiveitemslot-collectibletype-collectible","title":"ActiveSlot GetActiveItemSlot ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactivemaxcharge","title":"GetActiveMaxCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactivemaxcharge-activeslot-slot","title":"int GetActiveMaxCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveminusablecharge","title":"GetActiveMinUsableCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactiveminusablecharge-activeslot-slot","title":"int GetActiveMinUsableCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveweaponnumfired","title":"GetActiveWeaponNumFired ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactiveweaponnumfired","title":"int GetActiveWeaponNumFired ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingcontent","title":"GetBagOfCraftingContent ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#bagofcraftingpickup-getbagofcraftingcontent","title":"BagOfCraftingPickup[] GetBagOfCraftingContent ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingoutput","title":"GetBagOfCraftingOutput ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#collectibletype-getbagofcraftingoutput","title":"CollectibleType GetBagOfCraftingOutput ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingslot","title":"GetBagOfCraftingSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#bagofcraftingpickup-getbagofcraftingslot-int-slotid","title":"BagOfCraftingPickup GetBagOfCraftingSlot ( int SlotID )","text":"

Gets the current content of the bag in the given Slot ID.

","tags":["Class"]},{"location":"EntityPlayer.html#getbladdercharge","title":"GetBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getbladdercharge","title":"int GetBladderCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbodymovedirection","title":"GetBodyMoveDirection ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#vector-getbodymovedirection","title":"Vector GetBodyMoveDirection ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcambionconceptionstate","title":"GetCambionConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getcambionconceptionstate","title":"int GetCambionConceptionState ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcambionpregnancylevel","title":"GetCambionPregnancyLevel ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getcambionpregnancylevel","title":"int GetCambionPregnancyLevel ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcollectibleslist","title":"GetCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getcollectibleslist","title":"table GetCollectiblesList ( )","text":"

Returns a table with the amount of each collectible the player has without counting innate items.

Example Code

This code prints how many sad onions the player has.

local collectiblesList = player:GetCollectiblesList()\n\nprint(collectiblesList[CollectibleType.COLLECTIBLE_SAD_ONION])\n
","tags":["Class"]},{"location":"EntityPlayer.html#getcostumelayermap","title":"GetCostumeLayerMap ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getcostumelayermap","title":"table GetCostumeLayerMap ( )","text":"

Returns table of player sprite layers data for costumes with the following fields:

Field Type Comment costumeIndex int Index of active/visible costume for layer. layerID int priority int isBodyLayer boolean","tags":["Class"]},{"location":"EntityPlayer.html#getcostumespritedescs","title":"GetCostumeSpriteDescs ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#costumespritedesc-getcostumespritedescs","title":"CostumeSpriteDesc[] GetCostumeSpriteDescs ( )","text":"

Returns a table of CostumeSpriteDesc.

","tags":["Class"]},{"location":"EntityPlayer.html#getd8damagemodifier","title":"GetD8DamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8damagemodifier","title":"int GetD8DamageModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8firedelaymodifier","title":"GetD8FireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8firedelaymodifier","title":"int GetD8FireDelayModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8rangemodifier","title":"GetD8RangeModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8rangemodifier","title":"int GetD8RangeModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8speedmodifier","title":"GetD8SpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8speedmodifier","title":"int GetD8SpeedModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getdamagemodifier","title":"GetDamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getdamagemodifier","title":"int GetDamageModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the damage rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getdeadeyecharge","title":"GetDeadEyeCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getdeadeyecharge","title":"int GetDeadEyeCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getdeathanimname","title":"GetDeathAnimName ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#string-getdeathanimname","title":"string GetDeathAnimName ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedendamage","title":"GetEdenDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedendamage","title":"float GetEdenDamage ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenfiredelay","title":"GetEdenFireDelay ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenfiredelay","title":"float GetEdenFireDelay ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenluck","title":"GetEdenLuck ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenluck","title":"float GetEdenLuck ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenrange","title":"GetEdenRange ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenrange","title":"float GetEdenRange ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenshotspeed","title":"GetEdenShotSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenshotspeed","title":"float GetEdenShotSpeed ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenspeed","title":"GetEdenSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenspeed","title":"float GetEdenSpeed ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getenterposition","title":"GetEnterPosition ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#vector-getenterposition","title":"Vector GetEnterPosition ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getentityconfigplayer","title":"GetEntityConfigPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityconfigplayer-getentityconfigplayer","title":"EntityConfigPlayer GetEntityConfigPlayer ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getepiphoracharge","title":"GetEpiphoraCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getepiphoracharge","title":"int GetEpiphoraCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getevesumptoriumcharge","title":"GetEveSumptoriumCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getevesumptoriumcharge","title":"int GetEveSumptoriumCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getfiredelaymodifier","title":"GetFireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getfiredelaymodifier","title":"int GetFireDelayModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the fire delay rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getflippedform","title":"GetFlippedForm ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityplayer-getflippedform","title":"EntityPlayer GetFlippedForm ( )","text":"

Returns flipped form of the current character. (only used for Tainted Lazarus)

Otherwise, returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getfocusentity","title":"GetFocusEntity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entity-getfocusentity","title":"Entity GetFocusEntity ( )","text":"

Returns the entity used by Active Camera to determine where the camera should focus. This can be either the Marked target EntityEffect or a weapon's entity. If none of these exist, this returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getfootprintcolor","title":"GetFootprintColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#color-getfootprintcolor-boolean-leftfootprint","title":"Color GetFootprintColor ( boolean LeftFootprint )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getglitchbabysubtype","title":"GetGlitchBabySubType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getglitchbabysubtype","title":"int GetGlitchBabySubType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getglyphofbalancedrop","title":"GetGlyphOfBalanceDrop ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getglyphofbalancedrop-int-variant-1-int-subtype-1","title":"table GetGlyphOfBalanceDrop ( int Variant = -1, int SubType = -1 )","text":"

Returns a table containing the variant and subtype of the possible Glyph of Balance drop.

","tags":["Class"]},{"location":"EntityPlayer.html#getgreedsgullethearts","title":"GetGreedsGulletHearts ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getgreedsgullethearts","title":"int GetGreedsGulletHearts ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#gethealthtype","title":"GetHealthType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#healthtype-gethealthtype","title":"HealthType GetHealthType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getheldentity","title":"GetHeldEntity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entity-getheldentity","title":"Entity GetHeldEntity ( )","text":"

Returns the Entity that the player is holding over their head, such as with throwable red bombs or Suplex! Returns nil if no entity is currently being held.

","tags":["Class"]},{"location":"EntityPlayer.html#getheldsprite","title":"GetHeldSprite ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#sprite-getheldsprite","title":"Sprite GetHeldSprite ( )","text":"

Gets the Sprite object used for when the player is doing an animation that involves holding a sprite over their head, such as active item usage.

","tags":["Class"]},{"location":"EntityPlayer.html#gethistory","title":"GetHistory ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#history-gethistory","title":"History GetHistory ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getimmaculateconceptionstate","title":"GetImmaculateConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getimmaculateconceptionstate","title":"int GetImmaculateConceptionState ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getkeeperssackbonus","title":"GetKeepersSackBonus ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getkeeperssackbonus","title":"int GetKeepersSackBonus ( )","text":"

Gets the number of coins spent while possessing Keeper's Sack.

","tags":["Class"]},{"location":"EntityPlayer.html#getlasercolor","title":"GetLaserColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#color-getlasercolor","title":"Color GetLaserColor ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getluckmodifier","title":"GetLuckModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getluckmodifier","title":"int GetLuckModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the luck rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getmaggyswingcooldown","title":"GetMaggySwingCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaggyswingcooldown","title":"int GetMaggySwingCooldown ( )","text":"

Used for Tainted Magdalene's hugging attack.

","tags":["Class"]},{"location":"EntityPlayer.html#getmarkedtarget","title":"GetMarkedTarget ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-getmarkedtarget","title":"EntityEffect GetMarkedTarget ( )","text":"

Returns the entity effect representing the target of the Marked item. If the target is not displayed on the ground, this function returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getmaxbladdercharge","title":"GetMaxBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxbladdercharge","title":"int GetMaxBladderCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmaxpeeburstcooldown","title":"GetMaxPeeBurstCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxpeeburstcooldown","title":"int GetMaxPeeBurstCooldown ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmaxpocketitems","title":"GetMaxPocketItems ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxpocketitems","title":"int GetMaxPocketItems ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmegablastduration","title":"GetMegaBlastDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmegablastduration","title":"int GetMegaBlastDuration ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmetronomecollectibleid","title":"GetMetronomeCollectibleID ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmetronomecollectibleid","title":"int GetMetronomeCollectibleID ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getnexturethrablockframe","title":"GetNextUrethraBlockFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getnexturethrablockframe","title":"int GetNextUrethraBlockFrame ( )","text":"

Returns the frame at which the player stops shooting and starts charging the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#getpeeburstcooldown","title":"GetPeeBurstCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getpeeburstcooldown","title":"int GetPeeBurstCooldown ( )","text":"

Returns the attack duration of the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#getplayerformcounter","title":"GetPlayerFormCounter ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getplayerformcounter-playerform-playerformid","title":"int GetPlayerFormCounter ( PlayerForm PlayerFormID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getponycharge","title":"GetPonyCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getponycharge","title":"int GetPonyCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getpuritystate","title":"GetPurityState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#puritystate-getpuritystate","title":"PurityState GetPurityState ( )","text":"

Returns the state in which the Purity item effect currently is.

","tags":["Class"]},{"location":"EntityPlayer.html#getredstewbonusduration","title":"GetRedStewBonusDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getredstewbonusduration","title":"int GetRedStewBonusDuration ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getshotspeedmodifier","title":"GetShotSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getshotspeedmodifier","title":"int GetShotSpeedModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the shot speed rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getsmeltedtrinkets","title":"GetSmeltedTrinkets ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getsmeltedtrinkets","title":"table GetSmeltedTrinkets ( )","text":"

Returns a table of smelted trinkets and their corresponding amounts. The returned table contains the following fields:

Field Type Comment trinketAmount int goldenTrinketAmount int","tags":["Class"]},{"location":"EntityPlayer.html#getspecialgridcollision","title":"GetSpecialGridCollision ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getspecialgridcollision-vector-position-selfposition","title":"int GetSpecialGridCollision ( Vector Position = self.Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getspeedmodifier","title":"GetSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getspeedmodifier","title":"int GetSpeedModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the speed rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#gettotalactivecharge","title":"GetTotalActiveCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-gettotalactivecharge-activeslot-slot","title":"int GetTotalActiveCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getvoidedcollectibleslist","title":"GetVoidedCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#collectibletype-collectibles-getvoidedcollectibleslist","title":"CollectibleType[] Collectibles GetVoidedCollectiblesList ( )","text":"

Retuns a table containing the CollectibleTypes of all voided Active items.

","tags":["Class"]},{"location":"EntityPlayer.html#getweapon","title":"GetWeapon ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#weapon-getweapon-int-slot","title":"Weapon GetWeapon ( int Slot )","text":"

Slot needs to be between 0 and 4.

","tags":["Class"]},{"location":"EntityPlayer.html#getweaponmodifiers","title":"GetWeaponModifiers ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getweaponmodifiers","title":"int GetWeaponModifiers ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwildcarditem","title":"GetWildCardItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getwildcarditem","title":"int GetWildCardItem ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwildcarditemtype","title":"GetWildCardItemType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#pocketitemtype-getwildcarditemtype","title":"PocketItemType GetWildCardItemType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwispcollectibleslist","title":"GetWispCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getwispcollectibleslist","title":"table GetWispCollectiblesList ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#hasinstantdeathcurse","title":"HasInstantDeathCurse ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-hasinstantdeathcurse","title":"boolean HasInstantDeathCurse ( )","text":"

Returns true when the player is in the Lost form triggered by either the white fire in Downpour or Soul of The Lost. (or when in Tainted Jacob's ghost form when being touched by Dark Esau)

","tags":["Class"]},{"location":"EntityPlayer.html#haspoisonimmunity","title":"HasPoisonImmunity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-haspoisonimmunity","title":"boolean HasPoisonImmunity ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#incrementplayerformcounter","title":"IncrementPlayerFormCounter ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-incrementplayerformcounter-playerform-form-int-count","title":"void IncrementPlayerFormCounter ( PlayerForm Form, int Count )","text":"Info

Count can be negative to decrement the PlayerForm.

","tags":["Class"]},{"location":"EntityPlayer.html#initpostlevelinitstats","title":"InitPostLevelInitStats ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-initpostlevelinitstats","title":"void InitPostLevelInitStats ( )","text":"

Call this after spawning characters with \"special\" tears (Forgotten, Lilith, Azazel etc) with InitTwin, or they won't have their proper tear type.

","tags":["Class"]},{"location":"EntityPlayer.html#inittwin","title":"InitTwin ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityplayer-inittwin-playertype-playertype","title":"EntityPlayer InitTwin ( PlayerType PlayerType )","text":"

I believe this is used by J&E, Strawman etc.

Bug

The twin player will desync from its main twin on save and continue. This softlocks the game in singleplayer, as the game prompts for a controller.

We've received confirmation from _Kilburn that this is hardcoded to be handled on vanilla characters. We will need to add a workaround for this.

","tags":["Class"]},{"location":"EntityPlayer.html#iscollectibleanimfinished","title":"IsCollectibleAnimFinished ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectibleanimfinished-collectibletype-collectible-string-animation","title":"boolean IsCollectibleAnimFinished ( CollectibleType Collectible, string Animation )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#iscollectiblecostumevisible","title":"IsCollectibleCostumeVisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectiblecostumevisible-collectibletype-collectible-int-playerspritelayerid","title":"boolean IsCollectibleCostumeVisible ( CollectibleType Collectible, int PlayerSpriteLayerID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectiblecostumevisible-collectibletype-collectible-string-playerspritelayername","title":"boolean IsCollectibleCostumeVisible ( CollectibleType Collectible, string PlayerSpriteLayerName )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isentityvalidtarget","title":"IsEntityValidTarget ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isentityvalidtarget-entity-entity","title":"boolean IsEntityValidTarget ( Entity Entity )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isfootstepframe","title":"IsFootstepFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isfootstepframe-int-foot-1","title":"boolean IsFootstepFrame ( int Foot = -1 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isheadless","title":"IsHeadless ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isheadless","title":"boolean IsHeadless ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#ishologram","title":"IsHologram ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-ishologram","title":"boolean IsHologram ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isinvisible","title":"IsInvisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isinvisible","title":"boolean IsInvisible ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isitemcostumevisible","title":"IsItemCostumeVisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isitemcostumevisible-itemconfig_item-item-int-playerspritelayerid","title":"boolean IsItemCostumeVisible ( ItemConfig_Item Item, int PlayerSpriteLayerID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isitemcostumevisible-itemconfig_item-item-int-playerspritelayername","title":"boolean IsItemCostumeVisible ( ItemConfig_Item Item, int PlayerSpriteLayerName )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#islocalplayer","title":"IsLocalPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-islocalplayer","title":"boolean IsLocalPlayer ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#ispacifist","title":"IsPacifist ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-ispacifist","title":"boolean IsPacifist ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isurethrablocked","title":"IsUrethraBlocked ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isurethrablocked","title":"boolean IsUrethraBlocked ( )","text":"

Returns true when the player can no longer shoot due to charging the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#morphtocoopghost","title":"MorphToCoopGhost ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-morphtocoopghost","title":"void MorphToCoopGhost ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#playcollectibleanim","title":"PlayCollectibleAnim ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-playcollectibleanim-collectibletype-collectible-boolean-checkbodylayers-string-animationname-int-frame-1","title":"void PlayCollectibleAnim ( CollectibleType Collectible, boolean CheckBodyLayers, string AnimationName, int Frame = -1 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#playdelayedsfx","title":"PlayDelayedSFX ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-playdelayedsfx-soundeffect-id-int-sounddelay-0-int-framedelay-2-float-volume-10","title":"void PlayDelayedSFX ( SoundEffect ID, int SoundDelay = 0, int FrameDelay = 2, float Volume = 1.0 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removecollectiblebyhistoryindex","title":"RemoveCollectibleByHistoryIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removecollectiblebyhistoryindex-int-index","title":"void RemoveCollectibleByHistoryIndex ( int Index )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removepocketitem","title":"RemovePocketItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removepocketitem-activeslot-slot","title":"void RemovePocketItem ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removepoopspell","title":"RemovePoopSpell ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removepoopspell-int-position-0","title":"void RemovePoopSpell ( int Position = 0 )","text":"

Removes the poop spell from the specified queue position and shifts all spells after it forward to fill the space. A new spell is randomly picked to fill the last position.

","tags":["Class"]},{"location":"EntityPlayer.html#rerollallcollectibles","title":"RerollAllCollectibles ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-rerollallcollectibles-rng-rng-boolean-includeactiveitems","title":"void RerollAllCollectibles ( RNG rng, boolean includeActiveItems )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#resetplayer","title":"ResetPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-resetplayer","title":"void ResetPlayer ( )","text":"Info

This is used by the Genesis active item.

","tags":["Class"]},{"location":"EntityPlayer.html#revivecoopghost","title":"ReviveCoopGhost ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-revivecoopghost","title":"boolean ReviveCoopGhost ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#salvagecollectible","title":"SalvageCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-salvagecollectible-entitypickup-pickup-rng-rng-pickupdroprng-itempooltype-pool-itempooltypepool_null","title":"void SalvageCollectible ( EntityPickup Pickup, RNG rng = PickupDropRNG, ItemPoolType Pool = ItemPoolType.POOL_NULL)","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-salvagecollectible-collectibletype-collectible-vector-position-playerposition-rng-rng-playerdroprng-itempooltype-pool-itempooltypepool_null","title":"void SalvageCollectible ( CollectibleType Collectible, Vector position = playerPosition, RNG rng = PlayerDropRNG, ItemPoolType Pool = ItemPoolType.POOL_NULL )","text":"Info

The provided EntityPickup will be removed by this function. Use the override to avoid this.

","tags":["Class"]},{"location":"EntityPlayer.html#setactivevardata","title":"SetActiveVarData ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setactivevardata-int-vardata-activeslot-slot","title":"void SetActiveVarData ( int VarData, ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingcontent","title":"SetBagOfCraftingContent ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingcontent-bagofcraftingpickup-contenttable","title":"void SetBagOfCraftingContent ( BagOfCraftingPickup[] ContentTable )","text":"

Sets the content of the bag to the content of the table. Table must use valid BagOfCraftingPickup ids. Table can be shorter than 8, in which case the remaining indexes are set to empty.

","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingoutput","title":"SetBagOfCraftingOutput ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingoutput-collectibletype-collectible","title":"void SetBagOfCraftingOutput ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingslot","title":"SetBagOfCraftingSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingslot-int-slotid-int-pickupid","title":"void SetBagOfCraftingSlot ( int SlotID, int PickupID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbladdercharge","title":"SetBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbladdercharge-int-charge","title":"void SetBladderCharge ( int Charge )","text":"

Used by the Kidney Stone item.

Bug

The player's head turns pitch black when this function is used without Kidney Stone.

","tags":["Class"]},{"location":"EntityPlayer.html#setcambionconceptionstate","title":"SetCambionConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setcambionconceptionstate-int-state","title":"void SetCambionConceptionState ( int State )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setcanshoot","title":"SetCanShoot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-setcanshoot-boolean-canshoot","title":"boolean SetCanShoot ( boolean CanShoot )","text":"

Instantaneously disables (or enables) the player's ability to shoot. The base game primarily uses this for special challenges.

","tags":["Class"]},{"location":"EntityPlayer.html#setcontrollerindex","title":"SetControllerIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setcontrollerindex-int-idx","title":"void SetControllerIndex ( int Idx )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setdamagemodifier","title":"SetDamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setdamagemodifier-int-modifier","title":"void SetDamageModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedendamage","title":"SetEdenDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedendamage-float-value","title":"void SetEdenDamage ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenfiredelay","title":"SetEdenFireDelay ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenfiredelay-float-value","title":"void SetEdenFireDelay ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenluck","title":"SetEdenLuck ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenluck-float-value","title":"void SetEdenLuck ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenrange","title":"SetEdenRange ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenrange-float-value","title":"void SetEdenRange ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenshotspeed","title":"SetEdenShotSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenshotspeed-float-value","title":"void SetEdenShotSpeed ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenspeed","title":"SetEdenSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenspeed-float-value","title":"void SetEdenSpeed ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setevesumptoriumcharge","title":"SetEveSumptoriumCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setevesumptoriumcharge-int-chargenum","title":"void SetEveSumptoriumCharge ( int ChargeNum )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setfiredelaymodifier","title":"SetFireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setfiredelaymodifier-int-modifier","title":"void SetFireDelayModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setfootprintcolor","title":"SetFootprintColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setfootprintcolor-kcolor-color-boolean-rightfoot-false","title":"void SetFootprintColor ( KColor color, boolean RightFoot = false )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setimmaculateconceptionstate","title":"SetImmaculateConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setimmaculateconceptionstate-int-state","title":"void SetImmaculateConceptionState ( int State )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setitemstate","title":"SetItemState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setitemstate-collectibletype-collectible","title":"void SetItemState ( CollectibleType Collectible )","text":"

This is used for thrown/2-input items (e.g. Bob's Rotten Head).

","tags":["Class"]},{"location":"EntityPlayer.html#setkeeperssackbonus","title":"SetKeepersSackBonus ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setkeeperssackbonus-int-bonus","title":"void SetKeepersSackBonus ( int Bonus )","text":"

This is the number of coins spent while possessing Keeper's Sack.

","tags":["Class"]},{"location":"EntityPlayer.html#setlasercolor","title":"SetLaserColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setlasercolor-color-color","title":"void SetLaserColor ( Color color )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setluckmodifier","title":"SetLuckModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setluckmodifier-int-modifier","title":"void SetLuckModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmaggyswingcooldown","title":"SetMaggySwingCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmaggyswingcooldown-int-cooldown","title":"void SetMaggySwingCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmaxbladdercharge","title":"SetMaxBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmaxbladdercharge-int-charge","title":"void SetMaxBladderCharge ( int Charge )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmegablastduration","title":"SetMegaBlastDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmegablastduration-int-duration","title":"void SetMegaBlastDuration ( int Duration )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setnexturethrablockframe","title":"SetNextUrethraBlockFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setnexturethrablockframe-int-frame","title":"void SetNextUrethraBlockFrame ( int Frame )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setponycharge","title":"SetPonyCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setponycharge-int-time","title":"void SetPonyCharge ( int Time )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setpoopspell","title":"SetPoopSpell ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setpoopspell-int-slot-poopspelltype-poopspelltype","title":"void SetPoopSpell ( int Slot, PoopSpellType PoopSpellType )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setpuritystate","title":"SetPurityState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setpuritystate-puritystate-state","title":"void SetPurityState ( PurityState State )","text":"

Set the state in which the Purity item effect currently is.

","tags":["Class"]},{"location":"EntityPlayer.html#setredstewbonusduration","title":"SetRedStewBonusDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setredstewbonusduration-int-duration","title":"void SetRedStewBonusDuration ( int Duration )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setshotspeedmodifier","title":"SetShotSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setshotspeedmodifier-int-modifier","title":"void SetShotSpeedModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setspeedmodifier","title":"SetSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setspeedmodifier-int-modifier","title":"void SetSpeedModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#settearpoisondamage","title":"SetTearPoisonDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-settearpoisondamage-float-damage","title":"void SetTearPoisonDamage ( float Damage )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#settearrangemodifier","title":"SetTearRangeModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-settearrangemodifier-int-modifier","title":"void SetTearRangeModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#seturethrablock","title":"SetUrethraBlock ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-seturethrablock-boolean-blocked","title":"void SetUrethraBlock ( boolean Blocked )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setweapon","title":"SetWeapon ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setweapon-weapon-weapon-int-weaponslot","title":"void SetWeapon ( Weapon Weapon, int WeaponSlot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#shootbluecandle","title":"ShootBlueCandle ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-shootbluecandle-vector-direction","title":"void ShootBlueCandle ( Vector Direction )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#shufflecostumes","title":"ShuffleCostumes ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-shufflecostumes-int-seed-random","title":"void ShuffleCostumes ( int Seed = Random( ) )","text":"

Randomizes the current costumes.

","tags":["Class"]},{"location":"EntityPlayer.html#spawnaquariuscreep","title":"SpawnAquariusCreep ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-spawnaquariuscreep-tearparams-tearparams-selftearparams","title":"EntityEffect SpawnAquariusCreep ( TearParams TearParams = self.TearParams)","text":"

Spawns a creep effect that acts like the ones created by Aquarius, including inhereting the player's TearParams. Supports passing a custom TearParams instead.

Info

For reference, this is how the game calculates the TearParams for this normally:

player->GetTearHitParams(&params, WeaponType.WEAPON_TEARS, (*player->GetTearPoisonDamage() * 0.666f) / player->_damage, -(int)(-Isaac::Random(2) != 0) & 2 - 1, nil)

","tags":["Class"]},{"location":"EntityPlayer.html#spawnclot","title":"SpawnClot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-spawnclot-vector-pos-boolean-allowplayerdeath-false","title":"void SpawnClot ( Vector pos, boolean AllowPlayerDeath = false )","text":"

Acts like a use of Sumptorium, removing health and spawning a clot with the type of health removed. If AllowPlayerDeath is set, a clot will spawn even if the health drained will kill the player.

","tags":["Class"]},{"location":"EntityPlayer.html#spawnsaturnustears","title":"SpawnSaturnusTears ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-spawnsaturnustears","title":"int SpawnSaturnusTears ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#swapforgottenform","title":"SwapForgottenForm ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-swapforgottenform-boolean-force-false-boolean-noeffects-false","title":"void SwapForgottenForm ( boolean Force = false, boolean NoEffects = false)","text":"

If the player has a SubPlayer, swaps between them. Force will swap even if the subplayer doesn't have any health, or while a room/stage transition is active. NoEffects will disable the dust effect & fade from white when switching from The Soul to The Forgotten.

Warning

This function currently only has an effect for The Forgotten and The Soul.

","tags":["Class"]},{"location":"EntityPlayer.html#syncconsumablecounts","title":"SyncConsumableCounts ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-syncconsumablecounts-entityplayer-player-int-collectibleflags","title":"void SyncConsumableCounts ( EntityPlayer Player, int CollectibleFlags )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#teleport","title":"Teleport ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-teleport-vector-position-boolean-doeffects-true-boolean-teleporttwinplayers-false","title":"void Teleport ( Vector Position, boolean DoEffects = true, boolean TeleportTwinPlayers = false )","text":"

Teleports the player to a position within the room.

DoEffects controls whether the teleport animation and sound plays. TeleportTwinPlayers controls whether twin players (e.g. Esau, Tainted Lazarus w/ Birthright) are teleported alongside this one.

","tags":["Class"]},{"location":"EntityPlayer.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#tryaddtobagofcrafting","title":"TryAddToBagOfCrafting ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-tryaddtobagofcrafting-entitypickup-pickup","title":"void TryAddToBagOfCrafting ( EntityPickup Pickup )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#trydecreaseglowinghourglassuses","title":"TryDecreaseGlowingHourglassUses ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-trydecreaseglowinghourglassuses-int-uses-boolean-forcehourglass-false","title":"void TryDecreaseGlowingHourglassUses ( int Uses, boolean ForceHourglass = false )","text":"

ForceHourglass instantly removes all the charges and turns Glowing Hourglass into it's regular Hourglass form.

Bug

Uses are only decreased by 1 regardless of how large of a number you tell it to remove.

","tags":["Class"]},{"location":"EntityPlayer.html#tryfakedeath","title":"TryFakeDeath ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-tryfakedeath","title":"boolean TryFakeDeath ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#tryforgottenthrow","title":"TryForgottenThrow ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-tryforgottenthrow-vector-direction","title":"boolean TryForgottenThrow ( Vector Direction )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#trypreventdeath","title":"TryPreventDeath ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-trypreventdeath","title":"boolean TryPreventDeath ( )","text":"

Adds a heart container to a character if there are none left, depending on its HealthType.

Returns true on success, otherwise false.

","tags":["Class"]},{"location":"EntityPlayer.html#tryremovesmeltedtrinket","title":"TryRemoveSmeltedTrinket ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-tryremovesmeltedtrinket-trinkettype-id","title":"void TryRemoveSmeltedTrinket ( TrinketType ID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#updateisaacpregnancy","title":"UpdateIsaacPregnancy ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-updateisaacpregnancy-boolean-updatecambion","title":"void UpdateIsaacPregnancy ( boolean UpdateCambion )","text":"

Set true if you want to update the Cambion Conception costume, otherwise updates the Immaculate Conception costume.

","tags":["Class"]},{"location":"EntityPlayer.html#voidhascollectible","title":"VoidHasCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-voidhascollectible-collectibletype-id","title":"boolean VoidHasCollectible ( CollectibleType ID )","text":"","tags":["Class"]},{"location":"EntityProjectile.html","title":"Class \"EntityProjectile\"","text":"","tags":["Class"]},{"location":"EntityProjectile.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityProjectile.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityProjectile.html#deflect","title":"Deflect ()","text":"","tags":["Class"]},{"location":"EntityProjectile.html#void-deflect-vector-newvelocity","title":"void Deflect ( Vector NewVelocity )","text":"","tags":["Class"]},{"location":"EntitySlot.html","title":"Class \"EntitySlot\"","text":"

It's Real.

","tags":["Class"]},{"location":"EntitySlot.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntitySlot.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitySlot.html#createdropsfromexplosion","title":"CreateDropsFromExplosion ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-createdropsfromexplosion","title":"void CreateDropsFromExplosion ( )","text":"

This forces the EntitySlot to drop what it typically would if blown up.

","tags":["Class"]},{"location":"EntitySlot.html#getdonationvalue","title":"GetDonationValue ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getdonationvalue","title":"int GetDonationValue ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#getprizetype","title":"GetPrizeType ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getprizetype","title":"int GetPrizeType ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#getstate","title":"GetState ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getstate","title":"int GetState ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-gettimeout","title":"int GetTimeout ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#gettouch","title":"GetTouch ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-gettouch","title":"int GetTouch ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#randomcoinjamanim","title":"RandomCoinJamAnim ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#string-randomcoinjamanim","title":"string RandomCoinJamAnim ( )","text":"

Returns a random string from the following options: CoinJam, CoinJam2, CoinJam3, CoinJam4. Presumably only used on the donation machines.

","tags":["Class"]},{"location":"EntitySlot.html#setdonationvalue","title":"SetDonationValue ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setdonationvalue-int-donationvalue","title":"void SetDonationValue ( int DonationValue )","text":"","tags":["Class"]},{"location":"EntitySlot.html#setprizecollectible","title":"SetPrizeCollectible ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setprizecollectible-collectibletype-collectible","title":"void SetPrizeCollectible ( CollectibleType Collectible )","text":"

Seems to only be used by Crane Game and Hell Game. This sets the collectible that the games will pay out with, and updates the rendered collectible accordingly.

","tags":["Class"]},{"location":"EntitySlot.html#setprizetype","title":"SetPrizeType ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setprizetype-int-prizetype","title":"void SetPrizeType ( int PrizeType )","text":"","tags":["Class"]},{"location":"EntitySlot.html#setstate","title":"SetState ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setstate-int-state","title":"void SetState ( int State )","text":"","tags":["Class"]},{"location":"EntitySlot.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-settimeout-int-timeout","title":"void SetTimeout ( int Timeout )","text":"","tags":["Class"]},{"location":"EntitySlot.html#settouch","title":"SetTouch ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-settouch-int-touch","title":"void SetTouch ( int Touch )","text":"","tags":["Class"]},{"location":"EntityTear.html","title":"Class \"EntityTear\"","text":"","tags":["Class"]},{"location":"EntityTear.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityTear.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityTear.html#getdeadeyeintensity","title":"GetDeadEyeIntensity ()","text":"","tags":["Class"]},{"location":"EntityTear.html#float-getdeadeyeintensity","title":"float GetDeadEyeIntensity ( )","text":"","tags":["Class"]},{"location":"EntityTear.html#makemultidimensionalcopy","title":"MakeMultidimensionalCopy ()","text":"","tags":["Class"]},{"location":"EntityTear.html#entitytear-makemultidimensionalcopy","title":"EntityTear MakeMultidimensionalCopy ( )","text":"","tags":["Class"]},{"location":"FXParams.html","title":"Class \"FXParams\"","text":"Info

You can get this class by using the following functions:

  • Room:GetFXParams()
Example Code
local fxparams = Game():GetRoom():GetFXParams()\n
","tags":["Class"]},{"location":"FXParams.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"FXParams.html#colormodifier","title":"ColorModifier","text":"","tags":["Class"]},{"location":"FXParams.html#colormodifier-colormodifier","title":"ColorModifier ColorModifier","text":"

Gets a modifiable copy of the color correction introduced in Repentance. This stores the values used in fxlayers.xml and not the raw values (see GetCurrentColorModifier for this).

Changes made here are not automatically applied, use UpdateColorModifier to do this.

","tags":["Class"]},{"location":"FXParams.html#lightcolor","title":"LightColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-lightcolor","title":"KColor LightColor","text":"","tags":["Class"]},{"location":"FXParams.html#shadowalpha","title":"ShadowAlpha","text":"","tags":["Class"]},{"location":"FXParams.html#float-shadowalpha","title":"float ShadowAlpha","text":"","tags":["Class"]},{"location":"FXParams.html#shadowcolor","title":"ShadowColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-shadowcolor","title":"KColor ShadowColor","text":"","tags":["Class"]},{"location":"FXParams.html#usewaterv2","title":"UseWaterV2","text":"","tags":["Class"]},{"location":"FXParams.html#boolean-usewaterv2","title":"boolean UseWaterV2","text":"

If set, water will use the reflective shader featured in Downpour and Dross.

","tags":["Class"]},{"location":"FXParams.html#watercolor","title":"WaterColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-watercolor","title":"KColor WaterColor","text":"","tags":["Class"]},{"location":"FXParams.html#watercolormultiplier","title":"WaterColorMultiplier","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-watercolormultiplier","title":"KColor WaterColorMultiplier","text":"","tags":["Class"]},{"location":"FXParams.html#watereffectcolor","title":"WaterEffectColor","text":"","tags":["Class"]},{"location":"FXParams.html#color-watereffectcolor","title":"Color WaterEffectColor","text":"","tags":["Class"]},{"location":"Font.html","title":"Class \"Font\"","text":"","tags":["Class"]},{"location":"Font.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Font.html#font","title":"Font ()","text":"","tags":["Class"]},{"location":"Font.html#fontbool-font-string-fontpath","title":"Font,bool Font ( string FontPath )","text":"

Added optional \"FontPath\" argument, the function now returns two values: Font object and the bool signifying whether the font was loaded successfully or not.

","tags":["Class"]},{"location":"Font.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Font.html#drawstring","title":"DrawString ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstring-string-string-float-positionx-float-positiony-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawString ( string String, float PositionX, float PositionY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringscaled","title":"DrawStringScaled ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringscaled-string-string-float-positionx-float-positiony-float-scalex-float-scaley-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringScaled ( string String, float PositionX, float PositionY, float ScaleX, float ScaleY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringscaledutf8","title":"DrawStringScaledUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringscaledutf8-string-string-float-positionx-float-positiony-float-scalex-float-scaley-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringScaledUTF8 ( string String, float PositionX, float PositionY, float ScaleX, float ScaleY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringutf8","title":"DrawStringUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringutf8-string-string-float-positionx-float-positiony-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringUTF8 ( string String, float PositionX, float PositionY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#getstringwidth","title":"GetStringWidth ()","text":"","tags":["Class"]},{"location":"Font.html#int-getstringwidth-string-string","title":"int GetStringWidth ( string String )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#getstringwidthutf8","title":"GetStringWidthUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#int-getstringwidthutf8-string-string","title":"int GetStringWidthUTF8 ( string String )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Game.html","title":"Class \"Game\"","text":"","tags":["Class"]},{"location":"Game.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Game.html#getlastdevilroomstage","title":"GetLastDevilRoomStage ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastdevilroomstage","title":"LevelStage GetLastDevilRoomStage ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getlastlevelwithdamage","title":"GetLastLevelWithDamage ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastlevelwithdamage","title":"LevelStage GetLastLevelWithDamage ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getlastlevelwithouthalfhp","title":"GetLastLevelWithoutHalfHp ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastlevelwithouthalfhp","title":"LevelStage GetLastLevelWithoutHalfHp ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getplayer","title":"GetPlayer ()","text":"","tags":["Class"]},{"location":"Game.html#entityplayer-getplayer-int-index","title":"EntityPlayer GetPlayer ( int Index )","text":"

If no players exist, this now returns nil to prevent a crash. Invalid indexes will return index 0.

","tags":["Class"]},{"location":"Game.html#startstagetransition","title":"StartStageTransition ()","text":"","tags":["Class"]},{"location":"Game.html#void-startstagetransition-boolean-samestage-int-transitionoverride-entityplayer-player-nil","title":"void StartStageTransition ( boolean SameStage, int TransitionOverride, EntityPlayer Player = nil )","text":"

Fixed the crash that sometimes occured due to an incorrect call on the C++ side. Player is now optional (will default to GetPlayer(0)).

","tags":["Class"]},{"location":"Game.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Game.html#achievementunlocksdisallowed","title":"AchievementUnlocksDisallowed ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-achievementunlocksdisallowed","title":"boolean AchievementUnlocksDisallowed ( )","text":"

Returns true if achievements can't be unlocked this run (challenges, seeded, etc).

","tags":["Class"]},{"location":"Game.html#adddebugflags","title":"AddDebugFlags ()","text":"","tags":["Class"]},{"location":"Game.html#void-adddebugflags-debugflag-flag","title":"void AddDebugFlags ( DebugFlag Flag )","text":"

Adds a debug flag to the game. Multiple can be added simultaneously with bitwise concatenation (e.g. DebugFlag.ENTITY_POSITIONS | DebugFlag.HITSPHERES).

","tags":["Class"]},{"location":"Game.html#devolveenemy","title":"DevolveEnemy ()","text":"","tags":["Class"]},{"location":"Game.html#void-devolveenemy-entity","title":"void DevolveEnemy ( Entity )","text":"","tags":["Class"]},{"location":"Game.html#getchallengeparams","title":"GetChallengeParams ()","text":"","tags":["Class"]},{"location":"Game.html#challengeparam-getchallengeparams","title":"ChallengeParam GetChallengeParams ( )","text":"","tags":["Class"]},{"location":"Game.html#getcurrentcolormodifier","title":"GetCurrentColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-getcurrentcolormodifier","title":"ColorModifier GetCurrentColorModifier ( )","text":"

Gets a copy of the color correction introduced in Repentance. This stores the raw values currently being used (which can be affected by items such as Astral Projection) and not what the room is set to use (see FXParams.ColorModifier for this).

","tags":["Class"]},{"location":"Game.html#getdebugflags","title":"GetDebugFlags ()","text":"","tags":["Class"]},{"location":"Game.html#int-getdebugflags","title":"int GetDebugFlags ( )","text":"

Returns a DebugFlag bitmask.

","tags":["Class"]},{"location":"Game.html#getdimension","title":"GetDimension ()","text":"","tags":["Class"]},{"location":"Game.html#int-getdimension","title":"int GetDimension ( )","text":"","tags":["Class"]},{"location":"Game.html#getlerpcolormodifier","title":"GetLerpColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-getlerpcolormodifier","title":"ColorModifier GetLerpColorModifier ( )","text":"Info

This is formatted as the absolute rate of change (ie, all values are positive).

","tags":["Class"]},{"location":"Game.html#getpausemenustate","title":"GetPauseMenuState ()","text":"","tags":["Class"]},{"location":"Game.html#int-getpausemenustate","title":"int GetPauseMenuState ( )","text":"","tags":["Class"]},{"location":"Game.html#getplanetariumsvisited","title":"GetPlanetariumsVisited ()","text":"","tags":["Class"]},{"location":"Game.html#int-getplanetariumsvisited","title":"int GetPlanetariumsVisited ( )","text":"

Returns the amount of planetariums the player has entered this run.

","tags":["Class"]},{"location":"Game.html#gettargetcolormodifier","title":"GetTargetColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-gettargetcolormodifier","title":"ColorModifier GetTargetColorModifier ( )","text":"

If currently lerping between two ColorModifier states, returns the target state. Is otherwise the same as GetCurrentColorModifier.

","tags":["Class"]},{"location":"Game.html#iserased","title":"IsErased ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-iserased-entity-entity","title":"boolean IsErased ( Entity Entity )","text":"","tags":["Class"]},{"location":"Game.html#boolean-iserased-int-type-int-variant-1-int-subtype-1","title":"boolean IsErased ( int Type, int Variant = -1, int SubType = -1 )","text":"

Checks if an entity was erased.

","tags":["Class"]},{"location":"Game.html#isgreedboss","title":"IsGreedBoss ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isgreedboss","title":"boolean IsGreedBoss ( )","text":"","tags":["Class"]},{"location":"Game.html#isgreedfinalboss","title":"IsGreedFinalBoss ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isgreedfinalboss","title":"boolean IsGreedFinalBoss ( )","text":"","tags":["Class"]},{"location":"Game.html#ishardmode","title":"IsHardMode ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-ishardmode","title":"boolean IsHardMode ( )","text":"

Returns true if current mode is Hard Mode or Greedier.

","tags":["Class"]},{"location":"Game.html#ispausemenuopen","title":"IsPauseMenuOpen ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-ispausemenuopen","title":"boolean IsPauseMenuOpen ( )","text":"

Returns true if the pause menu is open.

","tags":["Class"]},{"location":"Game.html#isrerun","title":"IsRerun ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isrerun","title":"boolean IsRerun ( )","text":"","tags":["Class"]},{"location":"Game.html#setcolormodifier","title":"SetColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#void-setcolormodifier-colormodifier-colormodifier-boolean-lerp-true-float-rate-0015","title":"void SetColorModifier ( ColorModifier ColorModifier, boolean Lerp = true, float Rate = 0.015 )","text":"","tags":["Class"]},{"location":"Game.html#spawnbombcrater","title":"SpawnBombCrater ()","text":"","tags":["Class"]},{"location":"Game.html#entity-spawnbombcrater-vector-position-float-radius-10","title":"Entity SpawnBombCrater ( Vector Position, float Radius = 1.0 )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html","title":"Class \"GridEntitiesSaveStateVector\"","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#get","title":"Get ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#gridentitydesc-get-int-index","title":"GridEntityDesc Get ( int Index )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#getbytype","title":"GetByType ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#gridentitydesc-getbytype-gridentitytype-type","title":"GridEntityDesc GetByType ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#__len","title":"__len ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#int-__len","title":"int __len ( )","text":"","tags":["Class"]},{"location":"GridEntity.html","title":"Class \"GridEntity\"","text":"","tags":["Class"]},{"location":"GridEntity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntity.html#getaltrocktype","title":"GetAltRockType ()","text":"","tags":["Class"]},{"location":"GridEntity.html#int-getaltrocktype-backdroptype-backdrop","title":"int GetAltRockType ( BackdropType Backdrop )","text":"","tags":["Class"]},{"location":"GridEntity.html#getrenderposition","title":"GetRenderPosition ()","text":"","tags":["Class"]},{"location":"GridEntity.html#vector-getrenderposition","title":"Vector GetRenderPosition ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#hurtdamage","title":"HurtDamage ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-hurtdamage-entity-entity-int-damage-int-damageflags-float-unknown-boolean-unknown","title":"void HurtDamage ( Entity Entity, int Damage, int DamageFlags, float Unknown, boolean Unknown )","text":"","tags":["Class"]},{"location":"GridEntity.html#hurtsurroundings","title":"HurtSurroundings ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-hurtsurroundings-int-damage-int-damageflags-float-unknown-boolean-unknown","title":"void HurtSurroundings ( int Damage, int DamageFlags, float Unknown, boolean Unknown )","text":"","tags":["Class"]},{"location":"GridEntity.html#isbreakablerock","title":"IsBreakableRock ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-isbreakablerock","title":"void IsBreakableRock ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#playbreaksound","title":"PlayBreakSound ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-playbreaksound-gridentitytype-type-backdroptype-backdrop","title":"void PlayBreakSound ( GridEntityType Type, BackdropType Backdrop )","text":"","tags":["Class"]},{"location":"GridEntity.html#registerrockdestroyed","title":"RegisterRockDestroyed ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-registerrockdestroyed-gridentitytype-type","title":"void RegisterRockDestroyed ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntity.html#rendertop","title":"RenderTop ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-rendertop-vector-offset","title":"void RenderTop ( Vector Offset )","text":"","tags":["Class"]},{"location":"GridEntity.html#todecoration","title":"ToDecoration ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitydecoration-todecoration","title":"GridEntityDecoration ToDecoration ( )","text":"

Used to cast a GridEntity object to a GridEntityDecoration object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tofire","title":"ToFire ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentityfire-tofire","title":"GridEntityFire ToFire ( )","text":"

Used to cast a GridEntity object to a GridEntityFire object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#togravity","title":"ToGravity ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitygravity-togravity","title":"GridEntityGravity ToGravity ( )","text":"

Used to cast a GridEntity object to a GridEntityGravity object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tostairs","title":"ToStairs ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitystairs-tostairs","title":"GridEntityStairs ToStairs ( )","text":"

Used to cast a GridEntity object to a GridEntityStairs object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tostatue","title":"ToStatue ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitystatue-tostatue","title":"GridEntityStatue ToStatue ( )","text":"

Used to cast a GridEntity object to a GridEntityStatue object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#totrapdoor","title":"ToTrapDoor ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitytrapdoor-totrapdoor","title":"GridEntityTrapDoor ToTrapDoor ( )","text":"

Used to cast a GridEntity object to a GridEntityTrapDoor object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#towall","title":"ToWall ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitywall-towall","title":"GridEntityWall ToWall ( )","text":"

Used to cast a GridEntity object to a GridEntityWall object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#toweb","title":"ToWeb ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentityweb-toweb","title":"GridEntityWeb ToWeb ( )","text":"

Used to cast a GridEntity object to a GridEntityWeb object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tryspawnladder","title":"TrySpawnLadder ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-tryspawnladder","title":"void TrySpawnLadder ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#tryspawnworms","title":"TrySpawnWorms ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-tryspawnworms","title":"void TrySpawnWorms ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#updatecollision","title":"UpdateCollision ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-updatecollision","title":"void UpdateCollision ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#updateneighbors","title":"UpdateNeighbors ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-updateneighbors","title":"void UpdateNeighbors ( )","text":"","tags":["Class"]},{"location":"GridEntityDecoration.html","title":"Class \"GridEntityDecoration\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityDoor.html","title":"Class \"GridEntityDoor\"","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#previousstate","title":"PreviousState","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#int-previousstate","title":"int PreviousState","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"GridEntityDoor.html#previousvariant","title":"PreviousVariant","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#int-previousvariant","title":"int PreviousVariant","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"GridEntityDoor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#getextrasprite","title":"GetExtraSprite ()","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#sprite-getextrasprite","title":"Sprite GetExtraSprite ( )","text":"

Same as the vanilla variable ExtraSprite, but as a getter function.

","tags":["Class"]},{"location":"GridEntityFire.html","title":"Class \"GridEntityFire\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityGravity.html","title":"Class \"GridEntityGravity\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityPressurePlate.html","title":"Class \"GridEntityPressurePlate\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityRock.html","title":"Class \"GridEntityRock\"","text":"","tags":["Class"]},{"location":"GridEntityRock.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntityRock.html#getaltrocktype","title":"GetAltRockType ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#int-getaltrocktype-backdroptype-backdrop-0","title":"int GetAltRockType ( BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#playbreaksound","title":"PlayBreakSound ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-playbreaksound-gridentitytype-type-backdroptype-backdrop-0","title":"void PlayBreakSound ( GridEntityType Type, BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#registerrockdestroyed","title":"RegisterRockDestroyed ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-registerrockdestroyed-gridentitytype-type","title":"void RegisterRockDestroyed ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#rendertop","title":"RenderTop ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-rendertop-vector-offset","title":"void RenderTop ( Vector Offset )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#spawndrops","title":"SpawnDrops ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-spawndrops-gridentitytype-type-int-gridvariant-int-seed-boolean-unknown-backdroptype-backdrop-0","title":"void SpawnDrops ( GridEntityType Type, int GridVariant, int Seed, boolean Unknown, BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#tryspawnladder","title":"TrySpawnLadder ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-tryspawnladder","title":"void TrySpawnLadder ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#tryspawnworms","title":"TrySpawnWorms ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-tryspawnworms","title":"void TrySpawnWorms ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#updatecollision","title":"UpdateCollision ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-updatecollision","title":"void UpdateCollision ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#updateneighbors","title":"UpdateNeighbors ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-updateneighbors","title":"void UpdateNeighbors ( )","text":"","tags":["Class"]},{"location":"GridEntityStairs.html","title":"Class \"GridEntityStairs\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityStatue.html","title":"Class \"GridEntityStatue\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityTeleporter.html","title":"Class \"GridEntityTeleporter\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityTrapDoor.html","title":"Class \"GridEntityTrapDoor\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityWall.html","title":"Class \"GridEntityWall\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityWeb.html","title":"Class \"GridEntityWeb\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"HUD.html","title":"Class \"HUD\"","text":"Info

You can get this class by using the following functions:

  • Game:GetHUD()
Example Code
local hud = Game():GetHUD()\nlocal sprite = hud:GetChargeBarSprite()\n
","tags":["Class"]},{"location":"HUD.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"HUD.html#flashredhearts","title":"FlashRedHearts ()","text":"","tags":["Class"]},{"location":"HUD.html#void-flashredhearts-entityplayer-player","title":"void FlashRedHearts ( EntityPlayer Player )","text":"","tags":["Class"]},{"location":"HUD.html#getchargebarsprite","title":"GetChargeBarSprite ()","text":"","tags":["Class"]},{"location":"HUD.html#sprite-getchargebarsprite","title":"Sprite GetChargeBarSprite ( )","text":"","tags":["Class"]},{"location":"HUD.html#getpickupshudsprite","title":"GetPickupsHUDSprite ()","text":"","tags":["Class"]},{"location":"HUD.html#sprite-getpickupshudsprite","title":"Sprite GetPickupsHUDSprite ( )","text":"","tags":["Class"]},{"location":"HUD.html#getplayerhud","title":"GetPlayerHUD ()","text":"","tags":["Class"]},{"location":"HUD.html#playerhud-getplayerhud-int-index-0","title":"PlayerHUD GetPlayerHUD ( int Index = 0 )","text":"","tags":["Class"]},{"location":"History.html","title":"Class \"History\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetHistory()
Example Code
local history = Isaac.GetPlayer(0):GetHistory()\n
","tags":["Class"]},{"location":"History.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"History.html#getcollectibleshistory","title":"GetCollectiblesHistory ()","text":"","tags":["Class"]},{"location":"History.html#historyitems-getcollectibleshistory","title":"HistoryItems[] GetCollectiblesHistory ( )","text":"

Returns table of collectible HistoryItems.

","tags":["Class"]},{"location":"History.html#removehistoryitembyindex","title":"RemoveHistoryItemByIndex ()","text":"","tags":["Class"]},{"location":"History.html#boolean-removehistoryitembyindex-int-index","title":"boolean RemoveHistoryItemByIndex ( int Index )","text":"

Removes an item from the item history tracker on the right-hand side of the screen. Note that this does not remove the item effect from the player.

Returns true if an item was removed, false if not.

","tags":["Class"]},{"location":"HistoryItem.html","title":"Class \"HistoryItem\"","text":"Info

You can get this class by using the following functions:

  • History:GetCollectiblesHistory()
Example Code
local history = Isaac.GetPlayer(0):GetHistory():GetCollectiblesHistory()[1]\n
","tags":["Class"]},{"location":"HistoryItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"HistoryItem.html#getitemid","title":"GetItemID ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#int-getitemid","title":"int GetItemID ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getitempooltype","title":"GetItemPoolType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#itempooltype-getitempooltype","title":"ItemPoolType GetItemPoolType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getlevelstage","title":"GetLevelStage ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#levelstage-getlevelstage","title":"LevelStage GetLevelStage ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getroomtype","title":"GetRoomType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#roomtype-getroomtype","title":"RoomType GetRoomType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getstagetype","title":"GetStageType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#stagetype-getstagetype","title":"StageType GetStageType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#gettime","title":"GetTime ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#int-gettime","title":"int GetTime ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#istrinket","title":"IsTrinket ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#boolean-istrinket","title":"boolean IsTrinket ( )","text":"","tags":["Class"]},{"location":"ImGui.html","title":"Class \"ImGui\"","text":"Info

You can get this class by using the global table \"ImGui\"

Example Code
local isblind = ImGui.GetVisible(\"braillemenu\")\n
","tags":["Class"]},{"location":"ImGui.html#reference","title":"Reference","text":"

For element types we use the same names as in ImGui itself. Check out the interactive ImGui example.

","tags":["Class"]},{"location":"ImGui.html#icons","title":"Icons","text":"

All imgui text supports the usage of icons. Right now, we use \"FontAwesome 6\", which provides ~1400 icons. You can search for fitting icons here: https://fontawesome.com/search?o=r&m=free&s=solid

Icon usage in Lua:

If you want to add an Icon into your widget, just use the \"Unicode\" representation of the icon and put it in between a \\u{ } string. You can find this, by selecting the icon on the fontawesome page, and looking in the top right corner of the popup-window. You can add it to your element like this:

\"\\u{f0f9} My Text\"

This will add the \"truck-medical\" icon in front of the text \"My text\".

Result: \" My Text\"

","tags":["Class"]},{"location":"ImGui.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ImGui.html#addbutton","title":"AddButton ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addbutton-string-parentid-string-elementid-string-label-function-clickcallback-nil-boolean-issmall-false","title":"void AddButton ( string ParentId, string ElementId, string Label = \"\", function ClickCallback = nil, boolean IsSmall = false )","text":"","tags":["Class"]},{"location":"ImGui.html#addcallback","title":"AddCallback ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcallback-string-elementid-imguicallback-type-function-func","title":"void AddCallback ( string ElementId, ImGuiCallback Type, Function func )","text":"

Add a callback to an ImGui-element. An element can have one callback per type.

","tags":["Class"]},{"location":"ImGui.html#addcheckbox","title":"AddCheckbox ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcheckbox-string-parentid-string-elementid-string-label-function-changecallback-nil-boolean-isactive-false","title":"void AddCheckbox ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, boolean IsActive = false )","text":"","tags":["Class"]},{"location":"ImGui.html#addcombobox","title":"AddCombobox ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcombobox-string-parentid-string-elementid-string-label-function-changecallback-nil-table-options-int-selectedindex-0-boolean-isslider-false","title":"void AddCombobox ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, table Options, int SelectedIndex = 0, boolean IsSlider = false )","text":"

Adds a Combobox element which represents a single line element that allows you to select a value from a dropdown menu. If isSlider is set to true, instead of a dropdown menu, the values can be selected by interacting with a slider element.

Example Code
ImGui.AddCombobox(\"catInput\", \"combobox1\", \"Combobox\", function(index, val) print(index, val) end, { \"Item 1\", \"Item 2\", \"Item 3\" }, 1)\n
","tags":["Class"]},{"location":"ImGui.html#adddragfloat","title":"AddDragFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-adddragfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-speed-1-float-min-integer_min-float-min-integer_max-string-formatting-3f","title":"void AddDragFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Speed = 1, float Min = INTEGER_MIN, float Min = INTEGER_MAX, string Formatting = \"%.3f\" )","text":"","tags":["Class"]},{"location":"ImGui.html#adddraginteger","title":"AddDragInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-adddraginteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-float-speed-1-int-min-integer_min-int-min-integer_max-string-formatting-d","title":"void AddDragInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, float Speed = 1, int Min = INTEGER_MIN, int Min = INTEGER_MAX, string Formatting = \"%d%\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addelement","title":"AddElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addelement-string-parentid-string-elementid-imguielement-type-string-label","title":"void AddElement ( string ParentId, string ElementId = \"\", ImGuiElement type, string Label = \"\" )","text":"

Adds a generic element to a given parent. Useful to add control elements like \"SameLine\", \"Bullet\" or \"Text\".

","tags":["Class"]},{"location":"ImGui.html#addinputcolor","title":"AddInputColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcolor-string-parentid-string-elementid-string-label-function-changecallback-nil-float-r-0-float-g-0-float-b-0","title":"void AddInputColor ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float r = 0, float g = 0, float b = 0)","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcolor-string-parentid-string-elementid-string-label-function-changecallback-nil-float-r-0-float-g-0-float-b-0-float-a-1","title":"void AddInputColor ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float r = 0, float g = 0, float b = 0, float a = 1 )","text":"

Adds a color input element. If the parameter a is set, it acts as an RGBA input. Otherwise its just an RGB input. The float values are between 0 and 1.

The callback gets passed the r,g,b and a values as seperate parameters.

Example Code
ImGui.AddInputColor(\"catInput\", \"inputColorRGB\", \"RGB input\", function(r, g, b) print(r, g, b) end, 1, 0.25, 0.45)\nImGui.AddInputColor(\"catInput\", \"inputColorRGBA\", \"RGBA input\", function(r, g, b, a) print(r, g, b, a) end, 0.5, 0.5, 0.5,\n    0.5)\n
","tags":["Class"]},{"location":"ImGui.html#addinputcontroller","title":"AddInputController ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcontroller-string-parentid-string-elementid-string-buttonlabel-function-changecallback-nil-float-defaultval-0","title":"void AddInputController ( string ParentId, string ElementId, string ButtonLabel = \"\", function ChangeCallback = nil, float DefaultVal = 0 )","text":"

Adds an input for Gamepad / controller buttons.

The callback gets passed the ButtonAction ID and the ImGuiKey name of the new button.

","tags":["Class"]},{"location":"ImGui.html#addinputfloat","title":"AddInputFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-step-1-float-stepfast-100","title":"void AddInputFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Step = 1, float StepFast = 100 )","text":"","tags":["Class"]},{"location":"ImGui.html#addinputinteger","title":"AddInputInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputinteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-int-step-1-int-stepfast-100","title":"void AddInputInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, int Step = 1, int StepFast = 100 )","text":"","tags":["Class"]},{"location":"ImGui.html#addinputkeyboard","title":"AddInputKeyboard ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputkeyboard-string-parentid-string-elementid-string-buttonlabel-function-changecallback-nil-float-defaultval-0","title":"void AddInputKeyboard ( string ParentId, string ElementId, string ButtonLabel = \"\", function ChangeCallback = nil, float DefaultVal = 0 )","text":"

Adds an input for keyboard buttons.

The callback gets passed the Keyboard key ID and the ImGuiKey name of the new button.

","tags":["Class"]},{"location":"ImGui.html#addinputtext","title":"AddInputText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputtext-string-parentid-string-elementid-string-description-function-changecallback-nil-string-defaultval-string-hinttext","title":"void AddInputText ( string ParentId, string ElementId, string Description = \"\", function ChangeCallback = nil, string DefaultVal = \"\", string HintText = \"\" )","text":"

Adds a text input element. The text from HintText will get displayed as a \"placeholder\" inside the input element, if the input of the element is empty.

","tags":["Class"]},{"location":"ImGui.html#addinputtextmultiline","title":"AddInputTextMultiline ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputtextmultiline-string-parentid-string-elementid-string-description-function-changecallback-nil-string-defaultval-float-displayedlines-6","title":"void AddInputTextMultiline ( string ParentId, string ElementId, string Description = \"\", function ChangeCallback = nil, string DefaultVal = \"\", float DisplayedLines = 6 )","text":"

Adds a text input element that allows to input multiple lines of text. The attribute displayedLines can be used to change the height of the element.

","tags":["Class"]},{"location":"ImGui.html#addplothistogram","title":"AddPlotHistogram ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addplothistogram-string-parentid-string-elementid-string-label-table-values-string-overlaytext-float-minimum-flt_min-float-maximum-flt_max-float-height-40","title":"void AddPlotHistogram ( string ParentId, string ElementId, string Label = \"\", table Values, string OverlayText = \"\", float Minimum = FLT_MIN, float Maximum = FLT_MAX, float Height = 40 )","text":"

Adds a bar-diagram displaying the given data as vertical bars. On default, minimum and maximum are set \"dynamicaly\", making the diagram fit its content perfectly.

","tags":["Class"]},{"location":"ImGui.html#addplotlines","title":"AddPlotLines ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addplotlines-string-parentid-string-elementid-string-label-table-values-string-overlaytext-float-minimum-flt_min-float-maximum-flt_max-float-height-40","title":"void AddPlotLines ( string ParentId, string ElementId, string Label = \"\", table Values, string OverlayText = \"\", float Minimum = FLT_MIN, float Maximum = FLT_MAX, float Height = 40 )","text":"

Adds a line-diagram connecting the given values using lines. On default, minimum and maximum are set \"dynamicaly\", making the diagram fit its content perfectly.

","tags":["Class"]},{"location":"ImGui.html#addprogressbar","title":"AddProgressBar ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addprogressbar-string-parentid-string-elementid-string-label-float-progress-0-string-overlaytext-default","title":"void AddProgressBar ( string ParentId, string ElementId, string Label = \"\", float Progress = 0, string OverlayText = \"DEFAULT\" )","text":"

Adds a progressbar element. The progress value defines the fill percentage (0 to 1).

If the overlayText was not defined, the progressbar will display the current fill state in percent inside the progressbar (for example 50% when progress is set to 0.5).

If the label is empty, the progressbar will render over the full width of the parent element.

","tags":["Class"]},{"location":"ImGui.html#addradiobuttons","title":"AddRadioButtons ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addradiobuttons-string-parentid-string-elementid-function-changecallback-nil-table-options-int-selectedindex-0-boolean-rendersameline-true","title":"void AddRadioButtons ( string ParentId, string ElementId, function ChangeCallback = nil, table options, int SelectedIndex = 0, boolean renderSameLine = true )","text":"Example Code
ImGui.AddRadioButtons(\"catInput\", \"radioButtons\", function(index) print(index) end, { \"Radio 1\", \"Radio 2\", \"Radio 3\" }, 1)\n
","tags":["Class"]},{"location":"ImGui.html#addsliderfloat","title":"AddSliderFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addsliderfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-min-integer_min-float-max-integer_max-string-formatting-3f","title":"void AddSliderFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Min = INTEGER_MIN, float Max = INTEGER_MAX, string Formatting = \"%.3f\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addsliderinteger","title":"AddSliderInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addsliderinteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-int-min-integer_min-int-max-integer_max-string-formatting-d","title":"void AddSliderInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, int Min = INTEGER_MIN, int Max = INTEGER_MAX, string Formatting = \"%d%\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addtab","title":"AddTab ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtab-string-parentid-string-elementid-string-label","title":"void AddTab ( string ParentId, string ElementId, string Label )","text":"

A tab is a clickable area that shows another page or area.

The parent object needs to be a TabBar.

","tags":["Class"]},{"location":"ImGui.html#addtabbar","title":"AddTabBar ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtabbar-string-parentid-string-elementid","title":"void AddTabBar ( string ParentId, string ElementId )","text":"

A TabBar is a container which is used to store Tab elements.

","tags":["Class"]},{"location":"ImGui.html#addtext","title":"AddText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtext-string-parentid-string-text-boolean-wraptext-false-string-elementid","title":"void AddText ( string ParentId, string Text, boolean WrapText = false, string ElementId = \"\" )","text":"

Creates a text element. If wrapText is set to true, the text will wrap on the window borders. If set to false it will expand the window content till it fits.

The ElementId can be set as well, if the text should be able to be edited by later code.

","tags":["Class"]},{"location":"ImGui.html#createmenu","title":"CreateMenu ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-createmenu-string-elementid-string-label","title":"void CreateMenu ( string ElementId, string Label = \"\" )","text":"

Creates an entry to the main menu bar of Repentogon.

","tags":["Class"]},{"location":"ImGui.html#createwindow","title":"CreateWindow ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-createwindow-string-elementid-string-title","title":"void CreateWindow ( string ElementId, string Title = \"\" )","text":"

Creates a window object. You need to use LinkWindowToElement() or SetVisible() to toggle the visibility of the window.

","tags":["Class"]},{"location":"ImGui.html#elementexists","title":"ElementExists ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-elementexists-string-elementid","title":"boolean ElementExists ( string ElementId )","text":"

Returns true if an element with the given ID exists already.

","tags":["Class"]},{"location":"ImGui.html#getmouseposition","title":"GetMousePosition ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-getmouseposition","title":"void GetMousePosition ( )","text":"

Returns the mouse position in Screen coordinates.

Use this instead of Input.GetMousePosition() when working with imgui!

","tags":["Class"]},{"location":"ImGui.html#getvisible","title":"GetVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-getvisible-string-elementid","title":"boolean GetVisible ( string ElementId )","text":"

Get if a window element is visible or not.

","tags":["Class"]},{"location":"ImGui.html#getwindowpinned","title":"GetWindowPinned ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-getwindowpinned-string-windowid","title":"boolean GetWindowPinned ( string WindowId )","text":"

Get the pinned state of a window.

","tags":["Class"]},{"location":"ImGui.html#hide","title":"Hide ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-hide","title":"void Hide ( )","text":"

Closes ImGui.

","tags":["Class"]},{"location":"ImGui.html#imguitoworld","title":"ImGuiToWorld ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-imguitoworld-vector-position","title":"void ImGuiToWorld ( Vector Position )","text":"

Converts ImGui coordinates into World coordinates.

Bug

This function does not work correctly when the game's scale factor exceeds MaxRenderScale.

","tags":["Class"]},{"location":"ImGui.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"

Called when the player is actively in ImGui. This isn't triggered by \"pinned\" windows.

","tags":["Class"]},{"location":"ImGui.html#linkwindowtoelement","title":"LinkWindowToElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-linkwindowtoelement-string-windowid-string-elementid","title":"void LinkWindowToElement ( string WindowId, string ElementId )","text":"

Connects a Window or Popup element to another element, making said element act as a \"toggle\" for that window.

Example Code

this code creates a new menu entry with one menuitem, which on click toggles a window

ImGui.CreateMenu(\"myMenu\", \"Test Menu\")\nImGui.AddElement(\"myMenu\", \"myButton\", ImGuiElement.MenuItem, \"Some Text\")\nImGui.CreateWindow(\"myWindow\", \"Some Window title\")\nImGui.LinkWindowToElement(\"myWindow\", \"myButton\")\n

","tags":["Class"]},{"location":"ImGui.html#pushnotification","title":"PushNotification ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-pushnotification-const-text-imguinotificationtype-notificationtype-0-int-lifetime-5000","title":"void PushNotification ( const Text, ImGuiNotificationType notificationType = 0, int lifetime = 5000 )","text":"

Displays a pop-up message window in the style of a notification.

","tags":["Class"]},{"location":"ImGui.html#removecallback","title":"RemoveCallback ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removecallback-string-elementid-imguicallback-type","title":"void RemoveCallback ( string ElementId, ImGuiCallback type )","text":"

Remove the callback of the given type from the element.

","tags":["Class"]},{"location":"ImGui.html#removecolor","title":"RemoveColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removecolor-string-elementid-imguicolor-colortype","title":"void RemoveColor ( string ElementId, ImGuiColor colorType )","text":"

Remove a color modifier of the given type from the element.

","tags":["Class"]},{"location":"ImGui.html#removeelement","title":"RemoveElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removeelement-string-elementid","title":"void RemoveElement ( string ElementId )","text":"

General function to remove any kind of element.

","tags":["Class"]},{"location":"ImGui.html#removemenu","title":"RemoveMenu ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removemenu-string-elementid","title":"void RemoveMenu ( string ElementId )","text":"","tags":["Class"]},{"location":"ImGui.html#removewindow","title":"RemoveWindow ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removewindow-string-elementid","title":"void RemoveWindow ( string ElementId )","text":"","tags":["Class"]},{"location":"ImGui.html#reset","title":"Reset ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-reset","title":"void Reset ( )","text":"

Removes all custom defined Imgui elements and resets imgui back to its original state.

","tags":["Class"]},{"location":"ImGui.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setcolor-string-elementid-imguicolor-colortype-float-r-float-g-float-b-float-a-10","title":"void SetColor ( string ElementId, ImGuiColor ColorType, float r, float g, float b, float a = 1.0 )","text":"

Adds a color modifier to a given element.

","tags":["Class"]},{"location":"ImGui.html#sethelpmarker","title":"SetHelpmarker ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-sethelpmarker-string-elementid-string-text","title":"void SetHelpmarker ( string ElementId, string Text )","text":"

Adds a helpmarker to a given element. A Helpmarker is a (?) element rendered on the right of an element, which when hovered displays a tooltip.

","tags":["Class"]},{"location":"ImGui.html#settextcolor","title":"SetTextColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-settextcolor-string-elementid-float-r-float-g-float-b-float-a-10","title":"void SetTextColor ( string ElementId, float r, float g, float b, float a = 1.0 )","text":"

Shortcut function to add a color modifier to text of a given element.

","tags":["Class"]},{"location":"ImGui.html#settooltip","title":"SetTooltip ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-settooltip-string-elementid-string-text","title":"void SetTooltip ( string ElementId, string Text )","text":"

Adds a tooltip to a given element. The tooltip is visible when the user hovers over the element.

","tags":["Class"]},{"location":"ImGui.html#setvisible","title":"SetVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setvisible-string-elementid-boolean-visible","title":"void SetVisible ( string ElementId, boolean Visible )","text":"","tags":["Class"]},{"location":"ImGui.html#setwindowpinned","title":"SetWindowPinned ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowpinned-string-windowid-boolean-pinned","title":"void SetWindowPinned ( string WindowId, boolean Pinned )","text":"

Set the pinned state of a window, making it visible when the ImGui interface is not active.

","tags":["Class"]},{"location":"ImGui.html#setwindowposition","title":"SetWindowPosition ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowposition-string-windowid-float-x-float-y","title":"void SetWindowPosition ( string WindowId, float x, float y )","text":"

Set the position of a window in screen coordinates.

","tags":["Class"]},{"location":"ImGui.html#setwindowsize","title":"SetWindowSize ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowsize-string-windowid-float-width-float-height","title":"void SetWindowSize ( string WindowId, float width, float Height )","text":"

Set the width and height of a window, in pixels.

","tags":["Class"]},{"location":"ImGui.html#show","title":"Show ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-show","title":"void Show ( )","text":"

Opens ImGui.

","tags":["Class"]},{"location":"ImGui.html#updatedata","title":"UpdateData ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-int-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, int NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-float-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, float NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-boolean-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, boolean NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-string-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, string NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-table-newdatavalues","title":"void UpdateData ( string ElementId, ImGuiData DataType, table NewDataValues )","text":"

Update arbitrary data of a given element. See ImGuiData for possible data to update.

The dataTypes and the expected NewDataValue are evaluated per element. Therefore, if you try to update data of an element where this data is not used, this function will throw an error for you.

","tags":["Class"]},{"location":"ImGui.html#updatetext","title":"UpdateText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatetext-string-elementid-string-text","title":"void UpdateText ( string ElementId, string Text )","text":"

Shortcut function to update an element text or label.

","tags":["Class"]},{"location":"ImGui.html#worldtoimgui","title":"WorldToImGui ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-worldtoimgui-vector-position","title":"void WorldToImGui ( Vector Position )","text":"

Converts world coordinates into ImGui coordinates.

Bug

This function does not work correctly when the game's scale factor exceeds MaxRenderScale.

","tags":["Class"]},{"location":"Isaac.html","title":"Global Class \"Isaac\"","text":"","tags":["Global","Class"]},{"location":"Isaac.html#modified-functions","title":"Modified Functions","text":"","tags":["Global","Class"]},{"location":"Isaac.html#findbytype","title":"FindByType ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findbytype-entitytype-type-int-variant-1-int-subtype-1-boolean-cache-false-boolean-ignorefriendly-false","title":"Entity[] FindByType ( EntityType Type, int Variant = -1, int SubType = -1, boolean Cache = false, boolean IgnoreFriendly = false )","text":"

Same as vanilla, but much faster.

","tags":["Global","Class"]},{"location":"Isaac.html#findinradius","title":"FindInRadius ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findinradius-vector-position-float-radius-int-partitions-0xffffffff","title":"Entity[] FindInRadius ( Vector Position, float Radius, int Partitions = 0xFFFFFFFF )","text":"

Same as in vanilla, but much faster and with fixed search for effects.

","tags":["Global","Class"]},{"location":"Isaac.html#getroomentities","title":"GetRoomEntities ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-getroomentities","title":"Entity[] GetRoomEntities ( )","text":"

Same as vanilla, but much faster.

","tags":["Global","Class"]},{"location":"Isaac.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Isaac.html#allmarksfilled","title":"AllMarksFilled ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-allmarksfilled-playertype-character","title":"int AllMarksFilled ( PlayerType Character)","text":"

Checks if a given character has completed all marks and returns the highest difficulty it was accomplished in if it applies(1-normal/2-hard/0-none). Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#alltaintedcompletion","title":"AllTaintedCompletion ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-alltaintedcompletion-playertype-character-taintedmarksgroup-group","title":"int AllTaintedCompletion ( PlayerType Character, TaintedMarksGroup Group)","text":"

Checks if a given character has completed all the tainted unlock-related marks and returns the highest difficulty it was accomplished in if it applies(1-normal/2-hard/0-none). Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#canstarttruecoop","title":"CanStartTrueCoop ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-canstarttruecoop","title":"boolean CanStartTrueCoop ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#centercursor","title":"CenterCursor ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-centercursor","title":"void CenterCursor ( )","text":"

Moves the windows mouse cursor to the center of the game's window. This is incredibly niche but useful if you want to use cursor controls for anything fancy and have full control over it. It wont move the cursor if Isaac.exe becomes out of focus.

Note

Take in mind the screen center is NOT the center of the room necessarily, it's just the center of the game's window(center of the actual screen if you are on fullscreen).

","tags":["Global","Class"]},{"location":"Isaac.html#clearbosshazards","title":"ClearBossHazards ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearbosshazards-boolean-ignorenpcs-false","title":"void ClearBossHazards ( boolean IgnoreNPCs = false )","text":"

Kills all projectiles and, if IgnoreNPCs is false, all non-friendly NPCs capable of keeping doors closed.

","tags":["Global","Class"]},{"location":"Isaac.html#clearcompletionmarks","title":"ClearCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearcompletionmarks-playertype-character","title":"void ClearCompletionMarks ( PlayerType Character)","text":"

Deletes all completion marks for a given character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#clearchallenge","title":"ClearChallenge ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearchallenge-int-challengeid","title":"void ClearChallenge ( int challengeid)","text":"

Sets the challenge of the corresponding challengeid to completed. Should work with both custom and vanilla challenges.

","tags":["Global","Class"]},{"location":"Isaac.html#createtimer","title":"CreateTimer ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entityeffect-createtimer-function-function-int-interval-int-times-boolean-persistent","title":"EntityEffect CreateTimer ( function Function, int Interval, int Times, boolean Persistent )","text":"

Spawns a timer EntityEffect. This entity will starting running Function function after Interval frames, and will repeat it Times amount of times. Persistent controls whether or not this timer \"dies\" in the current room, or persists across rooms.

Timer behavior

This timer is called every game update. This means the timer only takes into consideration frames in which the game is actively running, not paused, and uses update frames for its Delay parameter (30 frames per second).

If your use case requires that a timer takes paused time into account, stick with a custom timer running on a RENDER callback.

","tags":["Global","Class"]},{"location":"Isaac.html#createweapon","title":"CreateWeapon ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#weapon-createweapon-weapontype-type-entity-owner","title":"Weapon CreateWeapon ( WeaponType Type, Entity Owner )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#destroyweapon","title":"DestroyWeapon ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-destroyweapon-weapon-weapon","title":"void DestroyWeapon ( Weapon Weapon )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#drawline","title":"DrawLine ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-drawline-vector-startpos-vector-endpos-kcolor-startcolor-kcolor-endcolor-int-thickness","title":"void DrawLine ( Vector StartPos, Vector EndPos, KColor StartColor, KColor EndColor, int Thickness )","text":"

Draws a line between the two given positions this render frame.

","tags":["Global","Class"]},{"location":"Isaac.html#drawquad","title":"DrawQuad ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-drawquad-vector-topleftpos-vector-toprightpos-vector-bottomleftpos-vector-bottomrightpos-kcolor-color-int-thickness","title":"void DrawQuad ( Vector TopLeftPos, Vector TopRightPos, Vector BottomLeftPos, Vector BottomRightPos, KColor Color, int Thickness )","text":"

Draws a line between the two given positions this render frame. Internally the game uses its own struct for this, DestinationQuad, but I haven't gotten to adding that to Lua yet

","tags":["Global","Class"]},{"location":"Isaac.html#fillcompletionmarks","title":"FillCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-fillcompletionmarks-playertype-character","title":"void FillCompletionMarks ( PlayerType Character)","text":"

Completes all completion marks for a given character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#findincapsule","title":"FindInCapsule ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findincapsule-capsule-capsule-entitypartitions-partitions-1","title":"Entity[] FindInCapsule ( Capsule Capsule, EntityPartitions Partitions = -1 )","text":"

Return entities inside of given capsule, filtered by partitions mask.

","tags":["Global","Class"]},{"location":"Isaac.html#getachievementidbyname","title":"GetAchievementIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getachievementidbyname-string-name","title":"table GetAchievementIdByName ( string name )","text":"

Gets the Achievement ID By Name.

Warning

Modded achievements are not loaded until past the main menu is initialized, so dont use this function on modload to get your ids. A suggested place to do so is the MC_POST_SAVESLOT_LOAD callback.

","tags":["Global","Class"]},{"location":"Isaac.html#getclipboard","title":"GetClipboard ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getclipboard","title":"string GetClipboard ( )","text":"

Gets the contents of the clipboard as long as they are in text form, otherwise it will just return nil.

","tags":["Global","Class"]},{"location":"Isaac.html#getcollectiblespawnposition","title":"GetCollectibleSpawnPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-getcollectiblespawnposition-vector-position","title":"Vector GetCollectibleSpawnPosition ( Vector Position )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getcompletionmark","title":"GetCompletionMark ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getcompletionmark-playertype-character-completiontype-mark","title":"int GetCompletionMark ( PlayerType Character, CompletionType Mark)","text":"

Gets a completion mark value for a specific character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#getcompletionmarks","title":"GetCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getcompletionmarks-playertype-character","title":"table GetCompletionMarks ( PlayerType Character)","text":"

Returns a table containing all the marks for the character. Supports both modded and vanilla characters.

Table structure & usage
  • The table has the following fields:
    • PlayerType: containing the PlayerType asociated to the marks
    • MomsHeart: value of Difficulty 0-2 indicating the completion
    • Isaac: value of Difficulty 0-2 indicating the completion
    • Satan: value of Difficulty 0-2 indicating the completion
    • BossRush: value of Difficulty 0-2 indicating the completion
    • BlueBaby: value of Difficulty 0-2 indicating the completion
    • Lamb: value of Difficulty 0-2 indicating the completion
    • MegaSatan: value of Difficulty 0-2 indicating the completion
    • UltraGreed: value of Difficulty 0-2 indicating the completion
    • Hush: value of Difficulty 0-2 indicating the completion
    • UltraGreedier: Mostly redundant with UltraGreed when it has a value of 2, no need to set it
    • Delirium: value of Difficulty 0-2 indicating the completion
    • Mother: value of Difficulty 0-2 indicating the completion
    • Beast: value of Difficulty 0-2 indicating the completion
      local marks = Isaac.GetCompletionMarks(0)\nif (marks.MomsHeart > 0) then\n    print(\"got mom\")\nend\nif (marks.Lamb >= 2) then\n    print(\"GOATED ON H4RD\")\nend\nif (Isaac.GetCompletionMarks(0).Delirium > 0) then --doing it the lazy way, fitting deliriums theme\n    print(\"Got Deli\")\nend\n
","tags":["Global","Class"]},{"location":"Isaac.html#getcursorsprite","title":"GetCursorSprite ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#sprite-getcursorsprite","title":"Sprite GetCursorSprite ( )","text":"

Returns the cursor sprite that is rendered when Options.MouseControl is set to true.

","tags":["Global","Class"]},{"location":"Isaac.html#getcutsceneidbyname","title":"GetCutsceneIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getcutsceneidbyname-string-name","title":"table GetCutsceneIdByName ( string Name )","text":"

Gets the Cutscene ID By Name.

","tags":["Global","Class"]},{"location":"Isaac.html#getentitysubtypebyname","title":"GetEntitySubTypeByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getentitysubtypebyname-string-name","title":"int GetEntitySubTypeByName ( string Name )","text":"

Gets the entity SubType by entity name.

","tags":["Global","Class"]},{"location":"Isaac.html#getgiantbookidbyname","title":"GetGiantBookIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getgiantbookidbyname-string-name","title":"int GetGiantBookIdByName ( string Name )","text":"

Gets a GiantBook Id by name. For vanilla giantbooks, the png filename, from the gfx xml attribute, is used as the giantbook name.

","tags":["Global","Class"]},{"location":"Isaac.html#getloadedmodules","title":"GetLoadedModules ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getloadedmodules","title":"table GetLoadedModules ( )","text":"

Returns a key - value table containing all loaded script files, where the key is the name or path of a given script file, and the value the return value of that file after loading. (In most cases its true or a table)

","tags":["Global","Class"]},{"location":"Isaac.html#getlocalizedstring","title":"GetLocalizedString ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getlocalizedstring-string-category-string-key-int-language","title":"string GetLocalizedString ( string Category, string Key, int Language )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getlocalizedstring-string-category-string-key-string-languagecode","title":"string GetLocalizedString ( string Category, string Key, string LanguageCode )","text":"

Returns the translation string associated with the given key in the given category. The translation is given in the language ID/language code given as parameter.

","tags":["Global","Class"]},{"location":"Isaac.html#getmodchallengeclearcount","title":"GetModChallengeClearCount ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getmodchallengeclearcount-int-challengeid","title":"int GetModChallengeClearCount (int challengeid)","text":"

Returns the number of times a custom challenge was cleared. It resets if its ever set as not Done.

","tags":["Global","Class"]},{"location":"Isaac.html#getnullitemidbyname","title":"GetNullItemIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getnullitemidbyname","title":"int GetNullItemIdByName ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getpersistentgamedata","title":"GetPersistentGameData ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#persistentgamedata-getpersistentgamedata","title":"PersistentGameData GetPersistentGameData ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getrenderposition","title":"GetRenderPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-getrenderposition-vector-position-boolean-scale-true","title":"Vector GetRenderPosition ( Vector Position, boolean Scale = true )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getstring","title":"GetString ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getstring-string-category-string-key","title":"string GetString ( string Category, string Key )","text":"

Returns the translation string associated with the given key in the given category. The translation is given in the currently selected language.

","tags":["Global","Class"]},{"location":"Isaac.html#isingame","title":"IsInGame ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-isingame","title":"boolean IsInGame ( )","text":"

Returns true if Game is non-nil and the current state is correct.

","tags":["Global","Class"]},{"location":"Isaac.html#ischallengedone","title":"IsChallengeDone ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-ischallengedone-int-challengeid","title":"boolean IsChallengeDone (int challengeid )","text":"

Returns true if the challenge of the corresponding challengeid is completed.

","tags":["Global","Class"]},{"location":"Isaac.html#markchallengeasnotdone","title":"MarkChallengeAsNotDone ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-markchallengeasnotdone-int-challengeid","title":"void MarkChallengeAsNotDone (int challengeid )","text":"

Sets the challenge as not done.

","tags":["Global","Class"]},{"location":"Isaac.html#levelgeneratorentry","title":"LevelGeneratorEntry ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#levelgeneratorentry-levelgeneratorentry","title":"LevelGeneratorEntry LevelGeneratorEntry ( )","text":"

Creates a new blank LevelGeneratorEntry object.

","tags":["Global","Class"]},{"location":"Isaac.html#playcutscene","title":"PlayCutscene ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-playcutscene-int-id","title":"int PlayCutscene ( int ID )","text":"

Plays the Cutscene of the provided ID. Use Isaac.GetCutsceneIdByName to get the IDs, or the enum for the vanilla ones if you prefer.

","tags":["Global","Class"]},{"location":"Isaac.html#setclipboard","title":"SetClipboard ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-setclipboard-string-clipboarddata","title":"boolean SetClipboard ( string ClipboardData )","text":"

Sets the contents of the clipboard to the provided string.

","tags":["Global","Class"]},{"location":"Isaac.html#setcompletionmark","title":"SetCompletionMark ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-setcompletionmark-playertype-character-completiontype-mark-int-value","title":"void SetCompletionMark ( PlayerType Character, CompletionType Mark, int Value)","text":"

Sets a completion mark of a character to match a specific value from 0 to 2. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#setcompletionmarks","title":"SetCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-setcompletionmarks-table-marks","title":"void SetCompletionMarks ( table Marks )","text":"

Sets the completion marks of a character to match an input table. Supports both modded and vanilla characters. Requires a table containing all the marks for the character, getting it from GetCompletionMarks is adviced for convenience.

Table structure & usage
  • The table needs the following fields:
    • PlayerType: containing the PlayerType asociated to the marks
    • MomsHeart: value of Difficulty 0-2 indicating the completion
    • Isaac: value of Difficulty 0-2 indicating the completion
    • Satan: value of Difficulty 0-2 indicating the completion
    • BossRush: value of Difficulty 0-2 indicating the completion
    • BlueBaby: value of Difficulty 0-2 indicating the completion
    • Lamb: value of Difficulty 0-2 indicating the completion
    • MegaSatan: value of Difficulty 0-2 indicating the completion
    • UltraGreed: value of Difficulty 0-2 indicating the completion
    • Hush: value of Difficulty 0-2 indicating the completion
    • UltraGreedier: Mostly redundant with UltraGreed when it has a value of 2, no need to set it
    • Delirium: value of Difficulty 0-2 indicating the completion
    • Mother: value of Difficulty 0-2 indicating the completion
    • Beast: value of Difficulty 0-2 indicating the completion
      local marks = Isaac.GetCompletionMarks(0) --getting the current table\nmarks.MomsHeart = 2 --Isaac now will have the hard mark on MHeart\nmarks.Satan = 1 --Isaac will now have the normal mark on Satan\nmarks.BlueBaby = 0 --Removes the BlueBaby Mark if its present\nIsaac.SetCompletionMarks(marks) --Impacts the changes on the player\n
","tags":["Global","Class"]},{"location":"Isaac.html#showerrordialog","title":"ShowErrorDialog ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#dialogreturn-showerrordialog-string-title-string-text-dialogicons-icon-dialogiconserror-dialogbuttons-buttons-dialogbuttonsok","title":"DialogReturn ShowErrorDialog ( string Title, string Text, DialogIcons Icon = DialogIcons.ERROR, DialogButtons Buttons = DialogButtons.OK )","text":"

Displays a Win32 message box. Can be controlled with the icon and buttons parameters. Returns a DialogReturn value that indicates the button pressed.

","tags":["Global","Class"]},{"location":"Isaac.html#worldtomenuposition","title":"WorldToMenuPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-worldtomenuposition-mainmenu-menuid-vector-position","title":"Vector WorldToMenuPosition ( MainMenu MenuId, Vector Position )","text":"

Converts the World position from input to a pinned main menu position that varies depending on the enum selected. It's important to reconvert this every frame, in a similar fashion to WorldToRender, in order to properly render when menus are changed or the window is resized.

","tags":["Global","Class"]},{"location":"Isaac.html#triggerwindowresize","title":"TriggerWindowResize ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-triggerwindowresize","title":"void TriggerWindowResize ( )","text":"

Simulates a window resize, useful to refresh some option changes like maxrender.

","tags":["Global","Class"]},{"location":"ItemConfig.html","title":"Class \"ItemConfig\"","text":"","tags":["Class"]},{"location":"ItemConfig.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ItemConfig.html#canrerollcollectible","title":"CanRerollCollectible ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#boolean-canrerollcollectible-int-id","title":"boolean CanRerollCollectible ( int ID )","text":"","tags":["Class"]},{"location":"ItemConfig.html#gettaggeditems","title":"GetTaggedItems ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#itemconfig_item-gettaggeditems-int-tags","title":"ItemConfig_Item[] GetTaggedItems ( int Tags )","text":"

Returns a table of ItemConfig_Item objects with the given tags

","tags":["Class"]},{"location":"ItemConfig.html#isvalidtrinket","title":"IsValidTrinket ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#boolean-isvalidtrinket-trinkettype-trinkettype","title":"boolean IsValidTrinket ( TrinketType TrinketType )","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html","title":"Class \"ItemConfigPillEffect\"","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#effectclass","title":"EffectClass","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#int-effectclass","title":"int EffectClass","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#effectsubclass","title":"EffectSubClass","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#int-effectsubclass","title":"int EffectSubClass","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"ItemOverlay.html","title":"Global Class \"ItemOverlay\"","text":"Info

You can get this class by using the ItemOverlay global table.

Example Code
local overlaysprite = ItemOverlay.GetSprite()\n
","tags":["Global","Class"]},{"location":"ItemOverlay.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getdelay","title":"GetDelay ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#int-getdelay","title":"int GetDelay ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getmegamushplayersprite","title":"GetMegaMushPlayerSprite ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#sprite-getmegamushplayersprite","title":"Sprite GetMegaMushPlayerSprite ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getoverlayid","title":"GetOverlayID ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#int-getoverlayid","title":"int GetOverlayID ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getplayer","title":"GetPlayer ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#entityplayer-getplayer","title":"EntityPlayer GetPlayer ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#show","title":"Show ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#void-show-giantbook-giantbookid-int-delay-3-entityplayer-nil","title":"void Show ( Giantbook GiantbookID, int Delay = 3, EntityPlayer = nil )","text":"","tags":["Global","Class"]},{"location":"ItemPool.html","title":"Class \"ItemPool\"","text":"","tags":["Class"]},{"location":"ItemPool.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ItemPool.html#canspawncollectible","title":"CanSpawnCollectible ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-canspawncollectible-collectibletype-collectible-boolean-ignorelocked","title":"boolean CanSpawnCollectible ( CollectibleType Collectible, boolean ignoreLocked )","text":"IgnoreLocked

If IgnoreLocked is set to true, this function will return true for items that could appear but are locked behind achievements.

It will still return false if the item was removed from the item pool or if it can't appear because other effects (Tainted Lost offensive items mechanic or NO! trinket effect).

","tags":["Class"]},{"location":"ItemPool.html#getcardex","title":"GetCardEx ()","text":"","tags":["Class"]},{"location":"ItemPool.html#card-getcardex-int-seed-int-specialchance-int-runechance-int-suitchance-boolean-allownoncards","title":"Card GetCardEx ( int Seed, int SpecialChance, int RuneChance, int SuitChance, boolean AllowNonCards )","text":"

More sophisticated version of ItemPool:GetCard() that allows to define individual chances.

","tags":["Class"]},{"location":"ItemPool.html#getcollectiblefromlist","title":"GetCollectibleFromList ()","text":"","tags":["Class"]},{"location":"ItemPool.html#collectibletype-getcollectiblefromlist-collectibletype-itemlist-int-seed-random-collectibletype-defaultitem-collectibletypecollectible_breakfast-boolean-addtoblacklist-true-boolean-excludelockeditems-false","title":"CollectibleType GetCollectibleFromList ( CollectibleType[] ItemList, int Seed = Random(), CollectibleType DefaultItem = CollectibleType.COLLECTIBLE_BREAKFAST, boolean AddToBlacklist = true, boolean ExcludeLockedItems = false )","text":"","tags":["Class"]},{"location":"ItemPool.html#getcollectiblesfrompool","title":"GetCollectiblesFromPool ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getcollectiblesfrompool-itempooltype-pooltype","title":"table GetCollectiblesFromPool ( ItemPoolType PoolType )","text":"

Returns a table of collectibles registered in the specified pool. The table contains the following fields

Field Type Comment decreaseBy float initialWeight float itemID CollectibleType removeOn float weight float","tags":["Class"]},{"location":"ItemPool.html#getnumavailabletrinkets","title":"GetNumAvailableTrinkets ()","text":"","tags":["Class"]},{"location":"ItemPool.html#int-getnumavailabletrinkets","title":"int GetNumAvailableTrinkets ( )","text":"

Returns the amount of trinkets available in the item pool.

","tags":["Class"]},{"location":"ItemPool.html#getpillcolor","title":"GetPillColor ()","text":"","tags":["Class"]},{"location":"ItemPool.html#pillcolor-getpillcolor-pilleffect-id","title":"PillColor GetPillColor ( PillEffect ID )","text":"

Returns a PillColor matching the specificed PillEffect, returns -1 if the Effect is not in the rotation.

Currently not applied by pill modifications, such as PHD/False PHD.

","tags":["Class"]},{"location":"ItemPool.html#getremovedcollectibles","title":"GetRemovedCollectibles ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getremovedcollectibles","title":"table GetRemovedCollectibles ( )","text":"

Returns a table of collectibles removed from all pools.

Example Code

This code checks if the sad onion has been removed.

local removedCollectibles = itemPool:GetRemovedCollectibles()\n\nif removedCollectibles[CollectibleType.COLLECTIBLE_SAD_ONION] then\n  print(\"Sad onion removed!\")\nend\n
","tags":["Class"]},{"location":"ItemPool.html#getroomblacklistedcollectibles","title":"GetRoomBlacklistedCollectibles ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getroomblacklistedcollectibles","title":"table GetRoomBlacklistedCollectibles ( )","text":"

Returns a table of collectibles blacklisted in the current room.

Example Code

This code checks if the sad onion has been removed.

local blacklistedCollectibles = itemPool:GetRoomBlacklistedCollectibles()\n\nif blacklistedCollectibles[CollectibleType.COLLECTIBLE_SAD_ONION] then\n  print(\"Sad onion blacklisted!\")\nend\n
","tags":["Class"]},{"location":"ItemPool.html#hascollectible","title":"HasCollectible ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-hascollectible-collectibletype-collectible","title":"boolean HasCollectible ( CollectibleType Collectible )","text":"

Returns true if collectible is available in item pools, false otherwise.

","tags":["Class"]},{"location":"ItemPool.html#hastrinket","title":"HasTrinket ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-hastrinket-trinkettype-trinket","title":"boolean HasTrinket ( TrinketType Trinket )","text":"

Returns true if trinket is currently available in trinket pool, false otherwise.

","tags":["Class"]},{"location":"ItemPool.html#unidentifypill","title":"UnidentifyPill ()","text":"","tags":["Class"]},{"location":"ItemPool.html#void-unidentifypill-pillcolor-pill","title":"void UnidentifyPill ( PillColor Pill )","text":"

Will reset a pill back to unidentified (???) state.

","tags":["Class"]},{"location":"LayerState.html","title":"Class \"LayerState\"","text":"","tags":["Class"]},{"location":"LayerState.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LayerState.html#getblendmode","title":"GetBlendMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#blendmode-getblendmode","title":"BlendMode GetBlendMode ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"LayerState.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getcropoffset","title":"GetCropOffset ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getcropoffset","title":"Vector GetCropOffset ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getdefaultspritesheetpath","title":"GetDefaultSpritesheetPath ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getdefaultspritesheetpath","title":"string GetDefaultSpritesheetPath ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getlayerid","title":"GetLayerID ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getlayerid","title":"int GetLayerID ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getrenderflags","title":"GetRenderFlags ()","text":"","tags":["Class"]},{"location":"LayerState.html#animrenderflags-getrenderflags","title":"AnimRenderFlags GetRenderFlags ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"LayerState.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getsize","title":"GetSize ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getsize","title":"Vector GetSize ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getspritesheetpath","title":"GetSpritesheetPath ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getspritesheetpath","title":"string GetSpritesheetPath ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getwrapsmode","title":"GetWrapSMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getwrapsmode","title":"int GetWrapSMode ( )","text":"

Returns the wrap mode for the x coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#getwraptmode","title":"GetWrapTMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getwraptmode","title":"int GetWrapTMode ( )","text":"

Returns the wrap mode for the y coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"LayerState.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"LayerState.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setcolor-color-color","title":"void SetColor ( Color Color )","text":"","tags":["Class"]},{"location":"LayerState.html#setcropoffset","title":"SetCropOffset ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setcropoffset-vector-offset","title":"void SetCropOffset ( Vector Offset )","text":"","tags":["Class"]},{"location":"LayerState.html#setpos","title":"SetPos ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setpos-vector-pos","title":"void SetPos ( Vector Pos )","text":"","tags":["Class"]},{"location":"LayerState.html#setrenderflags","title":"SetRenderFlags ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setrenderflags-animrenderflags-flags","title":"void SetRenderFlags ( AnimRenderFlags Flags )","text":"","tags":["Class"]},{"location":"LayerState.html#setrotation","title":"SetRotation ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setrotation-float-rotation","title":"void SetRotation ( float Rotation )","text":"","tags":["Class"]},{"location":"LayerState.html#setsize","title":"SetSize ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setsize-vector-size","title":"void SetSize ( Vector Size )","text":"","tags":["Class"]},{"location":"LayerState.html#setvisible","title":"SetVisible ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setvisible-boolean-visible","title":"void SetVisible ( boolean Visible )","text":"","tags":["Class"]},{"location":"LayerState.html#setwrapsmode","title":"SetWrapSMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setwrapsmode-int-mode","title":"void SetWrapSMode ( int Mode )","text":"

Sets the wrap mode for the x coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#setwraptmode","title":"SetWrapTMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setwraptmode-int-mode","title":"void SetWrapTMode ( int Mode )","text":"

Sets the wrap mode for the y coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"Level.html","title":"Class \"Level\"","text":"","tags":["Class"]},{"location":"Level.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Level.html#canspawndooroutline","title":"CanSpawnDoorOutline ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-canspawndooroutline-int-roomidx-doorslot-doorslot","title":"boolean CanSpawnDoorOutline ( int RoomIdx, DoorSlot DoorSlot )","text":"","tags":["Class"]},{"location":"Level.html#getdimension","title":"GetDimension ()","text":"","tags":["Class"]},{"location":"Level.html#dimension-getdimension","title":"Dimension GetDimension ( )","text":"","tags":["Class"]},{"location":"Level.html#getforcespecialquest","title":"GetForceSpecialQuest ()","text":"","tags":["Class"]},{"location":"Level.html#specialquest-getforcespecialquest","title":"SpecialQuest GetForceSpecialQuest ( )","text":"

If set, the level will automatically attempt to place the Knife Piece puzzle door for this LevelStage.

Info

This is set to SpecialQuest.DEFAULT immediately before calling MC_PRE_LEVEL_INIT.

","tags":["Class"]},{"location":"Level.html#hasabandonedmineshaft","title":"HasAbandonedMineshaft ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasabandonedmineshaft","title":"boolean HasAbandonedMineshaft ( )","text":"

Returns true if the floor has the mineshaft room used for the second Knife Piece puzzle.

","tags":["Class"]},{"location":"Level.html#hasmirrordimension","title":"HasMirrorDimension ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasmirrordimension","title":"boolean HasMirrorDimension ( )","text":"

Returns true if the floor has the mirror dimension used for the first Knife Piece puzzle.

","tags":["Class"]},{"location":"Level.html#hasphotodoor","title":"HasPhotoDoor ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasphotodoor","title":"boolean HasPhotoDoor ( )","text":"

Returns true if the floor has the photo door used to enter Mausoleum/Gehenna leading to the Ascent sequence.

","tags":["Class"]},{"location":"Level.html#isstageavailable","title":"IsStageAvailable ()","text":"","tags":["Class"]},{"location":"Level.html#void-isstageavailable-levelstage-level-stagetype-stage","title":"void IsStageAvailable ( LevelStage Level, StageType Stage )","text":"","tags":["Class"]},{"location":"Level.html#placeroom","title":"PlaceRoom ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-placeroom-levelgeneratorentry-room-roomconfigroom-roomconfig-int-seed","title":"boolean PlaceRoom ( LevelGeneratorEntry Room, RoomConfigRoom RoomConfig, int Seed )","text":"

Places a room into the game. Returns true if successful.

","tags":["Class"]},{"location":"Level.html#setforcespecialquest","title":"SetForceSpecialQuest ()","text":"","tags":["Class"]},{"location":"Level.html#void-setforcespecialquest-specialquest-quest","title":"void SetForceSpecialQuest ( SpecialQuest Quest )","text":"

Sets whether the level should attempt to place the Knife Piece puzzle door for this LevelStage.

Info

This is set to SpecialQuest.DEFAULT immediately before calling MC_PRE_LEVEL_INIT.

","tags":["Class"]},{"location":"Level.html#setname","title":"SetName ()","text":"","tags":["Class"]},{"location":"Level.html#void-setname-string-name","title":"void SetName ( string Name )","text":"","tags":["Class"]},{"location":"LevelGenerator.html","title":"Class \"LevelGenerator\"","text":"Info

This class gives access to the level generator, the tool that generates a floor.

This class cannot be instanciated. The only way to access it is through callback parameters.

  • MC_POST_LEVEL_LAYOUT_GENERATED
","tags":["Class"]},{"location":"LevelGenerator.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGenerator.html#getallrooms","title":"GetAllRooms ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getallrooms","title":"LevelGeneratorRoom[] GetAllRooms ( )","text":"

Returns a table of LevelGeneratorRoom representing all the rooms that have been generated so far.

","tags":["Class"]},{"location":"LevelGenerator.html#getdeadends","title":"GetDeadEnds ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getdeadends","title":"LevelGeneratorRoom[] GetDeadEnds ( )","text":"

Returns a table of LevelGeneratorRoom representing all the dead end rooms that have been generated so far.

","tags":["Class"]},{"location":"LevelGenerator.html#getnondeadends","title":"GetNonDeadEnds ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getnondeadends","title":"LevelGeneratorRoom[] GetNonDeadEnds ( )","text":"

Returns a table of LevelGeneratorRoom representing all the non dead end rooms that have been generator so far.

","tags":["Class"]},{"location":"LevelGenerator.html#placeroom","title":"PlaceRoom ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#int-placeroom-int-column-int-row-roomshape-shape-levelgeneratorroom-origin","title":"int PlaceRoom ( int Column, int Row, RoomShape Shape, LevelGeneratorRoom Origin )","text":"

Place a LevelGeneratorRoom object onto the level-grid. The Origin parameter is used as the index of the connecting room. For instance, if you want to place a room on top of the starting room, then Origin can be the starting room of the floor.

The column and row values need to be between 0 and 12 (inclusive).

Returns the GenerationIndex of the placed room. If placement was not possible, returns nil.

Multiple origins

The Origin parameter is used to ensure consistency with the existing rooms. During the generation phase, the game always picks a room and starts placing rooms around it. This parameter reflects this behavior.

When placing a room, you may be wondering which of its neighbors must act as the origin. This has consequences on the placement of special rooms, as the game places special rooms in a specific order based on the distance between each dead end room and the start of the floor. The distance from the start of the floor of the new room is equal to the distance from the start of the floor of Origin plus one. In practice you are free to chose any neighboring room as a point of origin.

","tags":["Class"]},{"location":"LevelGeneratorEntry.html","title":"Class \"LevelGeneratorEntry\"","text":"Info

You can get this class by using the following functions:

  • Isaac.LevelGeneratorEntry()
Example Code
local newLevelGeneratorEntry = Isaac.LevelGeneratorEntry()\n
","tags":["Class"]},{"location":"LevelGeneratorEntry.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setalloweddoors","title":"SetAllowedDoors ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setalloweddoors-levelgeneratorentry-room-int-doors","title":"void SetAllowedDoors ( LevelGeneratorEntry Room, int Doors )","text":"

I believe Doors here is a bitmask (1 << DoorSlot)

","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setcolidx","title":"SetColIdx ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setcolidx-levelgeneratorentry-room-int-colidx","title":"void SetColIdx ( LevelGeneratorEntry Room, int ColIdx )","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setlineidx","title":"SetLineIdx ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setlineidx-levelgeneratorentry-room-int-lineidx","title":"void SetLineIdx ( LevelGeneratorEntry Room, int LineIdx )","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html","title":"Class \"LevelGeneratorRoom\"","text":"Info

This class is used during level generation. Its purpose is to represent a slot in the graph of rooms that is generated during the generation phase.

This class is immutable and cannot be instanciated manually: you cannot change the value of the fields of an instance and you cannot instance it by yourself.

Access to instances is always performed through methods of the LevelGenerator itself, or instances are given as parameters of the callbacks:

  • MC_PRE_LEVEL_PLACE_ROOM
","tags":["Class"]},{"location":"LevelGeneratorRoom.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#column","title":"Column ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-column","title":"int Column ( )","text":"

Return the column of the room slot on the level grid (index is 0 based).

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#doormask","title":"DoorMask ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-doormask","title":"int DoorMask ( )","text":"

Return a mask of the available doors of the room slot. In order to check if a door at a given slot is available, use the DoorSlot enumeration.

Example

This tests if the DoorSlot LEFT0 is available.

if room:DoorMask() & (1 << DoorSlot.LEFT0) then\n    print (\"Room has a door on slot LEFT0)\nend\n

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#generationindex","title":"GenerationIndex ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-generationindex","title":"int GenerationIndex ( )","text":"

Index of the room during generation: 0 if the room was the first to be generated, 1 if it was the second etc.

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#isdeadend","title":"IsDeadEnd ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#boolean-isdeadend","title":"boolean IsDeadEnd ( )","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#neighbors","title":"Neighbors ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-neighbors","title":"int[] Neighbors ( )","text":"

Returns a table of the generation indices of the neighboring rooms.

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#row","title":"Row ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-row","title":"int Row ( )","text":"

Return the row of the room slot on the level grid (index is 0 based).

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#shape","title":"Shape ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-shape","title":"int Shape ( )","text":"

Return the shape of the room, as per the RoomShape enumeration.

","tags":["Class"]},{"location":"Minimap.html","title":"Global Class \"Minimap\"","text":"Info

You can get this class by using the Minimap global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local size = Minimap.GetDisplayedSize()\n
","tags":["Global","Class"]},{"location":"Minimap.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Minimap.html#getdisplayedsize","title":"GetDisplayedSize ()","text":"","tags":["Global","Class"]},{"location":"Minimap.html#vector-getdisplayedsize","title":"Vector GetDisplayedSize ( )","text":"

Returns the current display size of the minimap. When not expanded this is always Vector(47,47).

","tags":["Global","Class"]},{"location":"MultiShotParams.html","title":"Class \"MultiShotParams\"","text":"Info

MultiShotParams contains information the game uses to properly calculate the position and velocity of every tear fired, among other things.

You can get this class by using the following functions:

  • EntityPlayer:GetMultiShotParams
Example Code
local params = Game():GetPlayer(0):GetMultiShotParams(WeaponType.WEAPON_TEARS)\n
","tags":["Class"]},{"location":"MultiShotParams.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"MultiShotParams.html#getmultieyeangle","title":"GetMultiEyeAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#float-getmultieyeangle","title":"float GetMultiEyeAngle ( )","text":"

When more than one eye is active, defines the angle the eyes are offset to eachother. Similar to cross eye effect.

Example: for The Wiz, this is 45.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumeyesactive","title":"GetNumEyesActive ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumeyesactive","title":"int GetNumEyesActive ( )","text":"

Returns the number of eyes simultaniously shooting. Examples: For The Wiz, its 2, for mutant Spider its 1.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumlanespereye","title":"GetNumLanesPerEye ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumlanespereye","title":"int GetNumLanesPerEye ( )","text":"

Returns the amount of lanes used to spread the shot tears onto. Lane positions are calculated by dividing the area, defined by the shooting direction +- the spreadAngle, by the number of lanes. This will create a pattern similar to a symetrical hand fan. Normally the number of lanes should be the same number as the amount of tears divided by the number of eyes.

A smaller number of lanes than the amount of tears will cause tears to overlap each other. A higher lane count than tears will make the fan pattern asymetrical.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumrandomdirtears","title":"GetNumRandomDirTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumrandomdirtears","title":"int GetNumRandomDirTears ( )","text":"

Returns the amount of tears additionally shot in random directions. Same effect as \"Eye Sore\" collectible.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumtears","title":"GetNumTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumtears","title":"int GetNumTears ( )","text":"

Returns the amount of tears the player can currently simultaneously fire.

","tags":["Class"]},{"location":"MultiShotParams.html#getspreadangle","title":"GetSpreadAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#float-getspreadangle-weapontype-weapontype","title":"float GetSpreadAngle ( WeaponType WeaponType )","text":"

Get the spread angle for the given WeaponType.

","tags":["Class"]},{"location":"MultiShotParams.html#iscrosseyed","title":"IsCrossEyed ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-iscrosseyed","title":"boolean IsCrossEyed ( )","text":"

Returns if a cross eye effect is active, aka. player shoots in two directions with 45\u00b0 offset to eachother.

","tags":["Class"]},{"location":"MultiShotParams.html#isshootingbackwards","title":"IsShootingBackwards ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-isshootingbackwards","title":"boolean IsShootingBackwards ( )","text":"

Returns if an additional shot backwards will be triggered. Similar effect to Mom's Eye.

","tags":["Class"]},{"location":"MultiShotParams.html#isshootingsideways","title":"IsShootingSideways ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-isshootingsideways","title":"boolean IsShootingSideways ( )","text":"

Returns if two additional shots sideways will be triggered. Similar effect to Loki's horns.

","tags":["Class"]},{"location":"MultiShotParams.html#setiscrosseyed","title":"SetIsCrossEyed ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setiscrosseyed-boolean-value","title":"void SetIsCrossEyed ( boolean Value )","text":"

Set if a cross eye effect is active, aka. player shoots in two directions with 45\u00b0 offset to eachother.

","tags":["Class"]},{"location":"MultiShotParams.html#setisshootingbackwards","title":"SetIsShootingBackwards ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setisshootingbackwards-boolean-value","title":"void SetIsShootingBackwards ( boolean Value )","text":"

Set if an additional shot backwards will be triggered. Similar effect to Mom's Eye.

","tags":["Class"]},{"location":"MultiShotParams.html#setisshootingsideways","title":"SetIsShootingSideways ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setisshootingsideways-boolean-value","title":"void SetIsShootingSideways ( boolean Value )","text":"

Set if two additional shots sideways will be triggered. Similar effect to Loki's horns.

","tags":["Class"]},{"location":"MultiShotParams.html#setmultieyeangle","title":"SetMultiEyeAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setmultieyeangle-float-angle","title":"void SetMultiEyeAngle ( float Angle )","text":"

When more than one eye is active, defines the angle the eyes are offset to eachother. Similar to cross eye effect.

Example: for The Wiz, this is 45.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumeyesactive","title":"SetNumEyesActive ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumeyesactive-int-value","title":"void SetNumEyesActive ( int Value )","text":"

Set the number of eyes simultaniously shooting. Examples: For The Wiz, its 2, for mutant Spider its 1.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumlanespereye","title":"SetNumLanesPerEye ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumlanespereye-int-value","title":"void SetNumLanesPerEye ( int Value )","text":"","tags":["Class"]},{"location":"MultiShotParams.html#setnumrandomdirtears","title":"SetNumRandomDirTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumrandomdirtears-int-value","title":"void SetNumRandomDirTears ( int Value )","text":"

Set the amount of tears additionally shot in random directions. Same effect as \"Eye Sore\" collectible.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumtears","title":"SetNumTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumtears-int-value","title":"void SetNumTears ( int Value )","text":"

Set the amount of tears the player can currently simultaneously fire.

","tags":["Class"]},{"location":"MultiShotParams.html#setspreadangle","title":"SetSpreadAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setspreadangle-weapontype-weapontype-float-angle","title":"void SetSpreadAngle ( WeaponType WeaponType, float Angle )","text":"

Set the spread angle for the given WeaponType.

","tags":["Class"]},{"location":"MusicManager.html","title":"Class \"MusicManager\"","text":"","tags":["Class"]},{"location":"MusicManager.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"MusicManager.html#crossfade","title":"Crossfade ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-crossfade-music-musicid-float-faderate-008","title":"void Crossfade ( Music MusicId, float FadeRate = 0.08 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#fadein","title":"Fadein ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-fadein-music-musicid-float-volume-1-float-volume-008","title":"void Fadein ( Music MusicId, float Volume = 1, float Volume = 0.08 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#play","title":"Play ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-play-music-musicid-int-volume-1","title":"void Play ( Music MusicId, int Volume = -1 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"MusicManager.html#playjingle","title":"PlayJingle ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-playjingle-music-musicid","title":"void PlayJingle ( Music MusicId )","text":"","tags":["Class"]},{"location":"MusicManager.html#stopjingle","title":"StopJingle ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-stopjingle","title":"void StopJingle ( )","text":"","tags":["Class"]},{"location":"NightmareScene.html","title":"Global Class \"NightmareScene\"","text":"Info

You can get this class by using the NightmareScene global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = NightmareScene.GetBubbleSprite()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks.

","tags":["Global","Class"]},{"location":"NightmareScene.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getbackgroundsprite","title":"GetBackgroundSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getbackgroundsprite","title":"Sprite GetBackgroundSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getbubblesprite","title":"GetBubbleSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getbubblesprite","title":"Sprite GetBubbleSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getprogressbarmap","title":"GetProgressBarMap ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#int-getprogressbarmap","title":"int[] GetProgressBarMap ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getprogressbarsprite","title":"GetProgressBarSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getprogressbarsprite","title":"Sprite GetProgressBarSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#isdogmanightmare","title":"IsDogmaNightmare ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#boolean-isdogmanightmare","title":"boolean IsDogmaNightmare ( )","text":"","tags":["Global","Class"]},{"location":"NullFrame.html","title":"Class \"NullFrame\"","text":"","tags":["Class"]},{"location":"NullFrame.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"NullFrame.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"NullFrame.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"NullFrame.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"NullFrame.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"NullFrame.html#vector-getscale","title":"Vector GetScale ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"NullFrame.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"Options.html","title":"Class \"Options\"","text":"","tags":["Class"]},{"location":"Options.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"Options.html#sfxvolume","title":"SFXVolume","text":"","tags":["Class"]},{"location":"Options.html#float-sfxvolume","title":"float SFXVolume","text":"

Can now be properly set. Will clamp new values to the first decimal so that changing volume with the options menu doesn't cause invalid values.

","tags":["Class"]},{"location":"Options.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"Options.html#bettervoidgeneration","title":"BetterVoidGeneration","text":"","tags":["Class"]},{"location":"Options.html#boolean-bettervoidgeneration","title":"boolean BetterVoidGeneration","text":"

If set, The Void will draw from all unlocked floors, including alt path ones.

","tags":["Class"]},{"location":"Options.html#hushpanicstatefix","title":"HushPanicStateFix","text":"","tags":["Class"]},{"location":"Options.html#boolean-hushpanicstatefix","title":"boolean HushPanicStateFix","text":"

Fixes the vanilla bug that causes Hush to have no attack cooldown below 50% health.

","tags":["Class"]},{"location":"Options.html#keymasterdealchance","title":"KeyMasterDealChance","text":"","tags":["Class"]},{"location":"Options.html#boolean-keymasterdealchance","title":"boolean KeyMasterDealChance","text":"

If set, Key Master bums will also raise the chance for a deal when killed.

","tags":["Class"]},{"location":"Options.html#preventmodupdates","title":"PreventModUpdates","text":"","tags":["Class"]},{"location":"Options.html#boolean-preventmodupdates","title":"boolean PreventModUpdates","text":"","tags":["Class"]},{"location":"Options.html#quickroomclear","title":"QuickRoomClear","text":"","tags":["Class"]},{"location":"Options.html#boolean-quickroomclear","title":"boolean QuickRoomClear","text":"","tags":["Class"]},{"location":"PersistentGameData.html","title":"Class \"PersistentGameData\"","text":"Info

You can get this class by using the following functions:

  • Isaac.GetPersistentGameData()
Example Code
local persistentGameData = Isaac.GetPersistentGameData()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks

","tags":["Class"]},{"location":"PersistentGameData.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiarydeathcount","title":"GetBestiaryDeathCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiarydeathcount-int-type-int-variant","title":"void GetBestiaryDeathCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiaryencountercount","title":"GetBestiaryEncounterCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiaryencountercount-int-type-int-variant","title":"void GetBestiaryEncounterCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiarykillcount","title":"GetBestiaryKillCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiarykillcount-int-type-int-variant","title":"void GetBestiaryKillCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#geteventcounter","title":"GetEventCounter ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-geteventcounter-eventcounter-eventcounter","title":"void GetEventCounter ( EventCounter EventCounter )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#increaseeventcounter","title":"IncreaseEventCounter ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-increaseeventcounter-eventcounter-eventcounter-int-count","title":"void IncreaseEventCounter ( EventCounter EventCounter, int Count )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#ischallengecompleted","title":"IsChallengeCompleted ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-ischallengecompleted-challenge-challengeid","title":"boolean IsChallengeCompleted ( Challenge ChallengeId )","text":"

Checks if a challenge is completed.

","tags":["Class"]},{"location":"PersistentGameData.html#isitemincollection","title":"IsItemInCollection ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-isitemincollection-collectibletype-collectibleid","title":"boolean IsItemInCollection ( CollectibleType CollectibleId )","text":"

Checks if an item is in the collection. Aka. its at least picked up once in any run.

","tags":["Class"]},{"location":"PersistentGameData.html#tryunlock","title":"TryUnlock ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-tryunlock-achievement-unlock","title":"boolean TryUnlock ( Achievement Unlock )","text":"

Returns true if successful, false if unlocking failed or the secret was already unlocked.

","tags":["Class"]},{"location":"PersistentGameData.html#unlocked","title":"Unlocked ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-unlocked-achievement-unlock","title":"boolean Unlocked ( Achievement Unlock )","text":"

Checks if achievement is unlocked.

","tags":["Class"]},{"location":"PlayerHUD.html","title":"Class \"PlayerHUD\"","text":"Info

You can get this class by using the following functions:

  • HUD.GetPlayerHUD()
Example Code
local playerHud = HUD.GetPlayerHUD(0)\n
","tags":["Class"]},{"location":"PlayerHUD.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PlayerHUD.html#getheartbyindex","title":"GetHeartByIndex ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#playerhudheart-getheartbyindex-int-index","title":"PlayerHUDHeart GetHeartByIndex ( int Index )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#gethearts","title":"GetHearts ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#playerhudheart-gethearts","title":"PlayerHUDHeart[] GetHearts ( )","text":"

Returns table of PlayerHUDHeart objects.

","tags":["Class"]},{"location":"PlayerHUD.html#gethud","title":"GetHUD ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#hud-gethud","title":"HUD GetHUD ( )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#getplayer","title":"GetPlayer ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#entityplayer-getplayer","title":"EntityPlayer GetPlayer ( )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#renderactiveitem","title":"RenderActiveItem ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#void-renderactiveitem-activeslot-slot-vector-position-float-alpha-10-float-scale-10","title":"void RenderActiveItem ( ActiveSlot Slot, Vector Position, float Alpha = 1.0, float Scale = 1.0 )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html","title":"Class \"PlayerHUDHeart\"","text":"Info

You can get this class by using the following functions:

  • PlayerHUD.GetHeartByIndex()
Example Code
local playerHud = HUD.GetPlayerHUD(0):GetHeartByIndex(0)\n
","tags":["Class"]},{"location":"PlayerHUDHeart.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getflashtype","title":"GetFlashType ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#int-getflashtype","title":"int GetFlashType ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getheartanim","title":"GetHeartAnim ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#string-getheartanim","title":"string GetHeartAnim ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getheartoverlayanim","title":"GetHeartOverlayAnim ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#string-getheartoverlayanim","title":"string GetHeartOverlayAnim ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#isgoldenheartoverlayvisible","title":"IsGoldenHeartOverlayVisible ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#boolean-isgoldenheartoverlayvisible","title":"boolean IsGoldenHeartOverlayVisible ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"PlayerManager.html","title":"Global Class \"PlayerManager\"","text":"Info

You can get this class by using the PlayerManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = PlayerManager.AnyoneHasTrinket(TrinketType.TRINKET_SWALLOWED_PENNY)\n
","tags":["Global","Class"]},{"location":"PlayerManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#anyonehascollectible","title":"AnyoneHasCollectible ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyonehascollectible-collectibletype-collectible","title":"boolean AnyoneHasCollectible ( CollectibleType Collectible )","text":"

Returns true when any player has the item and false when no one does.

","tags":["Global","Class"]},{"location":"PlayerManager.html#anyonehastrinket","title":"AnyoneHasTrinket ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyonehastrinket-trinkettype-trinket","title":"boolean AnyoneHasTrinket ( TrinketType Trinket )","text":"

Returns true when any player has the trinket and false when no one does.

","tags":["Global","Class"]},{"location":"PlayerManager.html#anyoneisplayertype","title":"AnyoneIsPlayerType ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyoneisplayertype-playertype-playertype","title":"boolean AnyoneIsPlayerType ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#anyplayertypehasbirthright","title":"AnyPlayerTypeHasBirthright ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyplayertypehasbirthright-playertype-playertype","title":"boolean AnyPlayerTypeHasBirthright ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firstbirthrightowner","title":"FirstBirthrightOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstbirthrightowner-playertype-playertype","title":"EntityPlayer FirstBirthrightOwner ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firstcollectibleowner","title":"FirstCollectibleOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstcollectibleowner-collectibletype-collectible-boolean-lazsharedglobaltag","title":"EntityPlayer FirstCollectibleOwner ( CollectibleType Collectible, boolean LazSharedGlobalTag )","text":"

Returns nil if the specified collectible has never been picked up.

","tags":["Global","Class"]},{"location":"PlayerManager.html#firstplayerbytype","title":"FirstPlayerByType ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstplayerbytype-playertype-playertype","title":"EntityPlayer FirstPlayerByType ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firsttrinketowner","title":"FirstTrinketOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firsttrinketowner-trinkettype-trinket-rng-rng-boolean-lazsharedglobaltag","title":"EntityPlayer FirstTrinketOwner ( TrinketType Trinket, RNG RNG, boolean LazSharedGlobalTag )","text":"

Returns nil if the specified trinket has never been picked up.

","tags":["Global","Class"]},{"location":"PlayerManager.html#getesaujrstate","title":"GetEsauJrState ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-getesaujrstate-int-index-0","title":"EntityPlayer GetEsauJrState ( int Index = 0 )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#getnumcollectibles","title":"GetNumCollectibles ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#int-getnumcollectibles-collectibletype-collectible","title":"int GetNumCollectibles ( CollectibleType Collectible )","text":"

Returns the number of collectibles held by all players.

","tags":["Global","Class"]},{"location":"PlayerManager.html#getplayers","title":"GetPlayers ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-getplayers","title":"EntityPlayer[] GetPlayers ( )","text":"

Returns a table containing all players.

","tags":["Global","Class"]},{"location":"PlayerManager.html#gettotaltrinketmultiplier","title":"GetTotalTrinketMultiplier ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#int-gettotaltrinketmultiplier-trinkettype-trinket","title":"int GetTotalTrinketMultiplier ( TrinketType Trinket )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#iscoopplay","title":"IsCoopPlay ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-iscoopplay","title":"boolean IsCoopPlay ( )","text":"

Returns true if the game is in co-op mode.

","tags":["Global","Class"]},{"location":"PlayerManager.html#spawncoplayer2","title":"SpawnCoPlayer2 ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-spawncoplayer2-playertype-playertype","title":"EntityPlayer SpawnCoPlayer2 ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Global","Class"]},{"location":"PocketItem.html","title":"Class \"PocketItem\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetPocketItem()
Example Code
local pocket = Isaac.GetPlayer(0):GetPocketItem(ActiveSlot.SLOT_PRIMARY)\n
","tags":["Class"]},{"location":"PocketItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PocketItem.html#getslot","title":"GetSlot ()","text":"","tags":["Class"]},{"location":"PocketItem.html#int-getslot","title":"int GetSlot ( )","text":"","tags":["Class"]},{"location":"PocketItem.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"PocketItem.html#int-gettype","title":"int GetType ( )","text":"","tags":["Class"]},{"location":"ProceduralEffect.html","title":"Class \"ProceduralEffect\"","text":"Info

You can get this class by using the following functions:

  • ProceduralItem.GetEffect()
Example Code
local pItemEffect = ProceduralItemManager.GetProceduralItem(0):GetEffect(0)\n
","tags":["Class"]},{"location":"ProceduralEffect.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#getactionproperty","title":"GetActionProperty ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#table-getactionproperty","title":"table GetActionProperty ( )","text":"

Returns a table that describes the action argument.

When GetActionType returns USE_ACTIVE_ITEM, the returned table has the following fields.

Field Type Comment id int

When GetActionType returns ADD_TEMPRORY_EFFECT, the returned table has the following fields.

Field Type Comment id int

When GetActionType returns SPAWN_ENTITY, the returned table has the following fields.

Field Type Comment type int variant int

When GetActionType returns CONVERT_ENTITY, the returned table has the following fields.

Field Type Comment fromType int fromVariant int toType int target type toVariant int target variant

When GetActionType returns AREA_DAMAGE, the returned table has the following fields.

Field Type Comment radius float damage float

When GetActionType returns FART, the returned table has the following fields.

Field Type Comment scale float radius float","tags":["Class"]},{"location":"ProceduralEffect.html#getactiontype","title":"GetActionType ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#proceduraleffectactiontype-getactiontype","title":"ProceduralEffectActionType GetActionType ( )","text":"

Returns what to do after the effect is triggered.

","tags":["Class"]},{"location":"ProceduralEffect.html#getconditionproperty","title":"GetConditionProperty ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#table-getconditionproperty","title":"table GetConditionProperty ( )","text":"

Returns a table that describes the condition argument.

When GetConditionType returns ENTITY_SPAWN, the returned table has the following fields.

Field Type type int variant int","tags":["Class"]},{"location":"ProceduralEffect.html#getconditiontype","title":"GetConditionType ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#proceduraleffectconditiontype-getconditiontype","title":"ProceduralEffectConditionType GetConditionType ( )","text":"

Returns the timing when the effect was triggered.

","tags":["Class"]},{"location":"ProceduralEffect.html#gettriggerchance","title":"GetTriggerChance ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#float-gettriggerchance","title":"float GetTriggerChance ( )","text":"

Values range from 0 to 1.

","tags":["Class"]},{"location":"ProceduralItem.html","title":"Class \"ProceduralItem\"","text":"Info

You can get this class by using the following functions:

  • ProceduralItemManager.GetProceduralItem()
Example Code
local pItem = ProceduralItemManager.GetProceduralItem(0)\n
","tags":["Class"]},{"location":"ProceduralItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getdamage","title":"GetDamage ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getdamage","title":"float GetDamage ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#geteffect","title":"GetEffect ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#proceduraleffect-geteffect-int-index","title":"ProceduralEffect GetEffect ( int Index )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#geteffectcount","title":"GetEffectCount ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#int-geteffectcount","title":"int GetEffectCount ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getfiredelay","title":"GetFireDelay ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getfiredelay","title":"float GetFireDelay ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getid","title":"GetID ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#int-getid","title":"int GetID ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getitem","title":"GetItem ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#itemconfigitem-getitem","title":"ItemConfigItem GetItem ( )","text":"

Get the item config of the current glitched item.

","tags":["Class"]},{"location":"ProceduralItem.html#getluck","title":"GetLuck ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getluck","title":"float GetLuck ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getrange","title":"GetRange ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getrange","title":"float GetRange ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getshotspeed","title":"GetShotSpeed ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getshotspeed","title":"float GetShotSpeed ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getspeed","title":"GetSpeed ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getspeed","title":"float GetSpeed ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#gettargetitem","title":"GetTargetItem ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#itemconfigitem-gettargetitem","title":"ItemConfigItem GetTargetItem ( )","text":"

Returns the item config that was randomly selected by the current glitched item, or nil if it doesn't exist.

","tags":["Class"]},{"location":"ProceduralItemManager.html","title":"Global Class \"ProceduralItemManager\"","text":"Info

You can get this class by using the ProceduralItemManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local pItem = ProceduralItemManager.GetProceduralItem(0)\n
","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#createproceduralitem","title":"CreateProceduralItem ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#int-createproceduralitem-int-seed-int-unknown","title":"int CreateProceduralItem ( int Seed, int Unknown )","text":"

Creates a glitch item based on a given seed. Returns the negative ID of the created item.

","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#getproceduralitem","title":"GetProceduralItem ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#proceduralitem-getproceduralitem-int-index","title":"ProceduralItem GetProceduralItem ( int Index )","text":"

Get the glitch item at the given index.

","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#getproceduralitemcount","title":"GetProceduralItemCount ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#int-getproceduralitemcount","title":"int GetProceduralItemCount ( )","text":"","tags":["Global","Class"]},{"location":"ProjectileParams.html","title":"Class \"ProjectileParams\"","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#variables","title":"Variables","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#damage","title":"Damage","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#float-damage","title":"float Damage","text":"

Number of half hearts of damage dealt by the projectile. Cannot be set to a negative value.

Info

This value ignores the full heart damage modifier applied to projectiles with a Scale above 1.15, but non-boss champions will still double it (with a caveat, read warning below!).

Warning

Enemies with a ChampionColorIdx above -1 will cap the damage at 2.0!

","tags":["Global","Class"],"boost":0.25},{"location":"RNG.html","title":"Class \"RNG\"","text":"","tags":["Class"]},{"location":"RNG.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"RNG.html#randomint","title":"RandomInt ()","text":"","tags":["Class"]},{"location":"RNG.html#int-randomint-int-min-int-max","title":"int RandomInt ( int Min, int Max )","text":"

Can now emulate math.random by accepting a second argument to generate a number between the first argument and it, inclusive. Negative values are usable in this mode and will properly generate a number between min and max regardless of sign.

","tags":["Class"]},{"location":"RNG.html#setseed","title":"SetSeed ()","text":"","tags":["Class"]},{"location":"RNG.html#void-setseed-int-seed-int-shiftidx-35","title":"void SetSeed ( int Seed, int ShiftIdx = 35 )","text":"

An error is now thrown if Seed is below 0.

An error is now thrown if ShiftIdx is not between 0 and 80, inclusive.

ShiftIdx is now optional, with the default value set to 35.

","tags":["Class"]},{"location":"RNG.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RNG.html#phantomfloat","title":"PhantomFloat ()","text":"","tags":["Class"]},{"location":"RNG.html#float-phantomfloat","title":"float PhantomFloat ( )","text":"

Generates a random float between 0 (inclusive) and 1 (exclusive).

This does not advance the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#phantomint","title":"PhantomInt ()","text":"","tags":["Class"]},{"location":"RNG.html#int-phantomint-int-max","title":"int PhantomInt ( int Max )","text":"

Behaves identically to RandomInt without advancing the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#phantomvector","title":"PhantomVector ()","text":"","tags":["Class"]},{"location":"RNG.html#vector-phantomvector","title":"Vector PhantomVector ( )","text":"

Returns a random vector with length 1. Multiply this vector by a number for larger random vectors.

This does not advance the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#randomvector","title":"RandomVector ()","text":"","tags":["Class"]},{"location":"RNG.html#vector-randomvector","title":"Vector RandomVector ( )","text":"

Returns a random vector with length 1. Multiply this vector by a number for larger random vectors.

","tags":["Class"]},{"location":"RailManager.html","title":"Class \"RailManager\"","text":"Info

You can get this class by using the following functions:

  • Room:GetRailManager()
Example Code
local railManager = Game():GetRoom():GetRailManager()\n
","tags":["Class"]},{"location":"RailManager.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RailManager.html#getrailssprite","title":"GetRailsSprite ()","text":"","tags":["Class"]},{"location":"RailManager.html#sprite-getrailssprite","title":"Sprite GetRailsSprite ( )","text":"","tags":["Class"]},{"location":"Room.html","title":"Class \"Room\"","text":"","tags":["Class"]},{"location":"Room.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Room.html#spawngridentity","title":"SpawnGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-spawngridentity-int-gridindex-gridentitytype-type-int-variant-0-int-seed-nil-int-vardata-0","title":"boolean SpawnGridEntity ( int GridIndex, GridEntityType Type, int Variant = 0, int Seed = nil, int VarData = 0 )","text":"","tags":["Class"]},{"location":"Room.html#boolean-spawngridentity-int-gridindex-gridentitydesc-descriptor","title":"boolean SpawnGridEntity ( int GridIndex, GridEntityDesc Descriptor)","text":"

No longer crashes if an invalid GridIndex is used. All arguments beyond Type are optional. An overload has been added to allow spawning a new grid entity using an existing GridEntityDesc.

","tags":["Class"]},{"location":"Room.html#tryspawnspecialquestdoor","title":"TrySpawnSpecialQuestDoor ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-tryspawnspecialquestdoor-boolean-ignorestagetype-false","title":"boolean TrySpawnSpecialQuestDoor ( boolean IgnoreStageType = false )","text":"

An IgnoreStageType parameter has been added to allow spawning the Mirror & Mineshaft door outside of STAGETYPE_REPENTANCE and STAGETYPE_REPENTANCE_B stages. Note that the KNIFE_PUZZLE dimension must be set up properly for these doors not to crash on entry!

","tags":["Class"]},{"location":"Room.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Room.html#canpickupgridentity","title":"CanPickupGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-canpickupgridentity-int-gridindex","title":"boolean CanPickupGridEntity ( int GridIndex )","text":"

Returns true if the gridentity at the given position can be picked up.

","tags":["Class"]},{"location":"Room.html#canspawnobstacleatposition","title":"CanSpawnObstacleAtPosition ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-canspawnobstacleatposition-int-gridindex-boolean-force","title":"boolean CanSpawnObstacleAtPosition ( int GridIndex, boolean Force )","text":"","tags":["Class"]},{"location":"Room.html#getbackdrop","title":"GetBackdrop ()","text":"","tags":["Class"]},{"location":"Room.html#backdrop-getbackdrop","title":"Backdrop GetBackdrop ( )","text":"

Returns a Backdrop object.

","tags":["Class"]},{"location":"Room.html#getcamera","title":"GetCamera ()","text":"","tags":["Class"]},{"location":"Room.html#camera-getcamera","title":"Camera GetCamera ( )","text":"

Returns a Camera object.

","tags":["Class"]},{"location":"Room.html#getchampionbosschance","title":"GetChampionBossChance ()","text":"","tags":["Class"]},{"location":"Room.html#float-getchampionbosschance","title":"float GetChampionBossChance ( )","text":"

Return the probability that boss spawns in this room will be champions.

","tags":["Class"]},{"location":"Room.html#geteffects","title":"GetEffects ()","text":"","tags":["Class"]},{"location":"Room.html#temporaryeffects-geteffects","title":"TemporaryEffects GetEffects ( )","text":"","tags":["Class"]},{"location":"Room.html#getfloorcolor","title":"GetFloorColor ()","text":"","tags":["Class"]},{"location":"Room.html#color-getfloorcolor","title":"Color GetFloorColor ( )","text":"","tags":["Class"]},{"location":"Room.html#getfxparams","title":"GetFXParams ()","text":"","tags":["Class"]},{"location":"Room.html#fxparams-getfxparams","title":"FXParams GetFXParams ( )","text":"","tags":["Class"]},{"location":"Room.html#getgreedwavetimer","title":"GetGreedWaveTimer ()","text":"","tags":["Class"]},{"location":"Room.html#int-getgreedwavetimer","title":"int GetGreedWaveTimer ( )","text":"","tags":["Class"]},{"location":"Room.html#getgridindexbytile","title":"GetGridIndexByTile ()","text":"","tags":["Class"]},{"location":"Room.html#int-getgridindexbytile-int-gridrow-int-gridcolumn","title":"int GetGridIndexByTile ( int GridRow, int GridColumn )","text":"","tags":["Class"]},{"location":"Room.html#getrail","title":"GetRail ()","text":"","tags":["Class"]},{"location":"Room.html#stbrailvariant-getrail-int-gridindex","title":"StbRailVariant GetRail ( int GridIndex )","text":"","tags":["Class"]},{"location":"Room.html#getrailmanager","title":"GetRailManager ()","text":"","tags":["Class"]},{"location":"Room.html#railmanager-getrailmanager","title":"RailManager GetRailManager ( )","text":"","tags":["Class"]},{"location":"Room.html#getroomcleardelay","title":"GetRoomClearDelay ()","text":"","tags":["Class"]},{"location":"Room.html#int-getroomcleardelay","title":"int GetRoomClearDelay ( )","text":"","tags":["Class"]},{"location":"Room.html#getshopitemprice","title":"GetShopItemPrice ()","text":"","tags":["Class"]},{"location":"Room.html#int-getshopitemprice-int-entityvariant-int-entitysubtype-int-shopitemid","title":"int GetShopItemPrice ( int EntityVariant, int EntitySubType, int ShopItemID )","text":"

Returns the price of the item.

","tags":["Class"]},{"location":"Room.html#getwateramount","title":"GetWaterAmount ()","text":"","tags":["Class"]},{"location":"Room.html#float-getwateramount","title":"float GetWaterAmount ( )","text":"

Returns the \"amount\" of water currently in the room. Generally this will be 0 for no water and 1 for water, but values in between 0 and 1 (and technically above 1 in modded scenarios) are possible.

","tags":["Class"]},{"location":"Room.html#getwatercolor","title":"GetWaterColor ()","text":"","tags":["Class"]},{"location":"Room.html#kcolor-getwatercolor","title":"KColor GetWaterColor ( )","text":"","tags":["Class"]},{"location":"Room.html#getwatercolormultiplier","title":"GetWaterColorMultiplier ()","text":"","tags":["Class"]},{"location":"Room.html#kcolor-getwatercolormultiplier","title":"KColor GetWaterColorMultiplier ( )","text":"","tags":["Class"]},{"location":"Room.html#ischampionbossseed","title":"IsChampionBossSeed ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-ischampionbossseed","title":"boolean IsChampionBossSeed ( )","text":"

Return whether boss spawns in this room will be champions.

","tags":["Class"]},{"location":"Room.html#ispersistentroomentity","title":"IsPersistentRoomEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-ispersistentroomentity-entitytype-type-int-variant-0","title":"boolean IsPersistentRoomEntity ( EntityType Type, int Variant = 0 )","text":"","tags":["Class"]},{"location":"Room.html#pickupgridentity","title":"PickupGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#entityeffect-pickupgridentity-int-gridindex","title":"EntityEffect PickupGridEntity ( int GridIndex )","text":"","tags":["Class"]},{"location":"Room.html#removegridentityimmediate","title":"RemoveGridEntityImmediate ()","text":"","tags":["Class"]},{"location":"Room.html#void-removegridentityimmediate-int-gridindex-int-pathtrail-boolean-keepdecoration","title":"void RemoveGridEntityImmediate ( int GridIndex, int PathTrail, boolean KeepDecoration )","text":"

Immediately removes the GridEntity at the given index. This means grids can be properly removed and immediately replaced, without the need to call Room:Update.

","tags":["Class"]},{"location":"Room.html#setbackdroptype","title":"SetBackdropType ()","text":"","tags":["Class"]},{"location":"Room.html#void-setbackdroptype-backdroptype-int-unknown","title":"void SetBackdropType ( BackdropType, int Unknown )","text":"

This function will not work if the Unknown integer is passed as 0.

The backdrop variant chosen is seeded based on the room, and does not persist when leaving and re-entering. Calling this function again on re-entry will result in the same backdrop variant as before.

","tags":["Class"]},{"location":"Room.html#setgreedwavetimer","title":"SetGreedWaveTimer ()","text":"","tags":["Class"]},{"location":"Room.html#void-setgreedwavetimer-int-time","title":"void SetGreedWaveTimer ( int Time )","text":"","tags":["Class"]},{"location":"Room.html#setpausetimer","title":"SetPauseTimer ()","text":"","tags":["Class"]},{"location":"Room.html#void-setpausetimer-int-duration","title":"void SetPauseTimer ( int Duration )","text":"","tags":["Class"]},{"location":"Room.html#setrail","title":"SetRail ()","text":"","tags":["Class"]},{"location":"Room.html#void-setrail-int-gridindex-stbrailvariant-railvariant","title":"void SetRail ( int GridIndex, StbRailVariant RailVariant )","text":"","tags":["Class"]},{"location":"Room.html#setroomcleardelay","title":"SetRoomClearDelay ()","text":"","tags":["Class"]},{"location":"Room.html#void-setroomcleardelay-int-delay","title":"void SetRoomClearDelay ( int Delay )","text":"","tags":["Class"]},{"location":"Room.html#setwateramount","title":"SetWaterAmount ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwateramount-float-amount","title":"void SetWaterAmount ( float Amount )","text":"

Sets the amount of water that should be in the current room. Vanilla typically uses 0 for no water and 1 for water. You can technically go higher than this for some interesting results.

","tags":["Class"]},{"location":"Room.html#setwatercolor","title":"SetWaterColor ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercolor-kcolor-watercolor","title":"void SetWaterColor ( KColor WaterColor )","text":"","tags":["Class"]},{"location":"Room.html#setwatercolormultiplier","title":"SetWaterColorMultiplier ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercolormultiplier-kcolor-watercolor","title":"void SetWaterColorMultiplier ( KColor WaterColor )","text":"","tags":["Class"]},{"location":"Room.html#setwatercurrent","title":"SetWaterCurrent ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercurrent-vector-watercurrent","title":"void SetWaterCurrent ( Vector WaterCurrent )","text":"

Sets the strength of the water current in the room. Current sounds and particles are automatically handled.

The game typically uses 1 or -1 for its values depending on current strength and direction. You can technically go higher than this for some interesting results. Arbitrary directions are fully supported as well.

Vector(0, 0) will remove the current.

","tags":["Class"]},{"location":"Room.html#trygetshopdiscount","title":"TryGetShopDiscount ()","text":"","tags":["Class"]},{"location":"Room.html#int-trygetshopdiscount-int-shopitemidx-int-price","title":"int TryGetShopDiscount ( int ShopItemIdx, int Price )","text":"","tags":["Class"]},{"location":"Room.html#updatecolormodifier","title":"UpdateColorModifier ()","text":"","tags":["Class"]},{"location":"Room.html#void-updatecolormodifier-boolean-process-true-boolean-lerp-true-float-rate-0015","title":"void UpdateColorModifier ( boolean Process = true, boolean Lerp = true, float Rate = 0.015 )","text":"

Updates the room's color correction with the copy of ColorModifier stored in FXParams. Process runs the color correction through some additional modifications for lava and the abandoned mineshaft sequence.

","tags":["Class"]},{"location":"RoomConfigHolder.html","title":"Class \"RoomConfigHolder\"","text":"Info

You can get this class by using the RoomConfigHolder global table.

Example Code
local roomconf = RoomConfigHolder.GetRoomByStageTypeAndVariant (StbType.BASEMENT,RoomType.ROOM_DEFAULT,1,0)\n
","tags":["Class"]},{"location":"RoomConfigHolder.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#getrandomroom","title":"GetRandomRoom ()","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#roomconfigroom-getrandomroom-int-seed-boolean-reduceweight-stbtype-stage-roomtype-type-roomshape-shape-roomshapenum_roomshapes-int-minvariant-0-int-maxvariant-1-int-mindifficulty-0-int-maxdifficulty-10-int-requireddoors-0-int-subtype-1-int-mode-1","title":"RoomConfigRoom GetRandomRoom ( int Seed, boolean ReduceWeight, StbType Stage, RoomType Type, RoomShape Shape = RoomShape.NUM_ROOMSHAPES, int MinVariant = 0, int MaxVariant = -1, int MinDifficulty = 0, int MaxDifficulty = 10, int RequiredDoors = 0, int SubType = -1, int Mode = -1 )","text":"

Returns a RoomConfigRoom corresponding to the given params.

","tags":["Class"]},{"location":"RoomConfigHolder.html#getroombystagetypeandvariant","title":"GetRoomByStageTypeAndVariant ()","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#roomconfigroom-getroombystagetypeandvariant-stbtype-stage-roomtype-type-int-variant-int-difficulty","title":"RoomConfigRoom GetRoomByStageTypeAndVariant ( StbType Stage, RoomType Type, int Variant, int Difficulty )","text":"

Returns a RoomConfigRoom corresponding to the given params.

","tags":["Class"]},{"location":"RoomConfigRoom.html","title":"Class \"RoomConfigRoom\"","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#mode","title":"Mode","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#int-mode","title":"int Mode","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"RoomDescriptor.html","title":"Class \"RoomDescriptor\"","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#addrestrictedgridindex","title":"AddRestrictedGridIndex ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#void-addrestrictedgridindex-int-gridindex","title":"void AddRestrictedGridIndex ( int GridIndex )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getentitiessavestate","title":"GetEntitiesSaveState ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#entitiessavestatevector-getentitiessavestate","title":"EntitiesSaveStateVector GetEntitiesSaveState ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getgridentitiessavestate","title":"GetGridEntitiesSaveState ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#gridentitiessavestatevector-getgridentitiessavestate","title":"GridEntitiesSaveStateVector GetGridEntitiesSaveState ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getrestrictedgridindexes","title":"GetRestrictedGridIndexes ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#int-getrestrictedgridindexes","title":"int[] GetRestrictedGridIndexes ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#alloweddoors","title":"AllowedDoors","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#doorset-alloweddoors","title":"DoorSet AllowedDoors","text":"

Now properly returns the allowed door slot.

","tags":["Class"]},{"location":"RoomDescriptor.html#doors","title":"Doors","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#doorset-doors","title":"DoorSet Doors","text":"

Now properly returns the door slot.

","tags":["Class"]},{"location":"RoomTransition.html","title":"Global Class \"RoomTransition\"","text":"Info

You can get this class by using the RoomTransition global table.

Example Code
local tmode = RoomTransition.GetTransitionMode()\n
","tags":["Global","Class"]},{"location":"RoomTransition.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#gettransitionmode","title":"GetTransitionMode ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#int-gettransitionmode","title":"int GetTransitionMode ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#getversusscreensprite","title":"GetVersusScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#sprite-getversusscreensprite","title":"Sprite GetVersusScreenSprite ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#isrenderingbossintro","title":"IsRenderingBossIntro ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#boolean-isrenderingbossintro","title":"boolean IsRenderingBossIntro ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#startbossintro","title":"StartBossIntro ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#void-startbossintro-bosstype-bossid1-bosstype-bossid2-0","title":"void StartBossIntro ( BossType BossID1, BossType BossID2 = 0 )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html","title":"Global Class \"ScoreSheet\"","text":"Info

You can get this class by using the ScoreSheet global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local bonus = ScoreSheet.GetBlueBabyBonus()\n
","tags":["Global","Class"]},{"location":"ScoreSheet.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#calculate","title":"Calculate ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#void-calculate","title":"void Calculate ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getbluebabybonus","title":"GetBlueBabyBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getbluebabybonus","title":"int GetBlueBabyBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getdamagepenalty","title":"GetDamagePenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getdamagepenalty","title":"int GetDamagePenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getexplorationbonus","title":"GetExplorationBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getexplorationbonus","title":"int GetExplorationBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getitempenalty","title":"GetItemPenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getitempenalty","title":"int GetItemPenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getlambbonus","title":"GetLambBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getlambbonus","title":"int GetLambBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getmegasatanbonus","title":"GetMegaSatanBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getmegasatanbonus","title":"int GetMegaSatanBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getrunending","title":"GetRunEnding ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#ending-getrunending","title":"Ending GetRunEnding ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntime","title":"GetRunTime ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getruntime","title":"int GetRunTime ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntimelevel","title":"GetRunTimeLevel ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#levelstage-getruntimelevel","title":"LevelStage GetRunTimeLevel ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntimeleveltype","title":"GetRunTimeLevelType ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#stagetype-getruntimeleveltype","title":"StageType GetRunTimeLevelType ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getrushbonus","title":"GetRushBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getrushbonus","title":"int GetRushBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getschwagbonus","title":"GetSchwagBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getschwagbonus","title":"int GetSchwagBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getstagebonus","title":"GetStageBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getstagebonus","title":"int GetStageBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#gettimepenalty","title":"GetTimePenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-gettimepenalty","title":"int GetTimePenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#gettotalscore","title":"GetTotalScore ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-gettotalscore","title":"int GetTotalScore ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#setrunending","title":"SetRunEnding ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#void-setrunending-ending-endingid","title":"void SetRunEnding ( Ending EndingID )","text":"","tags":["Global","Class"]},{"location":"Sprite.html","title":"Class \"Sprite\"","text":"","tags":["Class"]},{"location":"Sprite.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Sprite.html#sprite","title":"Sprite ()","text":"","tags":["Class"]},{"location":"Sprite.html#spritebool-sprite-string-anm2path-bool-loadgraphics-true","title":"Sprite,bool Sprite ( string ANM2Path, bool LoadGraphics = true )","text":"

Added two optional arguments, the function now returns two values: Sprite object and the bool signifying whether the sprite was loaded successfully or not.

","tags":["Class"]},{"location":"Sprite.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Sprite.html#replacespritesheet","title":"ReplaceSpritesheet ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-replacespritesheet-int-layerid-string-pngfilename-boolean-loadgraphics-false","title":"void ReplaceSpritesheet ( int LayerId, string PngFilename, boolean LoadGraphics = false )","text":"

Now accepts an optional bool to determine if Sprite:LoadGraphics should be called after replacing the spritesheet. In most cases, you'll want to do this.

","tags":["Class"]},{"location":"Sprite.html#setoverlayframe","title":"SetOverlayFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-setoverlayframe-int-framenum","title":"void SetOverlayFrame ( int FrameNum )","text":"

New overload for SetOverlayFrame() that sets the frame for the current animation without stopping it, akin to the one for SetFrame().

","tags":["Class"]},{"location":"Sprite.html#stop","title":"Stop ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-stop-boolean-stopoverlay-true","title":"void Stop ( boolean StopOverlay = true )","text":"

Now accepts an optional bool for whether to also stop the overlay animation. Defaults to true.

","tags":["Class"]},{"location":"Sprite.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Sprite.html#continue","title":"Continue ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-continue-boolean-continueoverlay-true","title":"void Continue ( boolean ContinueOverlay = true )","text":"

If the animation is currently stopped, makes it start playing again from the current frame. Will not restart a finished, non-looping animation.

","tags":["Class"]},{"location":"Sprite.html#continueoverlay","title":"ContinueOverlay ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-continueoverlay","title":"void ContinueOverlay ( )","text":"

Same as above, but only for the overlay animation.

","tags":["Class"]},{"location":"Sprite.html#getallanimationdata","title":"GetAllAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getallanimationdata","title":"AnimationData[] GetAllAnimationData ( )","text":"

Returns a table of AnimationData representing all animations in this anm2 file.

","tags":["Class"]},{"location":"Sprite.html#getalllayers","title":"GetAllLayers ()","text":"","tags":["Class"]},{"location":"Sprite.html#layerstates-getalllayers","title":"LayerStates[] GetAllLayers ( )","text":"

Returns a table of all LayerStates in this Sprite.

","tags":["Class"]},{"location":"Sprite.html#getanimationdata","title":"GetAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getanimationdata-string-animationname","title":"AnimationData GetAnimationData ( string AnimationName )","text":"","tags":["Class"]},{"location":"Sprite.html#getcurrentanimationdata","title":"GetCurrentAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getcurrentanimationdata","title":"AnimationData GetCurrentAnimationData ( )","text":"","tags":["Class"]},{"location":"Sprite.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"Sprite.html#layerstate-getlayer-int-layerid","title":"LayerState GetLayer ( int LayerId )","text":"","tags":["Class"]},{"location":"Sprite.html#layerstate-getlayer-string-layername","title":"LayerState GetLayer ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getnullframe","title":"GetNullFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#nullframe-getnullframe-string-layername","title":"NullFrame GetNullFrame ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getoverlayanimationdata","title":"GetOverlayAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getoverlayanimationdata","title":"AnimationData GetOverlayAnimationData ( )","text":"","tags":["Class"]},{"location":"Sprite.html#getoverlaynullframe","title":"GetOverlayNullFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#nullframe-getoverlaynullframe-string-layername","title":"NullFrame GetOverlayNullFrame ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getrenderflags","title":"GetRenderFlags ()","text":"","tags":["Class"]},{"location":"Sprite.html#animrenderflags-getrenderflags","title":"AnimRenderFlags GetRenderFlags ( )","text":"","tags":["Class"]},{"location":"Sprite.html#isoverlayeventtriggered","title":"IsOverlayEventTriggered ()","text":"","tags":["Class"]},{"location":"Sprite.html#boolean-isoverlayeventtriggered-string-eventname","title":"boolean IsOverlayEventTriggered ( string EventName )","text":"","tags":["Class"]},{"location":"Sprite.html#setrenderflags","title":"SetRenderFlags ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-setrenderflags-animrenderflags-flags","title":"void SetRenderFlags ( AnimRenderFlags Flags )","text":"","tags":["Class"]},{"location":"Sprite.html#stopoverlay","title":"StopOverlay ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-stopoverlay","title":"void StopOverlay ( )","text":"","tags":["Class"]},{"location":"Sprite.html#wasoverlayeventtriggered","title":"WasOverlayEventTriggered ()","text":"","tags":["Class"]},{"location":"Sprite.html#boolean-wasoverlayeventtriggered-string-eventname","title":"boolean WasOverlayEventTriggered ( string EventName )","text":"","tags":["Class"]},{"location":"StageTransition.html","title":"Global Class \"StageTransition\"","text":"Info

This class gives access to data exclusive to the stage transition screen.

Please note that the StageTransition is only used to configure how the stage transition plays. If you want to manipulate the content of the screen during a stage transition, you need to use the NightmareScene class.

You can get this class by using the StageTransition global table.

Example Code
local samestage = StageTransition.GetSameStage()\n
","tags":["Global","Class"]},{"location":"StageTransition.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#getsamestage","title":"GetSameStage ()","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#boolean-getsamestage","title":"boolean GetSameStage ( )","text":"

Indicate if the stage transition screen will display Isaac's head moving from one stage to the other (false) or not (true).

","tags":["Global","Class"]},{"location":"StageTransition.html#setsamestage","title":"SetSameStage ()","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#void-setsamestage-boolean-value","title":"void SetSameStage ( boolean Value )","text":"

Configure whether the stage transition will display Isaac's head moving from one stage to the other (false) or not (true).

This function is useful if you want to move the player to the first stage, or want to repeat the last stage on the progress bar of the transition screen, and have it be less jarring.

  • If transitioning back to the first floor, and SameStage is not set to true, Isaac's head will appear outside of the progress bar. Otherwise, Isaac's head will appear on the first floor.
  • If repeating the last floor, and SameStage is not set to true, Isaac's head will move from the previous stage to the last one. Otherwise, Isaac's head will appear on the last floor.
Warning

Calling this method before the current stage transition has called SetNextStage will override the transition itself. This means that instead of merely displaying Isaac's head not moving, it will actually change whether the next stage will be a repeat of the current one, or the actual next stage. Ideally, you should use this function in the context of the ModCallbacks.MC_PRE_LEVEL_SELECT callback.

","tags":["Global","Class"]},{"location":"Vector.html","title":"Class \"Vector\"","text":"","tags":["Class"]},{"location":"Vector.html#operators","title":"Operators","text":"","tags":["Class"]},{"location":"Vector.html#__add","title":"__add ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__add-vector-right","title":"Vector __add ( Vector Right )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Addition of two Vector objects using the + operator.

","tags":["Class"]},{"location":"Vector.html#__div","title":"__div ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__div-float-modifier","title":"Vector __div ( float Modifier )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Division of two Vector objects using the / operator.

","tags":["Class"]},{"location":"Vector.html#__mul","title":"__mul ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__mul-float-modifier","title":"Vector __mul ( float Modifier )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Multiplication of two Vector objects using the * operator.

","tags":["Class"]},{"location":"Vector.html#__sub","title":"__sub ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__sub-vector-right","title":"Vector __sub ( Vector Right )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Subtraction of two Vector objects using the - operator.

","tags":["Class"]},{"location":"Vector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Vector.html#fromangle","title":"FromAngle ()","text":"","tags":["Class"]},{"location":"Vector.html#void-fromangle-float-angle","title":"void FromAngle ( float Angle )","text":"","tags":["Class"]},{"location":"Weapon.html","title":"Class \"Weapon\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetWeapon()
Example Code
local weapon = Isaac.GetPlayer(0):GetWeapon(1)\n
","tags":["Class"]},{"location":"Weapon.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Weapon.html#clearitemanim","title":"ClearItemAnim ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-clearitemanim-int-itemid","title":"void ClearItemAnim ( int ItemID )","text":"","tags":["Class"]},{"location":"Weapon.html#getcharge","title":"GetCharge ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getcharge","title":"int GetCharge ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getdirection","title":"GetDirection ()","text":"","tags":["Class"]},{"location":"Weapon.html#vector-getdirection","title":"Vector GetDirection ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getfiredelay","title":"GetFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getfiredelay","title":"int GetFireDelay ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getmaxfiredelay","title":"GetMaxFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getmaxfiredelay","title":"int GetMaxFireDelay ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getmodifiers","title":"GetModifiers ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getmodifiers","title":"int GetModifiers ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getnumfired","title":"GetNumFired ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getnumfired","title":"int GetNumFired ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getowner","title":"GetOwner ()","text":"","tags":["Class"]},{"location":"Weapon.html#entity-getowner","title":"Entity GetOwner ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getweapontype","title":"GetWeaponType ()","text":"","tags":["Class"]},{"location":"Weapon.html#weapontype-getweapontype","title":"WeaponType GetWeaponType ( )","text":"","tags":["Class"]},{"location":"Weapon.html#isaxisaligned","title":"IsAxisAligned ()","text":"","tags":["Class"]},{"location":"Weapon.html#boolean-isaxisaligned","title":"boolean IsAxisAligned ( )","text":"","tags":["Class"]},{"location":"Weapon.html#isitemanimfinished","title":"IsItemAnimFinished ()","text":"","tags":["Class"]},{"location":"Weapon.html#boolean-isitemanimfinished-int-itemid","title":"boolean IsItemAnimFinished ( int ItemID )","text":"","tags":["Class"]},{"location":"Weapon.html#playitemanim","title":"PlayItemAnim ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-playitemanim-int-itemid-direction-animdirection-vector-position-float-charge","title":"void PlayItemAnim ( int ItemID, Direction AnimDirection, Vector Position, float Charge )","text":"","tags":["Class"]},{"location":"Weapon.html#setcharge","title":"SetCharge ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setcharge-int-charge","title":"void SetCharge ( int Charge )","text":"","tags":["Class"]},{"location":"Weapon.html#setfiredelay","title":"SetFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setfiredelay-float-delay","title":"void SetFireDelay ( float Delay )","text":"","tags":["Class"]},{"location":"Weapon.html#setheadlocktime","title":"SetHeadLockTime ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setheadlocktime-int-time","title":"void SetHeadLockTime ( int Time )","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html","title":"Class \"WeightedOutcomePicker\"","text":"

An example mod using the WeightedOutcomePicker class can be found here.

Info

This class can be obtained using its constructor:

Example Code
local wop = WeightedOutcomePicker()\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#weightedoutcomepicker","title":"WeightedOutcomePicker ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#weightedoutcomepicker-weightedoutcomepicker","title":"WeightedOutcomePicker WeightedOutcomePicker ( )","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#addoutcomefloat","title":"AddOutcomeFloat ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-addoutcomefloat-int-value-float-weight-int-scalefactor-100","title":"void AddOutcomeFloat ( int Value, float Weight, int ScaleFactor = 100 )","text":"

Adds an outcome to the outcome selector with the specified Weight. The internal weight is still an integer calculated like this: fWeight * scaleFactor, where ScaleFactor is the maximum weight (equivalent to 1.0).

Example Code
local picker = WeightedOutcomePicker()\n\npicker:AddOutcomeFloat(1, 1.0) -- ~45%\npicker:AddOutcomeFloat(2, 1.0) -- ~45%\npicker:AddOutcomeFloat(3, 0.2) -- ~9%\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#addoutcomeweight","title":"AddOutcomeWeight ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-addoutcomeweight-int-value-int-weight","title":"void AddOutcomeWeight ( int Value, int Weight )","text":"

Adds an outcome to the outcome selector with the specified Weight.

Example Code
local picker = WeightedOutcomePicker()\n\npicker:AddOutcomeWeight(1, 65) -- 65%\npicker:AddOutcomeWeight(2, 30) -- 30%\npicker:AddOutcomeWeight(3, 5) -- 5%\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#clearoutcomes","title":"ClearOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-clearoutcomes","title":"void ClearOutcomes ( )","text":"

Clears all outcomes from the outcome picker.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#getnumoutcomes","title":"GetNumOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#int-getnumoutcomes","title":"int GetNumOutcomes ( )","text":"

Returns the number of outcomes in the outcome picker.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#getoutcomes","title":"GetOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#table-getoutcomes","title":"table[] GetOutcomes ( )","text":"

Returns a table containing a list of all outcomes in the outcome picker.

Table structure & usage
  • The returned table contains a list of outcomes, where each outcome is a table containing the following fields:
    • Value: value of the outcome
    • Weight: weight of the outcome
      for i, outcome in ipairs(p:GetOutcomes()) do\n    print(outcome.Value, outcome.Weight)\nend\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#pickoutcome","title":"PickOutcome ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#int-pickoutcome-rng-rng","title":"int PickOutcome ( RNG RNG )","text":"

Returns a random outcome from the list in WeightedOutcomePicker. Accepts RNG.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#removeoutcome","title":"RemoveOutcome ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-removeoutcome-int-value","title":"void RemoveOutcome ( int Value )","text":"

Removes an outcome from the outcome picker with the given Value.

","tags":["Class"]},{"location":"XMLData.html","title":"Global Class \"XMLData\"","text":"Info

A public table containing all the functions related to gathering XML attributes accross the different XMLs with updated values to match the real values.

You can get this class by using the XMLData global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local numEntries = XMLData.GetNumEntries(XMLNode.ENTITY)\n
Warning

XML attributes are converted to lowercase when being parsed by REPENTOGON! This eliminates capitializtion inconsistency in vanilla tags, but might result in not being able to find attributes if they're looked up by their name as definined in the XML (e.g bossID will return nil, so use bossid instead.)

","tags":["Global","Class"]},{"location":"XMLData.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"XMLData.html#getentitybytypevarsub","title":"GetEntityByTypeVarSub ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentitybytypevarsub-entitytype-type-int-variant-0-int-subtype-0-boolean-strict-false","title":"table GetEntityByTypeVarSub ( EntityType Type, int Variant = 0 , int SubType = 0, boolean Strict = false)","text":"

Returns a table containing the attributes of the entity on entities2.xml that match the given type and/or variant and/or subtype. The strict parameter determines if it should only return a value when all 3 attributes(type, var and sub) match or return whatever matches the type and take the rest as maybes.

Table usage
print(\"Monstro's BossID:\", XMLData.GetEntityByTypeVarSub(20).bossid)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getentrybyid","title":"GetEntryById ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentrybyid-xmlnode-nodetype-int-idx","title":"table GetEntryById ( XMLNode NodeType, int Idx )","text":"

Returns a table containing the attributes of the corresponding xml, the matching NodeType(Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given unique id.

Table usage
print(\"Sad Onion's description:\", XMLData.GetEntryById(XMLNode.ITEM, 1).description)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

id?

The Id usually matches the actual id of the node in question, with the exception of cases like the entities.xml where ids are not unique, on those cases, the id is the order of the node and wont correspond with the actual id. On the cases of XMLs without ids, its just the order again.

","tags":["Global","Class"]},{"location":"XMLData.html#getentrybyname","title":"GetEntryByName ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentrybyname-xmlnode-nodetype-string-name","title":"table GetEntryByName ( XMLNode NodeType, string Name )","text":"

Returns a table containing the attributes of the corresponding xml, the matching NodeType (Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given name parameter.

Table usage
print(\"Sad Onion's description:\", XMLData.GetEntryByName(XMLNode.ITEM, \"The Sad Onion\").description)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getentryfromentity","title":"GetEntryFromEntity ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentryfromentity-entity-entity-boolean-autoxmlpick-true-boolean-strict","title":"table GetEntryFromEntity ( Entity Entity, boolean AutoXMLPick = true, boolean Strict)","text":"

Returns a table containing the attributes of the provided entity. The AutoXMLPick parameter determines if only entities2.xml should be used or if it should pick the xml that matches the EntityType (Ex: items.xml for pedestal collectibles) . The strict parameter determines if it should only return a value when the type,variant and subtype attributes match or return whatever matches the type and take the rest as maybes.

Table usage
print(\"Player's birthright:\", XMLData.GetEntryFromEntity(Isaac.GetPlayer()).birthright)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getnumentries","title":"GetNumEntries ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#int-getnumentries-xmlnode-nodetype","title":"int GetNumEntries ( XMLNode NodeType)","text":"

Returns the number of entries a given XMLNode structure has.

","tags":["Global","Class"]},{"location":"docs.html","title":"Lua API Documentation for The Binding of Isaac - REPENTOGON","text":"

This documentation covers the additions and modifications made to the Lua API by REPENTOGON.

Happily serving:

  • over 800 new or improved functions
  • over 200 new callbacks
  • over 30 new rideable dragons
  • over 60 new enums

A list of non API related changes can be found in the \"changes\" tab!

","boost":-999},{"location":"install.html","title":"Installation","text":"

We have two methods of installation: Automatic and Manual. We also have a Steam Workshop page that has a similar method to Manual.

If the installation is successful you should be able to notice multiple changes to the game, most notably you should see REPENTOGON version in the titlebar. Here is an example of a complete installation:

"},{"location":"install.html#automatic","title":"Automatic","text":"Info

Automatic instructions only work on Windows for now. A Linux version of the installer is being worked on, and for now it should work in Wine, but there's still extra setup on there for now.

Info

We'll make this more automatic in the future, bear with us.

"},{"location":"install.html#what-youll-need","title":"What you'll need","text":"
  • The REPENTOGON installer (click here to download)
"},{"location":"install.html#instructions","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Copy the REPENTOGONUpdater.exe downloaded earlier to the folder that just opened.
  1. Run REPENTOGONUpdater.exe.
    • This opens a new window.
  2. Press Install.
    • Once the log at the bottom says Finished!, installation is done. If the log instead says anything about failing, the installation was unsuccessful. Try a different method.
Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

"},{"location":"install.html#manual","title":"Manual","text":""},{"location":"install.html#what-youll-need_1","title":"What you'll need","text":"
  • The latest release of REPENTOGON (click here to download)
"},{"location":"install.html#instructions_1","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Extract the contents of REPENTOGON.zip to the folder that just opened.
Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

"},{"location":"install.html#steam-workshop","title":"Steam Workshop","text":""},{"location":"install.html#what-youll-need_2","title":"What you'll need","text":"
  • REPENTOGON from the Steam Workshop
"},{"location":"install.html#instructions_2","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Navigate to the mods folder, then REPENTOGON_3127536138.

  2. Extract the contents of REPENTOGON.zip to the game's folder.

Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

You can now unsubscribe from the mod on Steam, if you wish.

"},{"location":"tags.html","title":"Tags","text":""},{"location":"tags.html#class","title":"Class","text":"
  • Ambush
  • AnimationData
  • AnimationFrame
  • AnimationLayer
  • Backdrop
  • Camera
  • Capsule
  • ChallengeParam
  • Color
  • ColorModifier
  • ColorParams
  • Console
  • CostumeSpriteDesc
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntitiesSaveState
  • EntitiesSaveStateVector
  • Entity
  • EntityBomb
  • EntityConfig
  • EntityConfigEntity
  • EntityConfigPlayer
  • EntityDelirium
  • EntityEffect
  • EntityFamiliar
  • EntityKnife
  • EntityLaser
  • EntityNPC
  • EntityPickup
  • EntityPlayer
  • EntityProjectile
  • EntitySlot
  • EntityTear
  • FXParams
  • Font
  • Game
  • GridEntitiesSaveStateVector
  • GridEntity
  • GridEntityDecoration
  • GridEntityDoor
  • GridEntityFire
  • GridEntityGravity
  • GridEntityPressurePlate
  • GridEntityRock
  • GridEntityStairs
  • GridEntityStatue
  • GridEntityTeleporter
  • GridEntityTrapDoor
  • GridEntityWall
  • GridEntityWeb
  • HUD
  • History
  • HistoryItem
  • ImGui
  • Isaac
  • ItemConfig
  • ItemConfig - PillEffect
  • ItemOverlay
  • ItemPool
  • LayerState
  • Level
  • LevelGenerator
  • LevelGeneratorEntry
  • LevelGeneratorRoom
  • Minimap
  • MultiShotParams
  • MusicManager
  • NightmareScene
  • NullFrame
  • Options
  • PersistentGameData
  • PlayerHUD
  • PlayerHUDHeart
  • PlayerManager
  • PocketItem
  • ProceduralEffect
  • ProceduralItem
  • ProceduralItemManager
  • ProjectileParams
  • RNG
  • RailManager
  • Room
  • RoomConfigHolder
  • RoomConfigRoom
  • RoomDescriptor
  • RoomTransition
  • ScoreSheet
  • Sprite
  • StageTransition
  • Vector
  • Weapon
  • WeightedOutcomePicker
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
  • Beam
  • BlendMode
  • DestinationQuad
  • Class \"GLSLValue\"
  • Image
  • Class \"Pipeline\"
  • Point
  • Class \"RenderSet\"
  • Class \"Renderer\"
  • Class \"Shader\"
  • Shape
  • SourceQuad
  • Class \"Transformer\"
  • Class \"Vertex\"
  • Class \"VertexBuffer\"
  • Class \"VertexDescriptor\"
"},{"location":"tags.html#enum","title":"Enum","text":"
  • Achievement
  • AnimRenderFlags
  • AnnouncerVoiceMode
  • AutocompleteType
  • BagOfCraftingPickup
  • BombCostumeLayer
  • BossType
  • CameraStyle
  • CompletionType
  • ConsoleFont
  • DebugFlag
  • DialogButtons
  • DialogIcons
  • DialogReturn
  • Dimension
  • DipSubType
  • Ending
  • EntityPoopVariant
  • EntityTag
  • EventCounter
  • ExtraHudStyle
  • FadeoutTarget
  • FollowerPriority
  • GLSLType
  • Giantbook
  • GibFlag
  • GridPoopVariant
  • HealthType
  • ImGuiCallback
  • ImGuiColor
  • ImGuiData
  • ImGuiElement
  • ImGuiNotificationType
  • ItemAnim
  • KnifeSubType
  • KnifeVariant
  • Language
  • LineCheckMode
  • MainMenuType
  • MouseButton
  • NullPickupSubType
  • PauseMenuStates
  • PedestalType
  • PillCardSlot
  • PlayerVariant
  • PocketItemType
  • PressurePlateVariant
  • ProceduralEffectActionType
  • ProceduralEffectConditionType
  • ProjectileMode
  • PurityState
  • RetractingSpikesVariant
  • RoomSubType
  • ShaderType
  • SlotVariant
  • SpecialQuest
  • StbGridType
  • StbPoopSubType
  • StbRailVariant
  • StbRockSubType
  • StbTeleporterSubType
  • StbType
  • TaintedMarksGroup
  • TeleporterVariant
  • WeaponModifier
  • WispSubType
  • XMLNode
"},{"location":"tags.html#file","title":"File","text":"
  • achievements.xml
  • ambush.xml
  • challenges.xml
  • costumes.xml
  • cutscenes.xml
  • entities2.xml
  • giantbook.xml
  • items.xml
  • players.xml
"},{"location":"tags.html#global","title":"Global","text":"
  • Ambush
  • Console
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntityConfig
  • Isaac
  • ItemOverlay
  • Minimap
  • NightmareScene
  • PlayerManager
  • ProceduralItemManager
  • ProjectileParams
  • RoomTransition
  • ScoreSheet
  • StageTransition
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
"},{"location":"blog/index.html","title":"Blog","text":"

Welcome to the blog! We'll post announcements and updates here as necessary.

"},{"location":"blog/2023/12/31/faq.html","title":"FAQ","text":"

REPENTOGON works very differently from a traditional mod. We suspect there will inevitably be some confusion about its inner workings and how it will interact with future game updates.

This FAQ is broken down into different sections for both standard end-users and mod developers.

"},{"location":"blog/2023/12/31/faq.html#end-users","title":"End-Users","text":""},{"location":"blog/2023/12/31/faq.html#q-what-is-repentogon","title":"Q: What is REPENTOGON?","text":"

REPENTOGON is a script extender for The Binding of Isaac: Repentance. The project started in late January 2023 due to a \"perfect storm\" of events: at the time, we believed there to only be one update for Repentance left, several modders were frustrated with the lack of API updates, and we were pointed towards the direction of an open source version of LibZHL, the framework _Kilburn created to develop Antibirth, laying dormant in the source code of FTL: Hyperspace, a similar mod for FTL.

That version of LibZHL turned out not to work for us because it had extensive changes made to it to no longer suit our needs as far as Isaac goes. With the express permission of _Kilburn we used the original version directly from Antibirth, and have made significant changes to it in order to further increase its flexibility, power, and ease of use.

REPENTOGON's goal is to enhance the game's API to allow modders to drop many of the hacks they need to do in order to change basic game functionality, and to further allow for things that were previously impossible. We anticipate that REPENTOGON will become a hard dependency for many mods in the future, both big and small.

We also have some small quality-of-life tweaks and bugfixes, but these are all completely optional. Many of these are on by default but can be disabled in our options menu. This is bound to the same key that traditionally would open the debug console.

"},{"location":"blog/2023/12/31/faq.html#q-my-antivirus-says-repentogon-is-malicious-is-it-safe","title":"Q: My antivirus says REPENTOGON is malicious! Is it safe?","text":"

Yes. Any antivirus that flags us is reporting a false-positive. Some of the techniques we use to make this work are the same a (very primitive) virus could use to inject itself into a running program as well.

We are a fully open source project and always will be. The code can be audited at any time to show that we are not malicious.

"},{"location":"blog/2023/12/31/faq.html#q-will-repentogon-break-when-the-game-updates","title":"Q: Will REPENTOGON break when the game updates?","text":"

Yes, unavoidably, and this is not the fault of Nicalis! Instead, this is an unavoidable side effect of how REPENTOGON works. Please do not review bomb future updates or harass Nicalis developers because they break REPENTOGON. This will only serve to harm the project.

We will do our best to adapt to future updates, but this will take time. We suspect we can get REPENTOGON running on a new update quickly, but it will take time to ensure that REPENTOGON hasn't broken in a subtle way. We will need to extensively retest our changes.

In the future, if Nicalis were to add debug symbols into the game, this would significantly reduce the time needed to adapt to future updates. Isaac has never shipped with these on Windows despite shipping with them on most other platforms, so we feel the exclusion of these on Windows is doing more harm than good, but we nonetheless respect Nicalis's decision to not include them and ask that end-users do not harass Nicalis about getting these included.

"},{"location":"blog/2023/12/31/faq.html#q-how-do-i-disable-repentogon","title":"Q: How do I disable REPENTOGON?","text":"

You will need to add -repentogonoff as a launch option in order to make the game load without REPENTOGON.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-work-on-linux-steam-deck","title":"Q: Does REPENTOGON work on Linux / Steam Deck?","text":"

Yes! We do not have a native Linux build as there's no point to since there's no native Linux version of Repentance, but it works properly under Proton. On Steam Deck this is the default setup.

You will need to add WINEDLLOVERRIDES=dsound=n,b %command% as a launch option in order to make the game load our DLL. We aim to make an installer to automate this process.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-work-on-mac","title":"Q: Does REPENTOGON work on Mac?","text":"

It's complicated. If you're using the version of Repentance from the App Store, no. We have not researched this version and it likely doesn't support mods anyways. Running the Windows version in Wine should work, although you'll need to add the same launch option mentioned in the previous question.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-support-rebirth-afterbirth-or-afterbirth","title":"Q: Does REPENTOGON support Rebirth, Afterbirth, or Afterbirth+?","text":"

No, and we never will. It doesn't make much sense to support those DLCs as they are legacy versions of the game. Rebirth and Afterbirth don't have Lua mod support and most major mods have moved on from Afterbirth+. We will solely focus on Repentance.

"},{"location":"blog/2023/12/31/faq.html#mod-developers","title":"Mod Developers","text":""},{"location":"blog/2023/12/31/faq.html#q-how-do-i-detect-if-repentogon-is-in-use","title":"Q: How do I detect if REPENTOGON is in use?","text":"

We define a REPENTOGON global, much like Repentance defines a REPENTANCE global. You can use this to prompt the player to download REPENTOGON or to have a pathway in your mod that runs if REPENTOGON is enabled.

"},{"location":"blog/2023/12/31/faq.html#q-how-does-repentogon-speed-up-the-api","title":"Q: How does REPENTOGON speed up the API?","text":"

Multiple ways! By far the biggest impact is the move to Lua 5.4, which has a new generational garbage collector that works much better than the standard incremental garbage collector for the purposes of Isaac. The generational garbage collector does many tiny sweeps, whereas incremental performs less frequent large sweeps. This means garbage collection stutter is much, much less noticeable. In early REPENTOGON testing, generational GC's results were indistinguishable from not running GC at all on a high-end computer.

The port to 5.4 also necessitated rewriting three of the most frequently used API functions- Isaac.GetRoomEntities, Isaac.FindByType, and Isaac.FindInRadius- as these all violate Lua spec and rely on undefined behavior, and as such didn't work going to 5.4. Our reimplementations of these functions are indistinguishable from the originals from an API perspective, but perform twice (!) as fast.

Additionally, the base API is made using LuaBridge, which is a very slow Lua wrapper. Our new classses and functions are all made in traditional Lua instead. We'd like to fully eliminate LuaBridge in the future, which would create further performance improvements down the road. Don't rely on this, though! REPENTOGON allows for direct control over game functionality that previously had to be reimplemented, please use those. Ideally, mods transitioning to REPENTOGON will inherently increase game performance over time.

We've also made smaller changes like caching many of the commonly used classes like Game, which avoids a costly hop back to C++.

We briefly looked into adopting LuaJIT which would be the performance holy grail when combined with FFI, which allows calling C functions directly from Lua, but this would necessitate a full API rewrite. LuaJIT doesn't have bitwise operator support so we're currently stuck, but it's on the LuaJIT 3.0 roadmap. If and when this is implemented we will look into this, but we will not roll this out unless we achieve full compatibility with the existing mod ecosystem.

"},{"location":"blog/2023/12/31/faq.html#q-will-repentogon-get-updates-to-add-more-features-in-the-future","title":"Q: Will REPENTOGON get updates to add more features in the future?","text":"

Of course! REPENTOGON is not finished, far from it. The only reason we're releasing now is because if we don't set an arbitrary release date, we'll never release. REPENTOGON is a playground for us, with each core developer focusing on their personal goals first and foremost. Many of us are no longer interested in working on Isaac mods themselves, but have had a blast working on REPENTOGON, and that's not stopping any time soon.

"},{"location":"blog/2023/12/31/faq.html#q-repentogon-doesnt-have-a-feature-that-id-like-is-it-possible-to-add-x","title":"Q: REPENTOGON doesn't have a feature that I'd like. Is it possible to add X?","text":"

It's complicated. REPENTOGON is the result of nearly a year of reverse engineering. We've hit most of the low hanging fruit at this point. There's still stuff we'd like to fully investigate, like complete control over level generation, but this will take time.

Many of the issues we have on the repository are pipe dream wishes more than anything. We'd love to tackle everything there but some of it is going to take a lot of effort, potentially entire reimplementations of existing game functionality. Feel free to show your support for some of these, though- the more people that are interested, the more we'll prioritize a specific issue.

"},{"location":"blog/2023/12/31/welcome-to-the-new-era-of-isaac-modding.html","title":"Welcome to the new era of Isaac modding!","text":"

After nearly a year of hard work, we are proud to finally release REPENTOGON into the world! As our gift to the modding community as we head into the Year of the Dragon, we have rekindled the smoldering embers of the Isaac API into a flame that has never burned brighter.

REPENTOGON is a script extender, a concept you may be familiar with if you have ever modded some other games, especially Bethesda titles. These important mods make the game's modding API more flexible and powerful, significantly expanding the capabilities of mods. Many mods for those games simply wouldn't be possible without them! We feel that Isaac has similar untapped potential. The game's formula inherently allows for infinite expansion, and yet the base API simply cannot provide anything close to a level of power that allows for this concept to truly come to fruition.

Our ultimate goal is to reduce the amount of asinine workarounds needed in order for modders to changee basic functionality. The base API doesn't even have a clean way to add items that do something when picked up! With over 800 new functions and over 200 new callbacks, we've eliminated many of these problems.

REPENTOGON is free and open source, and always will be. We're far from finished- expect even more new features in the future.

Head over to the installation guide to get started. PLEASE let us know of any bugs or crashes that arise- we've done lots of testing but can't possibly predict every single mod configuration.

"},{"location":"changes/Debugging.html","title":"Changes done to debugging and the Console","text":""},{"location":"changes/Debugging.html#callback-typechecking","title":"Callback Typechecking","text":"

All callbacks are now typechecked.

  • An error is thrown when a callback return type is invalid.
  • A traceback will be printed into the debug console when a callback error is thrown.
  • This fixes some vanilla callbacks crashing the game when given a bad return type (MC_POST_CURSE_EVAL, MC_GET_CARD, MC_EXECUTE_CMD, etc);
"},{"location":"changes/Debugging.html#old-callback-error-behavior","title":"Old Callback Error Behavior","text":"

Callback error behavior has been reverted back to how it was before Repentance's 1.7.9b patch.

  • A callback with an error will no longer stop every future callback from running.
  • This deprecates Mod Error Container.
"},{"location":"changes/Debugging.html#error-display","title":"Error Display","text":"

The first mod to cause a Lua error will trigger a message at the top of the screen stating the mod is causing errors. This is in the hopes that unrelated mods stop being blamed for errors.

  • This can be clicked by the user to open a read-only (unless the console has already been opened by the player) version of the debug console to help show players what exactly is wrong.
"},{"location":"changes/Debugging.html#console-error-flattening","title":"Console Error Flattening","text":"

Multiple sequential instances of the same error will be flattened in the console (not the logs). Duplicate entries will be denoted with an (x2) (x3) etc. next to the error.

"},{"location":"changes/Debugging.html#external-console-window","title":"External console window","text":"

Adding the -console launch parameter to the game will open a second window that displays debug messages created by calling printf() inside of the C++ code.

"},{"location":"changes/Debugging.html#dear-imgui","title":"Dear ImGui","text":"

We have integrated the Dear ImGui user interface library into the game. This can be brought up at any time using the key that previously brought up the vanilla debug console. Mods can add their own user interfaces into the menu with the ImGui class.

"},{"location":"changes/Debugging.html#in-game-log-viewer","title":"In-game Log Viewer","text":"

A log viewer has been built-in to the Dear ImGui menu.

  • Game, Console and REPENTOGON logs can be filtered individually.
  • The log can be searched.
"},{"location":"changes/Debugging.html#completely-overhauled-console","title":"Completely Overhauled Console","text":"

The debug console has been completely rebuilt from the ground up in Dear ImGui.

  • The new console has an intelligent autocomplete system, featuring proper tab completion and a more compact autocomplete layout.
  • The macro command has been remade from scratch. Mods can now register macros and these will show up in the new autocomplete system.
  • Mods can register commands. These will show up in the new help menu and in autocomplete.
  • Autocomplete presets can be used by Lua commands.
  • Mods can define their own custom autocomplete with MC_CONSOLE_AUTOCOMPLETE and the CUSTOM AutocompleteType.
  • The new console works on the main menu. Commands marked as \"unsafe\" on the main menu when registered are not shown in autocomplete there, and will intentionally error if attempted.
  • The new console saves command history every time a command is entered. The vanilla one only saved on console or game exit. This prevents history from being lost on a game crash.
  • A help command has been added. This lists all registered commands. Commands marked as \"unsafe\" on the main menu when registered are not shown there.
"},{"location":"changes/General.html","title":"General changes to the game or game engine","text":"

In addition to the API changes listed in the docs, REPENTOGON makes the following general behavior changes to the game:

"},{"location":"changes/General.html#lua-54","title":"Lua 5.4","text":"

The API has been ported to use Lua 5.4 instead of 5.3.

  • The generational garbage collector from 5.4 has been enabled by default, allowing for a significant performance boost.
  • We have (tentative) plans to migrate to LuaJIT in the future, which is not fully compatible with 5.4 (or even 5.2, for that matter). As a result, we ask that mods refrain from relying on any Lua 5.4-specific functionality.
"},{"location":"changes/General.html#game-window","title":"Game Window","text":"

The Game window now displays the current build version and commit hash of REPENTOGON in its name.

"},{"location":"changes/UI.html","title":"Changes made to the UI","text":""},{"location":"changes/UI.html#title-screen","title":"Title Screen","text":"
  • The current REPENTOGON commit hash is displayed above the title screen logo.
  • A scrollable changelog displaying the commit history starting from the currently installed build is accessable by pressing TAB while on the title screen.
"},{"location":"changes/UI.html#stats-menu","title":"Stats Menu","text":"

The Stats menu now displays a scrollable list of more than 40 stats, including:

  • end-boss kills
  • angel/devil deals taken
  • boss rushs cleared
  • cards/pills used
  • rocks/poop destroyed
  • secret rooms opened
  • dailys played/won
  • ...
"},{"location":"changes/UI.html#dailies-menu","title":"Dailies Menu","text":"

The Dailies menu now displays extended stats, including:

  • Target Goal
  • Total runs
  • Current Streak
  • Target Difficulty
"},{"location":"changes/UI.html#mods-menu","title":"Mods menu","text":"

The Mods menu now uses a slightly smaller font to render mod names, making it less common for text to render outside the backdrop boundaries.

"},{"location":"enums/Achievement.html","title":"Enum \"Achievement\"","text":"Value Enumerator Comment 1 MAGDALENE 2 CAIN 3 JUDAS 4 THE_WOMB 4 WOMB 5 THE_HARBINGERS 5 HARBINGERS 5 HORSEMEN 6 A_CUBE_OF_MEAT 6 CUBE_OF_MEAT 7 THE_BOOK_OF_REVELATIONS 7 BOOK_OF_REVELATIONS 8 A_NOOSE 8 TRANSENDENCE 9 THE_NAIL 9 NAIL 10 A_QUARTER 10 QUARTER 11 A_FETUS_IN_A_JAR 11 DR_FETUS 12 A_SMALL_ROCK 12 SMALL_ROCK 13 MONSTROS_LUNG 14 LIL_CHUBBY 15 LOKIS_HORNS 16 SOMETHING_FROM_THE_FUTURE 16 STEVEN 17 SOMETHING_CUTE 17 CHAD 18 SOMETHING_STICKY 18 GISH 19 A_BANDAGE 19 SUPER_BANDAGE 20 A_CROSS 20 THE_RELIC 20 RELIC 21 A_BAG_OF_PENNIES 21 BAG_OF_PENNIES 22 THE_BOOK_OF_SIN 23 BOOK_OF_SIN 23 LITTLE_GISH 24 LITTLE_STEVEN 25 LITTLE_CHAD 26 A_GAMEKID 26 GAMEKID 27 A_HALO 27 HALO 28 MR_MEGA 29 ISAAC_HOLDS_THE_D6 30 THE_SCISSORS 30 SCISSORS 31 THE_PARASITE 31 PARASITE 32 BLUE_BABY 32 QQQ 33 EVERYTHING_IS_TERRIBLE 34 IT_LIVES 35 MOMS_CONTACT 36 THE_NECRONOMICON 36 NECRONOMICON 37 BASEMENT_BOY 38 SPELUNKER_BOY 39 DARK_BOY 40 MAMAS_BOY 41 GOLDEN_GOD 42 EVE 43 MOMS_KNIFE 44 THE_RAZOR 44 RAZOR 45 GUARDIAN_ANGEL 46 A_BAG_OF_BOMBS 46 BAG_OF_BOMBS 47 A_DEMON_BABY 47 DEMON_BABY 48 A_FORGET_ME_NOW 48 FORGET_ME_NOW 49 THE_D20 49 D20 50 THE_CRUCIFIX 50 CELTIC_CROSS 51 ABEL 52 CURVED_HORN 53 SACRIFICIAL_DAGGER 54 BLOOD_LUST 54 BLOODY_LUST 55 BLOOD_PENNY 55 BLOODY_PENNY 56 BLOOD_RIGHTS 57 THE_POLAROID 57 POLAROID 58 DADS_KEY 59 THE_BLUE_CANDLE 59 BLUE_CANDLE 60 BURNT_PENNY 61 LUCKY_TOE 62 EPIC_FETUS 63 SMB_SUPER_FAN 64 COUNTERFEIT_COIN 65 COUNTERFEIT_PENNY 65 GUPPYS_HAIRBALL 66 A_FORGOTTEN_HORSEMAN 66 CONQUEST 67 SAMSON 68 SOMETHING_ICKY 68 TRIACHNID 69 PLATINUM_GOD 70 ISAACS_HEAD 71 MAGGYS_FAITH 72 JUDAS_TONGUE 73 BLUE_BABYS_SOUL 73 QQQS_SOUL 74 SAMSONS_LOCK 75 CAINS_EYE 76 EVES_BIRD_FOOT 77 THE_LEFT_HAND 77 LEFT_HAND 78 THE_NEGATIVE 78 NEGATIVE 79 DEMON_ISAAC 79 AZAZEL 80 LAZARUS 81 EDEN 82 THE_SOUL 82 THE_LOST 82 LOST 83 DEAD_BOY 84 THE_REAL_PLATINUM_GOD 84 REAL_PLATINUM_GOD 85 LUCKY_ROCK 86 THE_CELLAR 86 CELLAR 87 THE_CATACOMBS 87 CATACOMBS 88 THE_NECROPOLIS 88 NECROPOLIS 89 RUNE_OF_HAGALAZ 89 HAGALAZ 90 RUNE_OF_JERA 90 JERA 91 RUNE_OF_EHWAZ 91 EHWAZ 92 RUNE_OF_DAGAZ 92 DAGAZ 93 RUNE_OF_ANSUZ 93 ANSUZ 94 RUNE_OF_PERTHRO 94 PERTHRO 95 RUNE_OF_BERKANO 95 BERKANO 96 RUNE_OF_ALGIZ 96 ALGIZ 97 CHAOS_CARD 98 CREDIT_CARD 99 RULES_CARD 100 CARD_AGAINST_HUMANITY 101 SWALLOWED_PENNY 102 ROBO_BABY_2 103 DEATHS_TOUCH 104 TECHNOLOGY_5 105 MISSING_NO 106 ISAACS_TEARS 107 GUILLOTINE 108 JUDAS_SHADOW 109 MAGGYS_BOW 110 CAINS_OTHER_EYE 111 BLACK_LIPSTICK 112 EVES_MASCARA 113 FATE 114 BLUE_BABYS_ONLY_FRIEND 114 QQQS_ONLY_FRIEND 115 SAMSONS_CHAINS 116 LAZARUS_RAGS 117 BROKEN_ANKH 118 STORE_CREDIT 119 PANDORAS_BOX 120 SUICIDE_KING 121 BLANK_CARD 122 BOOK_OF_SECRETS 123 MYSTERIOUS_PAPER 124 MYSTERY_SACK 125 UNDEFINED 126 SATANIC_BIBLE 127 DAEMONS_TAIL 128 ABADDON 129 ISAACS_HEART 130 THE_MIND_ITEM 130 MIND 131 THE_BODY_ITEM 131 BODY 132 THE_SOUL_ITEM 132 SOUL 133 A_D100 133 D100 134 BLUE_MAP 135 THERES_OPTIONS 136 BLACK_CANDLE 137 RED_CANDLE 138 STOP_WATCH 139 WIRE_COAT_HANGER 140 IPECAC 141 EXPERIMENTAL_TREATMENT 142 KRAMPUS_UNLOCKED 142 KRAMPUS 143 HEAD_OF_KRAMPUS 144 SUPER_MEAT_BOY 145 BUTTER_BEAN 146 LITTLE_BAGGY 147 BLOOD_BAG 148 A_D4 148 D4 149 THE_LOST_POSTER 149 LOST_POSTER 149 MISSING_POSTER 150 RUBBER_CEMENT 151 STORE_UPGRADE_LV1 152 STORE_UPGRADE_LV2 153 STORE_UPGRADE_LV3 154 STORE_UPGRADE_LV4 155 UNLOCKED_ANGEL_BOSSES 155 ANGELS 156 GODHEAD 157 CHALLENGE_4_DARKNESS_FALLS 157 DARKNESS_FALLS 158 CHALLENGE_5_THE_TANK 158 THE_TANK 159 CHALLENGE_6_SOLAR_SYSTEM 159 SOLAR_SYSTEM 160 CHALLENGE_7_SUICIDE_KING 160 SUICIDE_KING_CHALLENGE 161 CHALLENGE_8_CAT_GOT_YOUR_TONGUE 161 CAT_GOT_YOUR_TONGUE 162 CHALLENGE_9_DEMO_MAN 162 DEMO_MAN 163 CHALLENGE_10_CURSED 163 CURSED 164 CHALLENGE_11_GLASS_CANNON 164 GLASS_CANNON 165 CHALLENGE_19_THE_FAMILY_MAN 165 THE_FAMILY_MAN 165 FAMILY_MAN 166 CHALLENGE_20_PURIST 166 PURIST 167 LOST_BABY 168 CUTE_BABY 169 CROW_BABY 170 SHADOW_BABY 171 GLASS_BABY 172 WRAPPED_BABY 173 BEGOTTEN_BABY 174 DEAD_BABY 175 O_BABY 175 ZERO_BABY 176 GLITCH_BABY 177 FIGHTING_BABY 178 BECAME_LORD_OF_THE_FLIES 179 FART_BABY 179 FARTING_BABY 180 PURITY 181 D12 182 BETRAYAL 183 FATES_REWARD 184 ATHAME 185 BLIND_RAGE 186 MAW_OF_THE_VOID 187 EMPTY_VESSEL 188 EDENS_BLESSING 189 SWORN_PROTECTOR 190 INCUBUS 191 KEEPER_HOLDS_A_PENNY 192 LIL_CHEST 193 CENSER 194 EVIL_EYE 195 MY_SHADOW 196 CRACKED_DICE 197 BLACK_FEATHER 198 LUSTY_BLOOD 199 LILITH 200 KEY_BUM 201 GB_BUG 202 ZODIAC 203 BOX_OF_FRIENDS 204 RIB_OF_GREED 205 CRY_BABY 206 RED_BABY 207 GREEN_BABY 208 BROWN_BABY 209 BLUE_COOP_BABY 210 LIL_BABY 211 RAGE_BABY 212 BLACK_BABY 213 LONG_BABY 214 YELLOW_BABY 215 WHITE_BABY 216 BIG_BABY 217 NOOSE_BABY 218 RUNE_BAG 219 CAMBION_CONCEPTION 220 SERPENTS_KISS 221 SUCCUBUS 222 IMMACULATE_CONCEPTION 223 GOAT_HEAD_BABY 224 GOLD_HEART 224 GOLDEN_HEARTS 225 GET_OUT_OF_JAIL_FREE_CARD 225 GET_OUT_OF_JAIL_FREE 226 GOLD_BOMB 226 GOLDEN_BOMBS 227 TWO_NEW_PILLS 228 TWO_NEW_PILLS_2 229 POKER_CHIP 230 STUD_FINDER 231 D8 232 KIDNEY_STONE 233 BLANK_RUNE 234 BLUE_WOMB 235 ONE_THOUSAND_AND_ONE_PERCENT 235 NERD_1_MILLION 236 KEEPER_HOLDS_WOODEN_NICKEL 237 KEEPER_HOLDS_STORE_KEY 238 DEEP_POCKETS 239 KARMA 240 STICKY_NICKELS 241 SUPER_GREED_BABY 242 LUCKY_PENNIES 243 SPECIAL_HANGING_SHOPKEEPERS 244 WOODEN_NICKEL 245 CAIN_HOLDS_PAPERCLIP 246 EVERYTHING_IS_TERRIBLE_2 247 SPECIAL_SHOPKEEPERS 248 EVE_HOLDS_RAZOR_BLADE 249 STORE_KEY 250 THE_LOST_HOLDS_HOLY_MANTLE 250 LOST_HOLDS_HOLY_MANTLE 251 KEEPER 252 HIVE_BABY 253 BUDDY_BABY 254 COLORFUL_BABY 255 WHORE_BABY 256 CRACKED_BABY 257 DRIPPING_BABY 258 BLINDING_BABY 259 SUCKY_BABY 260 DARK_BABY 261 PICKY_BABY 262 REVENGE_BABY 263 BELIAL_BABY 264 SALE_BABY 265 CHALLENGE_21_XXXXXXXXL 265 XXXXXXXXL 266 CHALLENGE_22_SPEED 266 SPEED 267 CHALLENGE_23_BLUE_BOMBER 267 BLUE_BOMBER 268 CHALLENGE_24_PAY_TO_PLAY 268 PAY_TO_PLAY 269 CHALLENGE_25_HAVE_A_HEART 269 HAVE_A_HEART 270 CHALLENGE_26_I_RULE 270 I_RULE 271 CHALLENGE_27_BRAINS 271 BRAINS 272 CHALLENGE_28_PRIDE_DAY 272 PRIDE_DAY 273 CHALLENGE_29_ONANS_STREAK 273 ONANS_STREAK 274 CHALLENGE_30_THE_GUARDIAN 274 THE_GUARDIAN 275 GENEROSITY 276 MEGA_BLAST 277 CHALLENGE_31_BACKASSWARDS 277 BACKASSWARDS 278 CHALLENGE_32_APRILS_FOOL 278 APRILS_FOOL 279 CHALLENGE_33_POKEY_MANS 279 POKEY_MANS 280 CHALLENGE_34_ULTRA_HARD 280 ULTRA_HARD 281 CHALLENGE_35_PONG 281 PONG 282 D_INFINITY 283 EUCHARIST 284 SILVER_DOLLAR 285 SHADE 286 KING_BABY 287 BLOODY_CROWN 288 DULL_RAZOR 289 EDENS_SOUL 290 DARK_PRINCES_CROWN 291 COMPOUND_FRACTURE 292 EUTHANASIA 293 HOLY_CARD 294 CROOKED_CARD 295 VOID 296 D1 297 GLYPH_OF_BALANCE 298 SACK_OF_SACKS 299 EYE_OF_BELIAL 300 MECONIUM 301 STEM_CELL 302 CROW_HEART 303 METRONOME 304 BAT_WING 305 PLAN_C 306 DUALITY 307 DADS_LOST_COIN 308 EYE_OF_GREED 309 BLACK_RUNE 310 LOCUST_OF_WRATH 311 LOCUST_OF_PESTILENCE 312 LOCUST_OF_FAMINE 313 LOCUST_OF_DEATH 314 LOCUST_OF_CONQUEST 315 HUSHY 316 BROWN_NUGGET 317 MORT_BABY 318 SMELTER 319 APOLLYON_BABY 320 UNLOCKED_A_NEW_AREA 320 THE_VOID 320 VOID_FLOOR 321 ONCE_MORE_WITH_FEELING 321 GULP_PILL 322 HAT_TRICK 322 ACE_OF_CLUBS 323 FIVE_NIGHTS_AT_MOMS 323 SUPER_SPECIAL_ROCKS 324 SIN_COLLECTOR 324 FEELS_LIKE_IM_WALKING_ON_SUNSHINE 324 SUNSHINE_PILL 325 DEDICATION 325 HORF 326 ZIP 326 ACE_OF_DIAMONDS 327 ITS_THE_KEY 327 ACE_OF_SPADES 328 MR_RESETTER 328 SCARED_HEART 329 LIVING_ON_THE_EDGE 329 ACE_OF_HEARTS 330 U_BROKE_IT 330 VURP 331 LAZARUS_BLEEDS_MORE 331 LAZARUS_HOLDS_ANEMIA 332 MAGGY_HOLDS_A_PILL 332 MAGDALENE_HOLDS_A_PILL 333 CHARGED_KEY 334 SAMMSON_FEELS_HEALTHY 334 SAMSON_HOLDS_CHILDS_HEART 335 GREEDS_GULLET 336 CRACKED_CROWN 337 UNLOCKED_RERUNS 337 RERUNS 338 DELIRIOUS 339 ONE_MILLION_PERCENT_JUST_STOP 339 ONE_MILLION_PERCENT 339 JUST_STOP 340 THE_DESTROYER 340 APOLLYON 341 GREEDIER 342 BURNING_BASEMENT 343 FLOODED_CAVES 344 DANK_DEPTHS 345 SCARRED_WOMB 346 SOMETHING_WICKED 347 SOMETHING_WICKED_PLUS 347 SOMETHING_WICKED_2 348 THE_GATE_IS_OPEN 349 BLACK_HOLE 350 MYSTERY_GIFT 351 SPRINKLER 352 ANGRY_FLY 353 BOZO 354 BROKEN_MODEM 355 BUDDY_IN_A_BOX 356 FAST_BOMBS 357 LIL_DELIRIUM 358 HAIRPIN 359 WOODEN_CROSS 360 BUTTER 361 HUGE_GROWTH 362 ANCIENT_RECALL 363 ERA_WALK 364 COUPON 365 TELEKINESIS 366 MOVING_BOX 367 JUMPER_CABLES 368 LEPROSY 369 TECHNOLOGY_ZERO 370 FILIGREE_FEATHER 371 MR_ME 372 SEVEN_SEALS 373 ANGELIC_PRISM 374 POP 375 DOOR_STOP 376 DEATHS_LIST 377 HAEMOLACHRIA 378 LACHRYPHAGY 379 SCHOOLBAG 380 TRISAGION 381 EXTENSION_CORD 382 FLAT_STONE 383 SACRIFICAL_ALTAR 384 LIL_SPEWER 385 BLANKET 386 MARBLES 387 MYSTERY_EGG 388 ROTTEN_PENNY 389 BABY_BENDER 390 THE_FORGOTTEN 390 FORGOTTEN 391 BONE_HEARTS 392 MARROW 393 SLIPPED_RIB 394 POINTY_RIB 395 JAW_BONE 396 BRITTLE_BONES 397 DIVORCE_PAPERS 398 HALLOWED_GROUND 399 FINGER_BONE 400 DADS_RING 401 BOOK_OF_THE_DEAD 402 BONE_BABY 403 BOUND_BABY 404 BETHANY 405 JACOB_AND_ESAU 406 THE_STARS_ARE_CALLING 406 PLANETARIUMS 407 UNLOCKED_A_SECRET_EXIT 407 SECRET_EXIT 407 ALT_PATH 407 ANTIBIRTH_PATH 408 FORGOTTEN_LULLABY 409 FRUITY_PLUM 410 PLUM_FLUTE 411 ROTTEN_HEARTS 412 DROSS 413 ASHPIT 414 GEHENNA 415 RED_KEY 416 WISP_BABY 417 BOOK_OF_VIRTUES 418 URN_OF_SOULS 419 BLESSED_PENNY 420 ALABASTER_BOX 421 BETHS_FAITH 422 SOUL_LOCKET 423 DIVINE_INTERVENTION 424 VADE_RETRO 425 STAR_OF_BETHLEHEM 426 HOPE_BABY 427 GLOWING_BABY 428 DOUBLE_BABY 429 THE_STAIRWAY 429 STAIRWAY 430 RED_STEW 431 BIRTHRIGHT 432 DAMOCLES 433 ROCK_BOTTOM 434 INNER_CHILD 435 VANISHING_TWIN 436 GENESIS 437 SUPLEX 438 SOLOMONS_BABY 439 ILLUSION_BABY 440 MEAT_CLEAVER 441 OPTIONS 441 OPTIONS_Q 442 YUCK_HEART 443 CANDY_HEART 444 GUPPYS_EYE 445 A_POUND_OF_FLESH 445 POUND_OF_FLESH 446 AKELDAMA 447 REDEMPTION 448 ETERNAL_D6 449 MONTEZUMAS_REVENGE 450 BIRD_CAGE 451 CRACKED_ORB 452 BLOODY_GUST 453 EMPTY_HEART 454 DEVILS_CROWN 455 LIL_ABADDON 456 TINYTOMA 457 ASTRAL_PROJECTION 458 M 458 APOSTROPHE_M 459 EVERYTHING_JAR 460 LOST_SOUL 461 HUNGRY_SOUL 462 BLOOD_PUPPY 463 C_SECTION 464 KEEPERS_SACK 465 KEEPERS_BOX 466 LIL_PORTAL 467 WORM_FRIEND 468 BONE_SPURS 469 SPIRIT_SHACKLES 470 REVELATION 471 JAR_OF_WISPS 472 MAGIC_SKIN 473 FRIEND_FINDER 474 TAINTED_ISAAC 475 TAINTED_MAGGY 475 TAINTED_MAGDALENE 476 TAINTED_CAIN 477 TAINTED_JUDAS 478 TAINTED_BLUE_BABY 478 TAINTED_QQQ 479 TAINTED_EVE 480 TAINTED_SAMSON 481 TAINTED_AZAZEL 482 TAINTED_LAZARUS 483 TAINTED_EDEN 484 TAINTED_THE_LOST 484 TAINTED_LOST 485 TAINTED_LILITH 486 TAINTED_KEEPER 487 TAINTED_APOLLYON 488 TAINTED_THE_FORGOTTEN 488 TAINTED_FORGOTTEN 489 TAINTED_BETHANY 490 TAINTED_JACOB 490 TAINTED_JACOB_AND_ESAU 491 GLITCHED_CROWN 492 BELLY_JELLY 493 BLUE_KEY 494 SANGUINE_BOND 495 THE_SWARM 495 SWARM 496 HEARTBREAK 497 LARYNX 498 AZAZELS_RAGE 499 SALVATION 500 TMTRAINER 501 SACRED_ORB 502 TWISTED_PAIR 503 STRAWMAN 504 ECHO_CHAMBER 505 ISAACS_TOMB 506 VENGEFUL_SPIRIT 507 ESAU_JR 508 CHALLENGE_37_BLOODY_MARY 508 BLOODY_MARY 509 CHALLENGE_38_BAPTISM_BY_FIRE 509 BAPTISM_BY_FIRE 510 CHALLENGE_39_ISAACS_AWAKENING 510 ISAACS_AWAKENING 511 CHALLENGE_40_SEEING_DOUBLE 511 SEEING_DOUBLE 512 CHALLENGE_41_PICA_RUN 512 PICA_RUN 513 CHALLENGE_42_HOT_POTATO 513 HOT_POTATO 514 CHALLENGE_43_CANTRIPPED 514 CANTRIPPED 515 CHALLENGE_44_RED_REDEMPTION 515 RED_REDEMPTION 516 CHALLENGE_45_DELETE_THIS 516 DELETE_THIS 517 DIRTY_MIND 518 SIGIL_OF_BAPHOMET 519 PURGATORY 520 SPIRIT_SWORD 521 BROKEN_GLASSES 522 ICE_CUBE 523 CHARGED_PENNY 524 REVERSED_THE_FOOL 524 REVERSED_FOOL 525 REVERSED_THE_MAGICIAN 525 REVERSED_MAGICIAN 526 REVERSED_THE_HIGH_PRIESTESS 526 REVERSED_HIGH_PRIESTESS 527 REVERSED_THE_EMPRESS 527 REVERSED_EMPRESS 528 REVERSED_THE_EMPEROR 528 REVERSED_EMPEROR 529 REVERSED_THE_HEIROPHANT 529 RESERVED_HEIROPHANT 530 REVERSED_THE_LOVERS 530 REVERSED_LOVERS 531 REVERSED_THE_CHARIOT 531 REVERSED_CHARIOT 532 REVERSED_JUSTICE 533 REVERSED_THE_HERMIT 533 REVERSED_HERMIT 534 REVERSED_WHEEL_OF_FORTUNE 535 REVERSED_STRENGTH 536 REVERSED_THE_HANGED_MAN 536 REVERSED_HANGED_MAN 537 REVERSED_DEATH 538 REVERSED_TEMPERANCE 539 REVERSED_THE_DEVIL 539 REVERSED_DEVIL 540 REVERSED_THE_TOWER 540 REVERSED_TOWER 541 REVERSED_THE_STARS 541 REVERSED_STARS 542 REVERSED_THE_SUN_AND_THE_MOON 542 REVERSED_SUN_AND_MOON 543 REVERSED_JUDGEMENT 544 REVERSED_THE_WORLD 544 REVERSED_WORLD 545 OLD_CAPACITOR 546 BRIMSTONE_BOMBS 547 MEGA_MUSH 548 MOMS_LOCK 549 DICE_BAG 550 HOLY_CROWN 551 MOTHERS_KISS 552 GILDED_KEY 553 LUCKY_SACK 554 YOUR_SOUL 555 NUMBER_MAGNET 556 DINGLE_BERRY 557 RING_CAP 558 STRANGE_KEY 559 LIL_CLOT 560 TEMPORARY_TATTOO 561 SWALLOWED_M80 562 WICKED_CROWN 563 AZAZELS_STUMP 564 TORN_POCKET 565 TORN_CARD 566 NUH_UH 567 MODELING_CLAY 568 KIDS_DRAWING 569 CRYSTAL_KEY 570 THE_TWINS 571 ADOPTION_PAPERS 572 KEEPERS_BARGAIN 573 CURSED_PENNY 574 CRICKET_LEG 575 APOLLYONS_BEST_FRIEND 576 POLISHED_BONE 577 HOLLOW_HEART 578 EXPANSION_PACK 579 BETHS_ESSENCE 580 RC_REMOTE 581 FOUND_SOUL 582 MEMBER_CARD 583 GOLDEN_RAZOR 584 SPINDOWN_DICE 585 HYPERCOAGULATION 586 BAG_OF_CRAFTING 587 DARK_ARTS 588 IBS 589 SUMPTORIUM 590 BERSERK 591 HEMOPTYSIS 592 FLIP 593 CORRUPTED_DATA 594 GHOST_BOMBS 595 GELLO 596 KEEPERS_KIN 597 ABYSS 598 DECAP_ATTACK 599 LEMEGETON 600 ANIMA_SOLA 601 MEGA_CHEST 602 QUEEN_OF_HEARTS 603 GOLD_PILL 603 GOLDEN_PILLS 604 BLACK_SACK 605 CHARMING_POOP 606 HORSE_PILLS 607 CRANE_GAME 608 HELL_GAME 609 WOODEN_CHEST 610 WILD_CARD 611 HAUNTED_CHEST 612 FOOLS_GOLD 613 GOLDEN_PENNY 613 GOLDEN_PENNIES 614 ROTTEN_BEGGAR 615 GOLDEN_BATTERY 615 GOLDEN_BATTERIES 616 CONFESSIONAL 617 GOLDEN_TRINKET 617 GOLDEN_TRINKETS 618 SOUL_OF_ISAAC 619 SOUL_OF_MAGDALENE 619 SOUL_OF_MAGGY 620 SOUL_OF_CAIN 621 SOUL_OF_JUDAS 622 SOUL_OF_BLUE_BABY 622 SOUL_OF_QQQ 623 SOUL_OF_EVE 624 SOUL_OF_SAMSON 625 SOUL_OF_AZAZEL 626 SOUL_OF_LAZARUS 627 SOUL_OF_EDEN 628 SOUL_OF_THE_LOST 628 SOUL_OF_LOST 629 SOUL_OF_LILITH 630 SOUL_OF_THE_KEEPER 630 SOUL_OF_KEEPER 631 SOUL_OF_APOLLYON 632 SOUL_OF_THE_FORGOTTEN 632 SOUL_OF_FORGOTTEN 633 SOUL_OF_BETHANY 634 SOUL_OF_JACOB 634 SOUL_OF_JACOB_AND_ESAU 635 A_STRANGE_DOOR 635 STRANGE_DOOR 635 ASCENT_DOOR 636 DEATH_CERTIFICATE 637 DEAD_GOD","tags":["Enum"]},{"location":"enums/AnimRenderFlags.html","title":"AnimRenderFlags","text":"Warning

The flags contained in Sprite and LayerState are added together during rendering, thus if one is set in Sprite but not LayerState it will still take effect for that layer.

Not fully documented yet, sorry! (A test script is provided below if you'd like to help document this)

Bitset Calculator

","tags":["Enum"]},{"location":"enums/AnimRenderFlags.html#enum-animrenderflags","title":"Enum \"AnimRenderFlags\"","text":"Value Enumerator Comment 1<<1 GLITCH Rapidly distorts the spritesheet position. Likely used for glitch items generated by CORRUPTED DATA. 1<<4 COLOROFFSET_CHAMPION Used by champion NPCs. If not applied to a champion NPC, it will not render. 1<<5 STATIC Used by Dogma (boss, collectible, related effects). 1<<6 IGNORE_GAME_TIME If set, animated effects (static, golden) will continue animating even if the game is paused. 1<<7 GOLDEN Used by golden trinkets. 1<<10 ENABLE_LAYER_LIGHTING Layer names starting with * will become fullbright. 1<<11 ENABLE_NULL_LAYER_LIGHTING Null layer names starting with * will emit light. Test script

This script will print to both the console and log whenever an entity has flags applied to it:

local mod = RegisterMod(\"REPENTOTEST\", 1)\n\nlocal function debugprint(string)\n    print(string)\n    Isaac.DebugString(string)\nend\n\nfunction getfilename(sprite)\n    local name = sprite:GetFilename()\n    local index = string.find(name, \"/[^/]*$\")\n    return string.sub(name, index+1, string.len(name))\nend\n\nfunction printmessage(entity, sprite)\n    debugprint(\"For entity \"..entity.Type..\".\"..entity.Variant..\".\"..entity.SubType..\", frame \"..tostring(entity.FrameCount)..\", \"..\"\\\"\"..getfilename(sprite)..\"\\\":\")\nend\n\nfunction splitflags(n) --https://stackoverflow.com/questions/30445776/lua-decompose-a-number-by-powers-of-2\n    local res = {}\n    local ret = \"\"\n    i = 1\n    while i <= n do\n        if i&n ~= 0 then -- bitwise and check\n            table.insert(res, i)\n        end\n        i = i << 1 -- bitwise shift to the left\n    end\n\n    local count = 0\n    for _ in ipairs(res) do count = count + 1 end\n\n    for j,v in ipairs(res) do\n        local num = math.floor(math.log(v, 2 ))\n        if num == 0 then\n            ret = ret..\"1\"\n        else\n            ret = ret..\"1<<\"..num\n        end\n        if j ~= count then\n            ret = ret..\", \"\n        else\n            ret = ret..\" (\"..n..\")\"\n        end\n    end\n    return ret\nend\n\nfunction mod:CheckFlags(entity)\n    local data = entity:GetData()\n    local sprite = entity:GetSprite()\n    local anm2Flags = sprite:GetRenderFlags()\n    local layers = sprite:GetAllLayers()\n\n    local didmessage = false\n    if data.layerFlags == nil then\n        data.layerFlags = {}\n    end\n\n    if anm2Flags > 0 and anm2Flags ~= data.anm2Flags then\n        if not didmessage then\n            printmessage(entity, sprite)\n            didmessage = true\n        end\n        debugprint(\"[Sprite]: \"..splitflags(anm2Flags))\n        data.anm2Flags = anm2Flags\n    end\n\n    local layerFlags\n    for i = 1, #layers do\n        layerFlags = layers[i]:GetRenderFlags()\n        if layerFlags > 0 and layerFlags ~= data.layerFlags[i] then\n            if not didmessage then\n                printmessage(entity, sprite)\n                didmessage = true\n            end\n            debugprint(\"[\"..tostring(i)..\"] \\\"\"..layers[i]:GetName()..\"\\\": \"..splitflags(layerFlags))\n            data.layerFlags[i] = layerFlags\n        end\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_TEAR_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_FAMILIAR_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_BOMB_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_SLOT_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_LASER_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_KNIFE_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_PROJECTILE_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_NPC_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_EFFECT_RENDER, mod.CheckFlags)\n
","tags":["Enum"]},{"location":"enums/AnnouncerVoiceMode.html","title":"Enum \"AnnouncerVoiceMode\"","text":"Value Enumerator Comment 0 RANDOM 1 NEVER 1 OFF 2 ALWAYS","tags":["Enum"]},{"location":"enums/AutocompleteType.html","title":"Enum \"AutocompleteType\"","text":"Value Enumerator Comment 0 NONE 1 ENTITY 2 GOTO 3 STAGE 4 GRID 5 DEBUG_FLAG 6 ITEM 7 CHALLENGE 8 COMBO 9 CUTSCENE 10 MACRO 11 SFX 12 CURSE 13 METRO 14 DELIRIOUS 15 PLAYER 16 ACHIEVEMENT 17 MODFOLDER 18 CUSTOM","tags":["Enum"]},{"location":"enums/BagOfCraftingPickup.html","title":"Enum \"BagOfCraftingPickup\"","text":"Value Enumerator Comment 0 BOC_NONE 1 BOC_RED_HEART 2 BOC_SOUL_HEART 3 BOC_BLACK_HEART 4 BOC_ETERNAL_HEART 5 BOC_GOLD_HEART 6 BOC_BONE_HEART 7 BOC_ROTTEN_HEART 8 BOC_PENNY 9 BOC_NICKEL 10 BOC_DIME 11 BOC_LUCKY_PENNY 12 BOC_KEY 13 BOC_GOLD_KEY 14 BOC_CHARGED_KEY 15 BOC_BOMB 16 BOC_GOLD_BOMB 17 BOC_GIGA_BOMB 18 BOC_MINI_BATTERY 19 BOC_BATTERY 20 BOC_MEGA_BATTERY 21 BOC_CARD 22 BOC_PILL 23 BOC_RUNE 24 BOC_DICE_SHARD 25 BOC_CRACKED_KEY 26 BOC_GOLD_PENNY 27 BOC_GOLD_PILL 28 BOC_GOLD_BATTERY 29 BOC_POOP","tags":["Enum"]},{"location":"enums/BombCostumeLayer.html","title":"Enum \"BombCostumeLayer\"","text":"Value Enumerator Comment 0 BACK 1 BODY2 2 FRONT 3 FRONT2 4 OVERLAY","tags":["Enum"]},{"location":"enums/BossType.html","title":"Enum \"BossType\"","text":"Value Enumerator Comment 1 MONSTRO 2 LARRY_JR 3 CHUB 4 GURDY 5 MONSTRO_2 5 MONSTRO_II 6 MOM 7 SCOLEX 8 MOMS_HEART 9 FAMINE 10 PESTILENCE 11 WAR 12 DEATH 13 DUKE_OF_FLIES 14 PEEP 15 LOKI 16 BLASTOCYST 17 GEMINI 18 FISTULA 19 GISH 20 STEVEN 21 CHAD 22 HEADLESS_HORSEMAN 23 THE_FALLEN 23 FALLEN 24 SATAN 25 IT_LIVES 26 THE_HOLLOW 26 HOLLOW 27 THE_CARRION_QUEEN 27 CARRION_QUEEN 28 GURDY_JR 29 THE_HUSK 29 HUSK 30 THE_BLOAT 30 BLOAT 31 LOKII 32 THE_BLIGHTED_OVUM 32 BLIGHTED_OVUM 33 TERATOMA 34 THE_WIDOW 34 WIDOW 35 MASK_OF_INFAMY 36 THE_WRETCHED 36 WRETCHED 37 PIN 38 CONQUEST 39 ISAAC 40 BLUE_BABY 40 QQQ 41 DADDY_LONG_LEGS 42 TRIACHNID 43 THE_HAUNT 43 HAUNT 44 DINGLE 45 MEGA_MAW 46 THE_GATE 46 GATE 47 MEGA_FATTY 48 THE_CAGE 48 CAGE 49 MEGA_GURDY 50 DARK_ONE 51 THE_ADVERSARY 51 ADVERSARY 52 POLYCEPHALUS 53 MR_FRED 54 THE_LAMB 54 LAMB 55 MEGA_SATAN 56 GURGLINGS 57 THE_STAIN 57 STAIN 58 BROWNIE 59 THE_FORSAKEN 59 FORSAKEN 60 LITTLE_HORN 61 RAG_MAN 62 ULTRA_GREED 63 HUSH 64 DANGLE 65 TURDLINGS 66 THE_FRAIL 66 FRAIL 67 RAG_MEGA 68 SISTERS_VIS 69 BIG_HORN 70 DELIRIUM 71 ULTRA_GREEDIER 72 THE_MATRIACH 72 MATRIARCH 73 THE_PILE 73 PILE 74 REAP_CREEP 75 LIL_BLUB 75 BEELZEBLUB 76 WORMWOOD 77 THE_RAINMAKER 77 RAINMAKER 78 THE_VISAGE 78 VISAGE 79 THE_SIREN 79 SIREN 80 TUFF_TWINS 81 THE_HERETIC 81 HERETIC 82 HORNFEL 83 GREAT_GIDEON 84 BABY_PLUM 85 THE_SCOURGE 85 SCOURGE 86 CHIMERA 87 ROTGUT 88 MOTHER 89 MOM_MAUSOLEUM 89 MAUS_MOM 90 MOMS_HEART_MAUSOLEUM 90 MAUS_HEART 91 MIN_MIN 92 CLOG 93 SINGE 94 BUMBINO 95 COLOSTOMIA 96 THE_SHELL 96 SHELL 97 TURDLET 98 RAGLICH 99 DOGMA 100 THE_BEAST 100 BEAST 101 HORNY_BOYS 102 CLUTCH 103 CADAVRA","tags":["Enum"]},{"location":"enums/CameraStyle.html","title":"Enum \"CameraStyle\"","text":"Value Enumerator Comment 1 ACTIVE_CAM_ON 2 ACTIVE_CAM_OFF","tags":["Enum"]},{"location":"enums/CompletionType.html","title":"Enum \"CompletionType\"","text":"Value Enumerator Comment 0 MOMS_HEART 1 ISAAC 2 SATAN 3 BOSS_RUSH 4 BLUE_BABY 5 LAMB 6 MEGA_SATAN 7 ULTRA_GREED 9 HUSH 11 ULTRA_GREEDIER 12 DELIRIUM 13 MOTHER 14 BEAST","tags":["Enum"]},{"location":"enums/ConsoleFont.html","title":"Enum \"ConsoleFont\"","text":"Value Enumerator Comment 0 DEFAULT 1 SMALL 2 TINY","tags":["Enum"]},{"location":"enums/DebugFlag.html","title":"Enum \"DebugFlag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 ENTITY_POSITIONS 1 << 1 GRID 1 << 2 INFINITE_HP 1 << 3 HIGH_DAMAGE 1 << 4 ROOM_INFO 1 << 5 HITSPHERES 1 << 6 DAMAGE_VALUES 1 << 7 INFINITE_ITEM_CHARGES 1 << 8 HIGH_LUCK 1 << 9 QUICK_KILL 1 << 10 GRID_INFO 1 << 11 PLAYER_ITEM_INFO 1 << 12 GRID_COLLISION_POINTS 1 << 13 LUA_MEMORY_USAGE","tags":["Enum"]},{"location":"enums/DeliriumCallbacks.html","title":"Enum \"DeliriumCallbacks\"","text":"

This is a list of callbacks exclusive to the behavior of Delirium. These callbacks live under a different namespace as they are too specific when compared to the more general ones found in ModCallbacks.

"},{"location":"enums/DeliriumCallbacks.html#transformation","title":"TRANSFORMATION","text":"

This callback is fired immediately before the game transforms Delirium into a boss (this also includes when Delirium returns to its normal form). Accepts four parameters: Delirium, Type, Variant and Force. Delirium is the instance of Delirium that is transforming. Type and Variant are the type and variant of the selected boss. Force is set to false if the game performed the transformation by itself, true if the transformation was requested by the modding API.

You may return the following values:

  • true: lets the transformation happen without changing anything.
  • false: prevents the transformation, Delirium will remain the same.
  • a table containing at least one value. The first value in this table (index 1, mandatory) is the type of the desired transformation; the second value in this table (index 2, optional, defaults to 0) is the variant of the desired transformation; other indices are ignored.
  • any other value will let the transformation occur naturally.
Name Function Args Optional Args Return Type TRANSFORMATION (EntityDelirium Delirium, int Type, int Variant, bool Force) - boolean or table"},{"location":"enums/DeliriumCallbacks.html#post_transformation","title":"POST_TRANSFORMATION","text":"

This callback is fired immediately after the game transform Delirium into a boss (this also includes when Delirium returns to its normal form or transforms into the same boss). Accepts one parameter: Delirium, which is the instance of Delirium that transformed. This callback returns nothing.

Name Function Args Optional Args Return Type POST_TRANSFORMATION (EntityDelirium Delirium) - void"},{"location":"enums/DialogButtons.html","title":"Enum \"DialogButtons\"","text":"Value Enumerator Comment 0 OK 1 OK_CANCEL 2 ABORT_RETRY_IGNORE 3 YES_NO_CANCEL 4 YES_NO 5 RETRY_CANCEL 6 CANCEL_TRY_CONTINUE 16384 HELP","tags":["Enum"]},{"location":"enums/DialogIcons.html","title":"Enum \"DialogIcons\"","text":"Value Enumerator Comment 16 ERROR 16 HAND 16 STOP 32 QUESTION 48 EXCLAMATION 48 WARNING 64 ASTERISK 64 INFORMATION","tags":["Enum"]},{"location":"enums/DialogReturn.html","title":"Enum \"DialogReturn\"","text":"Value Enumerator Comment 1 OK 2 CANCEL 3 ABORT 4 RETRY 5 IGNORE 6 YES 7 NO 10 TRY_AGAIN 11 CONTINUE","tags":["Enum"]},{"location":"enums/Dimension.html","title":"Enum \"Dimension\"","text":"Value Enumerator Comment -1 CURRENT 0 NORMAL 1 KNIFE_PUZZLE 1 MIRROR 1 MINESHAFT 2 DEATH_CERTIFICATE","tags":["Enum"]},{"location":"enums/DipSubType.html","title":"Enum \"DipSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 RED 2 CHUNKY 2 CORN 3 GOLDEN 4 RAINBOW 5 BLACK 6 HOLY 6 WHITE 12 STONE 12 PETRIFIED 13 FLAMING 14 STINKY 14 POISON 20 BROWNIE","tags":["Enum"]},{"location":"enums/Ending.html","title":"Enum \"Ending\"","text":"Value Enumerator Comment 1 DIE 2 EPILOGUE 3 CREDITS 4 SATAN 4 ENDING_12 5 ISAAC 5 ENDING_13 6 LAMB 6 ENDING_15 7 BLUE_BABY 7 ENDING_14 8 MEGA_SATAN 8 ENDING_16 9 ULTRA_GREED 9 ENDING_18 10 HUSH 10 ENDING_17 11 DELIRIUM 11 ENDING_20 12 ULTRA_GREEDIER 12 ENDING_19 13 MOTHER 13 ENDING_21 14 BEAST 14 FINAL_ENDING","tags":["Enum"]},{"location":"enums/EntityPoopVariant.html","title":"Enum \"EntityPoopVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 GOLDEN 11 STONE 11 PETRIFIED 12 CHUNKY 12 CORN 13 FLAMING 14 STINKY 14 POISON 15 BLACK 16 HOLY 16 WHITE","tags":["Enum"]},{"location":"enums/EntityTag.html","title":"Enum \"EntityTag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 FLY 1 << 1 SPIDER 1 << 3 GHOST 1 << 4 NOREROLL 1 << 5 CANSACRIFICE 1 << 6 EXPLOSIVE_SOUL 1 << 7 HOMING_SOUL 1 << 8 BRIMSTONE_SOUL 1 << 9 NODELIRIUM","tags":["Enum"]},{"location":"enums/EventCounter.html","title":"Enum \"EventCounter\"","text":"Value Enumerator Comment 0 NULL Seems unused 1 MOM_KILLS Stat from the stat screen. Counts kills of Moms heart (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 2 ROCKS_DESTROYED Includes all rock types including tinted rocks 3 TINTED_ROCKS_DESTROYED 4 SUPER_SPECIAL_ROCKS_DESTROYED Super Special Rocks are Tinted Rock variants with smaller marks and lack of discoloration 5 POOP_DESTROYED Includes all poop types. Red poop counts everytime it gets destroyed 6 PILLS_EATEN Includes all pills including horse pills 7 XIII_DEATH_CARD_USED 8 UNKNOWN_EVENT_8 9 ARCADES_ENTERED Also includes teleports with goto. 10 DEATHS does not increase when revived 11 ISAAC_KILLS How often was the final boss of cathedral killed. (Isaac) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 12 SHOPKEEPER_KILLED 13 SATAN_KILLS How often was the final boss of sheol killed. (Satan) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 14 SHELLGAMES_PLAYED How often the shellgame was played 15 ANGEL_DEALS_TAKEN 16 DEVIL_DEALS_TAKEN 17 BLOOD_DONATION_MACHINE_USED 18 SLOT_MACHINES_BROKEN 20 DONATE_MACHINE_COUNTER 20 DONATION_MACHINE_COUNTER 21 EDEN_TOKENS 22 STREAK_COUNTER counts your current streak. 23 BEST_STREAK 24 BLUE_BABY_KILLS How often was the final boss of chest killed. (??? - Blue Baby) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 25 LAMB_KILLS How often was the final boss of dark room killed. (The lamb) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 26 MEGA_SATAN_KILLS 27 PROGRESSION_KILL_MOMS_HEART_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 28 PROGRESSION_KILL_MOMS_HEART_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 29 PROGRESSION_KILL_MOMS_HEART_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 30 PROGRESSION_KILL_MOMS_HEART_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 31 PROGRESSION_KILL_MOMS_HEART_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 32 PROGRESSION_KILL_MOMS_HEART_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 33 PROGRESSION_KILL_MOMS_HEART_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 34 PROGRESSION_KILL_MOMS_HEART_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 35 PROGRESSION_KILL_MOMS_HEART_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 36 PROGRESSION_KILL_MOMS_HEART_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 37 PROGRESSION_KILL_MOMS_HEART_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 38 PROGRESSION_KILL_MOMS_HEART_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 39 PROGRESSION_KILL_MOMS_HEART_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 40 PROGRESSION_KILL_MOMS_HEART_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 41 PROGRESSION_KILL_ISAAC_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 42 PROGRESSION_KILL_ISAAC_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 43 PROGRESSION_KILL_ISAAC_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 44 PROGRESSION_KILL_ISAAC_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 45 PROGRESSION_KILL_ISAAC_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 46 PROGRESSION_KILL_ISAAC_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 47 PROGRESSION_KILL_ISAAC_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 48 PROGRESSION_KILL_ISAAC_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 49 PROGRESSION_KILL_ISAAC_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 50 PROGRESSION_KILL_ISAAC_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 51 PROGRESSION_KILL_ISAAC_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 52 PROGRESSION_KILL_ISAAC_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 53 PROGRESSION_KILL_ISAAC_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 54 PROGRESSION_KILL_ISAAC_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 55 PROGRESSION_KILL_SATAN_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 56 PROGRESSION_KILL_SATAN_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 57 PROGRESSION_KILL_SATAN_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 58 PROGRESSION_KILL_SATAN_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 59 PROGRESSION_KILL_SATAN_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 60 PROGRESSION_KILL_SATAN_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 61 PROGRESSION_KILL_SATAN_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 62 PROGRESSION_KILL_SATAN_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 63 PROGRESSION_KILL_SATAN_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 64 PROGRESSION_KILL_SATAN_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 65 PROGRESSION_KILL_SATAN_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 66 PROGRESSION_KILL_SATAN_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 67 PROGRESSION_KILL_SATAN_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 68 PROGRESSION_KILL_SATAN_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 69 PROGRESSION_BOSSRUSH_CLEARED_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 70 PROGRESSION_BOSSRUSH_CLEARED_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 71 PROGRESSION_BOSSRUSH_CLEARED_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 72 PROGRESSION_BOSSRUSH_CLEARED_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 73 PROGRESSION_BOSSRUSH_CLEARED_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 74 PROGRESSION_BOSSRUSH_CLEARED_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 75 PROGRESSION_BOSSRUSH_CLEARED_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 76 PROGRESSION_BOSSRUSH_CLEARED_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 77 PROGRESSION_BOSSRUSH_CLEARED_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 78 PROGRESSION_BOSSRUSH_CLEARED_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 79 PROGRESSION_BOSSRUSH_CLEARED_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 80 PROGRESSION_BOSSRUSH_CLEARED_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 81 PROGRESSION_BOSSRUSH_CLEARED_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 82 PROGRESSION_BOSSRUSH_CLEARED_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 83 PROGRESSION_KILL_BLUE_BABY_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 84 PROGRESSION_KILL_BLUE_BABY_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 85 PROGRESSION_KILL_BLUE_BABY_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 86 PROGRESSION_KILL_BLUE_BABY_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 87 PROGRESSION_KILL_BLUE_BABY_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 88 PROGRESSION_KILL_BLUE_BABY_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 89 PROGRESSION_KILL_BLUE_BABY_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 90 PROGRESSION_KILL_BLUE_BABY_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 91 PROGRESSION_KILL_BLUE_BABY_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 92 PROGRESSION_KILL_BLUE_BABY_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 93 PROGRESSION_KILL_BLUE_BABY_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 94 PROGRESSION_KILL_BLUE_BABY_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 95 PROGRESSION_KILL_BLUE_BABY_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 96 PROGRESSION_KILL_BLUE_BABY_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 97 PROGRESSION_KILL_THE_LAMB_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 98 PROGRESSION_KILL_THE_LAMB_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 99 PROGRESSION_KILL_THE_LAMB_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 100 PROGRESSION_KILL_THE_LAMB_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 101 PROGRESSION_KILL_THE_LAMB_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 102 PROGRESSION_KILL_THE_LAMB_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 103 PROGRESSION_KILL_THE_LAMB_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 104 PROGRESSION_KILL_THE_LAMB_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 105 PROGRESSION_KILL_THE_LAMB_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 106 PROGRESSION_KILL_THE_LAMB_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 107 PROGRESSION_KILL_THE_LAMB_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 108 PROGRESSION_KILL_THE_LAMB_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 109 PROGRESSION_KILL_THE_LAMB_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 110 PROGRESSION_KILL_THE_LAMB_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 111 BOSSRUSHS_CLEARED 112 UNKNOWN_EVENT_112 seems to only be at 1 for a dead god file 113 NEGATIVE_STREAK_COUNTER counts your current negative streak. aka consecutive runs ending with death. 114 EDENS_BLESSINGS_NEXT_RUN number of edens blessing items added to the player in next run 115 GREED_DONATION_MACHINE_COUNTER 116 PROGRESSION_KILL_MEGA_SATAN_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 117 PROGRESSION_KILL_MEGA_SATAN_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 118 PROGRESSION_KILL_MEGA_SATAN_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 119 PROGRESSION_KILL_MEGA_SATAN_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 120 PROGRESSION_KILL_MEGA_SATAN_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 121 PROGRESSION_KILL_MEGA_SATAN_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 122 PROGRESSION_KILL_MEGA_SATAN_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 123 PROGRESSION_KILL_MEGA_SATAN_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 124 PROGRESSION_KILL_MEGA_SATAN_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 125 PROGRESSION_KILL_MEGA_SATAN_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 126 PROGRESSION_KILL_MEGA_SATAN_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 127 PROGRESSION_KILL_MEGA_SATAN_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 128 PROGRESSION_KILL_MEGA_SATAN_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 129 PROGRESSION_KILL_MEGA_SATAN_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 130 PROGRESSION_GREED_MODE_CLEARED_WITH_ISAAC (value = 0, 1 for greed mode, 2 for greedier) 131 PROGRESSION_GREED_MODE_CLEARED_WITH_MAGDALENE (value = 0, 1 for greed mode, 2 for greedier) 132 PROGRESSION_GREED_MODE_CLEARED_WITH_CAIN (value = 0, 1 for greed mode, 2 for greedier) 133 PROGRESSION_GREED_MODE_CLEARED_WITH_JUDAS (value = 0, 1 for greed mode, 2 for greedier) 134 PROGRESSION_GREED_MODE_CLEARED_WITH_BLUE_BABY (value = 0, 1 for greed mode, 2 for greedier) 135 PROGRESSION_GREED_MODE_CLEARED_WITH_EVE (value = 0, 1 for greed mode, 2 for greedier) 136 PROGRESSION_GREED_MODE_CLEARED_WITH_SAMSON (value = 0, 1 for greed mode, 2 for greedier) 137 PROGRESSION_GREED_MODE_CLEARED_WITH_AZAZEL (value = 0, 1 for greed mode, 2 for greedier) 138 PROGRESSION_GREED_MODE_CLEARED_WITH_LAZARUS (value = 0, 1 for greed mode, 2 for greedier) 139 PROGRESSION_GREED_MODE_CLEARED_WITH_EDEN (value = 0, 1 for greed mode, 2 for greedier) 140 PROGRESSION_GREED_MODE_CLEARED_WITH_THE_LOST (value = 0, 1 for greed mode, 2 for greedier) 141 PROGRESSION_GREED_MODE_CLEARED_WITH_LILITH (value = 0, 1 for greed mode, 2 for greedier) 142 PROGRESSION_GREED_MODE_CLEARED_WITH_KEEPER (value = 0, 1 for greed mode, 2 for greedier) 143 PROGRESSION_GREED_MODE_CLEARED_WITH_APOLLYON (value = 0, 1 for greed mode, 2 for greedier) 144 PROGRESSION_KILL_HUSH_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 145 PROGRESSION_KILL_HUSH_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 146 PROGRESSION_KILL_HUSH_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 147 PROGRESSION_KILL_HUSH_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 148 PROGRESSION_KILL_HUSH_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 149 PROGRESSION_KILL_HUSH_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 150 PROGRESSION_KILL_HUSH_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 151 PROGRESSION_KILL_HUSH_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 152 PROGRESSION_KILL_HUSH_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 153 PROGRESSION_KILL_HUSH_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 154 PROGRESSION_KILL_HUSH_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 155 PROGRESSION_KILL_HUSH_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 156 PROGRESSION_KILL_HUSH_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 157 PROGRESSION_KILL_HUSH_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 158 HUSH_KILLS How often Hush was killed. (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 159 GREED_MODE_COINS_DONATED_WITH_ISAAC 160 GREED_MODE_COINS_DONATED_WITH_MAGDALENE 161 GREED_MODE_COINS_DONATED_WITH_CAIN 162 GREED_MODE_COINS_DONATED_WITH_JUDAS 163 GREED_MODE_COINS_DONATED_WITH_BLUE 164 GREED_MODE_COINS_DONATED_WITH_EVE 165 GREED_MODE_COINS_DONATED_WITH_SAMSON 166 GREED_MODE_COINS_DONATED_WITH_AZAZEL 167 GREED_MODE_COINS_DONATED_WITH_LAZARUS 168 GREED_MODE_COINS_DONATED_WITH_EDEN 169 GREED_MODE_COINS_DONATED_WITH_THE 170 GREED_MODE_COINS_DONATED_WITH_LILITH 171 GREED_MODE_COINS_DONATED_WITH_KEEPER 172 GREED_MODE_COINS_DONATED_WITH_APOLLYON 173 PROGRESSION_KILL_DELIRIUM_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 174 PROGRESSION_KILL_DELIRIUM_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 175 PROGRESSION_KILL_DELIRIUM_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 176 PROGRESSION_KILL_DELIRIUM_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 177 PROGRESSION_KILL_DELIRIUM_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 178 PROGRESSION_KILL_DELIRIUM_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 179 PROGRESSION_KILL_DELIRIUM_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 180 PROGRESSION_KILL_DELIRIUM_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 181 PROGRESSION_KILL_DELIRIUM_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 182 PROGRESSION_KILL_DELIRIUM_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 183 PROGRESSION_KILL_DELIRIUM_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 184 PROGRESSION_KILL_DELIRIUM_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 185 PROGRESSION_KILL_DELIRIUM_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 186 PROGRESSION_KILL_DELIRIUM_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 187 DELIRIUM_KILLS How often was the final boss of the void was killed. (Delirium) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 188 CHARACTER_LAST_RUN_WIN Potential Bitmask containing the ids of the characters that won the last run, including coop. gets cleared on run restart. TODO: Usage and pattern still unknown!!! 189 UNKNOWN_EVENT_189 really big counter 190 DAILYS_PLAYED counts dailies played 191 DAILY_RUN_IS_ACTIVE Set to 1 when daily is currently played. Set to 0 when trophy was collected 192 DAILYS_STREAK Numbers of dailies won in a row 193 DAILYS_WON Number of dailies won 194 RAINBOW_POOP_DESTROYED 195 BATTERIES_COLLECTED Sum of all batteries collected 196 CARDS_USED Sum of cards used 197 SHOP_ITEMS_BOUGHT Sum of shop items bought. this includes devil deals, dark room red chest deals, and black market deals 198 CHESTS_OPENED_WITH_KEY Sum of all golden and Eternal Chests opened. Mega chests dont count 199 SECRET_ROOMS_WALLS_OPENED Includes super secret rooms and counts walls that lead to secret rooms already entered or discovered. Also counts the door towards the mines. Does not count X-Ray Vision effect 200 BLOOD_CLOT_ITEM_AQUIRED 201 RUBBER_CEMENT_ITEM_AQUIRED 202 BEDS_USED Sleeping in a bed 203 PROGRESSION_KILL_MOMS_HEART_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 204 PROGRESSION_KILL_ISAAC_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 205 PROGRESSION_KILL_SATAN_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 206 PROGRESSION_BOSSRUSH_CLEARED_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 207 PROGRESSION_KILL_BLUE_BABY_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 208 PROGRESSION_KILL_THE_LAMB_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 209 PROGRESSION_KILL_MEGA_SATAN_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 210 PROGRESSION_GREED_MODE_CLEARED_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 211 PROGRESSION_KILL_HUSH_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 212 GREED_MODE_COINS_DONATED_WITH_FORGOTTEN 213 PROGRESSION_KILL_DELIRIUM_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 214 PROGRESSION_KILL_MOMS_HEART_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 215 PROGRESSION_KILL_MOMS_HEART_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 216 PROGRESSION_KILL_MOMS_HEART_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 217 PROGRESSION_KILL_MOMS_HEART_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 218 PROGRESSION_KILL_MOMS_HEART_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 219 PROGRESSION_KILL_MOMS_HEART_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 220 PROGRESSION_KILL_MOMS_HEART_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 221 PROGRESSION_KILL_MOMS_HEART_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 222 PROGRESSION_KILL_MOMS_HEART_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 223 PROGRESSION_KILL_MOMS_HEART_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 224 PROGRESSION_KILL_MOMS_HEART_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 225 PROGRESSION_KILL_MOMS_HEART_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 226 PROGRESSION_KILL_MOMS_HEART_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 227 PROGRESSION_KILL_MOMS_HEART_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 228 PROGRESSION_KILL_MOMS_HEART_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 229 PROGRESSION_KILL_MOMS_HEART_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 230 PROGRESSION_KILL_MOMS_HEART_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 231 PROGRESSION_KILL_MOMS_HEART_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 232 PROGRESSION_KILL_MOMS_HEART_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 233 PROGRESSION_KILL_ISAAC_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 234 PROGRESSION_KILL_ISAAC_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 235 PROGRESSION_KILL_ISAAC_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 236 PROGRESSION_KILL_ISAAC_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 237 PROGRESSION_KILL_ISAAC_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 238 PROGRESSION_KILL_ISAAC_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 239 PROGRESSION_KILL_ISAAC_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 240 PROGRESSION_KILL_ISAAC_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 241 PROGRESSION_KILL_ISAAC_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 242 PROGRESSION_KILL_ISAAC_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 243 PROGRESSION_KILL_ISAAC_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 244 PROGRESSION_KILL_ISAAC_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 245 PROGRESSION_KILL_ISAAC_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 246 PROGRESSION_KILL_ISAAC_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 247 PROGRESSION_KILL_ISAAC_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 248 PROGRESSION_KILL_ISAAC_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 249 PROGRESSION_KILL_ISAAC_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 250 PROGRESSION_KILL_ISAAC_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 251 PROGRESSION_KILL_ISAAC_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 252 PROGRESSION_KILL_SATAN_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 253 PROGRESSION_KILL_SATAN_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 254 PROGRESSION_KILL_SATAN_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 255 PROGRESSION_KILL_SATAN_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 256 PROGRESSION_KILL_SATAN_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 257 PROGRESSION_KILL_SATAN_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 258 PROGRESSION_KILL_SATAN_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 259 PROGRESSION_KILL_SATAN_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 260 PROGRESSION_KILL_SATAN_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 261 PROGRESSION_KILL_SATAN_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 262 PROGRESSION_KILL_SATAN_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 263 PROGRESSION_KILL_SATAN_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 264 PROGRESSION_KILL_SATAN_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 265 PROGRESSION_KILL_SATAN_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 266 PROGRESSION_KILL_SATAN_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 267 PROGRESSION_KILL_SATAN_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 268 PROGRESSION_KILL_SATAN_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 269 PROGRESSION_KILL_SATAN_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 270 PROGRESSION_KILL_SATAN_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 271 PROGRESSION_BOSSRUSH_CLEARED_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 272 PROGRESSION_BOSSRUSH_CLEARED_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 273 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 274 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 275 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 276 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 277 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 278 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 279 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 280 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 281 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 282 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 283 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 284 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 285 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 286 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 287 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 288 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 289 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 290 PROGRESSION_KILL_BLUE_BABY_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 291 PROGRESSION_KILL_BLUE_BABY_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 292 PROGRESSION_KILL_BLUE_BABY_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 293 PROGRESSION_KILL_BLUE_BABY_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 294 PROGRESSION_KILL_BLUE_BABY_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 295 PROGRESSION_KILL_BLUE_BABY_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 296 PROGRESSION_KILL_BLUE_BABY_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 297 PROGRESSION_KILL_BLUE_BABY_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 298 PROGRESSION_KILL_BLUE_BABY_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 299 PROGRESSION_KILL_BLUE_BABY_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 300 PROGRESSION_KILL_BLUE_BABY_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 301 PROGRESSION_KILL_BLUE_BABY_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 302 PROGRESSION_KILL_BLUE_BABY_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 303 PROGRESSION_KILL_BLUE_BABY_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 304 PROGRESSION_KILL_BLUE_BABY_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 305 PROGRESSION_KILL_BLUE_BABY_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 306 PROGRESSION_KILL_BLUE_BABY_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 307 PROGRESSION_KILL_BLUE_BABY_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 308 PROGRESSION_KILL_BLUE_BABY_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 309 PROGRESSION_KILL_THE_LAMB_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 310 PROGRESSION_KILL_THE_LAMB_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 311 PROGRESSION_KILL_THE_LAMB_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 312 PROGRESSION_KILL_THE_LAMB_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 313 PROGRESSION_KILL_THE_LAMB_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 314 PROGRESSION_KILL_THE_LAMB_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 315 PROGRESSION_KILL_THE_LAMB_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 316 PROGRESSION_KILL_THE_LAMB_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 317 PROGRESSION_KILL_THE_LAMB_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 318 PROGRESSION_KILL_THE_LAMB_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 319 PROGRESSION_KILL_THE_LAMB_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 320 PROGRESSION_KILL_THE_LAMB_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 321 PROGRESSION_KILL_THE_LAMB_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 322 PROGRESSION_KILL_THE_LAMB_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 323 PROGRESSION_KILL_THE_LAMB_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 324 PROGRESSION_KILL_THE_LAMB_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 325 PROGRESSION_KILL_THE_LAMB_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 326 PROGRESSION_KILL_THE_LAMB_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 327 PROGRESSION_KILL_THE_LAMB_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 328 PROGRESSION_KILL_MEGA_SATAN_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 329 PROGRESSION_KILL_MEGA_SATAN_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 330 PROGRESSION_KILL_MEGA_SATAN_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 331 PROGRESSION_KILL_MEGA_SATAN_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 332 PROGRESSION_KILL_MEGA_SATAN_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 333 PROGRESSION_KILL_MEGA_SATAN_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 334 PROGRESSION_KILL_MEGA_SATAN_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 335 PROGRESSION_KILL_MEGA_SATAN_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 336 PROGRESSION_KILL_MEGA_SATAN_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 337 PROGRESSION_KILL_MEGA_SATAN_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 338 PROGRESSION_KILL_MEGA_SATAN_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 339 PROGRESSION_KILL_MEGA_SATAN_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 340 PROGRESSION_KILL_MEGA_SATAN_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 341 PROGRESSION_KILL_MEGA_SATAN_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 342 PROGRESSION_KILL_MEGA_SATAN_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 343 PROGRESSION_KILL_MEGA_SATAN_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 344 PROGRESSION_KILL_MEGA_SATAN_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 345 PROGRESSION_KILL_MEGA_SATAN_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 346 PROGRESSION_KILL_MEGA_SATAN_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 347 PROGRESSION_GREED_MODE_CLEARED_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 348 PROGRESSION_GREED_MODE_CLEARED_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 349 PROGRESSION_GREED_MODE_CLEARED_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 350 PROGRESSION_GREED_MODE_CLEARED_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 351 PROGRESSION_GREED_MODE_CLEARED_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 352 PROGRESSION_GREED_MODE_CLEARED_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 353 PROGRESSION_GREED_MODE_CLEARED_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 354 PROGRESSION_GREED_MODE_CLEARED_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 355 PROGRESSION_GREED_MODE_CLEARED_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 356 PROGRESSION_GREED_MODE_CLEARED_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 357 PROGRESSION_GREED_MODE_CLEARED_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 358 PROGRESSION_GREED_MODE_CLEARED_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 359 PROGRESSION_GREED_MODE_CLEARED_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 360 PROGRESSION_GREED_MODE_CLEARED_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 361 PROGRESSION_GREED_MODE_CLEARED_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 362 PROGRESSION_GREED_MODE_CLEARED_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 363 PROGRESSION_GREED_MODE_CLEARED_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 364 PROGRESSION_GREED_MODE_CLEARED_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 365 PROGRESSION_GREED_MODE_CLEARED_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 366 PROGRESSION_KILL_HUSH_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 367 PROGRESSION_KILL_HUSH_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 368 PROGRESSION_KILL_HUSH_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 369 PROGRESSION_KILL_HUSH_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 370 PROGRESSION_KILL_HUSH_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 371 PROGRESSION_KILL_HUSH_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 372 PROGRESSION_KILL_HUSH_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 373 PROGRESSION_KILL_HUSH_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 374 PROGRESSION_KILL_HUSH_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 375 PROGRESSION_KILL_HUSH_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 376 PROGRESSION_KILL_HUSH_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 377 PROGRESSION_KILL_HUSH_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 378 PROGRESSION_KILL_HUSH_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 379 PROGRESSION_KILL_HUSH_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 380 PROGRESSION_KILL_HUSH_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 381 PROGRESSION_KILL_HUSH_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 382 PROGRESSION_KILL_HUSH_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 383 PROGRESSION_KILL_HUSH_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 384 PROGRESSION_KILL_HUSH_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 385 GREED_MODE_COINS_DONATED_WITH_BETHANY 386 GREED_MODE_COINS_DONATED_WITH_JACOB_AND_ESAU 387 GREED_MODE_COINS_DONATED_WITH_T_ISAAC 388 GREED_MODE_COINS_DONATED_WITH_T_MAGDALENE 389 GREED_MODE_COINS_DONATED_WITH_T_CAIN 390 GREED_MODE_COINS_DONATED_WITH_T_JUDAS 391 GREED_MODE_COINS_DONATED_WITH_T_BLUE_BABY 392 GREED_MODE_COINS_DONATED_WITH_T_EVE 393 GREED_MODE_COINS_DONATED_WITH_T_SAMSON 394 GREED_MODE_COINS_DONATED_WITH_T_AZAZEL 395 GREED_MODE_COINS_DONATED_WITH_T_LAZARUS 396 GREED_MODE_COINS_DONATED_WITH_T_EDEN 397 GREED_MODE_COINS_DONATED_WITH_T_THE_LOST 398 GREED_MODE_COINS_DONATED_WITH_T_LILITH 399 GREED_MODE_COINS_DONATED_WITH_T_KEEPER 400 GREED_MODE_COINS_DONATED_WITH_T_THE_FORGOTTEN 401 GREED_MODE_COINS_DONATED_WITH_T_BETHANY 402 GREED_MODE_COINS_DONATED_WITH_T_JACOB_AND_ESAU 404 PROGRESSION_KILL_DELIRIUM_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 405 PROGRESSION_KILL_DELIRIUM_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 406 PROGRESSION_KILL_DELIRIUM_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 407 PROGRESSION_KILL_DELIRIUM_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 408 PROGRESSION_KILL_DELIRIUM_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 409 PROGRESSION_KILL_DELIRIUM_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 410 PROGRESSION_KILL_DELIRIUM_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 411 PROGRESSION_KILL_DELIRIUM_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 412 PROGRESSION_KILL_DELIRIUM_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 413 PROGRESSION_KILL_DELIRIUM_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 414 PROGRESSION_KILL_DELIRIUM_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 415 PROGRESSION_KILL_DELIRIUM_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 416 PROGRESSION_KILL_DELIRIUM_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 417 PROGRESSION_KILL_DELIRIUM_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 418 PROGRESSION_KILL_DELIRIUM_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 419 PROGRESSION_KILL_DELIRIUM_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 420 PROGRESSION_KILL_DELIRIUM_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 421 PROGRESSION_KILL_DELIRIUM_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 422 PROGRESSION_KILL_DELIRIUM_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 423 PROGRESSION_KILL_MOTHER_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 424 PROGRESSION_KILL_MOTHER_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 425 PROGRESSION_KILL_MOTHER_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 426 PROGRESSION_KILL_MOTHER_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 427 PROGRESSION_KILL_MOTHER_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 428 PROGRESSION_KILL_MOTHER_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 429 PROGRESSION_KILL_MOTHER_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 430 PROGRESSION_KILL_MOTHER_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 431 PROGRESSION_KILL_MOTHER_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 432 PROGRESSION_KILL_MOTHER_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 433 PROGRESSION_KILL_MOTHER_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 434 PROGRESSION_KILL_MOTHER_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 435 PROGRESSION_KILL_MOTHER_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 436 PROGRESSION_KILL_MOTHER_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 437 PROGRESSION_KILL_MOTHER_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 438 PROGRESSION_KILL_MOTHER_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 439 PROGRESSION_KILL_MOTHER_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 440 PROGRESSION_KILL_MOTHER_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 441 PROGRESSION_KILL_MOTHER_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 442 PROGRESSION_KILL_MOTHER_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 443 PROGRESSION_KILL_MOTHER_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 444 PROGRESSION_KILL_MOTHER_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 445 PROGRESSION_KILL_MOTHER_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 446 PROGRESSION_KILL_MOTHER_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 447 PROGRESSION_KILL_MOTHER_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 448 PROGRESSION_KILL_MOTHER_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 449 PROGRESSION_KILL_MOTHER_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 450 PROGRESSION_KILL_MOTHER_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 451 PROGRESSION_KILL_MOTHER_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 452 PROGRESSION_KILL_MOTHER_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 453 PROGRESSION_KILL_MOTHER_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 454 PROGRESSION_KILL_MOTHER_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 455 PROGRESSION_KILL_MOTHER_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 456 PROGRESSION_KILL_MOTHER_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 457 PROGRESSION_KILL_BEAST_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 458 PROGRESSION_KILL_BEAST_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 459 PROGRESSION_KILL_BEAST_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 460 PROGRESSION_KILL_BEAST_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 461 PROGRESSION_KILL_BEAST_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 462 PROGRESSION_KILL_BEAST_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 463 PROGRESSION_KILL_BEAST_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 464 PROGRESSION_KILL_BEAST_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 465 PROGRESSION_KILL_BEAST_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 466 PROGRESSION_KILL_BEAST_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 467 PROGRESSION_KILL_BEAST_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 468 PROGRESSION_KILL_BEAST_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 469 PROGRESSION_KILL_BEAST_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 470 PROGRESSION_KILL_BEAST_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 471 PROGRESSION_KILL_BEAST_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 472 PROGRESSION_KILL_BEAST_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 473 PROGRESSION_KILL_BEAST_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 474 PROGRESSION_KILL_BEAST_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 475 PROGRESSION_KILL_BEAST_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 476 PROGRESSION_KILL_BEAST_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 477 PROGRESSION_KILL_BEAST_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 478 PROGRESSION_KILL_BEAST_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 479 PROGRESSION_KILL_BEAST_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 480 PROGRESSION_KILL_BEAST_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 481 PROGRESSION_KILL_BEAST_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 482 PROGRESSION_KILL_BEAST_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 483 PROGRESSION_KILL_BEAST_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 484 PROGRESSION_KILL_BEAST_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 485 PROGRESSION_KILL_BEAST_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 486 PROGRESSION_KILL_BEAST_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 487 PROGRESSION_KILL_BEAST_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 488 PROGRESSION_KILL_BEAST_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 489 PROGRESSION_KILL_BEAST_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 490 PROGRESSION_KILL_BEAST_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 491 MOTHER_KILLS Killing endboss of Corpse 2 (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 492 BEAST_KILLS Killing the endboss of Home 493 BABY_PLUM_KILLS 494 BATTERY_BUMS_KILLED 495 BATTERY_BUM_COLLECTIBLE_PAYOUTS counts how often the battery bum paid out with a collectible item 496 NUM_EVENT_COUNTERS","tags":["Enum"]},{"location":"enums/ExtraHudStyle.html","title":"Enum \"ExtraHudStyle\"","text":"Value Enumerator Comment 0 OFF 1 ON 2 ON_MINI","tags":["Enum"]},{"location":"enums/FadeoutTarget.html","title":"Enum \"FadeoutTarget\"","text":"Value Enumerator Comment 1 FILE_SELECT_MENU 2 SAVEFILE_MENU 3 TITLE_SCREEN 4 NEW_RUN","tags":["Enum"]},{"location":"enums/FollowerPriority.html","title":"Enum \"FollowerPriority\"","text":"Value Enumerator Comment 0 DEFAULT 1 SHOOTER 2 DEFENSIVE Dry Baby, Mongo Baby, Cencer, Lil Abaddon 3 SHOOTER_SPECIAL Lil Brim, Lil Monstro 10 INCUBUS 9999 KING_BABY","tags":["Enum"]},{"location":"enums/GLSLType.html","title":"Enum \"Renderer.GLSLType\"","text":"Value Enumerator Comment 0 Float 1 Vec2 2 Vec3 3 Vec4","tags":["Enum"]},{"location":"enums/Giantbook.html","title":"Enum \"Giantbook\"","text":"Value Enumerator Comment 1 NECRONOMICON 2 MONSTER_MANUAL 3 WHORE_OF_BABYLON 3 HORRIBLE_NIGHT 4 DEAD_SEA_SCROLLS 5 THE_SUN 6 ETERNAL_HEART_SOUL 7 MOMS_BRA 8 MOMS_PAD 9 ANARCHIST_COOKBOOK 10 BIBLE 11 BOOK_OF_REVELATIONS 12 DEATH 13 ETERNAL_HEART 14 HOURGLASS 15 SATANIC_BIBLE 16 BLACK_HEART 17 D4 18 D10 19 FLUSH 20 HAGALAZ 21 JERA 22 EHWAZ 23 DAGAZ 24 ANSUZ 25 PERTHRO 26 BERKANO 26 BERKAND 27 ALGIZ 28 D100 29 RAINBOW 29 RAINBOW_POOP 30 MISSING_PAGE 31 MISSING_PAGE_2 32 SPIDER_BUTT 33 SLEEP 34 BOOK_OF_BELIAL 34 BOOK_OF_BEAST 35 BETRAYAL 36 D8 37 D12 38 SUPER_BUM 39 CLICKER 40 MAMA_MEGA 41 ETERNAL_HEART_EMPTY 42 REVERSE_EMPRESS 42 MORNING_SUN 43 REVERSE_THE_SUN 43 REVERSE_SUN 44 SLEEP_NIGHTMARE 44 DOGMA 46 ETERNAL_HEART_BLACK","tags":["Enum"]},{"location":"enums/GibFlag.html","title":"Enum \"GibFlag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 BLOOD 1 << 1 BONE 1 << 2 GUT 1 << 3 EYE 1 << 4 LARGE 1 << 5 POOP 1 << 6 WORM 1 << 7 ROCK 1 << 8 ROCK_SMALL 1 << 9 SOUND_BABY 1 << 10 SOUND_BONE 1 << 11 CHAIN 1 << 12 DUST 1 << 13 HUGE","tags":["Enum"]},{"location":"enums/GridPoopVariant.html","title":"Enum \"GridPoopVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 RED 2 CHUNKY 2 CORN 3 GOLDEN 4 RAINBOW 5 BLACK 6 HOLY 6 WHITE 7 GIANT_TL 8 GIANT_TR 9 GIANT_BL 10 GIANT_BR 11 CHARMING","tags":["Enum"]},{"location":"enums/HealthType.html","title":"Enum \"HealthType\"","text":"Value Enumerator Comment 0 DEFAULT 0 RED 1 SOUL 2 LOST 2 NO_HEALTH 3 COIN 3 KEEPER 4 BONE","tags":["Enum"]},{"location":"enums/ImGuiCallback.html","title":"Enum \"ImGuiCallback\"","text":"Value Enumerator Comment 0 Clicked 1 Hovered 2 Active 3 Focused 4 Visible 5 Edited 6 Activated 7 Deactivated 8 DeactivatedAfterEdit 9 ToggledOpen 10 Render Gets executed before an object gets rendered","tags":["Enum"]},{"location":"enums/ImGuiColor.html","title":"Enum \"ImGuiColor\"","text":"Value Enumerator Comment 0 Text 1 TextDisabled 2 WindowBg Background of normal windows 3 ChildBg Background of child windows 4 PopupBg Background of popups, menus, tooltips windows 5 Border 6 BorderShadow 7 FrameBg Background of checkbox, radio button, plot, slider, text input 8 FrameBgHovered 9 FrameBgActive 10 TitleBg 11 TitleBgActive 12 TitleBgCollapsed 13 MenuBarBg 14 ScrollbarBg 15 ScrollbarGrab 16 ScrollbarGrabHovered 17 ScrollbarGrabActive 18 CheckMark 19 SliderGrab 20 SliderGrabActive 21 Button 22 ButtonHovered 23 ButtonActive 24 Header Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem 25 HeaderHovered 26 HeaderActive 27 Separator 28 SeparatorHovered 29 SeparatorActive 30 ResizeGrip Resize grip in lower-right and lower-left corners of windows. 31 ResizeGripHovered 32 ResizeGripActive 33 Tab TabItem in a TabBar 34 TabHovered 35 TabActive 36 TabUnfocused 37 TabUnfocusedActive 38 PlotLines 39 PlotLinesHovered 40 PlotHistogram 41 PlotHistogramHovered 42 TableHeaderBg Table header background 43 TableBorderStrong Table outer and header borders (prefer using Alpha=1.0 here) 44 TableBorderLight Table inner borders (prefer using Alpha=1.0 here) 45 TableRowBg Table row background (even rows) 46 TableRowBgAlt Table row background (odd rows) 47 TextSelectedBg 48 DragDropTarget Rectangle highlighting a drop target 49 NavHighlight Gamepad/keyboard: current highlighted item 50 NavWindowingHighlight Highlight window when using CTRL+TAB 51 NavWindowingDimBg Darken/colorize entire screen behind the CTRL+TAB window list, when active 52 ModalWindowDimBg Darken/colorize entire screen behind a modal window, when one is active","tags":["Enum"]},{"location":"enums/ImGuiData.html","title":"Enum \"ImGuiData\"","text":"Value Enumerator Comment 0 Label descriptive text of an element 1 Value Used for single value Elements like Text- or Integer-Inputs, Checkboxes, or the currently selected Radiobutton 2 ListValues Used for elements that use a table as their data source like RadioButtons, Comboboxes, Plots, etc. 3 Min min value of a slider input 4 Max max value of a slider input 5 HintText hint text of a text input, or overlay texts used in plots or progressbars 6 ColorValues Color input. 3 values = RGB, 4 values = RGBA","tags":["Enum"]},{"location":"enums/ImGuiElement.html","title":"Enum \"ImGuiElement\"","text":"Value Enumerator Comment 0 Window 1 Menu 2 MenuItem 3 Popup 4 CollapsingHeader 5 TreeNode 6 Separator 7 SeparatorText 8 Text 9 TextWrapped 10 BulletText 11 SameLine used to render the next element in the same line 12 Button 13 SmallButton 14 InputInt 15 InputFloat 16 DragInt 17 DragFloat 18 SliderInt 19 SliderFloat 20 ColorEdit 21 TabBar 22 Tab 23 Checkbox 24 RadioButton 25 Combobox 26 InputText 27 InputTextWithHint 28 InputTextMultiline 29 InputController 30 InputKeyboard 31 PlotLines 32 PlotHistogram","tags":["Enum"]},{"location":"enums/ImGuiNotificationType.html","title":"Enum \"ImGuiNotificationType\"","text":"Value Enumerator Comment 0 INFO 1 SUCCESS 2 WARNING 3 ERROR","tags":["Enum"]},{"location":"enums/ItemAnim.html","title":"Enum \"ItemAnim\"","text":"Value Enumerator Comment 0 CHARGE 1 CHARGE_FULL 2 SHOOT 3 SHOOT_ALT","tags":["Enum"]},{"location":"enums/KnifeSubType.html","title":"Enum \"KnifeSubType\"","text":"Value Enumerator Comment 1 PROJECTILE 4 CLUB_HITBOX","tags":["Enum"]},{"location":"enums/KnifeVariant.html","title":"Enum \"KnifeVariant\"","text":"Value Enumerator Comment 0 MOMS_KNIFE 1 BONE_CLUB 2 BONE_SCYTHE 3 DONKEY_JAWBONE 3 BERSERK_CLUB 4 BAG_OF_CRAFTING 5 SUMPTORIUM 9 NOTCHED_AXE 10 SPIRIT_SWORD 11 TECH_SWORD","tags":["Enum"]},{"location":"enums/Language.html","title":"Enum \"Language\"","text":"Value Enumerator Comment 0 ENGLISH 2 JAPANESE 3 FRENCH 4 SPANISH 5 GERMAN 10 RUSSIAN 11 KOREAN 13 CHINESE 21 KEY","tags":["Enum"]},{"location":"enums/LineCheckMode.html","title":"Enum \"LineCheckMode\"","text":"Value Enumerator Comment 0 ENTITY 1 RAYCAST Similar to ENTITY, and cheaper, but can pass between diagonally adjacent GridEntities 2 EXPLOSION 3 PROJECTILE","tags":["Enum"]},{"location":"enums/MainMenuType.html","title":"Enum \"MainMenuType\"","text":"Value Enumerator Comment 1 TITLE 0 exists but its unusable 2 SAVES 3 GAME the actual menu where all the menus are 4 DAILYRUN 5 CHARACTER 6 SPECIALSEEDS 7 CHALLENGE 8 COLLECTION 9 STATS 10 OPTIONS 11 CONTROLS 12 KEYCONFIG 13 ENDINGS 14 BESTIARY 15 MODCHALLENGES 16 MODS 17 SEED","tags":["Enum"]},{"location":"enums/ModCallbacks.html","title":"Enum \"ModCallbacks\"","text":"

This is a list of all new callbacks added by REPENTOGON.

"},{"location":"enums/ModCallbacks.html#modified-old-callbacks","title":"Modified Old Callbacks","text":""},{"location":"enums/ModCallbacks.html#mc_use_pill","title":"MC_USE_PILL","text":"

MC_USE_PILL now passes PillColor as an argument. Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1064 MC_USE_PILL (PillEffect Effect, EntityPlayer Player, UseFlags Flags, PillColor Color) PillEffect void"},{"location":"enums/ModCallbacks.html#mc_pre_player_collision","title":"MC_PRE_PLAYER_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1065 MC_PRE_PLAYER_COLLISION (EntityPlayer Player, Entity Collider, boolean Low) PlayerVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_tear_collision","title":"MC_PRE_TEAR_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1232 MC_PRE_TEAR_COLLISION (EntityTear Tear, Entity Collider, boolean Low) TearVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_familiar_collision","title":"MC_PRE_FAMILIAR_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".

For example, you can return { Collide=true } to make a familiar to collide physically with something (like an enemy, which they don't normally do) without skipping on-collision code (like you would by returning false).

ID Name Function Args Optional Args Return Type 1234 MC_PRE_FAMILIAR_COLLISION (EntityFamiliar Familiar, Entity Collider, boolean Low) FamiliarVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_bomb_collision","title":"MC_PRE_BOMB_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1236 MC_PRE_BOMB_COLLISION (EntityBomb Bomb, Entity Collider, boolean Low) BombVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_collision","title":"MC_PRE_PICKUP_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1238 MC_PRE_PICKUP_COLLISION (EntityPickup Pickup, Entity Collider, boolean Low) PickupVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_knife_collision","title":"MC_PRE_KNIFE_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1242 MC_PRE_KNIFE_COLLISION (EntityKnife Knife, Entity Collider, boolean Low) KnifeSubType boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_projectile_collision","title":"MC_PRE_PROJECTILE_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1244 MC_PRE_PROJECTILE_COLLISION (EntityProjectile Projectile, Entity Collider, boolean Low) ProjectileVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_npc_collision","title":"MC_PRE_NPC_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1246 MC_PRE_NPC_COLLISION (EntityNPC NPC, Entity Collider, boolean Low) EntityType boolean or table"},{"location":"enums/ModCallbacks.html#mc_entity_take_dmg","title":"MC_ENTITY_TAKE_DMG","text":"

Now optionally accepts returning a table, with any combination of the following fields, to override the corresponding argument:

  • Damage
  • DamageFlags
  • DamageCountdown

Modified values are passed along to the remaining callbacks. Returning false to cancel the damage still skips the remaining callbacks.

ID Name Function Args Optional Args Return Type 1007 MC_ENTITY_TAKE_DMG (Entity Entity, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) EntityType boolean or table"},{"location":"enums/ModCallbacks.html#new-callbacks","title":"New Callbacks","text":""},{"location":"enums/ModCallbacks.html#mc_pre_add_collectible","title":"MC_PRE_ADD_COLLECTIBLE","text":"

Accepts a table of parameters: {Type, Charge, FirstTime, Slot, VarData, Player}

Alternatively accepts a CollectibleType to change the type without changing any other parameters or a boolean to cancel the addition altogether (false) or force it to happen skipping the following callbacks (true).

Example Code

This code will transform every collectible into Money = Power once the player picks it up.

function mod:myFunction(Type, Charge, FirstTime, Slot, VarData, Player)\n    return CollectibleType.COLLECTIBLE_MONEY_EQUALS_POWER\nend\nmod:AddCallback(ModCallbacks.MC_PRE_ADD_COLLECTIBLE, mod.myFunction)\n

This code will force active items to be uncharged on pickup.

function mod:myFunction(Type, Charge, FirstTime, Slot, VarData, Player)\n    return {Type, 0, FirstTime, Slot, VarData}\nend\nmod:AddCallback(ModCallbacks.MC_PRE_ADD_COLLECTIBLE, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1004 MC_PRE_ADD_COLLECTIBLE (CollectibleType Type, int Charge, boolean FirstTime, int Slot, int VarData, EntityPlayer Player) CollectibleType table or CollectibleType"},{"location":"enums/ModCallbacks.html#mc_post_add_collectible","title":"MC_POST_ADD_COLLECTIBLE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1005 MC_POST_ADD_COLLECTIBLE (CollectibleType Type, int Charge, boolean FirstTime, int Slot, int VarData, EntityPlayer Player) CollectibleType void"},{"location":"enums/ModCallbacks.html#mc_post_entity_take_dmg","title":"MC_POST_ENTITY_TAKE_DMG","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1006 MC_POST_ENTITY_TAKE_DMG (Entity Entity, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) EntityType void"},{"location":"enums/ModCallbacks.html#mc_grid_rock_update","title":"MC_GRID_ROCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1010 MC_GRID_ROCK_UPDATE (GridEntityType Type, GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_post_grid_rock_destroy","title":"MC_POST_GRID_ROCK_DESTROY","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1011 MC_POST_GRID_ROCK_DESTROY (GridEntityRock Rock, GridEntityType Type, boolean Immediate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_grid_hurt_damage","title":"MC_GRID_HURT_DAMAGE","text":"

Return false if entity or player should ignore damage from it.

ID Name Function Args Optional Args Return Type 1012 MC_GRID_HURT_DAMAGE (GridEntity GridEntity, Entity Entity, int DamageAmount, DamageFlags DamageFlags, float Unknown boolean Unknown) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_hurt_damage","title":"MC_POST_GRID_HURT_DAMAGE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1013 MC_POST_GRID_HURT_DAMAGE (GridEntity GridEntity, Entity Entity, int DamageAmount, DamageFlags DamageFlags, float Unknown boolean Unknown) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_hud_update","title":"MC_HUD_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1020 MC_HUD_UPDATE - - void"},{"location":"enums/ModCallbacks.html#mc_hud_post_update","title":"MC_HUD_POST_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1021 MC_HUD_POST_UPDATE - - void"},{"location":"enums/ModCallbacks.html#mc_hud_render","title":"MC_HUD_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1022 MC_HUD_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_post_hud_render","title":"MC_POST_HUD_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1024 MC_POST_HUD_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_main_menu_render","title":"MC_MAIN_MENU_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1023 MC_MAIN_MENU_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_pre_render_custom_character_menu","title":"MC_PRE_RENDER_CUSTOM_CHARACTER_MENU","text":"

Accepts no return parameters.

Execution informations

This callback only triggers when a custom character is selected, it doesn't trigger on regular characters.

ID Name Function Args Optional Args Return Type 1333 MC_PRE_RENDER_CUSTOM_CHARACTER_MENU int CharacterID,Vector RenderPos,Sprite DefaultSprite int CharacterID void"},{"location":"enums/ModCallbacks.html#mc_pre_pause_screen_render","title":"MC_PRE_PAUSE_SCREEN_RENDER","text":"

Can return false to prevent the pause screen from rendering. Doing so will also prevent the screen from darkening.

ID Name Function Args Optional Args Return Type 1218 MC_PRE_PAUSE_SCREEN_RENDER (Sprite PauseBody,Sprite PauseStats) - void"},{"location":"enums/ModCallbacks.html#mc_post_pause_screen_render","title":"MC_POST_PAUSE_SCREEN_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1219 MC_POST_PAUSE_SCREEN_RENDER (Sprite PauseBody,Sprite PauseStats) - void"},{"location":"enums/ModCallbacks.html#mc_pre_completion_marks_render","title":"MC_PRE_COMPLETION_MARKS_RENDER","text":"

Can return false to prevent the completion marks from rendering.

ID Name Function Args Optional Args Return Type 1216 MC_PRE_COMPLETION_MARKS_RENDER (Sprite CompletionMarksSprite,Vector RenderPos,Vector RenderScale,int PlayerType) - void"},{"location":"enums/ModCallbacks.html#mc_post_completion_marks_render","title":"MC_POST_COMPLETION_MARKS_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1217 MC_POST_COMPLETION_MARKS_RENDER (Sprite CompletionMarksSprite,Vector RenderPos,Vector RenderScale,int PlayerType) - void"},{"location":"enums/ModCallbacks.html#mc_pre_sfx_play","title":"MC_PRE_SFX_PLAY","text":"

Accepts a table of parameters: {ID, Volume, FrameDelay, Loop, Pitch, Pan}

Alternatively accepts false to cancel the sound.

Example Code

This code will forcibly loop every sound (for better or worse).

function mod:myFunction(ID, Volume, FrameDelay, Loop, Pitch, Pan)\n    return {ID, Volume, FrameDelay, true, Pitch, Pan}\nend\nmod:AddCallback(ModCallbacks.MC_PRE_SFX_PLAY, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1030 MC_PRE_SFX_PLAY (int ID, float Volume, int FrameDelay, boolean Loop, float Pitch, float Pan) SoundEffect table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_sfx_play","title":"MC_POST_SFX_PLAY","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1031 MC_POST_SFX_PLAY (int ID, float Volume, int FrameDelay, boolean Loop, float Pitch, float Pan) SoundEffect void"},{"location":"enums/ModCallbacks.html#mc_pre_music_play","title":"MC_PRE_MUSIC_PLAY","text":"

Accepts a table of parameters: {ID, Volume OR FadeRate}

Alternatively accepts a Music to change the track without changing volume or fade rate

Alternatively accepts false to cancel the track

Volume vs. FadeRate

This callback is called for both MusicManager::Play and MusicManager::Crossfade! IsFade is provided to distinguish the two.

Example Code

This code will forcibly loop every sound (for better or worse).

function mod:myFunction(ID, Volume, IsFade)\n    return Music.MUSIC_FLOODED_CAVES\nend\nmod:AddCallback(ModCallbacks.MC_PRE_MUSIC_PLAY, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1034 MC_PRE_MUSIC_PLAY (int ID, float Volume OR float FadeRate, boolean IsFade) Music table or Music or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_music_layer_toggle","title":"MC_PRE_MUSIC_LAYER_TOGGLE","text":"

Accepts a music layer ID (enum pending) to change the layer, or a boolean to change the state of the layer: true to keep it running, false to stop it.

CurrentState returns true if the layer is going to be enabled, and false if it is going to be disabled.

ID Name Function Args Optional Args Return Type 1035 MC_PRE_MUSIC_LAYER_TOGGLE (int ID, boolean CurrentState) int int or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_player_head","title":"MC_PRE_RENDER_PLAYER_HEAD","text":"

Accepts an override Vector for RenderPos.

Alternatively accepts a false to stop the rendering.

ID Name Function Args Optional Args Return Type 1038 MC_PRE_RENDER_PLAYER_HEAD (EntityPlayer player, Vector RenderPos) PlayerType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_player_body","title":"MC_PRE_RENDER_PLAYER_BODY","text":"

Accepts an override vector for RenderPos.

Alternatively accepts a false to stop the rendering.

ID Name Function Args Optional Args Return Type 1039 MC_PRE_RENDER_PLAYER_BODY (EntityPlayer player, Vector RenderPos) PlayerType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_entity_throw","title":"MC_PRE_ENTITY_THROW","text":"

Accepts a Vector which will modify the velocity of the thrown entity.

ID Name Function Args Optional Args Return Type 1040 MC_PRE_ENTITY_THROW (EntityPlayer ThrowingPlayer, Entity HeldEntity, Vector Velocity) - Vector"},{"location":"enums/ModCallbacks.html#mc_post_entity_throw","title":"MC_POST_ENTITY_THROW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1041 MC_POST_ENTITY_THROW (EntityPlayer ThrowingPlayer, Entity ThrownEntity, Vector Velocity) - void"},{"location":"enums/ModCallbacks.html#mc_player_init_post_level_init_stats","title":"MC_PLAYER_INIT_POST_LEVEL_INIT_STATS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1042 MC_PLAYER_INIT_POST_LEVEL_INIT_STATS (EntityPlayer Player) PlayerType void"},{"location":"enums/ModCallbacks.html#mc_pre_room_exit","title":"MC_PRE_ROOM_EXIT","text":"

Accepts no return parameters.

NewLevel

NewLevel returns true when entering a new level or when exiting a run.

ID Name Function Args Optional Args Return Type 1043 MC_PRE_ROOM_EXIT (EntityPlayer Player, boolean NewLevel) - void"},{"location":"enums/ModCallbacks.html#mc_pre_completion_event","title":"MC_PRE_COMPLETION_EVENT","text":"

Can return false to cancel the completion event. Canceling it will prevent all marks and completion event related stuff to trigger for all players.

Triggers when a completion even gets triggered, getting as a parameter the code for the event in question.

ID Name Function Args Optional Args Return Type 1049 MC_PRE_COMPLETION_EVENT (CompletionType Completion) - void or false"},{"location":"enums/ModCallbacks.html#mc_completion_mark_get","title":"MC_COMPLETION_MARK_GET","text":"

Can return false to cancel the completion mark.

Triggers when the player gets a completion mark, getting as a parameter the code for the mark in question and the playertype.

ID Name Function Args Optional Args Return Type 1047 MC_COMPLETION_MARK_GET (CompletionType Completion, int PlayerType) PlayerType void or false"},{"location":"enums/ModCallbacks.html#mc_post_completion_mark_get","title":"MC_POST_COMPLETION_MARK_GET","text":"

Triggers after the player gets a completion mark, getting as a parameter the code for the mark in question and the playertype.

ID Name Function Args Optional Args Return Type 1048 MC_POST_COMPLETION_MARK_GET (CompletionType Completion, int PlayerType) PlayerType"},{"location":"enums/ModCallbacks.html#mc_pre_level_init","title":"MC_PRE_LEVEL_INIT","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1060 MC_PRE_LEVEL_INIT - - void"},{"location":"enums/ModCallbacks.html#mc_pre_trigger_player_death","title":"MC_PRE_TRIGGER_PLAYER_DEATH","text":"

Fires right before the game over screen.

Accepts false to cancel the death, reviving the player in-place with half a heart, or true or nil to allow the death to go through.

Warning

Much like the vanilla Lua Revive() function, this removes the current run's ability to save. This occurs because the game immediately deletes the save file during the death animation if there's no pending revives, and this callback doesn't fire fast enough to register a revive on death as it occurs right before the game over screen.

There is no workaround for this behavior at this time, but this may change in the future.

ID Name Function Args Optional Args Return Type 1050 MC_PRE_TRIGGER_PLAYER_DEATH (EntityPlayer Player) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_restock_shop","title":"MC_PRE_RESTOCK_SHOP","text":"

Accepts false to cancel the restock, blocking shop rerolls from restock machines or restocks from Restock altogether.

Partial

This callback is called for both Room::ShopRestockFull and Room::ShopRestockPartial! Partial is provided to distinguish the two.

ID Name Function Args Optional Args Return Type 1070 MC_PRE_RESTOCK_SHOP (boolean Partial) - void"},{"location":"enums/ModCallbacks.html#mc_post_restock_shop","title":"MC_POST_RESTOCK_SHOP","text":"

Accepts no return parameters.

Partial

This callback is called for both Room::ShopRestockFull and Room::ShopRestockPartial! Partial is provided to distinguish the two.

ID Name Function Args Optional Args Return Type 1071 MC_POST_RESTOCK_SHOP (boolean Partial) - void"},{"location":"enums/ModCallbacks.html#mc_pre_change_room","title":"MC_PRE_CHANGE_ROOM","text":"

Accepts a table of parameters: {TargetRoomIdx, Dimension}

ID Name Function Args Optional Args Return Type 1061 MC_PRE_CHANGE_ROOM (int TargetRoomIdx, int Dimension) - table"},{"location":"enums/ModCallbacks.html#mc_pickup_get_coin_value","title":"MC_PICKUP_GET_COIN_VALUE","text":"

Accepts int CoinValue to modify the amount of coins a coin can give you on pickup.

ID Name Function Args Optional Args Return Type 1250 MC_PICKUP_GET_COIN_VALUE (EntityPickup Pickup) CoinSubType int CoinValue"},{"location":"enums/ModCallbacks.html#mc_post_pickup_shop_purchase","title":"MC_POST_PICKUP_SHOP_PURCHASE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1062 MC_POST_PICKUP_SHOP_PURCHASE (EntityPickup Pickup, EntityPlayer Player, int MoneySpent) PickupVariant void"},{"location":"enums/ModCallbacks.html#mc_get_follower_priority","title":"MC_GET_FOLLOWER_PRIORITY","text":"

Accepts FollowerPriority to give familiar priority. Can accept any int.

ID Name Function Args Optional Args Return Type 1063 MC_GET_FOLLOWER_PRIORITY (EntityFamiliar Familiar) FamiliarVariant FollowerPriority or int"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_morph","title":"MC_PRE_PICKUP_MORPH","text":"

Accepts a table of parameters: {EntityType, Variant, SubType, KeepPrice, KeepSeed, IgnoreModifiers} or just {EntityType, Variant, SubType}.

Returning false cancels the morph.

ID Name Function Args Optional Args Return Type 1213 MC_PRE_PICKUP_MORPH (EntityPickup Pickup, int EntityType, int Variant, int SubType, boolean KeepPrice, boolean KeepSeed, boolean IgnoreModifiers) - table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_pickup_morph","title":"MC_POST_PICKUP_MORPH","text":"

Runs after the morph already happened.

ID Name Function Args Optional Args Return Type 1215 MC_POST_PICKUP_MORPH (EntityPickup Pickup, int PreviousType, int PreviousVariant, int SubType, boolean KeptPrice, boolean KeptSeed, boolean IgnoredModifiers) - void"},{"location":"enums/ModCallbacks.html#mc_npc_pick_target","title":"MC_NPC_PICK_TARGET","text":"

Called whenever an EntityNPC selects its target, such as when EntityNPC:GetPlayerTarget() is called.

Return an entity to make the NPC target that entity instead.

ID Name Function Args Optional Args Return Type 1222 MC_NPC_PICK_TARGET (EntityNPC NPC, Entity CurrentTarget) EntityType Entity"},{"location":"enums/ModCallbacks.html#mc_pre_npc_morph","title":"MC_PRE_NPC_MORPH","text":"

Accepts a table of parameters: {EntityType, Variant, SubType, Championid} or just {EntityType, Variant, SubType}.

Returning false cancels the morph.

ID Name Function Args Optional Args Return Type 1212 MC_PRE_NPC_MORPH (int EntityType, int Variant, int SubType, int Championid) - table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_npc_morph","title":"MC_POST_NPC_MORPH","text":"

Runs after the Morph already happened.

ID Name Function Args Optional Args Return Type 1214 MC_POST_NPC_MORPH (int PreviousType, int PreviousVariant, int PreviousSubType) - void"},{"location":"enums/ModCallbacks.html#mc_pre_use_card","title":"MC_PRE_USE_CARD","text":"

Accepts true to cancel card use.

ID Name Function Args Optional Args Return Type 1064 MC_PRE_USE_CARD (Card ID, EntityPlayer Player, int UseFlag) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_use_pill","title":"MC_PRE_USE_PILL","text":"

Accepts true to cancel pill use.

ID Name Function Args Optional Args Return Type 1065 MC_PRE_USE_PILL (PillEffect ID, PillColor PillColor, EntityPlayer Player, int UseFlag) - boolean"},{"location":"enums/ModCallbacks.html#mc_get_shop_item_price","title":"MC_GET_SHOP_ITEM_PRICE","text":"

Accepts an integer to change the price of the item.

ID Name Function Args Optional Args Return Type 1066 MC_GET_SHOP_ITEM_PRICE (int EntityVariant, int EntitySubType, int ShopItemID) int int"},{"location":"enums/ModCallbacks.html#mc_player_get_health_type","title":"MC_PLAYER_GET_HEALTH_TYPE","text":"

Accepts an HealthType to change health type for the character.

ID Name Function Args Optional Args Return Type 1067 MC_PLAYER_GET_HEALTH_TYPE (EntityPlayer Player) PlayerType HealthType"},{"location":"enums/ModCallbacks.html#mc_pre_familiar_render","title":"MC_PRE_FAMILIAR_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1080 MC_PRE_FAMILIAR_RENDER (EntityFamiliar Familiar, Vector Offset) FamiliarVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_npc_render","title":"MC_PRE_NPC_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1081 MC_PRE_NPC_RENDER (EntityNPC NPC, Vector Offset) EntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_player_render","title":"MC_PRE_PLAYER_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1082 MC_PRE_PLAYER_RENDER (EntityPlayer Player, Vector Offset) PlayerVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_render","title":"MC_PRE_PICKUP_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1083 MC_PRE_PICKUP_RENDER (EntityPickup Pickup, Vector Offset) PickupVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_tear_render","title":"MC_PRE_TEAR_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1084 MC_PRE_TEAR_RENDER (EntityTear Tear, Vector Offset) TearVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_projectile_render","title":"MC_PRE_PROJECTILE_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1085 MC_PRE_PROJECTILE_RENDER (EntityProjectile Projectile, Vector Offset) ProjectileVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_knife_render","title":"MC_PRE_KNIFE_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1086 MC_PRE_KNIFE_RENDER (EntityKnife Knife, Vector Offset) KnifeVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_effect_render","title":"MC_PRE_EFFECT_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1087 MC_PRE_EFFECT_RENDER (EntityEffect Effect, Vector Offset) EffectVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_bomb_render","title":"MC_PRE_BOMB_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1088 MC_PRE_BOMB_RENDER (EntityBomb Bomb, Vector Offset) BombVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_slot_render","title":"MC_PRE_SLOT_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1089 MC_PRE_SLOT_RENDER (EntitySlot Slot, Vector Offset) SlotVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_render","title":"MC_POST_SLOT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1090 MC_POST_SLOT_RENDER (EntitySlot Slot, Vector Offset) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spawn","title":"MC_PRE_GRID_ENTITY_SPAWN","text":"

This is called when a GridEntity is spawned outside of Room initialization.

Accepts false to cancel spawning the grid, a table of {Type, Variant, Vardata, SpawnSeed} to modify it, or a GridEntityDesc to override it entirely.

Warning

Desc will in most cases be nil. The exceptions to this are the poops spawned by Mole npcs, grids spawned by TurnGold, or lua-made spawns called with the new SpawnGridEntity(int GridIndex, GridEntityDesc Descriptor) override.

ID Name Function Args Optional Args Return Type 1100 MC_PRE_GRID_ENTITY_SPAWN (GridEntityType Type, int Variant, int VarData, int GridIdx, int SpawnSeed, GridEntityDesc Desc GridEntityType Type) boolean, table, or GridEntityDesc"},{"location":"enums/ModCallbacks.html#mc_pre_room_grid_entity_spawn","title":"MC_PRE_ROOM_GRID_ENTITY_SPAWN","text":"

This is called during Room initiization when GridEntities from the layout are being spawned.

Accepts false to cancel spawning the grid or a table of {Type, Variant, Vardata, SpawnSeed} to modify it.

Warning

This does not fire for random decorations spawned by the game! Use MC_PRE_GRID_ENTITY_SPAWN for these.

ID Name Function Args Optional Args Return Type 1192 MC_PRE_ROOM_GRID_ENTITY_SPAWN (GridEntityType Type, int Variant, int VarData, int GridIdx, int SpawnSeed) GridEntityType Type boolean or table"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spawn","title":"MC_POST_GRID_ENTITY_SPAWN","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1101 MC_POST_GRID_ENTITY_SPAWN GridEntity Grid GridEntityType Type void"},{"location":"enums/ModCallbacks.html#mc_pre_room_trigger_clear","title":"MC_PRE_ROOM_TRIGGER_CLEAR","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1068 MC_PRE_ROOM_TRIGGER_CLEAR (boolean PlaySound) - void"},{"location":"enums/ModCallbacks.html#mc_pre_player_trigger_room_clear","title":"MC_PRE_PLAYER_TRIGGER_ROOM_CLEAR","text":"

Accepts false to cancel trigger effects.

ID Name Function Args Optional Args Return Type 1069 MC_PRE_PLAYER_TRIGGER_ROOM_CLEAR (EntityPlayer Player) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_player_get_active_max_charge","title":"MC_PLAYER_GET_ACTIVE_MAX_CHARGE","text":"

Accepts an integer to change chargebar for the active item.

ID Name Function Args Optional Args Return Type 1072 MC_PLAYER_GET_ACTIVE_MAX_CHARGE (CollectibleType Collectible, EntityPlayer Player, int VarData) CollectibleType int"},{"location":"enums/ModCallbacks.html#mc_player_get_active_min_usable_charge","title":"MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE","text":"

Accepts an integer to change the minimum charge to use the active item. If the item currently has the minimum amount of charge, it'll also show the white outline.

ID Name Function Args Optional Args Return Type 1073 MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE (ActiveSlot Slot) CollectibleType int"},{"location":"enums/ModCallbacks.html#mc_pre_player_use_bomb","title":"MC_PRE_PLAYER_USE_BOMB","text":"

Return false to stop the player from using a bomb.

ID Name Function Args Optional Args Return Type 1020 MC_PRE_PLAYER_USE_BOMB (EntityPlayer Player) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_player_use_bomb","title":"MC_POST_PLAYER_USE_BOMB","text":"ID Name Function Args Optional Args Return Type 1021 MC_POST_PLAYER_USE_BOMB (EntityPlayer Player, EntityBomb Bomb) PlayerVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_player_take_dmg","title":"MC_PRE_PLAYER_TAKE_DMG","text":"

Runs earlier than MC_ENTITY_TAKE_DMG, and even if the player is considered invincible or has Holy Mantles.

Only accepts returning false to cancel the damage. Good for giving the player invincibility that takes precedence over other damage negation effects, such as Holy Mantle.

ID Name Function Args Optional Args Return Type 1008 MC_PRE_PLAYER_TAKE_DMG (EntityPlayer Player, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_pre_replace_spritesheet","title":"MC_PRE_REPLACE_SPRITESHEET","text":"

Accepts a table of parameters: {int LayerID, string PNGFilename}

ID Name Function Args Optional Args Return Type 1116 MC_PRE_REPLACE_SPRITESHEET (int LayerID, string PNGFilename) string ANM2Filename table"},{"location":"enums/ModCallbacks.html#mc_post_replace_spritesheet","title":"MC_POST_REPLACE_SPRITESHEET","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1117 MC_POST_REPLACE_SPRITESHEET (int LayerID, string PNGFilename) string ANM2Filename void"},{"location":"enums/ModCallbacks.html#mc_player_get_heart_limit","title":"MC_PLAYER_GET_HEART_LIMIT","text":"

Accepts an override integer for heart limit.

-

You can set the limit to any arbitrary amount but the game can only render up to 4 lines of hearts in the HUD. However, even if they're not visible, the hearts still work properly.

ID Name Function Args Optional Args Return Type 1074 MC_PLAYER_GET_HEART_LIMIT (EntityPlayer Player, int HeartLimit, boolean IsKeeper) PlayerType int"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_stage_penalty","title":"MC_PRE_PLANETARIUM_APPLY_STAGE_PENALTY","text":"

This callback is run at the start of planetarium calculation. Before running calculation, the game first checks if the current floor is valid to spawn a planetarium. If the current floor is invalid, all further calculation (and thus, all further callbacks) will be canceled.

By default, planetariums cannot spawn past Depths II (Womb II with Telescope Lens).

This callback can be used, for example, to add custom planetarium spawn rules on custom floors, or to add new items like Telescope Lens which can augment the rules.

Accepts a boolean. Return false to bypass the planetarium stage penalty.

ID Name Function Args Optional Args Return Type 1110 MC_PRE_PLANETARIUM_APPLY_STAGE_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_planetarium_penalty","title":"MC_PRE_PLANETARIUM_APPLY_PLANETARIUM_PENALTY","text":"

After ensuring the stage is valid, the game then checks if a planetarium has been entered before. If so, the chance will be locked at 1% (10% with Telescope Lens).

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a boolean. Return false to bypass the planetarium enter penalty.

ID Name Function Args Optional Args Return Type 1111 MC_PRE_PLANETARIUM_APPLY_PLANETARIUM_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_treasure_penalty","title":"MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY","text":"

After ensuring planetariums haven't been entered before, the game then checks how many treasure rooms have been entered. If the amount of treasure rooms entered is greater than or equal to the current stage number, the chance will be locked at 1% (10% with Telescope Lens).

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a boolean. Return false to bypass the planetarium treasure room penalty entirely, meaning the game will act as if no treasure rooms have been entered.

Alternatively accepts an int to modify how many treasure rooms the game will believe has been entered.

ID Name Function Args Optional Args Return Type 1112 MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY (int TreasureRoomsVisited) - boolean or int"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_items","title":"MC_PRE_PLANETARIUM_APPLY_ITEMS","text":"

After checking the amount of treasure rooms entered, the game applies flat item chances. This is where Crystal Ball, Magic 8 Ball and Sausage's chances get added, as well as Telescope Lens's additional 15% chance.

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1113 MC_PRE_PLANETARIUM_APPLY_ITEMS (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_telescope_lens","title":"MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS","text":"

Finally, after checking all of the above, Telescope Lens adds an additional 9% chance to the base chance, bringing the base generation chance to 10%.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1114 MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_planetarium_calculate","title":"MC_POST_PLANETARIUM_CALCULATE","text":"

This will override all previous calculation values, ultimately dictating the planetarium chance.

Accepts a float to modify the chance.

ID Name Function Args Optional Args Return Type 1115 MC_POST_PLANETARIUM_CALCULATE (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_slot_init","title":"MC_POST_SLOT_INIT","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1121 MC_POST_SLOT_INIT (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_post_slot_update","title":"MC_POST_SLOT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1122 MC_POST_SLOT_UPDATE (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_collision","title":"MC_PRE_SLOT_COLLISION","text":"

Just like the collision callbacks in the vanilla API, the Low value is true if the entity collided with the collider first, and false if the opposite is true.

Return true to ignore collision, false to collide but not execute internal code.

Also accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1240 MC_PRE_SLOT_COLLISION (EntitySlot, Entity Collider, boolean Low) SlotVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_collision","title":"MC_POST_SLOT_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1241 MC_POST_SLOT_COLLISION (EntitySlot, Entity Collider, boolean Low SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_create_explosion_drops","title":"MC_PRE_SLOT_CREATE_EXPLOSION_DROPS","text":"

Return false to stop explosions from dropping the standard consumables. This is useful, for example, to allow custom slots to drop their own loot on explosion.

ID Name Function Args Optional Args Return Type 1123 MC_PRE_SLOT_CREATE_EXPLOSION_DROPS (EntitySlot) SlotVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_create_explosion_drops","title":"MC_POST_SLOT_CREATE_EXPLOSION_DROPS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1124 MC_POST_SLOT_CREATE_EXPLOSION_DROPS (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_set_prize_collectible","title":"MC_PRE_SLOT_SET_PRIZE_COLLECTIBLE","text":"

Used by Shell Game and Hell Game.

Accepts a CollectibleType to override what the game will pay out with.

ID Name Function Args Optional Args Return Type 1125 MC_PRE_SLOT_SET_PRIZE_COLLECTIBLE (EntitySlot) SlotVariant CollectibleType"},{"location":"enums/ModCallbacks.html#mc_post_slot_set_prize_collectible","title":"MC_POST_SLOT_SET_PRIZE_COLLECTIBLE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1126 MC_POST_SLOT_SET_PRIZE_COLLECTIBLE (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_post_player_collision","title":"MC_POST_PLAYER_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1231 MC_POST_PLAYER_COLLISION (EntityPlayer Player, Entity Collider, boolean Low PlayerVariant void"},{"location":"enums/ModCallbacks.html#mc_post_tear_collision","title":"MC_POST_TEAR_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1233 MC_POST_TEAR_COLLISION (EntityTear Tear, Entity Collider, boolean Low TearVariant void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_collision","title":"MC_POST_FAMILIAR_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1235 MC_POST_FAMILIAR_COLLISION (EntityFamiliar Familiar, Entity Collider, boolean Low FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_bomb_collision","title":"MC_POST_BOMB_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1237 MC_POST_BOMB_COLLISION (EntityBomb Bomb, Entity Collider, boolean Low BombVariant void"},{"location":"enums/ModCallbacks.html#mc_post_pickup_collision","title":"MC_POST_PICKUP_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1239 MC_POST_PICKUP_COLLISION (EntityPickup Pickup, Entity Collider, boolean Low PickupVariant void"},{"location":"enums/ModCallbacks.html#mc_post_knife_collision","title":"MC_POST_KNIFE_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1243 MC_POST_KNIFE_COLLISION (EntityKnife Knife, Entity Collider, boolean Low KnifeSubType void"},{"location":"enums/ModCallbacks.html#mc_post_projectile_collision","title":"MC_POST_PROJECTILE_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1245 MC_POST_PROJECTILE_COLLISION (EntityProjectile Projectile, Entity Collider, boolean Low ProjectileVariant void"},{"location":"enums/ModCallbacks.html#mc_post_npc_collision","title":"MC_POST_NPC_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1247 MC_POST_NPC_COLLISION (EntityNPC NPC, Entity Collider, boolean Low EntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_laser_collision","title":"MC_PRE_LASER_COLLISION","text":"

Runs right before a laser hits an entity. Return true to ignore the collision.

ID Name Function Args Optional Args Return Type 1248 MC_PRE_LASER_COLLISION (EntityLaser Laser, Entity Collider) LaserVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_laser_collision","title":"MC_POST_LASER_COLLISION","text":"

Runs after a laser hits an entity.

ID Name Function Args Optional Args Return Type 1249 MC_POST_LASER_COLLISION (EntityLaser Laser, Entity Collider) LaserVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_items","title":"MC_PRE_DEVIL_APPLY_ITEMS","text":"

This callback is run when the game starts to tally up traditional items for devil deal calculation. This is called before the stage penalty.

Most items that affect devil deal chance perform their changes here.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1130 MC_PRE_DEVIL_APPLY_ITEMS () - float"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_stage_penalty","title":"MC_PRE_DEVIL_APPLY_STAGE_PENALTY","text":"

Next, the game calculates stage penalty. If a deal spawned anywhere on the previous two floors, the game decays the resulting chance by either 50% or 25% depending on how many deals have been taken.

Important to note that even though the game displays a value of ~66% or ~33% for the 50% and 25% values, respectively, this is because devil chance is not clamped to a value between 0 and 1, and \"100%\" without items generally means a value of ~133%.

Accepts a boolean. Return false to bypass the stage penalty.

ID Name Function Args Optional Args Return Type 1131 MC_PRE_DEVIL_APPLY_STAGE_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_special_items","title":"MC_PRE_DEVIL_APPLY_SPECIAL_ITEMS","text":"

Next, the game applies \"special\" items which bypass the stage penalty like Goat Head and Eucharist.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1132 MC_PRE_DEVIL_APPLY_SPECIAL_ITEMS () - float"},{"location":"enums/ModCallbacks.html#mc_post_devil_calculate","title":"MC_POST_DEVIL_CALCULATE","text":"

This will override all previous calculation values, ultimately dictating the devil chance.

Accepts a float to modify the chance.

ID Name Function Args Optional Args Return Type 1133 MC_POST_DEVIL_CALCULATE (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_item_overlay_update","title":"MC_POST_ITEM_OVERLAY_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1075 MC_POST_ITEM_OVERLAY_UPDATE GiantBook void"},{"location":"enums/ModCallbacks.html#mc_pre_item_overlay_show","title":"MC_PRE_ITEM_OVERLAY_SHOW","text":"

Accepts an integer to change GiantBook

Alternatively accepts true to cancel item overlay show

ID Name Function Args Optional Args Return Type 1076 MC_PRE_ITEM_OVERLAY_SHOW ( GiantBook GiantBookID, int Delay, EntityPlayer Player) GiantBook GiantBook or boolean"},{"location":"enums/ModCallbacks.html#mc_post_player_new_room_temp_effects","title":"MC_POST_PLAYER_NEW_ROOM_TEMP_EFFECTS","text":"ID Name Function Args Optional Args Return Type 1077 MC_POST_PLAYER_NEW_ROOM_TEMP_EFFECTS (EntityPlayer Player) PlayerType -"},{"location":"enums/ModCallbacks.html#mc_post_player_new_level","title":"MC_POST_PLAYER_NEW_LEVEL","text":"ID Name Function Args Optional Args Return Type 1078 MC_POST_PLAYER_NEW_LEVEL (EntityPlayer Player) PlayerType -"},{"location":"enums/ModCallbacks.html#mc_post_playerhud_render_active_item","title":"MC_POST_PLAYERHUD_RENDER_ACTIVE_ITEM","text":"ID Name Function Args Optional Args Return Type 1079 MC_POST_PLAYERHUD_RENDER_ACTIVE_ITEM (EntityPlayer Player, ActiveSlot Slot, Vector Offset, float Alpha, float Scale) - -"},{"location":"enums/ModCallbacks.html#mc_pre_playerhud_render_hearts","title":"MC_PRE_PLAYERHUD_RENDER_HEARTS","text":"

Return true to cancel hearts HUD rendering.

ID Name Function Args Optional Args Return Type 1118 MC_PRE_PLAYERHUD_RENDER_HEARTS (Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) - boolean"},{"location":"enums/ModCallbacks.html#mc_post_playerhud_render_hearts","title":"MC_POST_PLAYERHUD_RENDER_HEARTS","text":"ID Name Function Args Optional Args Return Type 1091 MC_POST_PLAYERHUD_RENDER_HEARTS (Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) - -"},{"location":"enums/ModCallbacks.html#mc_pre_get_lighting_alpha","title":"MC_PRE_GET_LIGHTING_ALPHA","text":"

Accepts a float to modify the lighting alpha. Generally this is between 0 and 1 but you can technically go higher than this.

ID Name Function Args Optional Args Return Type 1150 MC_PRE_GET_LIGHTING_ALPHA (float OriginalAlpha) - float"},{"location":"enums/ModCallbacks.html#mc_pre_render_grid_lighting","title":"MC_PRE_RENDER_GRID_LIGHTING","text":"

Accepts an override Vector for Offset.

Alternatively accepts false to stop the rendering.

ID Name Function Args Optional Args Return Type 1151 MC_PRE_RENDER_GRID_LIGHTING (GridEntity GridEntity, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_entity_lighting","title":"MC_PRE_RENDER_ENTITY_LIGHTING","text":"

Accepts an override Vector for Offset.

Alternatively accepts false to stop the rendering.

ID Name Function Args Optional Args Return Type 1152 MC_PRE_RENDER_ENTITY_LIGHTING (Entity Entity, Vector Offset) EntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_player_apply_innate_collectible_num","title":"MC_PRE_PLAYER_APPLY_INNATE_COLLECTIBLE_NUM","text":"ID Name Function Args Optional Args Return Type 1092 MC_PRE_PLAYER_APPLY_INNATE_COLLECTIBLE_NUM int ModCount, EntityPlayer Player, CollectibleType Type, boolean OnlyCountTrueItems) - int"},{"location":"enums/ModCallbacks.html#mc_pre_player_has_collectible","title":"MC_PRE_PLAYER_HAS_COLLECTIBLE","text":"

Return a boolean to indicate whether a player should be counted as having an item or not.

Bug

This callback doesn't work right now since it cause massive lag issues!

ID Name Function Args Optional Args Return Type 1093 MC_PRE_PLAYER_HAS_COLLECTIBLE (EntityPlayer Player, CollectibleType Type, boolean OnlyCountTrueItems) CollectibleType boolean"},{"location":"enums/ModCallbacks.html#mc_pre_music_play_jingle","title":"MC_PRE_MUSIC_PLAY_JINGLE","text":"

Accepts a Music to change the track

Alternatively accepts false to cancel the track

ID Name Function Args Optional Args Return Type 1094 MC_PRE_MUSIC_PLAY_JINGLE (Music MusicID) Music Music or boolean"},{"location":"enums/ModCallbacks.html#mc_post_trigger_collectible_removed","title":"MC_POST_TRIGGER_COLLECTIBLE_REMOVED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1095 MC_POST_TRIGGER_COLLECTIBLE_REMOVED (EntityPlayer Player, CollectibleType Type) CollectibleType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_trinket_added","title":"MC_POST_TRIGGER_TRINKET_ADDED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1096 MC_POST_TRIGGER_TRINKET_ADDED (EntityPlayer Player, TrinketType Type, boolean FirstTimePickingUp) TrinketType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_trinket_removed","title":"MC_POST_TRIGGER_TRINKET_REMOVED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1097 MC_POST_TRIGGER_TRINKET_REMOVED (EntityPlayer Player, TrinketType Type) TrinketType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_weapon_fired","title":"MC_POST_TRIGGER_WEAPON_FIRED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1098 MC_POST_TRIGGER_WEAPON_FIRED (Vector FireDirection, int FireAmount, Entity Owner) WeaponType void"},{"location":"enums/ModCallbacks.html#mc_post_nightmare_scene_render","title":"MC_POST_NIGHTMARE_SCENE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1102 MC_POST_NIGHTMARE_SCENE_RENDER - void"},{"location":"enums/ModCallbacks.html#mc_post_nightmare_scene_show","title":"MC_POST_NIGHTMARE_SCENE_SHOW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1103 MC_POST_NIGHTMARE_SCENE_SHOW ( boolean Unknown) - void"},{"location":"enums/ModCallbacks.html#mc_post_weapon_fire","title":"MC_POST_WEAPON_FIRE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1105 MC_POST_WEAPON_FIRE (Weapon Weapon, Vector FireDirection, boolean IsShooting, boolean IsInterpolated) WeaponType void"},{"location":"enums/ModCallbacks.html#mc_console_autocomplete","title":"MC_CONSOLE_AUTOCOMPLETE","text":"

This is called whenever a function with the CUSTOM AutocompleteType enum is being entered into the console. Called every time the console input changes.

Accepts a table. The table can hold both string values, which will just add the string as a parameter in autocomplete for the command, and a table of two strings which will add the first string as the parameter, and second as a description. Description can be used in autocomplete as well, however pressing TAB will properly autocomplete using the ID, not description (Think the giveitem command, as an example- c1 would be The Sad Onion's \"parameter\" and The Sad Onion would be the \"description\", and both work. Pressing TAB will turn the command into give c1.)

REPENTOGON handles only showing options relevant for the given input- simply return a table of options, and REPENTOGON will take care of the rest.

ID Name Function Args Optional Args Return Type 1120 MC_CONSOLE_AUTOCOMPLETE (string Command, string Params) string Command table"},{"location":"enums/ModCallbacks.html#mc_player_init_pre_level_init_stats","title":"MC_PLAYER_INIT_PRE_LEVEL_INIT_STATS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1127 MC_PLAYER_INIT_PRE_LEVEL_INIT_STATS (EntityPlayer Player) PlayerType void"},{"location":"enums/ModCallbacks.html#mc_post_saveslot_load","title":"MC_POST_SAVESLOT_LOAD","text":"

This is called wheenver a saveslot is loaded by the game.

This is the callback you should use to handle savedata loads, ideally, from normal Mod::LoadData to Repentogon Marks/Achievement checks, since it's the callback that triggers when those are loaded.

The first parameter is the slot you should care about, the 2nd parameter (isslotselected) indicates if the slot that is being loaded has actually been selected from the save menu screen (you can limit your save handling to when this is true if you want to get fancy), and the 3rd parameter(rawslot) is the actual saveslot the game uses (not the one the api uses since it can be 0!).

Warning

This callback is called many times before a run is started, either from changing saveslots naturally or because the game doesnt give a damn, so code accounting for that, clearing previous data when necessary. The 3rd param is actually only useful to check for the 0 slot state, which is the one the game defaults to before the actual slot is loaded by the player. When on this state, the moddata and the gamedata WONT BE IN SYNC (moddata is slot 1, while vanilla game data is 3)

ID Name Function Args Optional Args Return Type 1470 MC_POST_SAVESLOT_LOAD ( int saveslot, boolean isslotselected, int rawslot )"},{"location":"enums/ModCallbacks.html#mc_pre_new_room","title":"MC_PRE_NEW_ROOM","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1200 MC_PRE_NEW_ROOM ( Room Room, RoomDescriptor Descriptor ) - -"},{"location":"enums/ModCallbacks.html#mc_pre_mega_satan_ending","title":"MC_PRE_MEGA_SATAN_ENDING","text":"

Called right before Mega Satan forcibly ends the game.

  • Accepts true to suppress the ending, guaranteeing a portal to the Void while retaining the completion mark for this character.
  • false or nil will have no effect. I might look into making false guarantee an ending?
ID Name Function Args Optional Args Return Type 1201 MC_PRE_MEGA_SATAN_ENDING - - boolean"},{"location":"enums/ModCallbacks.html#mc_post_mods_loaded","title":"MC_POST_MODS_LOADED","text":"

Called after all Lua scripts have been loaded. Ideal for running code that is expected to run after all mods are initialized, but without the need for load order idiocy!

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1210 MC_POST_MODS_LOADED - - void"},{"location":"enums/ModCallbacks.html#mc_post_item_overlay_show","title":"MC_POST_ITEM_OVERLAY_SHOW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1134 MC_POST_ITEM_OVERLAY_SHOW (GiantBook GiantBookID, int Delay, EntityPlayer Player) GiantBook void"},{"location":"enums/ModCallbacks.html#mc_pre_level_place_room","title":"MC_PRE_LEVEL_PLACE_ROOM","text":"

Return a room config to replace the room that will be placed

Warning

The new room shape must be the same, and the new available door slots must be compatible with the original room doors.

ID Name Function Args Optional Args Return Type 1137 MC_PRE_LEVEL_PLACE_ROOM (LevelGeneratorRoom Slot, RoomConfigRoom RoomConfig, int Seed) - RoomConfigRoom Config"},{"location":"enums/ModCallbacks.html#mc_post_level_layout_generated","title":"MC_POST_LEVEL_LAYOUT_GENERATED","text":"ID Name Function Args Optional Args Return Type 1099 MC_POST_LEVEL_LAYOUT_GENERATED (LevelGenerator LevelGenerator) - -"},{"location":"enums/ModCallbacks.html#mc_post_player_get_multi_shot_params","title":"MC_POST_PLAYER_GET_MULTI_SHOT_PARAMS","text":"

Return a MultiShotParams object to change the properties of the players shooting behavior in regards to the MultiShotParams object properties.

ID Name Function Args Optional Args Return Type 1251 MC_POST_PLAYER_GET_MULTI_SHOT_PARAMS (EntityPlayer Player) PlayerType MultiShotParams"},{"location":"enums/ModCallbacks.html#mc_pre_m_morph_active","title":"MC_PRE_M_MORPH_ACTIVE","text":"

This callback triggers when an active gets rerolled by 'M (trinket id 138) and allows for overriding its behavior.

  • Accepts a CollectibleType to override the rerolled item id or false to prevent the active from rerolling entirely.
ID Name Function Args Optional Args Return Type 1190 MC_PRE_M_MORPH_ACTIVE (EntityPlayer Player, CollectibleType Collectible) - CollectibleType"},{"location":"enums/ModCallbacks.html#mc_pre_npc_split","title":"MC_PRE_NPC_SPLIT","text":"

Called when the game is about to decide whether or not an EntityNPC can be split, ie the Meat Cleaver effect.

Return true to prevent the split, false to allow it even if blacklisted, or nil to continue default behavior.

ID Name Function Args Optional Args Return Type 1191 MC_PRE_NPC_SPLIT (EntityNPC NPC, boolean IsBlacklisted) (EntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_projectile","title":"MC_POST_FAMILIAR_FIRE_PROJECTILE","text":"

Called when a familiar fires a tear.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1252 MC_POST_FAMILIAR_FIRE_PROJECTILE (EntityTear Tear) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_fire_bomb","title":"MC_POST_FIRE_BOMB","text":"

Called when the player fires a Dr. Fetus bomb.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1253 MC_POST_FIRE_BOMB (EntityBomb Bomb) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_bone_club","title":"MC_POST_FIRE_BONE_CLUB","text":"

Called when the player fired The Forgotten's bone club.

This is only called when the club is initially spawned, not when swung or charged and shot.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1254 MC_POST_FIRE_BONE_CLUB (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_brimstone","title":"MC_POST_FIRE_BRIMSTONE","text":"

Called when the player fires a brimstone laser.

This is also called for delayed brimstone.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1255 MC_POST_FIRE_BRIMSTONE (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_brimstone_ball","title":"MC_POST_FIRE_BRIMSTONE_BALL","text":"

Called when the player fires a brimstone ball.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1256 MC_POST_FIRE_BRIMSTONE_BALL (EntityEffect Effect) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_knife","title":"MC_POST_FIRE_KNIFE","text":"

Called when the player fires the knife from Mom's Knife.

This is only called when the club is initially spawned, not when charged and shot.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1257 MC_POST_FIRE_KNIFE (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_sword","title":"MC_POST_FIRE_SWORD","text":"

Called when the player swings the sword from Spirit Sword.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1258 MC_POST_FIRE_SWORD (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_tech_laser","title":"MC_POST_FIRE_TECH_LASER","text":"

Called when the player fires a Tech laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1259 MC_POST_FIRE_TECH_LASER (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_tech_x_laser","title":"MC_POST_FIRE_TECH_X_LASER","text":"

Called when the player fires a Tech X laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1260 MC_POST_FIRE_TECH_X_LASER (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_brimstone","title":"MC_POST_FAMILIAR_FIRE_BRIMSTONE","text":"

Called when a familiar fires a brimstone laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1261 MC_POST_FAMILIAR_FIRE_BRIMSTONE (EntityLaser Laser) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_tech_laser","title":"MC_POST_FAMILIAR_FIRE_TECH_LASER","text":"

Called when a familiar fires a Tech laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1262 MC_POST_FAMILIAR_FIRE_TECH_LASER (EntityLaser Laser) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_is_persistent_room_entity","title":"MC_IS_PERSISTENT_ROOM_ENTITY","text":"

Returning true allows entity to respawn.

Value Name Function Args Optional Args Return Type 1263 MC_IS_PERSISTENT_ROOM_ENTITY (EntityType Type, int Variant) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_playerhud_trinket_render","title":"MC_PRE_PLAYERHUD_TRINKET_RENDER","text":"

Returning true allows entity to respawn.

Value Name Function Args Optional Args Return Type 1264 MC_PRE_PLAYERHUD_TRINKET_RENDER (int Slot, Vector Position, float Scale, EntityPlayer Player ) int Slot table or boolean

Accepts returning a table, with any combination of the following fields:

  • Position - Alters trinket position.
  • Scale - Alters trinket scale.

Alternative accepts true, which cancels trinket rendering.

"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_decoration_update","title":"MC_PRE_GRID_ENTITY_DECORATION_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1400 MC_PRE_GRID_ENTITY_DECORATION_UPDATE (GridEntityDecoration Decoration) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_decoration_update","title":"MC_POST_GRID_ENTITY_DECORATION_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1401 MC_POST_GRID_ENTITY_DECORATION_UPDATE (GridEntityDecoration Decoration) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_door_update","title":"MC_PRE_GRID_ENTITY_DOOR_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1402 MC_PRE_GRID_ENTITY_DOOR_UPDATE (GridEntityDoor Door) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_door_update","title":"MC_POST_GRID_ENTITY_DOOR_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1403 MC_POST_GRID_ENTITY_DOOR_UPDATE (GridEntityDoor Door) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_fire_update","title":"MC_PRE_GRID_ENTITY_FIRE_UPDATE","text":"

Accepts false to cancel the update.

Warning

Fire grid entities are largely unused, and in most cases you'll want to target the EntityNPC fireplaces.

ID Name Function Args Optional Args Return Type 1404 MC_PRE_GRID_ENTITY_FIRE_UPDATE (GridEntityFire Fire) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_fire_update","title":"MC_POST_GRID_ENTITY_FIRE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1405 MC_POST_GRID_ENTITY_FIRE_UPDATE (GridEntityFire Fire) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_gravity_update","title":"MC_PRE_GRID_ENTITY_GRAVITY_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1406 MC_PRE_GRID_ENTITY_GRAVITY_UPDATE (GridEntityGravity Gravity) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_gravity_update","title":"MC_POST_GRID_ENTITY_GRAVITY_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1407 MC_POST_GRID_ENTITY_GRAVITY_UPDATE (GridEntityGravity Gravity) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_lock_update","title":"MC_PRE_GRID_ENTITY_LOCK_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1408 MC_PRE_GRID_ENTITY_LOCK_UPDATE (GridEntityLock Lock) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_lock_update","title":"MC_POST_GRID_ENTITY_LOCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1409 MC_POST_GRID_ENTITY_LOCK_UPDATE (GridEntityLock Lock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pit_update","title":"MC_PRE_GRID_ENTITY_PIT_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1410 MC_PRE_GRID_ENTITY_PIT_UPDATE (GridEntityPit Pit) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pit_update","title":"MC_POST_GRID_ENTITY_PIT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1411 MC_POST_GRID_ENTITY_PIT_UPDATE (GridEntityPit Pit) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_poop_update","title":"MC_PRE_GRID_ENTITY_POOP_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1412 MC_PRE_GRID_ENTITY_POOP_UPDATE (GridEntityPoop Poop) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_poop_update","title":"MC_POST_GRID_ENTITY_POOP_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1413 MC_POST_GRID_ENTITY_POOP_UPDATE (GridEntityPoop Poop) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pressureplate_update","title":"MC_PRE_GRID_ENTITY_PRESSUREPLATE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1414 MC_PRE_GRID_ENTITY_PRESSUREPLATE_UPDATE (GridEntityPressurePlate PressurePlate) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pressureplate_update","title":"MC_POST_GRID_ENTITY_PRESSUREPLATE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1415 MC_POST_GRID_ENTITY_PRESSUREPLATE_UPDATE (GridEntityPressurePlate PressurePlate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_rock_update","title":"MC_PRE_GRID_ENTITY_ROCK_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1416 MC_PRE_GRID_ENTITY_ROCK_UPDATE (GridEntityRock Rock) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_rock_update","title":"MC_POST_GRID_ENTITY_ROCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1417 MC_POST_GRID_ENTITY_ROCK_UPDATE (GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spikes_update","title":"MC_PRE_GRID_ENTITY_SPIKES_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1418 MC_PRE_GRID_ENTITY_SPIKES_UPDATE (GridEntitySpikes Spikes) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spikes_update","title":"MC_POST_GRID_ENTITY_SPIKES_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1419 MC_POST_GRID_ENTITY_SPIKES_UPDATE (GridEntitySpikes Spikes) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_staircase_update","title":"MC_PRE_GRID_ENTITY_STAIRCASE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1420 MC_PRE_GRID_ENTITY_STAIRCASE_UPDATE (GridEntityStairs Staircase) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_staircase_update","title":"MC_POST_GRID_ENTITY_STAIRCASE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1421 MC_POST_GRID_ENTITY_STAIRCASE_UPDATE (GridEntityStairs Staircase) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_statue_update","title":"MC_PRE_GRID_ENTITY_STATUE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1422 MC_PRE_GRID_ENTITY_STATUE_UPDATE (GridEntityStatue Statue) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_statue_update","title":"MC_POST_GRID_ENTITY_STATUE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1423 MC_POST_GRID_ENTITY_STATUE_UPDATE (GridEntityStatue Statue) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_teleporter_update","title":"MC_PRE_GRID_ENTITY_TELEPORTER_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1424 MC_PRE_GRID_ENTITY_TELEPORTER_UPDATE (GridEntityTeleporter Teleporter) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_teleporter_update","title":"MC_POST_GRID_ENTITY_TELEPORTER_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1425 MC_POST_GRID_ENTITY_TELEPORTER_UPDATE (GridEntityTeleporter Teleporter) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_trapdoor_update","title":"MC_PRE_GRID_ENTITY_TRAPDOOR_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1426 MC_PRE_GRID_ENTITY_TRAPDOOR_UPDATE (GridEntityTrapDoor TrapDoor) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_trapdoor_update","title":"MC_POST_GRID_ENTITY_TRAPDOOR_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1427 MC_POST_GRID_ENTITY_TRAPDOOR_UPDATE (GridEntityTrapDoor TrapDoor) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_web_update","title":"MC_PRE_GRID_ENTITY_WEB_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1428 MC_PRE_GRID_ENTITY_WEB_UPDATE (GridEntityWeb Web) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_web_update","title":"MC_POST_GRID_ENTITY_WEB_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1429 MC_POST_GRID_ENTITY_WEB_UPDATE (GridEntityWeb Web) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_tnt_update","title":"MC_PRE_GRID_ENTITY_TNT_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1430 MC_PRE_GRID_ENTITY_TNT_UPDATE (GridEntityTNT TNT) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_tnt_update","title":"MC_POST_GRID_ENTITY_TNT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1431 MC_POST_GRID_ENTITY_TNT_UPDATE (GridEntityTNT TNT) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spikes_render","title":"MC_PRE_GRID_ENTITY_SPIKES_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1432 MC_PRE_GRID_ENTITY_SPIKES_RENDER (GridEntitySpikes Grid, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spikes_render","title":"MC_POST_GRID_ENTITY_SPIKES_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1433 MC_POST_GRID_ENTITY_SPIKES_RENDER (GridEntitySpikes Grid) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_web_render","title":"MC_PRE_GRID_ENTITY_WEB_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1434 MC_PRE_GRID_ENTITY_WEB_RENDER (GridEntityWeb Web, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_web_render","title":"MC_POST_GRID_ENTITY_WEB_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1435 MC_POST_GRID_ENTITY_WEB_RENDER (GridEntityWeb Web) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_tnt_render","title":"MC_PRE_GRID_ENTITY_TNT_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1436 MC_PRE_GRID_ENTITY_TNT_RENDER (GridEntityTNT TNT, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_tnt_render","title":"MC_POST_GRID_ENTITY_TNT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1437 MC_POST_GRID_ENTITY_TNT_RENDER (GridEntityTNT TNT) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_trapdoor_render","title":"MC_PRE_GRID_ENTITY_TRAPDOOR_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1438 MC_PRE_GRID_ENTITY_TRAPDOOR_RENDER (GridEntityTrapDoor TrapDoor, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_trapdoor_render","title":"MC_POST_GRID_ENTITY_TRAPDOOR_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1439 MC_POST_GRID_ENTITY_TRAPDOOR_RENDER (GridEntityTrapDoor TrapDoor) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_staircase_render","title":"MC_PRE_GRID_ENTITY_STAIRCASE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1440 MC_PRE_GRID_ENTITY_STAIRCASE_RENDER (GridEntityStairs Staircase, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_staircase_render","title":"MC_POST_GRID_ENTITY_STAIRCASE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1441 MC_POST_GRID_ENTITY_STAIRCASE_RENDER (GridEntityStairs Staircase) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_decoration_render","title":"MC_PRE_GRID_ENTITY_DECORATION_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1444 MC_PRE_GRID_ENTITY_DECORATION_RENDER (GridEntityDecoration Decoration, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_decoration_render","title":"MC_POST_GRID_ENTITY_DECORATION_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1445 MC_POST_GRID_ENTITY_DECORATION_RENDER (GridEntityDecoration Decoration) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_door_render","title":"MC_PRE_GRID_ENTITY_DOOR_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1446 MC_PRE_GRID_ENTITY_DOOR_RENDER (GridEntityDoor Door, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_door_render","title":"MC_POST_GRID_ENTITY_DOOR_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1447 MC_POST_GRID_ENTITY_DOOR_RENDER (GridEntityDoor Door) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_fire_render","title":"MC_PRE_GRID_ENTITY_FIRE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

Warning

Fire grid entities are largely unused, and in most cases you'll want to target the EntityNPC fireplaces.

ID Name Function Args Optional Args Return Type 1448 MC_PRE_GRID_ENTITY_FIRE_RENDER (GridEntityFire Fire, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_fire_render","title":"MC_POST_GRID_ENTITY_FIRE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1449 MC_POST_GRID_ENTITY_FIRE_RENDER (GridEntityFire Fire) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_lock_render","title":"MC_PRE_GRID_ENTITY_LOCK_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1450 MC_PRE_GRID_ENTITY_LOCK_RENDER (GridEntityLock Lock, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_lock_render","title":"MC_POST_GRID_ENTITY_LOCK_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1451 MC_POST_GRID_ENTITY_LOCK_RENDER (GridEntityLock Lock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_teleporter_render","title":"MC_PRE_GRID_ENTITY_TELEPORTER_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1452 MC_PRE_GRID_ENTITY_TELEPORTER_RENDER (GridEntityTeleporter Teleporter, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_teleporter_render","title":"MC_POST_GRID_ENTITY_TELEPORTER_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1453 MC_POST_GRID_ENTITY_TELEPORTER_RENDER (GridEntityTeleporter Teleporter) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pit_render","title":"MC_PRE_GRID_ENTITY_PIT_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1454 MC_PRE_GRID_ENTITY_PIT_RENDER (GridEntityPit Pit, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pit_render","title":"MC_POST_GRID_ENTITY_PIT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1455 MC_POST_GRID_ENTITY_PIT_RENDER (GridEntityPit Pit) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_poop_render","title":"MC_PRE_GRID_ENTITY_POOP_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

Warning

This callback does not include the EntityNPC poops used by Tainted ???.

ID Name Function Args Optional Args Return Type 1456 MC_PRE_GRID_ENTITY_POOP_RENDER (GridEntityPoop Poop, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_poop_render","title":"MC_POST_GRID_ENTITY_POOP_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1457 MC_POST_GRID_ENTITY_POOP_RENDER (GridEntityPoop Poop) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_rock_render","title":"MC_PRE_GRID_ENTITY_ROCK_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1458 MC_PRE_GRID_ENTITY_ROCK_RENDER (GridEntityRock Rock, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_rock_render","title":"MC_POST_GRID_ENTITY_ROCK_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1459 MC_POST_GRID_ENTITY_ROCK_RENDER (GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pressureplate_render","title":"MC_PRE_GRID_ENTITY_PRESSUREPLATE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1460 MC_PRE_GRID_ENTITY_PRESSUREPLATE_RENDER (GridEntityPressurePlate PressurePlate, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pressureplate_render","title":"MC_POST_GRID_ENTITY_PRESSUREPLATE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1461 MC_POST_GRID_ENTITY_PRESSUREPLATE_RENDER (GridEntityPressurePlate PressurePlate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_wall_render","title":"MC_PRE_GRID_ENTITY_WALL_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1462 MC_PRE_GRID_ENTITY_WALL_RENDER (GridEntityWall Wall, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_wall_render","title":"MC_POST_GRID_ENTITY_WALL_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1463 MC_POST_GRID_ENTITY_WALL_RENDER (GridEntityWall Wall) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_level_select","title":"MC_PRE_LEVEL_SELECT","text":"

This callback is fired when the game selects which level (also known as stage) to load, usually when the player enters a trapdoor. The callback accepts two parameters:

  • Level: the level selected by the game, as defined in the LevelStage enumeration.
  • Type: the type of the level selected by the game, as defined in the StageType enumeration.

This callback can return either nothing or a table.

  • Nothing: let the game continue with the level stage / stage type pair it selected;
  • Table: must contain two fields (anonymous). The first field is the desired level stage, second field is the desired stage type.

If you return a table, Repentogon will check that the values fall in the allowed ranges for the level stage and the stage type.

Value ranges

Remember that the range of level types is not the same between normal / hard on one side and greed / greedier on the other.

Also remember that since Repentance the stage type value 3 is deprecated.

ID Name Function Args Optional Args Return Type 1104 MC_PRE_LEVEL_SELECT (LevelStage Level, StageType Type) - void"},{"location":"enums/MouseButton.html","title":"Enum \"MouseButton\"","text":"Value Enumerator Comment 0 LEFT 1 RIGHT 2 SCROLLWHEEL 3 BACK Located on the side of some mice 4 FORWARD Located on the side of some mice","tags":["Enum"]},{"location":"enums/NullPickupSubType.html","title":"Enum \"NullPickupSubType\"","text":"Value Enumerator Comment 0 ANY 1 NO_COLLECTIBLE_CHEST 2 NO_COLLECTIBLE 3 NO_COLLECTIBLE_CHEST_COIN 3 GREED_MODE_ANY 4 NO_COLLECTIBLE_TRINKET_CHEST","tags":["Enum"]},{"location":"enums/PauseMenuStates.html","title":"Enum \"PauseMenuStates\"","text":"Value Enumerator Comment 0 CLOSED 1 OPEN 2 OPTIONS","tags":["Enum"]},{"location":"enums/PedestalType.html","title":"Enum \"PedestalType\"","text":"Value Enumerator Comment 0 DEFAULT 1 FORTUNE_TELLING_MACHINE 2 BLOOD_DONATION_MACHINE 3 SLOT_MACHINE 4 GOLDEN_CHEST 5 RED_CHEST 6 STONE_CHEST 7 SPIKED_CHEST 8 ETERNAL_CHEST 9 MOMS_DRESSING_TABLE 10 CHEST 11 MOMS_CHEST 12 OLD_CHEST 13 WOODEN_CHEST 14 MEGA_CHEST 15 CONFESSIONAL 16 GOLDEN_CHEST_COIN_SLOT 17 ETERNAL_CHEST_COIN_SLOT 18 OLD_CHEST_COIN_SLOT 19 MEGA_CHEST_COIN_SLOT","tags":["Enum"]},{"location":"enums/PillCardSlot.html","title":"Enum \"PillCardSlot\"","text":"Value Enumerator Comment 0 PRIMARY 1 SECONDARY 2 TERTIARY Offset by 2 of: Pocket Item, Dice Bag Item, Pillcard (Otherwise unused) 3 QUATERNARY Offset by Pocket Item and Dice Bag Item and Pillcard (Otherwise unused)","tags":["Enum"]},{"location":"enums/PlayerVariant.html","title":"Enum \"PlayerVariant\"","text":"Value Enumerator Comment 0 PLAYER 1 FOUND_SOUL 1 CO_OP_BABY","tags":["Enum"]},{"location":"enums/PocketItemType.html","title":"Enum \"PocketItemType\"","text":"Value Enumerator Comment 0 PILL 1 CARD 2 ACTIVE_ITEM","tags":["Enum"]},{"location":"enums/PressurePlateVariant.html","title":"Enum \"PressurePlateVariant\"","text":"Value Enumerator Comment 0 ROOM_CLEAR 1 REWARD 2 GREED_MODE 3 MINES_PUZZLE 3 RAIL_PLATE 9 KILL_SWITCH 10 EVENT_GROUP_0 10 EVENT_0 11 EVENT_GROUP_1 11 EVENT_1 12 EVENT_GROUP_2 12 EVENT_2 13 EVENT_GROUP_3 13 EVENT_3","tags":["Enum"]},{"location":"enums/ProceduralEffectActionType.html","title":"Enum \"ProceduralEffectActionType\"","text":"Value Enumerator Comment 0 USE_ACTIVE_ITEM 1 ADD_TEMPRORY_EFFECT 2 CONVERT_ENTITIES 3 AREA_DAMAGE 4 SPAWN_ENTITY 5 FART","tags":["Enum"]},{"location":"enums/ProceduralEffectConditionType.html","title":"Enum \"ProceduralEffectConditionType\"","text":"Value Enumerator Comment 0 ACTIVE 1 TEAR_FIRE 2 ENEMY_HIT 3 ENEMY_KILL 4 DAMAGE_TAKEN 5 ROOM_CLEAR 6 ENTITY_SPAWN 7 PICKUP_COLLECTED 8 CHAIN trigger if previous ProceduralEffect is triggered (or dropped by rate).","tags":["Enum"]},{"location":"enums/ProjectileMode.html","title":"Enum \"ProjectileMode\"","text":"Value Enumerator Comment 0 SINGLE 1 SPREAD_TWO 2 SPREAD_THREE 3 SPREAD_THREE_NO_INHERITANCE 4 SPREAD_FOUR 5 SPREAD_FIVE 6 PLUS 7 CROSS 8 CIRCLE_EIGHT 9 CIRCLE_CUSTOM","tags":["Enum"]},{"location":"enums/PurityState.html","title":"Enum \"PurityState\"","text":"Value Enumerator Comment 0 RED 1 BLUE 2 YELLOW 3 ORANGE","tags":["Enum"]},{"location":"enums/RetractingSpikesVariant.html","title":"Enum \"RetractingSpikesVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 DOWN_1 2 DOWN_2 3 DOWN_3 4 DOWN_4 5 DOWN_5 6 UP_1 7 UP_2 8 UP_3 9 UP_4 10 UP_5","tags":["Enum"]},{"location":"enums/RoomSubType.html","title":"Enum \"RoomSubType\"","text":"Value Enumerator Comment 0 NULL 0 SHOP_LEVEL_1 1 SHOP_LEVEL_2 2 SHOP_LEVEL_3 3 SHOP_LEVEL_4 4 SHOP_LEVEL_5 10 SHOP_RARE_GOOD 11 SHOP_RARE_BAD 100 SHOP_KEEPER_LEVEL_1 101 SHOP_KEEPER_LEVEL_2 102 SHOP_KEEPER_LEVEL_3 103 SHOP_KEEPER_LEVEL_4 104 SHOP_KEEPER_LEVEL_5 110 SHOP_KEEPER_RARE_GOOD 111 SHOP_KEEPER_RARE_BAD 1 TREASURE_NORMAL 1 TREASURE_OPTIONS 2 TREASURE_PAY_TO_PLAY 3 TREASURE_PAY_TO_PLAY_OPTIONS 34 TREASURE_KNIFE_PIECE 0 MINIBOSS_SLOTH 1 MINIBOSS_LUST 2 MINIBOSS_WRATH 3 MINIBOSS_GLUTTONY 4 MINIBOSS_GREED 5 MINIBOSS_ENVY 6 MINIBOSS_PRIDE 7 MINIBOSS_SUPER_SLOTH 8 MINIBOSS_SUPER_LUST 9 MINIBOSS_SUPER_WRATH 10 MINIBOSS_SUPER_GLUTTONY 11 MINIBOSS_SUPER_GREED 12 MINIBOSS_SUPER_ENVY 13 MINIBOSS_SUPER_PRIDE 14 MINIBOSS_ULTRA_PRIDE 15 MINIBOSS_KRAMPUS 0 CHALLENGE_NORMAL 1 CHALLENGE_BOSS 10 CHALLENGE_WAVE 11 CHALLENGE_WAVE_BOSS 12 CHALLENGE_WAVE_GIDEON 0 LIBRARY_LEVEL_1 1 LIBRARY_LEVEL_2 2 LIBRARY_LEVEL_3 3 LIBRARY_LEVEL_4 4 LIBRARY_LEVEL_5 0 CRAWLSPACE_NORMAL 1 CRAWLSPACE_GIDEON 2 CRAWLSPACE_ROTGUT 2 CRAWLSPACE_GUS 3 CRAWLSPACE_ROTGUT_2 3 CRAWLSPACE_ROTGUT_HEART 4 CRAWLSPACE_BEAST 1 SECRET_EXIT_DOWNPOUR 2 SECRET_EXIT_MINES 3 SECRET_EXIT_MAUSOLEUM 1 DOWNPOUR_WHITE_FIRE 34 DOWNPOUR_MIRROR 1 MINES_YELLOW_BUTTON 10 MINES_MINESHAFT_ENTRANCE 11 MINESHAFT_LOBBY 20 MINESHAFT_KNIFE_PIECE 30 MINESHAFT_ROOM 31 MINESHAFT_ROOM_BACKWARDS 0 ASCENT_EXIT 1 ASCENT_BASEMENT 4 ASCENT_CAVES 7 ASCENT_DEPTHS 27 ASCENT_DOWNPOUR 29 ASCENT_MINES 31 ASCENT_MAUSOLEUM 0 HOME_ISAACS_BEDROOM 1 HOME_HALLWAY 2 HOME_MOMS_BEDROOM 3 HOME_LIVING_ROOM 10 HOME_CLOSET_PICKUPS 11 HOME_CLOSET_TAINTED 33 DEATH_CERTIFICATE_ENTRANCE 34 DEATH_CERTIFICATE_NORMAL 0 ARCADE_NORMAL 1 ARCADE_CAIN 0 CURSE_NORMAL 1 CURSE_VOODOO_HEAD 0 DEVIL_NORMAL 1 DEVIL_NUMBER_MAGNET 0 ANGEL_NORMAL 1 ANGEL_STAIRWAY 0 ISAACS_BEDROOM_NORMAL 99 ISAACS_BEDROOM_GENESIS 0 DEPTHS_NORMAL 1 DEPTHS_FOOL_ROOM 1 DEPTHS_MARKED_SKULL","tags":["Enum"]},{"location":"enums/ShaderType.html","title":"Enum \"Renderer.ShaderType\"","text":"Value Enumerator Comment 0 SHADER_COLOR_OFFSET 1 SHADER_PIXELATION 2 SHADER_BLOOM 3 SHADER_COLOR_CORRECTION 4 SHADER_HQ4X 5 SHADER_SHOCKWAVE 6 SHADER_OLDTV 7 SHADER_WATER 8 SHADER_HALLUCINATION 9 SHADER_COLOR_MOD 10 SHADER_COLOR_OFFSET_CHAMPION 11 SHADER_WATER_V2 12 SHADER_BACKGROUND 13 SHADER_WATER_OVERLAY 14 SHADER_UNK 15 SHADER_COLOR_OFFSET_DOGMA 16 SHADER_COLOR_OFFSET_GOLD 17 SHADER_DIZZY 18 SHADER_HEAT_WAVE 19 SHADER_MIRROR","tags":["Enum"]},{"location":"enums/SlotVariant.html","title":"Enum \"SlotVariant\"","text":"Value Enumerator Comment 1 SLOT_MACHINE 2 BLOOD_DONATION_MACHINE 2 TEMPERANCE_MACHINE 3 FORTUNE_TELLING_MACHINE 4 BEGGAR 5 DEVIL_BEGGAR 6 SHELL_GAME 7 KEY_MASTER 8 DONATION_MACHINE 9 BOMB_BUM 10 SHOP_RESTOCK_MACHINE 11 GREED_DONATION_MACHINE 12 MOMS_DRESSING_TABLE 13 BATTERY_BUM 14 HOME_CLOSET_PLAYER 15 HELL_GAME 16 CRANE_GAME 17 CONFESSIONAL 18 ROTTEN_BEGGAR","tags":["Enum"]},{"location":"enums/SpecialQuest.html","title":"Enum \"SpecialQuest\"","text":"Value Enumerator Comment -1 DISABLED 0 DEFAULT 1 MIRROR 2 MINESHAFT","tags":["Enum"]},{"location":"enums/StbGridType.html","title":"Enum \"StbGridType\"","text":"Value Enumerator Comment 0 DECORATION 1000 ROCK 1001 BOMB_ROCK 1002 ALT_ROCK 1003 MARKED_ROCK 1003 TINTED_ROCK 1008 ALT_ROCK_MARKED 1008 MARKED_SKULL 1009 EVENT_ROCK 1010 SPIKE_ROCK 1011 FOOLS_GOLD_ROCK 1300 TNT 1490 RED_POOP 1494 RAINBOW_POOP 1495 CHUNKY_POOP 1495 CORN_POOP 1496 GOLDEN_POOP 1497 BLACK_POOP 1498 HOLY_POOP 1498 WHITE_POOP 1499 GIANT_POOP 1500 POOP 1501 CHARMING_POOP 1900 BLOCK 1901 PILLAR 1901 TALL_BLOCK 1930 SPIKES 1931 RETRACTING_SPIKES 1940 COBWEB 1999 INVISIBLE_BLOCK 3000 PIT 3002 BUTTON_RAIL 3002 EVENT_RAIL 3009 EVENT_PIT 4000 KEY_BLOCK 4000 LOCK 4500 PRESSURE_PLATE 4500 BUTTON 5000 DEVIL_STATUE 5001 ANGEL_STATUE 6000 RAIL 6001 RAIL_PIT 6100 TELEPORTER 9000 TRAP_DOOR 9000 LEVEL_EXIT 9100 CRAWLSPACE 9100 STAIRCASE 10000 GRAVITY","tags":["Enum"]},{"location":"enums/StbPoopSubType.html","title":"Enum \"StbPoopSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 NON_REPLACEABLE","tags":["Enum"]},{"location":"enums/StbRailVariant.html","title":"Enum \"StbRailVariant\"","text":"Value Enumerator Comment 0 HORIZONTAL 1 VERTICAL 2 DOWN_TO_RIGHT 3 DOWN_TO_LEFT 4 UP_TO_RIGHT 5 UP_TO_LEFT 6 CROSSROAD 6 JUNCTION 7 END_LEFT 8 END_RIGHT 9 END_UP 10 END_DOWN 16 HORIZONTAL_CART_LEFT 32 HORIZONTAL_CART_RIGHT 17 VERTICAL_CART_UP 33 VERTICAL_CART_DOWN 80 MINESHAFT_HORIZONTAL_1 96 MINESHAFT_HORIZONTAL_2 112 MINESHAFT_HORIZONTAL_3 81 MINESHAFT_VERTICAL_1 97 MINESHAFT_VERTICAL_2 113 MINESHAFT_VERTICAL_3 82 MINESHAFT_DOWN_TO_RIGHT_1 98 MINESHAFT_DOWN_TO_RIGHT_2 83 MINESHAFT_DOWN_TO_LEFT_1 99 MINESHAFT_DOWN_TO_LEFT_2 84 MINESHAFT_UP_TO_RIGHT_1 100 MINESHAFT_UP_TO_RIGHT_2 85 MINESHAFT_UP_TO_LEFT_1 101 MINESHAFT_UP_TO_LEFT_2","tags":["Enum"]},{"location":"enums/StbRockSubType.html","title":"Enum \"StbRockSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 NON_REPLACEABLE","tags":["Enum"]},{"location":"enums/StbTeleporterSubType.html","title":"Enum \"StbTeleporterSubType\"","text":"Value Enumerator Comment 0 ACTIVE 1 INNACTIVE","tags":["Enum"]},{"location":"enums/StbType.html","title":"Enum \"StbType\"","text":"Value Enumerator Comment 0 SPECIAL_ROOMS 1 BASEMENT 2 CELLAR 3 BURNING_BASEMENT 4 CAVES 5 CATACOMBS 6 FLOODED_CAVES 7 DEPTHS 8 NECROPOLIS 9 DANK_DEPTHS 10 WOMB 11 UTERO 12 SCARRED_WOMB 13 BLUE_WOMB 14 SHEOL 15 CATHEDRAL 16 DARK_ROOM 17 CHEST 26 THE_VOID 26 VOID 27 DOWNPOUR 28 DROSS 29 MINES 30 ASHPIT 31 MAUSOLEUM 32 GEHENNA 33 CORPSE 34 MORTIS 35 HOME 36 ASCENT","tags":["Enum"]},{"location":"enums/TaintedMarksGroup.html","title":"Enum \"TaintedMarksGroup\"","text":"Value Enumerator Comment 0 BOTH 1 SOULSTONE 2 POLAROID_NEGATIVE","tags":["Enum"]},{"location":"enums/TeleporterVariant.html","title":"Enum \"TeleporterVariant\"","text":"Value Enumerator Comment 0 SQUARE 1 MOON 2 RHOMBUS 2 DIAMOND 3 M 3 HAGALAZ 4 PENTAGRAM 5 CROSS 6 TRIANGLE","tags":["Enum"]},{"location":"enums/WeaponModifier.html","title":"Enum \"WeaponModifier\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 CHOCOLATE_MILK 1 << 1 CURSED_EYE 1 << 2 BRIMSTONE 1 << 3 MONSTROS_LUNG 1 << 4 LUDOVICO_TECHNIQUE 1 << 5 ANTI_GRAVITY 1 << 6 TRACTOR_BEAM 1 << 7 SOY_MILK 1 << 7 ALMOND_MILK 1 << 8 NEPTUNUS 1 << 9 AZAZELS_SNEEZE 1 << 11 C_SECTION 1 << 30 FAMILIAR 1 << 31 BONE","tags":["Enum"]},{"location":"enums/WispSubType.html","title":"Enum \"WispSubType\"","text":"Value Enumerator Comment 65536 SPECIAL_FLAG 65536 NOTCHED_AXE_COAL 0 | SPECIAL_FLAG 65537 NOTCHED_AXE_IRON 1 | SPECIAL_FLAG 65538 NOTCHED_AXE_GOLD etc 65539 NOTCHED_AXE_DIAMON 65540 NOTCHED_AXE_REDSTONE 65541 JAR_OF_FLIES_1 65542 JAR_OF_FLIES_2 65543 JAR_OF_FLIES_3 65544 JAR_OF_FLIES_4 65545 JAR_OF_FLIES_5 65546 FRIENDLY_BALL_NORMAL 65547 FRIENDLY_BALL_EXPLOSIVE 65548 FRIENDLY_BALL_HOMING 65549 FRIENDLY_BALL_BRIMSTONE 65550 DELIRIOUS_MONSTRO 65551 DELIRIOUS_DUKE 65552 DELIRIOUS_LOKI 65553 DELIRIOUS_HAUNT 65554 LEMEGETON_VIRTUE","tags":["Enum"]},{"location":"enums/XMLNode.html","title":"Enum \"XMLNode\"","text":"Value Enumerator Comment 0 MOD 1 ENTITY 2 PLAYER 3 ITEM 4 TRINKET 5 PILL 6 CARD 7 MUSIC 8 SOUND 9 CHALLENGE 10 ITEMPOOL 11 NIGHTMARE 12 COSTUME 13 NULLCOSTUME 14 WISP 15 WISPCOLOR 16 CURSE 17 LOCUST 18 LOCUSTCOLOR 19 BOMBCOSTUME 20 CRAFTINGRECIPE 21 BOSSPOOL 22 BOSSPORTRAIT 23 CUTSCENE 24 STAGE 25 BACKDROP 26 ACHIEVEMENT 27 GIANTBOOK 28 BOSSRUSHWAVE 29 PLAYERFORM 30 NULLITEM","tags":["Enum"]},{"location":"examples/Beams.html","title":"Beams Example","text":"

Beams are used internally for rendering cords, such as Gello's umbilical cord. Note that this only handles rendering and not physics.

Beams are best demonstrated by looking at the Ball and Chain enemies found in Gehenna, which have a chain that dynamically moves and stretches depending on how far away the spiked ball is from where it is chained.

Beams are comprised of any number of Points.

"},{"location":"examples/Beams.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

A laser Beam of death incinerating enemies.

Example
local mod = RegisterMod(\"Repentogon Beam Example\", 1)\n\n-- Some constants.\nlocal DAMAGE_MULTIPLIER = 0.01\nlocal ITEM_ID = Isaac.GetItemIdByName(\"Life-Drain Gem\")\n\n-- First make a sprite.\nlocal sprite = Sprite()\nsprite:Load(\"gfx/chain_beam.anm2\", true)\nsprite:Play(\"Idle\", true)\n\n-- Handles the beam and damaging of the closest enemy to the player.\nfunction mod:HandleLifeSteam(player)\n    local data = player:GetData()\n\n    -- Check if the player has our item, first.\n    if not player:HasCollectible(ITEM_ID) then\n        return\n    end\n\n    -- Get the beam stored in player:GetData(), or create one if it doesn't exist.\n    local beam = data.LifeStealBeam\n    if not beam then\n        -- Create the beam. We don't need to use the overlay here.\n        data.LifeStealBeam = Beam(sprite, \"chain\", false, false)\n        beam = data.LifeStealBeam\n    end\n\n    -- Get the closest enemy\n    local closestDistance, closestEnemy\n    for _, enemy in ipairs(Isaac.GetRoomEntities()) do\n        if enemy:IsActiveEnemy() and enemy:IsVulnerableEnemy() then\n            local distanceToPlayer = enemy.Position:Distance(player.Position)\n            if not closestDistance or closestDistance > distanceToPlayer then\n                closestEnemy = enemy:ToNPC()\n                closestDistance = distanceToPlayer\n            end\n        end\n    end\n\n    -- If there's no enemy in the room, end the function early.\n    if not closestEnemy then\n        return\n    end\n\n    -- Deal damage every frame.\n    closestEnemy:TakeDamage(player.Damage * DAMAGE_MULTIPLIER, 0, EntityRef(player), 0)\n\n    -- Render the beam. The position is in screen coordinates.\n    -- The second argument, SpritesheetCoordinate, is what the Y position of the spritesheet is by the time this Point is reached.\n    -- So for example, two points of 0 and 64 SpritesheetCoordinate will render the sprite starting from y0 to 64.\n    -- An additional Point with a SpritesheetCoordinate of 0 will draw it in reverse from y64 to y0.\n    -- Width is an optional third argument that is a multiplier used to determine the width of the Beam.\n    beam:Add(Isaac.WorldToScreen(player.Position), 0)\n    beam:Add(Isaac.WorldToScreen(closestEnemy.Position), 64) -- 64 is the height of the spritesheet.\n\n    -- Render the beam. By default, this will clear all points.\n    beam:Render()\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, mod.HandleLifeSteam)\n
"},{"location":"examples/Capsules.html","title":"Capsules Example","text":"

Capsules are used by the game for collision detection. All entities have a collision capsule whose shape is defined by their XML markup. Additionally, you can use a null layer frame's size and position in a sprite's animation to generate a null capsule.

Null layers are added in the sprite's .anm2 file by setting the type to \"Null\" when adding a layer. The size and relative position of the null layer is dependant on the position and scale of the frame.

You can use Entity:GetNullCapsule() to generate a capsule of the current frame in a specified null layer.

"},{"location":"examples/Capsules.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

An example of a capsule hitbox using a large lead pipe.

Example
local exampleMod = RegisterMod(\"Repentogon Null Capsule Example\", 1)\nlocal sfx = SFXManager()\n\n-- Setup some constants.\nlocal PIPE_ITEM_ID = Isaac.GetItemIdByName(\"Swinging Pipe\")\nlocal PIPE_EFFECT_ID = Isaac.GetEntityVariantByName(\"Pipe Swing\")\nlocal DAMAGE_MULTIPLIER = 2.5\n\n---@param player EntityPlayer\nfunction exampleMod:ActivatePipeItem(_, _, player, flags)\n    -- Don't run a second time for Car Battery, because it would be strange for an item like this.\n    if flags & UseFlag.USE_CARBATTERY == UseFlag.USE_CARBATTERY then\n        return\n    end\n\n    -- Spawn the pipe effect. We will be checking for things to damage in the update callback.\n    local effect = Isaac.Spawn(EntityType.ENTITY_EFFECT, PIPE_EFFECT_ID, 0, player.Position, Vector.Zero, player):ToEffect()\n    effect:FollowParent(player)\n\n    -- Sound effects.\n    sfx:Play(SoundEffect.SOUND_SWORD_SPIN)\nend\n\n-- Connect the callback, only for our item.\nexampleMod:AddCallback(ModCallbacks.MC_USE_ITEM, exampleMod.ActivatePipeItem, PIPE_ITEM_ID)\n\n-- Now, let's handle capsules.\n-- Capsules are our hitboxes.\n---@param pipe EntityEffect\nfunction exampleMod:PipeEffectUpdate(pipe)\n    local sprite = pipe:GetSprite()\n    local player = pipe.Parent:ToPlayer()\n    local data = pipe:GetData()\n\n    -- We are going to use this table as a way to make sure enemies are only hurt once in a swing.\n    -- This line will either set the hit blacklist to itself, or create one if it doesn't exist.\n    data.HitBlacklist = data.HitBlacklist or {}\n\n    -- Handle removing the pipe when the spin is done.\n    if sprite:IsFinished(\"Spin\") then\n        pipe:Remove()\n        return\n    end\n\n    -- We're doing a for loop before because the effect is based off of Spirit Sword's anm2.\n    -- Spirit Sword's anm2 has two hitboxes with the same name with a different number at the ending, so we use a for loop to avoid repeating code.\n    for i = 1, 2 do\n        -- Get the \"null capsule\", which is the hitbox defined by the null layer in the anm2.\n        local capsule = pipe:GetNullCapsule(\"Hit\" .. i)\n\n        -- Search for all enemies within the capsule.\n        for _, enemy in ipairs(Isaac.FindInCapsule(capsule, EntityPartition.ENEMY)) do\n            -- Make sure it can be hurt.\n            if enemy:IsVulnerableEnemy()\n            and enemy:IsActiveEnemy()\n            and not data.HitBlacklist[GetPtrHash(enemy)] then\n                -- Now hurt it.\n                enemy:TakeDamage(player.Damage * DAMAGE_MULTIPLIER, 0, EntityRef(player), 0)\n\n                -- Add it to the blacklist, so it can't be hurt again.\n                data.HitBlacklist[GetPtrHash(enemy)] = true\n\n                -- Do some fancy effects, while we're at it.\n                enemy:BloodExplode()\n                enemy:MakeBloodPoof(enemy.Position, nil, 0.5)\n                sfx:Play(SoundEffect.SOUND_DEATH_BURST_LARGE)\n            end\n        end\n    end\nend\n\n-- Connect the callback, only for our effect.\nexampleMod:AddCallback(ModCallbacks.MC_POST_EFFECT_UPDATE, exampleMod.PipeEffectUpdate, PIPE_EFFECT_ID)\n
"},{"location":"examples/WeightedOutcomes.html","title":"Weighted Outcomes Example","text":"

The WeightedOutcomePicker class allows choosing a random outcome from a weighted list using an RNG object.

A weighted chance system is commonly used by games to determine loot tables and other things where some items in a list of possible outcomes should have a lower chance than others. An outcome's chance to be chosen is determined by its weight divided by the sum of the weight of all outcomes.

The weight of each outcome don't have to add up to 100. The following code snippet adds up to each outcome having a 50% chance to chosen. 50 (weight) divided by sum of the weight of all outcomes (100) is 0.5 (50%).

local weightedOutcomePicker = WeightedOutcomePicker()\n\n-- Each outcome has a 50% chance to be chosen. (50 / 100)\nweightedOutcomePicker:AddOutcomeWeight(10, 50)\nweightedOutcomePicker:AddOutcomeWeight(20, 50)\n

Meanwhile, this code snippet has each outcome having a 33% chance to be chosen. 50 (weight) divided by sum of the weight of all outcomes (150) is 0.33 (33%).

local weightedOutcomePicker = WeightedOutcomePicker()\n\n-- Each outcome has a 33% chance to be chosen. (50 / 150)\nweightedOutcomePicker:AddOutcomeWeight(10, 50)\nweightedOutcomePicker:AddOutcomeWeight(20, 50)\nweightedOutcomePicker:AddOutcomeWeight(30, 50)\n

The follow example mod adds a new chest variant that only gives blue items, and uses a WeightedOutcomePicker filled with collectible types to make stronger items more rare.

"},{"location":"examples/WeightedOutcomes.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

A blue chest giving blue items.

Example
local mod = RegisterMod(\"Repentogon Custom Chest Example\", 1)\nlocal sfx = SFXManager()\n\nlocal BLUE_CHEST_SUBTYPE = Isaac.GetEntitySubTypeByName(\"Blue Chest\")\n\n-- First, let's create our WeightedOutcomePicker.\n-- This allows us to assign weights to a number outcome, and randomly chooses an outcome based on the total weight.\n-- To be specific, it's (itemWeight / sumOfItemWeights).\n-- We will be making a WeightedOutcomePicker for the items in which the chest can give.\nlocal itemOutcomes = WeightedOutcomePicker()\n\n-- Just add a few blue items. You don't HAVE to make the weights add up to 100, they can add up to anything, but it's easier to understand this way.\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_CONVERTER, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_ISAACS_TEARS, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLUE_BOX, 10) -- Pandora's Box\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_TELEPORT, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_D12, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_CUBE_BABY, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_PISCES, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLUE_MAP, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLANKET, 5)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_EVIL_CHARM, 5)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_FATE, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_RELIC, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_GLOWING_HOUR_GLASS, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_PARASITOID, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_VENUS, 1)\n\n-- Creates a pedestal that looks like our chest.\nfunction mod:CreateChestPedestal(location, rng, isCoinChest)\n    -- Get an outcome, aka a collectible type.\n    local collectibleId = itemOutcomes:PickOutcome(rng)\n\n    -- Spawn a pedestal with that item, and change\n    local itemPedestal = Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, collectibleId, location, Vector.Zero, nil):ToPickup()\n\n    -- Replace the item pedestal's altar spritesheet with our own.\n    local sprite = itemPedestal:GetSprite()\n    sprite:ReplaceSpritesheet(5, \"gfx/items/blue_chest_altar.png\", true)\n\n    -- Remove the poof effect from the pedestal spawning.\n    itemPedestal:ClearEntityFlags(EntityFlag.FLAG_APPEAR)\n\n    -- Change the sprite. In the anm2, 5 is the frame with the opened golden chest, and 16 is the frame with the coin version.\n    -- Our altar spritesheet replaces those two sprites, so we will use those frames.\n    if isCoinChest then\n        itemPedestal:SetAlternatePedestal(16)\n    else\n        itemPedestal:SetAlternatePedestal(4)\n    end\n\n    --! To be clear, leaving and entering the room again or leaving and continuing the run will cause the pedestal to turn into a normal golden chest pedestal.\n    --! This can be fixed by using save data to track what pedestals are blue chest pedestals.\n    --! That is outside the scope of this example mod, but keep this in mind.\nend\n\n-- Handle giving an item.\nfunction mod:HandleGivingLoot(chest, collider)\n    local player = collider:ToPlayer()\n    local sprite = chest:GetSprite()\n\n    -- If a player didn't touch the chest, return (collider:ToPlayer() returns nil if it's not a player).\n    -- Also return if it's not our chest.\n    if not player or chest.SubType ~= BLUE_CHEST_SUBTYPE then\n        return\n    end\n\n    -- Make sure it's not already being opened.\n    if not sprite:IsPlaying(\"Open\")  then\n        -- Check if we should open the chest, and remove either a coin or a key if so.\n        local shouldOpen = false\n        local someoneHasPayToPlay = PlayerManager.AnyoneHasCollectible(CollectibleType.COLLECTIBLE_PAY_TO_PLAY)\n        if someoneHasPayToPlay and player:GetNumCoins() > 0 then\n            player:AddCoins(-1)\n            shouldOpen = true\n        elseif player:HasGoldenKey() or player:GetNumKeys() > 0 then\n            player:AddKeys(-1)\n            shouldOpen = true\n        end\n\n        -- If we are opening the chest, make an RNG object based on the drop seed of the chest and run the pedestal creation code.\n        if shouldOpen then\n            local rng = RNG()\n            rng:SetSeed(chest.DropSeed)\n\n            -- Spawn our pedestal.\n            mod:CreateChestPedestal(chest.Position, rng, someoneHasPayToPlay)\n\n            -- Remove the opened chest.\n            -- Wait 4 frames to do this so that there isn't a brief period where there's no visible sprite.\n            -- We can delay the function by a frame by using a timer.\n            Isaac.CreateTimer(function ()\n                chest:Remove()\n            end, 4, 1, false)\n\n            -- Play the animation so that this doesn't happen again.\n            sprite:Play(\"Open\")\n\n            -- Play the sound.\n            sfx:Play(SoundEffect.SOUND_CHEST_OPEN)\n        end\n    end\n\n    -- Cancel internal code of the normal chest and just allow collision.\n    return {\n        Collide = true,\n        SkipCollisionEffects = true,\n    }\nend\n\nmod:AddCallback(ModCallbacks.MC_PRE_PICKUP_COLLISION, mod.HandleGivingLoot, PickupVariant.PICKUP_CHEST)\n\n-- Handle general update logic.\nfunction mod:HandleBlueChestUpdate(chest)\n    local sprite = chest:GetSprite()\n\n    -- End the callback early if it's not our chest.\n    if chest.SubType ~= BLUE_CHEST_SUBTYPE then\n        return\n    end\n\n    -- Play sound.\n    if sprite:IsEventTriggered(\"DropSound\") then\n        sfx:Play(SoundEffect.SOUND_CHEST_DROP)\n    end\n\n    -- Handle switching animations.\n    if sprite:IsFinished(\"Appear\") then\n        sprite:Play(\"Idle\", true)\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_UPDATE, mod.HandleBlueChestUpdate, PickupVariant.PICKUP_CHEST)\n\n-- Handle the chest using the pay-to-play sprite.\nfunction mod:HandlePayToPlay(chest)\n    if chest.SubType == BLUE_CHEST_SUBTYPE and PlayerManager.AnyoneHasCollectible(CollectibleType.COLLECTIBLE_PAY_TO_PLAY) then\n        local sprite = chest:GetSprite()\n        sprite:ReplaceSpritesheet(0, \"gfx/items/pick ups/blue_chest_coinslot.png\", true)\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, mod.HandlePayToPlay, PickupVariant.PICKUP_CHEST)\n
"},{"location":"menus/BestiaryMenu.html","title":"Global Class \"BestiaryMenu\"","text":"Info

You can get this class by using the BestiaryMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = BestiaryMenu.GetBestiaryMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getbestiarymenusprite","title":"GetBestiaryMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getbestiarymenusprite","title":"Sprite GetBestiaryMenuSprite ( )","text":"

Paper sprite and all other decoration.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getdeathscreensprite","title":"GetDeathScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getdeathscreensprite","title":"Sprite GetDeathScreenSprite ( )","text":"

Selectable elements that show the DeathScreen sprite of the enemies.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getenemysprite","title":"GetEnemySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getenemysprite","title":"Sprite GetEnemySprite ( )","text":"

Used for the animated enemy preview.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getselectedpage","title":"GetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getselectedpage","title":"int GetSelectedPage ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getlastenemypageid","title":"GetLastEnemyPageID ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getlastenemypageid","title":"int GetLastEnemyPageID ( )","text":"

Gets the id of the last page enemies are displayed. Pages afterwards are reserved for bosses.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnumbosspages","title":"GetNumBossPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnumbosspages","title":"int GetNumBossPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnummonsterpages","title":"GetNumMonsterPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnummonsterpages","title":"int GetNumMonsterPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnumpages","title":"GetNumPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnumpages","title":"int GetNumPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#setselectedpage","title":"SetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#void-setselectedpage-int-page","title":"void SetSelectedPage ( int Page )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html","title":"Global Class \"ChallengeMenu\"","text":"Info

You can get this class by using the ChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#getselectedchallengeid","title":"GetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#int-getselectedchallengeid","title":"int GetSelectedChallengeID ( )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#setselectedchallengeid","title":"SetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#void-setselectedchallengeid-int-challengeid","title":"void SetSelectedChallengeID ( int ChallengeID )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html","title":"Global Class \"CharacterMenu\"","text":"Info

You can get this class by using the CharacterMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CharacterMenu.GetBGSprite()\n
","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getbigcharpagesprite","title":"GetBigCharPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getbigcharpagesprite","title":"Sprite GetBigCharPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getbgsprite","title":"GetBGSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getbgsprite","title":"Sprite GetBGSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterportraitsprite","title":"GetCharacterPortraitSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getcharacterportraitsprite","title":"Sprite GetCharacterPortraitSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterwheeldepth","title":"GetCharacterWheelDepth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getcharacterwheeldepth","title":"float GetCharacterWheelDepth ( )","text":"

Returns the depth of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterwheelwidth","title":"GetCharacterWheelWidth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getcharacterwheelwidth","title":"float GetCharacterWheelWidth ( )","text":"

Returns the width of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficulty","title":"GetDifficulty ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getdifficulty","title":"int GetDifficulty ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficultypagesprite","title":"GetDifficultyPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getdifficultypagesprite","title":"Sprite GetDifficultyPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficultyoverlaysprite","title":"GetDifficultyOverlaySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getdifficultyoverlaysprite","title":"Sprite GetDifficultyOverlaySprite ( )","text":"

The blood stain when selecting Hard mode / Greedier

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#geteastereggpagesprite","title":"GetEastereggPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-geteastereggpagesprite","title":"Sprite GetEastereggPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getischaracterunlocked","title":"GetIsCharacterUnlocked ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#boolean-getischaracterunlocked","title":"boolean GetIsCharacterUnlocked ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getgreeddecosprite","title":"GetGreedDecoSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getgreeddecosprite","title":"Sprite GetGreedDecoSprite ( )","text":"

Displayed when greedmode is selected

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getnumcharacters","title":"GetNumCharacters ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getnumcharacters","title":"int GetNumCharacters ( )","text":"

Number of characters in the wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getpageswapwidgetsprite","title":"GetPageSwapWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getpageswapwidgetsprite","title":"Sprite GetPageSwapWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getscrollspeed","title":"GetScrollSpeed ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getscrollspeed","title":"float GetScrollSpeed ( )","text":"

Returns the speed of the animation playing when rotating the character selection wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedentrysprite","title":"GetSeedEntrySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedentrysprite","title":"Sprite GetSeedEntrySprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedpagesprite","title":"GetSeedPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedpagesprite","title":"Sprite GetSeedPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedunlockpagesprite","title":"GetSeedUnlockPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedunlockpagesprite","title":"Sprite GetSeedUnlockPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getselectedcharactermenu","title":"GetSelectedCharacterMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getselectedcharactermenu","title":"int GetSelectedCharacterMenu ( )","text":"

0 for Normal, 1 for Tainted

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getselectedcharacterid","title":"GetSelectedCharacterID ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getselectedcharacterid","title":"int GetSelectedCharacterID ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#gettaintedbgdecosprite","title":"GetTaintedBGDecoSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-gettaintedbgdecosprite","title":"Sprite GetTaintedBGDecoSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getwinstreakpagesprite","title":"GetWinStreakPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getwinstreakpagesprite","title":"Sprite GetWinStreakPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setcharacterwheeldepth","title":"SetCharacterWheelDepth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setcharacterwheeldepth-float-value","title":"void SetCharacterWheelDepth ( float Value )","text":"

Set the depth of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setcharacterwheelwidth","title":"SetCharacterWheelWidth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setcharacterwheelwidth-float-value","title":"void SetCharacterWheelWidth ( float Value )","text":"

Set the width of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setdifficulty","title":"SetDifficulty ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setdifficulty-difficulty-difficulty","title":"void SetDifficulty ( Difficulty Difficulty )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setischaracterunlocked","title":"SetIsCharacterUnlocked ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setischaracterunlocked-boolean-isunlocked","title":"void SetIsCharacterUnlocked ( boolean IsUnlocked )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setscrollspeed","title":"SetScrollSpeed ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setscrollspeed-float-speed","title":"void SetScrollSpeed ( float Speed )","text":"

Set the speed of the animation playing when rotating the character selection wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setselectedcharactermenu","title":"SetSelectedCharacterMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setselectedcharactermenu-int-menu","title":"void SetSelectedCharacterMenu ( int Menu )","text":"

0 for Normal, 1 for Tainted

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setselectedcharacterid","title":"SetSelectedCharacterID ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setselectedcharacterid-int-characterid","title":"void SetSelectedCharacterID ( int CharacterID )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html","title":"Global Class \"CollectionMenu\"","text":"Info

You can get this class by using the CollectionMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CollectionMenu.GetDeathScreenSprite()\n
","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getcollectionmenusprite","title":"GetCollectionMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#sprite-getcollectionmenusprite","title":"Sprite GetCollectionMenuSprite ( )","text":"

Paper sprite and all other decoration.

","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getdeathscreensprite","title":"GetDeathScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#sprite-getdeathscreensprite","title":"Sprite GetDeathScreenSprite ( )","text":"

Selectable elements that show the DeathScreen sprite of the items.

","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getselectedpage","title":"GetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#int-getselectedpage","title":"int GetSelectedPage ( )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#setselectedpage","title":"SetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#void-setselectedpage-int-page","title":"void SetSelectedPage ( int Page )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html","title":"Global Class \"ControllerSelectMenu\"","text":"Info

You can get this class by using the ControllerSelectMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ControllerSelectMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html","title":"Global Class \"CustomChallengeMenu\"","text":"Info

You can get this class by using the CustomChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CustomChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#getselectedchallengeid","title":"GetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#int-getselectedchallengeid","title":"int GetSelectedChallengeID ( )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#setselectedchallengeid","title":"SetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#void-setselectedchallengeid-int-challengeid","title":"void SetSelectedChallengeID ( int ChallengeID )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html","title":"Global Class \"CutscenesMenu\"","text":"Info

You can get this class by using the CutscenesMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CutscenesMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html","title":"Global Class \"DailyChallengeMenu\"","text":"Info

You can get this class by using the DailyChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = DailyChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getleaderboardsprite","title":"GetLeaderboardSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getleaderboardsprite","title":"Sprite GetLeaderboardSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getleaderboardscoremenusprite","title":"GetLeaderboardScoreMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getleaderboardscoremenusprite","title":"Sprite GetLeaderboardScoreMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimelefthours","title":"GetTimeLeftHours ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimelefthours","title":"int GetTimeLeftHours ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimeleftminutes","title":"GetTimeLeftMinutes ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimeleftminutes","title":"int GetTimeLeftMinutes ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimeleftseconds","title":"GetTimeLeftSeconds ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimeleftseconds","title":"int GetTimeLeftSeconds ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#isleaderboardvisible","title":"IsLeaderboardVisible ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#boolean-isleaderboardvisible","title":"boolean IsLeaderboardVisible ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#void-setselectedelement-int-elementid","title":"void SetSelectedElement ( int ElementID )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html","title":"Global Class \"KeyConfigMenu\"","text":"Info

You can get this class by using the KeyConfigMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = KeyConfigMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getselectedcolumn","title":"GetSelectedColumn ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#int-getselectedcolumn","title":"int GetSelectedColumn ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#setselectedcolumn","title":"SetSelectedColumn ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#void-setselectedcolumn-int-column","title":"void SetSelectedColumn ( int Column )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#iseditactive","title":"IsEditActive ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#boolean-iseditactive","title":"boolean IsEditActive ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html","title":"Global Class \"MainMenu\"","text":"Info

You can get this class by using the MainMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = MainMenu.GetGameMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/MainMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getcontinuewidgetsprite","title":"GetContinueWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#sprite-getcontinuewidgetsprite","title":"Sprite GetContinueWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getgamemenusprite","title":"GetGameMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#sprite-getgamemenusprite","title":"Sprite GetGameMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html","title":"Global Class \"MenuManager\"","text":"Info

You can get this class by using the MenuManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = MenuManager.GetBackWidgetSprite()\n
","tags":["Global","Class"]},{"location":"menus/MenuManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getactivemenu","title":"GetActiveMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#mainmenutype-getactivemenu","title":"MainMenuType GetActiveMenu ( )","text":"

Returns the MainMenuType of the currently active (visible) section of the main menu.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getbackwidgetsprite","title":"GetBackWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getbackwidgetsprite","title":"Sprite GetBackWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getcolormodifierlerpamount","title":"GetColorModifierLerpAmount ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-getcolormodifierlerpamount","title":"ColorModifier GetColorModifierLerpAmount ( )","text":"Info

This is formatted as the absolute rate of change (ie, all values are positive).

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getcurrentcolormodifier","title":"GetCurrentColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-getcurrentcolormodifier","title":"ColorModifier GetCurrentColorModifier ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getselectwidgetsprite","title":"GetSelectWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getselectwidgetsprite","title":"Sprite GetSelectWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getshadowsprite","title":"GetShadowSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getshadowsprite","title":"Sprite GetShadowSprite ( )","text":"

Shadow decoration that looks like isaacs head.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#gettargetcolormodifier","title":"GetTargetColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-gettargetcolormodifier","title":"ColorModifier GetTargetColorModifier ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getviewposition","title":"GetViewPosition ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#vector-getviewposition","title":"Vector GetViewPosition ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setactivemenu","title":"SetActiveMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#int-setactivemenu-mainmenutype-menu","title":"int SetActiveMenu (MainMenuType Menu )","text":"

Changes the active menu on the main menu to match the input menutype.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setcolormodifier","title":"SetColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#void-setcolormodifier-colormodifier-colormodifier-boolean-lerp-true-float-rate-0015","title":"void SetColorModifier ( ColorModifier ColorModifier, boolean Lerp = true, float Rate = 0.015 )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setviewposition","title":"SetViewPosition ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#void-setviewposition-vector-position","title":"void SetViewPosition ( Vector Position )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html","title":"Global Class \"ModsMenu\"","text":"Info

You can get this class by using the ModsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ModsMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#waslistedited","title":"WasListEdited ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#boolean-waslistedited","title":"boolean WasListEdited ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html","title":"Global Class \"OptionsMenu\"","text":"Info

You can get this class by using the OptionsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = OptionsMenu.GetGammaWidgetSprite()\n
","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getgammawidgetsprite","title":"GetGammaWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#sprite-getgammawidgetsprite","title":"Sprite GetGammaWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getoptionsmenusprite","title":"GetOptionsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#sprite-getoptionsmenusprite","title":"Sprite GetOptionsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html","title":"Global Class \"SaveMenu\"","text":"Info

You can get this class by using the SaveMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = SaveMenu.GetSaveSelectMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsaveselectionmenusprite","title":"GetSaveSelectionMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsaveselectmenusprite","title":"Sprite GetSaveSelectMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getdeletebuttonsprite","title":"GetDeleteButtonSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getdeletebuttonsprite","title":"Sprite GetDeleteButtonSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getdeletepopupsprite","title":"GetDeletePopupSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getdeletepopupsprite","title":"Sprite GetDeletePopupSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave1drawingsprite","title":"GetSave1DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave1drawingsprite","title":"Sprite GetSave1DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave2drawingsprite","title":"GetSave2DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave2drawingsprite","title":"Sprite GetSave2DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave3drawingsprite","title":"GetSave3DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave3drawingsprite","title":"Sprite GetSave3DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#isdeleteactive","title":"IsDeleteActive ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#boolean-isdeleteactive","title":"boolean IsDeleteActive ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html","title":"Global Class \"SpecialSeedsMenu\"","text":"Info

You can get this class by using the SpecialSeedsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = SpecialSeedsMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html","title":"Global Class \"StatsMenu\"","text":"Info

You can get this class by using the StatsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = StatsMenu.GetSecretsMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenusprite","title":"GetSecretsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenusprite","title":"Sprite GetSecretsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenucursorleftsprite","title":"GetSecretsMenuCursorLeftSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenucursorleftsprite","title":"Sprite GetSecretsMenuCursorLeftSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenucursorrightsprite","title":"GetSecretsMenuCursorRightSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenucursorrightsprite","title":"Sprite GetSecretsMenuCursorRightSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite1","title":"GetSecretsMenuMiniSprite1 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite1","title":"Sprite GetSecretsMenuMiniSprite1 ( )","text":"

Used for left scroll transition animation.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite2","title":"GetSecretsMenuMiniSprite2 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite2","title":"Sprite GetSecretsMenuMiniSprite2 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite3","title":"GetSecretsMenuMiniSprite3 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite3","title":"Sprite GetSecretsMenuMiniSprite3 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite4","title":"GetSecretsMenuMiniSprite4 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite4","title":"Sprite GetSecretsMenuMiniSprite4 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite5","title":"GetSecretsMenuMiniSprite5 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite5","title":"Sprite GetSecretsMenuMiniSprite5 ( )","text":"

Center mini paper. Used to display currently highlighted achievement.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite6","title":"GetSecretsMenuMiniSprite6 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite6","title":"Sprite GetSecretsMenuMiniSprite6 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite7","title":"GetSecretsMenuMiniSprite7 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite7","title":"Sprite GetSecretsMenuMiniSprite7 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite8","title":"GetSecretsMenuMiniSprite8 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite8","title":"Sprite GetSecretsMenuMiniSprite8 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite9","title":"GetSecretsMenuMiniSprite9 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite9","title":"Sprite GetSecretsMenuMiniSprite9 ( )","text":"

Used for right scroll transition animation.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getstatsmenusprite","title":"GetStatsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getstatsmenusprite","title":"Sprite GetStatsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#issecretsmenuvisible","title":"IsSecretsMenuVisible ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#boolean-issecretsmenuvisible","title":"boolean IsSecretsMenuVisible ( )","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html","title":"Global Class \"TitleMenu\"","text":"Info

You can get this class by using the TitleMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = TitleMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"renderer/Beam.html","title":"Class \"Beam\"","text":"

An example mod using the Beam class can be found here.

This class provides more streamlined access to the BeamRenderer used internally for rendering cords, ie Evis, Gello, Vis Fatty, etc. Note that this is a low-level class that strictly handles rendering. We hope to later provide an extension of this class capable of handling the physics calculations and automatic point adjustment required for cords, but this is a complex system that will require a non-trivial amount of effort to implement.

","tags":["Class"]},{"location":"renderer/Beam.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam","title":"Beam ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam-beam-sprite-sprite-int-layer-boolean-useoverlay-boolean-unkbool","title":"Beam Beam ( Sprite Sprite, int Layer, boolean UseOverlay, boolean UnkBool )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam-beam-sprite-sprite-string-layername-boolean-useoverlay-boolean-unkbool","title":"Beam Beam ( Sprite Sprite, string LayerName, boolean UseOverlay, boolean UnkBool )","text":"Warning

The Sprite used in the Beam must be in the same \"scope\" as the Beam. For example, a global Sprite and local Beam works, but local Sprite and global Beam won't. They can also both be global/local or in the same table.

Example Code

Here is an example of how you would use this class:

local spritesheetHeight = 64\n\nlocal sprite = Sprite()\nsprite:Load(\"gfx/1000.193_anima chain.anm2\", true)\nsprite:Play(\"Idle\", false)\n\nlocal layer = sprite:GetLayer(\"chain\")\nlayer:SetWrapSMode(1)\nlayer:SetWrapTMode(0)\n\nlocal chain = Beam(sprite, \"chain\", false, false)\n\nmod:AddCallback(ModCallbacks.MC_PRE_PLAYER_RENDER, function(_, player)\n    local origin = Isaac.WorldToScreen(Game():GetRoom():GetCenterPos())\n    local target = Isaac.WorldToScreen(player.Position)\n    local coord = target:Distance(origin)\n    chain:Add(origin,0)\n    chain:Add(target,coord)\n    chain:Render()\nend)\n
","tags":["Class"]},{"location":"renderer/Beam.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Beam.html#add","title":"Add ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-add-vector-position-float-spritesheetcoordinate-float-width-10","title":"void Add ( Vector Position, float SpritesheetCoordinate, float Width = 1.0 )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-add-point-point","title":"void Add ( Point Point )","text":"

Adds a point to the beam. Points are stored in order of adding.

Info

SpritesheetCoordinate is, to our current understanding, the Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of 0 and 64 SpritesheetCoordinate will render the spritesheet starting from y 0 to y 64, while an additional third point of 0 will draw it in reverse from y 64 to y 0. Width acts as a multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points.

","tags":["Class"]},{"location":"renderer/Beam.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#int-getlayer","title":"int GetLayer ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getpoints","title":"GetPoints ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#point-getpoints","title":"Point[] GetPoints ( )","text":"

Returns a table of the Points currently stored.

","tags":["Class"]},{"location":"renderer/Beam.html#getsprite","title":"GetSprite ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getunkbool","title":"GetUnkBool ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#boolean-getunkbool","title":"boolean GetUnkBool ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getuseoverlay","title":"GetUseOverlay ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#boolean-getuseoverlay","title":"boolean GetUseOverlay ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#render","title":"Render ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-render-boolean-clearpoints-true","title":"void Render ( boolean ClearPoints = true )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setlayer","title":"SetLayer ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setlayer-int-layerid","title":"void SetLayer ( int LayerID )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setlayer-string-layername","title":"void SetLayer ( string LayerName )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setpoints","title":"SetPoints ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setpoints-point-points","title":"void SetPoints ( Point[] Points )","text":"

Sets the Points used by this.

","tags":["Class"]},{"location":"renderer/Beam.html#setsprite","title":"SetSprite ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite","title":"void SetSprite ( Sprite Sprite )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite-string-layername-bool-useoverlay","title":"void SetSprite ( Sprite Sprite, string LayerName, bool UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite-int-layerid-bool-useoverlay","title":"void SetSprite ( Sprite Sprite, int LayerID, bool UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setunkbool","title":"SetUnkBool ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setunkbool-boolean-unkbool","title":"void SetUnkBool ( boolean UnkBool )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setuseoverlay","title":"SetUseOverlay ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setuseoverlay-boolean-useoverlay","title":"void SetUseOverlay ( boolean UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html","title":"Class \"BlendMode\"","text":"Info

You can get this class by using the following functions:

  • LayerState:GetBlendMode()
Example Code
local blendMode = Sprite():GetLayer(0):GetBlendMode()\n
Warning

Largely undocumented. The Flag variables are likely OpenGL enums, but they are currently unknown.

","tags":["Class"]},{"location":"renderer/BlendMode.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#setmode","title":"SetMode ()","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#void-setmode-int-mode","title":"void SetMode ( int mode )","text":"

Ranges from 0-2. Invalid modes are ignored. The game generally uses 1, but uses 2 for multiplicative blending.

Info

TODO: The game manually sets blend modes other than what's provided here. Document and add to this function.

","tags":["Class"]},{"location":"renderer/BlendMode.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag1","title":"Flag1","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag1","title":"int Flag1","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag2","title":"Flag2","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag2","title":"int Flag2","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag3","title":"Flag3","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag3","title":"int Flag3","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag4","title":"Flag4","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag4","title":"int Flag4","text":"","tags":["Class"]},{"location":"renderer/CustomRendering.html","title":"Introduction","text":"

Custom rendering is a feature in Repentogon that gives you an extremely fine grained control over what gets rendered by the game in any given frame. In particular, it allows you to run custom shaders when the game renders individual objects, instead of being limited to running a shader on the entire scene once it has been computed.

"},{"location":"renderer/CustomRendering.html#on-rendering","title":"On rendering","text":"

This section presents how the render system of the game works. It is not crucial to understand it, but it can give some insight in case you get stuck on how to achieve something with the tools at your disposal in Repentogon.

On the PC version of Repentance, the game uses OpenGL for rendering. I will assume that you have a passing knowledge of OpenGL in this tutorial. If you wish to get familiar with it, this website has a very easy to follow tutorial on the topic.

Render operations on the C++ side are much more complicated than what the Lua side might suggest. For instance, to draw a sprite playing a certain animation at a certain frame, one would simply create the sprite, bind an ANM2 to it, configure the animation and frame, and call Render. On the C++ side, this results in multiple render operations. More precisely, there will be one render operation for every visible animation layer at the given frame. So an ANM2 with an animation that uses two layers will result in two render operations on the C++ side.

Render operations are not performed on the fly; they are queued. The game uses an array that stores the description of every render operation (what is the source texture, where to render it etc.), and the KAGE::Graphics::Manager::apply_frame_images function iterates over this array and apply the render operations in the order in which they were queued.

Render operations are extremely inconsistent. For instance, in order to render six gapers in a room, the game will queue six different operations. On the other hand, to render ten bullets fired by a single enemy, the game will queue a single render operation. The data at your disposal in Lua therefore needs to be interpreted relative to the context that is associated with it. See the table TODO at TODO for a breakdown.

The game uses the glDrawElements function to draw a set of vertices. The mode parameter is always set to GL_TRIANGLES. Isaac is a sprite-based game, and as such the game draws rectangles, i.e. two triangles.

C++ devs note

Most developers would perform a call to glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ...) prior to calling glDrawElements in order to tell the function where to find the indices of the vertices in the vertex buffer. In Isaac no such call is made, and the elements array is always given as the data parameter of the call to glDrawElements.

Additionnally, the game does not use a vertex array and computes both the vertex array and the elements array on the fly when render operations are performed. As a result, you won't find call to glBindVertexArray in the source of the game.

Calls to glDrawElements abound across rendering, with the game performing dozens of them in order to render a single frame. This is due to the fact that render operations are dequeued and performed one after the other.

The MC_PRE_OPENGL_RENDER callback is fired prior to every call to glDrawElements.

C++ devs note

To be extremely precise, the execution of the callback happens immediately before the call to glDrawElements: the C++ stack already holds all the parameters of the function.

"},{"location":"renderer/CustomRendering.html#custom-rendering","title":"Custom rendering","text":"

In order to perform custom rendering, you need to attach a function to MC_PRE_OPENGL_RENDER callback. This function is called with the following parameters :

  • The vertex buffer that contains the vertices that are going to be sent to the vertex shader. This is an instance of the NativeVertexBuffer class.
  • The elements array indicating in which order the vertices will be drawn. This is an instance of the ElementsArray class.
  • The ID of the shader that will be executed. This is a value from the Renderer.Shaders enumeration.
  • TODO The context of the render operation. In other words, what is being drawn.

There are two ways to work in this callback. The first is limited modifications to the input. The second is completely custom rendering.

"},{"location":"renderer/CustomRendering.html#modifications-of-the-input-of-mc_pre_opengl_render","title":"Modifications of the input of MC_PRE_OPENGL_RENDER","text":"

To indicate to the Repentogon runtime that you want to perform this kind of rendering, return a value from the Renderer.Shaders enumeration, or nil.

Modification here is limited to editing the content of the vertices in the vertex buffer, the indices in the elements array and the currently bound shader. It is not possible to add or remove vertices, nor is it possible to add or remove elements. Furthermore, if the bound shader is changed, then the new shader must be compatible with the previous one, i.e they must have exactly the same structure.

In order to modify the content of the vertex buffer, you can use the GetVertex method of the NativeVertexBuffer class. It will return a representation of the i-th vertex (indexed from 0). This representation can be manipulated like a Lua table, where the keys are the attributes of an input vertex in the currently bound vertex shader. For instance, if the vertex shader has the following structure:

attribute vec3 Position;\nattribute vec4 Color;\n

Then you have access to the Position and Color keys on the Vertex object returned by GetVertex. You can then edit these values as you see fit. Example:

mod:AddCallback(ModCallbacks.MC_PRE_OPENGL_RENDER, function(_, buffer, elements, shader, ctx)\n    local vertex = buffer:GetVertex(0)\n    vertex.Position.x = vertex.Position.x + 1\nend)\n

In order to modify the content of the elements array, you can use the [] operator on the object, and give the index you want to access. You may use the # operator to get the maximum valid index you can use.

In order to change the currently bound shader, return either:

  • A value of the Renderer.Shaders enumeration.
  • An object of type Shader obtained by a call to Renderer.Shader()
Rationale of the design

Due to the way the game manages the vertex buffer and the elements array on his side, adding / removing vertices at will would require copying the entire content of these buffers into new ones. As such, I (Sylmir) decided to consciously limit what can be done with this rendering mode.

"},{"location":"renderer/CustomRendering.html#completely-custom-rendering","title":"Completely custom rendering","text":"

In order to use completely custom rendering, one must return a Pipeline object in the MC_PRE_OPENGL_RENDER callback.

In order to create a Pipeline, use the Renderer.Pipeline() function.

A Pipeline object acts as a container for a sequence of render passes on a single input. In other words, the purpose of the Pipeline is to allow you to alter an existing render operation. If you want to render an arbitrary sprite, then first create this sprite, use Render() on it, and then change its rendering in this callback. Do not use the callback as a way to render anything.

To understand the idea of \"sequence of render passes\", consider the following code:

mod.EdgeDetectionShader = <create shader>\nmod.BloomShader = <create shader>\n\nmod:AddCallback(ModCallbacks.MC_PRE_OPENGL_RENDER, function(_, vertexBuffer, elements, shader, ctx)\n    local pipeline = Renderer.Pipeline()\n    local edgeBuffer = pipeline:NewPass(#vertexBuffer, elements, mod.EdgeDetectionShader)\n    <copy content of vertexBuffer into edgeBuffer>\n    local bloomBuffer = pipeline:NewPass(4, <define elements array>, mod.BloomShader)\n    <bind the uniforms in the two shaders>\n    return pipeline\nend)\n

In the function attached to the callback, we create new Pipeline and register two render passes in it, using the NewPass method (read more). The first pass will use an edge detection shader. The second pass will work on the output of the first pass and further apply a bloom shader on this result. We have a pipeline consisting of two sequential passes.

The NewPass function creates a new pass in a pipeline. You need three elements to define a pass: how many vertices will be defined, the elements array, and the shader program that will be used to perform the rendering. The function then returns a VertexBuffer object containing the specified number of vertices.

"},{"location":"renderer/CustomRendering.html#creating-a-shader","title":"Creating a shader","text":"

In order to create a shader, you need to use the Renderer.Shader function. This function takes three parameters: the path to the vertex shader file, the path to the fragment shader file, and a descriptor (VertexDescriptor).

To create a VertexDescriptor, use the Renderer.VertexDescriptor() function.

A VertexDescriptor acts as a representation of the vertex shader's attributes. For example, consider the following vertex shader.

attribute vec3 Position;\nattribute vec4 Color;\nvarying vec4 ColorOut;\n\nuniform mat4 Transform;\n\nvoid main() {\n    ColorOut = Color;\n    gl_Position = Transform * vec4(Position, 1);\n}\n

This vertex shader has two attributes, Position of type vec3 and Color of type vec4. Uniforms do not count as attributes.

Modern OpenGL

If you write your shaders in a reasonnably recent version of the GLSL language, the attribute keyword is either deprecated or outright removed, and you use the in keyword instead.

A VertexDescriptor for this vertex shader is a Lua representation of these attributes. The purpose of this descriptor is to let Lua structure the Vertex objects in a VertexBuffer in a way that mirrors the attributes of the vertex shader.

To define the attributes of a VertexDescriptor use the AddAttribute method. This method takes as parameters the name of the attribute (a string) as well as the type of the attribute (a value from the Renderer.GLSLType enumeration). To keep with the previous example, here is how one would define the descriptor of the previous vertex shader, and create a shader object:

local descriptor = Renderer.VertexDescriptor()\ndescriptor:AddAttribute(\"Position\", Renderer.GLSLType.VEC3)\ndescriptor:AddAttribute(\"Color\", Renderer.GLSLType.VEC4)\nlocal shader = Renderer.Shader(\"shaders/vertex.vs\", \"shaders/fragment.fs\", descriptor)\n
Copies and references

When a VertexDescriptor is used to create a shader, its content are copied inside the C++ representation of the shader, and not stored by reference. As a consequence, further modifications of the descriptor will not be reflected in the shader. Furthermore, this avoids an issue where losing all references to the descriptor on the Lua side could accidentally cause a memory corruption on the C++ side.

Rationale of the copy

The description of a shader is not supposed to change as the program runs. Therefore I think it makes no sense to store a reference to the descriptor. Furthermore, this avoids confusion when accidental modifications to the descriptor result in black squares being rendered.

"},{"location":"renderer/CustomRendering.html#creating-an-elements-array","title":"Creating an elements array","text":"

In order to create an elements array, use the Renderer.NewElements() functions. This function takes as parameters the number of vertices that will be rendered.

You can then use the [] operator with a number as parameter to access the element at a given index. Using a number outside the range defined in NewElements results in an error.

The code below shows an example on how to define an elements array that can be used to render a rectangle.

local elements = Renderer.NewElements(6)\nelements[0] = 0\nelements[1] = 1\nelements[2] = 2\nelements[3] = 2\nelements[4] = 1\nelements[5] = 3\n
"},{"location":"renderer/CustomRendering.html#defining-the-vertices","title":"Defining the vertices","text":"

Before the call to Pipeline:NewPass() returns, the runtime ensures that the values defined in the elements array are consistent with the number of requested vertices in the vertex buffer.

The call returns a VertexBuffer object, on which you can use the GetVertex() method to get access to the i-th vertex (0-based) as a Vertex. This Vertex contains attributes named and typed after the content of the VertexDescriptor object. Keeping with our above example:

local buffer = pipeline:NewPass(...)\nlocal vertex = buffer:GetVertex(0)\nvertex.Position = Renderer.Vec3(1, 0, 0)\nvertex.Color = Renderer.Vec4(0.2, 0.3, 0.4, 0.5)\n
"},{"location":"renderer/CustomRendering.html#binding-uniforms","title":"Binding uniforms","text":"

The final step in custom rendering is to bind values to the uniforms of shaders.

In order to bind a uniform in a shader, use the appropriate Bind* function on a Shader object. All these functions take as parameter the name of the uniform to bind and the value to bind to it.

Due to the way OpenGL works, every time a value is bound to a uniform further modifications of the variable holding this value have no effect on the uniform's value.

The uniform you'll probably need in almost any situation is the projection matrix, that converts coordinates from view space (the coordinates returned by the WorldToScreen() function) into clip space (the screen on which rendering is being done). This matrix can be accessed by using the Renderer.ProjectionMatrix() function.

mod.EdgeDetectionShader:BindMat4(\"Transform\", Renderer.ProjectionMatrix())\n
"},{"location":"renderer/CustomRendering.html#successive-passes-and-the-view-space","title":"Successive passes and the view space","text":"

One of the difficulties in writing multiple successive passes is to consider what the vertices of the all passes from the second onwards are. In particular, what are the coordinates (and in which space they are) of the vertices.

In the vanilla API, if multiple mods define custom shaders, they are executed in a sequence. Each time, the input vertices are positionned at the boundaries of the view space, in such a way that transforming them through the projection matrix results in the boundaries of clip space.

In the custom render system, you are free to use whatever method you feel is the most suited to what you want to achieve.

And there you go, you're free to do whatever you want with rendering now. Have fun.

"},{"location":"renderer/DestinationQuad.html","title":"Class \"DestinationQuad\"","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#destinationquad","title":"DestinationQuad ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#destinationquad-destinationquad-vector-topleft-vector-topright-vector-bottomleft-vector-bottomright","title":"DestinationQuad DestinationQuad ( Vector TopLeft, Vector TopRight, Vector BottomLeft, Vector BottomRight )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#getbottomleft","title":"GetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-getbottomleft","title":"Vector GetBottomLeft ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#getbottomright","title":"GetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-getbottomright","title":"Vector GetBottomRight ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#gettopleft","title":"GetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-gettopleft","title":"Vector GetTopLeft ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#gettopright","title":"GetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-gettopright","title":"Vector GetTopRight ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#setbottomleft","title":"SetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-setbottomleft-vector-vector","title":"void SetBottomLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#setbottomright","title":"SetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-setbottomright-vector-vector","title":"void SetBottomRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#settopleft","title":"SetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-settopleft-vector-vector","title":"void SetTopLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#settopright","title":"SetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-settopright-vector-vector","title":"void SetTopRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html","title":"Class \"GLSLValue\"","text":"

Helper Classes to store GL data.

Those meta classes are: - GLFloatMT - GLVec2MT - GLVec3MT - GLVec4MT - GLMat2MT - GLMat3MT - GLMat4MT

","tags":["Class"]},{"location":"renderer/GLSLValue.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#__index","title":"__index ()","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#float-__index","title":"float __index ( )","text":"

meta function to access data in a given table key.

","tags":["Class"]},{"location":"renderer/GLSLValue.html#__newindex","title":"__newindex ()","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#void-__newindex-float-value","title":"void __newindex ( float value )","text":"

meta function to write data in a given table key.

","tags":["Class"]},{"location":"renderer/Image.html","title":"Class \"Image\"","text":"Info

You can get this class by using the following function:

  • Renderer:LoadImage()
","tags":["Class"]},{"location":"renderer/Pipeline.html","title":"Class \"Pipeline\"","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#newpass","title":"NewPass ()","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#vertexbuffer-newpass-int-nbvertices-shader-shader-int-nbelements","title":"VertexBuffer NewPass ( int nbVertices, Shader shader, int nbElements )","text":"","tags":["Class"]},{"location":"renderer/Point.html","title":"Class \"Point\"","text":"

Used for Beam.

","tags":["Class"]},{"location":"renderer/Point.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/Point.html#beam","title":"Beam ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#point-point-vector-position-float-spritesheetcoordinate-float-width-10","title":"Point Point ( Vector Position, float SpritesheetCoordinate, float Width = 1.0 )","text":"Info

SpritesheetCoordinate is, to our current understanding, the Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of 0 and 64 SpritesheetCoordinate will render the spritesheet starting from y 0 to y 64, while an additional third point of 0 will draw it in reverse from y 64 to y 0. Width acts as a multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points.

","tags":["Class"]},{"location":"renderer/Point.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Point.html#getspritesheetcoordinate","title":"GetSpritesheetCoordinate ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#float-getspritesheetcoordinate","title":"float GetSpritesheetCoordinate ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#getwidth","title":"GetWidth ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#float-getwidth","title":"float GetWidth ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#getposition","title":"GetPosition ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#vector-getposition","title":"Vector GetPosition ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setspritesheetcoordinate","title":"SetSpritesheetCoordinate ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setspritesheetcoordinate-float-height","title":"void SetSpritesheetCoordinate ( float Height )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setwidth","title":"SetWidth ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setwidth-float-width","title":"void SetWidth ( float Width )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setposition","title":"SetPosition ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setposition-vector-position","title":"void SetPosition ( Vector Position )","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html","title":"Class \"RenderSet\"","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#slicesingle","title":"SliceSingle ()","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#void-slicesingle-vertexbuffer-vertexbuffer-shader-shader-int-nelements-int-first-int-second-1","title":"void SliceSingle ( VertexBuffer vertexBuffer, Shader shader, int nElements, int first, int second = -1 )","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#slicepipeline","title":"SlicePipeline ()","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#void-slicepipeline-string-filepath","title":"void SlicePipeline ( string filePath )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html","title":"Class \"Renderer\"","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#loadimage","title":"LoadImage ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#image-loadimage-string-filepath","title":"Image LoadImage ( string filePath )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#pipeline","title":"Pipeline ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#pipeline-pipeline","title":"Pipeline Pipeline ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#projectionmatrix","title":"ProjectionMatrix ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glmat4-projectionmatrix","title":"GLMat4 ProjectionMatrix ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#renderset","title":"RenderSet ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#void-renderset","title":"void RenderSet ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#shader","title":"Shader ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#shader-shader-string-vertexshader-string-fragmentshader-vertexdescriptor-vertexdescriptor","title":"Shader Shader ( string vertexShader, string fragmentShader, VertexDescriptor vertexDescriptor )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#starttransformation","title":"StartTransformation ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#transformer-starttransformation","title":"Transformer StartTransformation ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec2","title":"Vec2 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec2-vec2-float-x-0-float-y-0","title":"GLVec2 Vec2 ( float x = 0, float y = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec3","title":"Vec3 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec3-vec3-float-x-0-float-y-0-float-z-0","title":"GLVec3 Vec3 ( float x = 0 float y = 0, float z = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec4","title":"Vec4 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec4-vec4-float-x-0-float-y-0-float-z-0-float-w-0","title":"GLVec4 Vec4 ( float x = 0 float y = 0, float z = 0, float w = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vertexdescriptor","title":"VertexDescriptor ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vertexdescriptor-vertexdescriptor","title":"VertexDescriptor VertexDescriptor ( )","text":"","tags":["Class"]},{"location":"renderer/Shader.html","title":"Class \"Shader\"","text":"","tags":["Class"]},{"location":"renderer/Shader.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindfloat","title":"BindFloat ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindfloat-string-name-glfloat-value","title":"void BindFloat ( string name, GLFloat value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec2","title":"BindVec2 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec2-string-name-glvec2-value","title":"void BindVec2 ( string name, GLVec2 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec3","title":"BindVec3 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec3-string-name-glvec3-value","title":"void BindVec3 ( string name, GLVec3 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec4","title":"BindVec4 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec4-string-name-glvec4-value","title":"void BindVec4 ( string name, GLVec4 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat2","title":"BindMat2 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat2-string-name-glmat2-value","title":"void BindMat2 ( string name, GLMat2 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat3","title":"BindMat3 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat3-string-name-glmat3-value","title":"void BindMat3 ( string name, GLMat3 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat4","title":"BindMat4 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat4-string-name-glmat4-value","title":"void BindMat4 ( string name, GLMat4 value )","text":"","tags":["Class"]},{"location":"renderer/Shape.html","title":"Class \"Shape\"","text":"Info

You can get this class by using the following functions:

  • DebugRenderer:Get()
  • Entity:GetDebugShape()
","tags":["Class"]},{"location":"renderer/Shape.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Shape.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#int-gettimeout","title":"int GetTimeout ( )","text":"","tags":["Class"]},{"location":"renderer/Shape.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#void-settimeout-int-timeout","title":"void SetTimeout ( int Timeout )","text":"","tags":["Class"]},{"location":"renderer/Shape.html#capsule","title":"Capsule ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#void-capsule-capsule-capsule","title":"void Capsule (Capsule Capsule )","text":"

Assign a capsule collider to the shape.

","tags":["Class"]},{"location":"renderer/SourceQuad.html","title":"Class \"SourceQuad\"","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#sourcequad","title":"SourceQuad ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#sourcequad-sourcequad-vector-topleft-vector-topright-vector-bottomleft-vector-bottomright","title":"SourceQuad SourceQuad ( Vector TopLeft, Vector TopRight, Vector BottomLeft, Vector BottomRight )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#getbottomleft","title":"GetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-getbottomleft","title":"Vector GetBottomLeft ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#getbottomright","title":"GetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-getbottomright","title":"Vector GetBottomRight ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#gettopleft","title":"GetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-gettopleft","title":"Vector GetTopLeft ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#gettopright","title":"GetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-gettopright","title":"Vector GetTopRight ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#setbottomleft","title":"SetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-setbottomleft-vector-vector","title":"void SetBottomLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#setbottomright","title":"SetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-setbottomright-vector-vector","title":"void SetBottomRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#settopleft","title":"SetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-settopleft-vector-vector","title":"void SetTopLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#settopright","title":"SetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-settopright-vector-vector","title":"void SetTopRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html","title":"Class \"Transformer\"","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#apply","title":"Apply ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-apply","title":"void Apply ( )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#isvalid","title":"IsValid ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#boolean-isvalid","title":"boolean IsValid ( )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#render","title":"Render ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-render-image-image-sourcequad-source-destinationquad-dest-color-modifier","title":"void Render ( Image image, SourceQuad source, DestinationQuad dest, Color modifier )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#renderex","title":"RenderEx ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-renderex-image-image-sourcequad-source-destinationquad-dest-color-modifier1-color-modifier2-color-modifier3-color-modifier4","title":"void RenderEx ( Image image, SourceQuad source, DestinationQuad dest, Color modifier1, Color modifier2, Color modifier3, Color modifier4 )","text":"","tags":["Class"]},{"location":"renderer/Vertex.html","title":"Class \"Vertex\"","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#dump","title":"Dump ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#table-dump","title":"table Dump ( )","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#__index","title":"__index ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#float-__index","title":"float __index ( )","text":"

meta function to access data in a given table key.

","tags":["Class"]},{"location":"renderer/Vertex.html#__newindex","title":"__newindex ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#void-__newindex-float-value","title":"void __newindex ( float value )","text":"

meta function to write data in a given table key.

","tags":["Class"]},{"location":"renderer/VertexBuffer.html","title":"Class \"VertexBuffer\"","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#getelements","title":"GetElements ()","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#table-getelements","title":"table GetElements ( )","text":"

List of Elements

","tags":["Class"]},{"location":"renderer/VertexBuffer.html#getvertex","title":"GetVertex ()","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#vertex-getvertex-int-vertexid","title":"Vertex GetVertex ( int vertexId )","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html","title":"Class \"VertexDescriptor\"","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#addattribute","title":"AddAttribute ()","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#void-addattribute-glsltype-type-string-name","title":"void AddAttribute ( GLSLType type, string name )","text":"","tags":["Class"]},{"location":"snippets/EntityClassDiagram_NewFunkyMode.html","title":"EntityClassDiagram NewFunkyMode","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
"},{"location":"xml/achievements.html","title":"File \"achievements.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new achievements.

With REPENTOGON, you have the ability to add new achievements in an organic way, they should work just as vanilla achievements do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of an achievement in lua, you can use Isaac.GetAchievementIdByName, you can unlock modded achievements using the PersistentGameData.TryUnlock function. When modded achievements are unlocked, they will play the animation as normal and they will interact with vanilla achievements if several are unlocked at once. REPENTOGON also tracks modded achievements and saves them internally, so you dont need to handle them on your side. Take in mind that you can lock achievements by using the \"Lock\" console command.

The following custom attributes can be defined for achievements in the achievements xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, text is used instead) gfxback string path of the png sprite to use as a background paper for the achievement More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/ambush.html","title":"File \"ambush.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new boss rush waves!

With REPENTOGON, you have the ability to add new boss rush waves in an organic way, they should work just as vanilla boss rush waves do with the same xml structure. Take in mind that the only thing thats read by the game on this xml is bossrush waves, the challenge room stuff was deprecated in repentance and is no longer relevant (so dont bother adding those).

More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/challenges.html","title":"File \"challenges.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new challenges.

With REPENTOGON, some attributes have specially mod support capatibilites added to them, see below:

Variable-Name Possible Values Description unlockachievement string Sets the achievement(preferably a modded one using the name of the achievement) to unlock when the challenge is completed startingitems string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values startingitems2 string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values startingtrinkets string This now supports modded trinkets by using the names of the trinkets instead of the ids. Same format as in vanilla, a comma separated list of values playertype string This now supports modded characters by using the names of the items instead of the ids More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/costumes.html","title":"File \"costumes2.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new costumes.

With REPENTOGON, the \"id\" attribute of a costume with type=\"none\" can now be used to assign that costume to a character or a \"null\" item/effect from the same mod.

Variable-Name Possible Values Description id int Assign the same \"id\" to a type=\"none\" costume and a corresponding \"null\" item in items.xml to have that \"null\" item automatically apply the costume, similarly to what could already be done for typical item costumes. See the page for items.xml for more information on \"null items\".Setting the \"id\" of a type=\"none\" costume and the \"modcostume\" attribute of a character in players.xml to the same number will permanantly apply that costume to that character, like the hair costumes of vanilla characters.Note that the id used must be at least 1. This id is not the one that will be used in-game, and is only for associating the costume with other things defined in a mod's xmls. name string used as a general way to identify xml nodes (when this is not present, the filename of the anm2path attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/cutscenes.html","title":"File \"cutscenes.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new cutscenes.

With REPENTOGON, you have the ability to add new cutscenes in an organic way, they should work just as vanilla cutscenes do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of a cutscene in lua, you can use Isaac.GetCutsceneIdByName, you can also play modded cutscenes from the console command \"cutscene\" to test them out.

The following custom attributes can be defined for cutscenes in the cutscenes xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, the filename of the gfx attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/entities.html","title":"File \"entities2.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new entities.

Variable-Name Possible Values Description customtags string Space-separated list of strings. See \"CustomTags\" section below.","tags":["File"]},{"location":"xml/entities.html#customtags","title":"CustomTags","text":"

Repentogon adds a new customtags attribute that can contain a space-separated list of strings that can then be checked in-game. Mods can freely add arbitrary string tags to this attribute in the XML and check if they were added to an entity in-game. This makes it easier for mods to add common entity behaviour/traits similar to the existing EntityTags without needing to individually list each entity in lua code, and mods can also use customtags from other mods in their own XMLs for easier mod compatability.

Capitalization does not matter and is ignored entirely when adding or checking for customtags.

Example XML:

customtags=\"yourcustomtag familiarignorebffs familiarblockprojectiles\"\n

customtags can be checked in-game using the EntityConfig:

Example Code:

local entConfig = EntityConfig.GetEntity(entType, entVar, entSub)\n\n-- Returns true if the entity has the tag string specified.\n-- Capitalization does not matter.\nif entConfig:HasCustomTag(\"yourcustomtag\") then\n  -- ...\nend\n\n-- Returns a table containing all customtags specified for this entity.\n-- Tags are provided in all lowercase.\nlocal customTags = entConfig:GetCustomTags()\n

Repentogon itself adds some tags that can be used to apply certain behaviours to custom familiars with no required lua code at all:

customtag Effects familiarignorebffs The BFFS item will no longer affect this familiar. familiarcantakedamage Familiars with baseHP above 0 will be able to take damage and die, such as from enemy contact, lasers or explosions. Note that they will only take damage from projectiles if they also have the \"familiarblockprojectiles\" tag. familiarblockprojectiles The familiar automatically destroys enemy projectiles on contact. More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/giantbook.html","title":"File \"giantbook.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new giantbook animations.

With REPENTOGON, you have the ability to add new giantbook animations in an organic way, they should work just as vanilla giantbook animations do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of a Giant Book animation in lua, you can use Isaac.GetGiantBookIdByName, you can then play modded giant book animations using the ItemOverlay.Show function.

The following custom attributes can be defined for giantbook in the giantbook xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, the filename of the gfx attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/items.html","title":"File \"items.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new items.

","tags":["File"]},{"location":"xml/items.html#null-items","title":"\"Null\" Items","text":"

With REPENTOGON, you can now define custom \"null\" items. \"Null\" items are not typical items that can be spawned or visually seen in-game. They are typically used by the game to handle various costumes, buffs and effects (both temporary and persistent).

For example, touching the white fire in downpour/dross actually grants a null item effect to you that applies the costume/flight/effects (NullItemID.ID_LOST_CURSE) and removes itself when exiting the mirror dimension. Obtaining a transformation adds a null item effect to the player that grants the actual costume/effects of the transformation (such as NullItemID.ID_GUPPY) which may remove itself if the transformation's requirements are lost.

Null items can be very useful for implementing temporary or persistent effects that can be freely added or removed.

Variable-Name Possible Values Description id int Assign the same \"id\" to a null item and a corresponding costume with type=\"none\" costume in costumes2.xml to have the null item automatically apply that costume, similarly to what could already be done for typical item costumes.Note that the id used must be at least 1. This id is not the one that will be used in-game, and is only for associating the null item with a costume. cache string Can be used to specify stats that should be re-evaluated when the effect of the null item is added or removed, same as regular items.Possible values : [firedelay, damage, speed, range, tearcolor, tearflag, color, size. shotspeed, all, luck, flying, weapon, familiars] persistent bool By default null item effects only last for the current room. Set persistent to true to have the effect persist between rooms. cooldown int If set, defines how long the effect of the null item lasts, in update frames (30 frames ~= 1 second). After this duration, the effect removes itself.

Null item examples:

<!-- Null item whose effect stays on the player permanantly, unless removed. -->\n<null id=\"1\" name=\"my null item 1\" persistent=\"true\" />\n\n<!-- Null item that triggers a damage & tears cache evaluation when added or removed. Only lasts for the current room. -->\n<null id=\"2\" name=\"my null item 2\" cache=\"damage firedelay\" />\n\n<!-- Null item whose effect lasts for 10 seconds, then removes itself. -->\n<null id=\"3\" name=\"my null item 3\" cooldown=\"300\" persistent=\"true\" />\n

You can use Isaac.GetNullItemIdByName(\"my null item\") to get the in-game ID of your null item.

Additionally, you can use the functions in the TemporaryEffects class to add, remove, count, or check the current cooldown of null item effects on the player.

More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/overview.html","title":"XML-File Documentations","text":"

REPENTOGON changes how some xmls are able to be loaded, from enabling content adding on xmls where it was not originally possible to adding new parameters with new attached functionality, on this section you'll be able to find the xmls that feature these sort of changes.

XML variables introduced in REPENTOGON are not case sensitive, so naming conventions like camelCase are allowed.

"},{"location":"xml/players.html","title":"File \"players.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new characters.

With REPENTOGON, the vanilla HP variables can be omitted and fully replaced by our more advanced variables.

Variable-Name Possible Values Description items string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values heartcontainers int The amount of empty heart containers the character should start with. 1 unit = 1/2 a heart redhearts int The amount of red hearts the character should start with. 1 unit = 1/2 a heart soulhearts int The amount of soul hearts the character should start with. 1 unit = 1/2 a heart blackhearts int The amount of black hearts the character should start with. These do not replace soul hearts and are applied after soul hearts. 1 unit = 1/2 a heart goldenhearts int The amount of golden hearts the character should start with. 1 unit = 1 golden heart bonehearts int The amount of empty bone hearts the character should start with. 1 unit = 1 bone heart eternalheart int If a character should start with an eternal heart. 1 = yes brokenhearts int The amount of broken hearts the character should start with. 1 unit = 1 broken heart rottenhearts int The amount of rotten hearts the character should start with. 1 unit = 1 rotten heart healthtype int The health type the player should start with. The int corresponds to the HealthType enum. healthlimit int A maximum amount of HP the character should be able to have. 1 unit = 1/2 heart speedmodifier float An inherent offset to the speed stat the character should start with. Base this offset off of Isaac's stats. firedelaymodifier float An inherent offset to the fire delay stat the character should start with. Base this offset off of Isaac's stats. damagemodifier float An inherent offset to the damage stat the character should start with. Base this offset off of Isaac's stats. rangemodifier float An inherent offset to the range stat the character should start with. Base this offset off of Isaac's stats. shotspeedmodifier float An inherent offset to the shot speed stat the character should start with. Base this offset off of Isaac's stats. luckmodifier float An inherent offset to the luck stat the character should start with. Base this offset off of Isaac's stats. gigabombs int The amount of giga bombs the character should start with. These do not replace normal bombs. completionparent string Used for characters that have shared completion marks with a preexistent character, like Dark Judas and Judas. The name of the parent character should be used for this attribute nomarks bool if it has any value other than 'false', it will hide the completion marks for the given character achievement int or string This is now respected on modded characters. For mods, it's best to define this as the name of the achievement (for example, achievement='You unlocked \"Tainted Golem\"'). Characters with this tag should have a second frame in their characterportraits(alt).anm2 which should be the \"locked\" picture for the character. In addition, all stat/item layers on the main menu will be hidden and the Unlocked By layer will be visible. See the achievements XML section for more info. modcostume int Set this to match the \"id\" attribute of a costume with type=\"none\" defined in the same mod (in costumes2.xml) to have that costume permanantly applied to the character (including during the mineshaft chase sequence). You cannot set both this and the \"costume\" attribute for vanilla costumes at the same time. More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"blog/archive/2023.html","title":"2023","text":""},{"location":"tags.html","title":"Tags","text":""},{"location":"tags.html#class","title":"Class","text":"
  • Ambush
  • AnimationData
  • AnimationFrame
  • AnimationLayer
  • Backdrop
  • Camera
  • Capsule
  • ChallengeParam
  • Color
  • ColorModifier
  • ColorParams
  • Console
  • CostumeSpriteDesc
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntitiesSaveState
  • EntitiesSaveStateVector
  • Entity
  • EntityBomb
  • EntityConfig
  • EntityConfigEntity
  • EntityConfigPlayer
  • EntityDelirium
  • EntityEffect
  • EntityFamiliar
  • EntityKnife
  • EntityLaser
  • EntityNPC
  • EntityPickup
  • EntityPlayer
  • EntityProjectile
  • EntitySlot
  • EntityTear
  • FXParams
  • Font
  • Game
  • GridEntitiesSaveStateVector
  • GridEntity
  • GridEntityDecoration
  • GridEntityDoor
  • GridEntityFire
  • GridEntityGravity
  • GridEntityPressurePlate
  • GridEntityRock
  • GridEntityStairs
  • GridEntityStatue
  • GridEntityTeleporter
  • GridEntityTrapDoor
  • GridEntityWall
  • GridEntityWeb
  • HUD
  • History
  • HistoryItem
  • ImGui
  • Isaac
  • ItemConfig
  • ItemConfig - PillEffect
  • ItemOverlay
  • ItemPool
  • LayerState
  • Level
  • LevelGenerator
  • LevelGeneratorEntry
  • LevelGeneratorRoom
  • Minimap
  • MultiShotParams
  • MusicManager
  • NightmareScene
  • NullFrame
  • Options
  • PersistentGameData
  • PlayerHUD
  • PlayerHUDHeart
  • PlayerManager
  • PocketItem
  • ProceduralEffect
  • ProceduralItem
  • ProceduralItemManager
  • ProjectileParams
  • RNG
  • RailManager
  • Room
  • RoomConfigHolder
  • RoomConfigRoom
  • RoomDescriptor
  • RoomTransition
  • ScoreSheet
  • Sprite
  • StageTransition
  • Vector
  • Weapon
  • WeightedOutcomePicker
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
  • Beam
  • BlendMode
  • DestinationQuad
  • Class \"GLSLValue\"
  • Image
  • Class \"Pipeline\"
  • Point
  • Class \"RenderSet\"
  • Class \"Renderer\"
  • Class \"Shader\"
  • Shape
  • SourceQuad
  • Class \"Transformer\"
  • Class \"Vertex\"
  • Class \"VertexBuffer\"
  • Class \"VertexDescriptor\"
"},{"location":"tags.html#enum","title":"Enum","text":"
  • Achievement
  • AnimRenderFlags
  • AnnouncerVoiceMode
  • AutocompleteType
  • BagOfCraftingPickup
  • BombCostumeLayer
  • BossType
  • CameraStyle
  • CompletionType
  • ConsoleFont
  • DebugFlag
  • DialogButtons
  • DialogIcons
  • DialogReturn
  • Dimension
  • DipSubType
  • Ending
  • EntityPoopVariant
  • EntityTag
  • EventCounter
  • ExtraHudStyle
  • FadeoutTarget
  • FollowerPriority
  • GLSLType
  • Giantbook
  • GibFlag
  • GridPoopVariant
  • HealthType
  • ImGuiCallback
  • ImGuiColor
  • ImGuiData
  • ImGuiElement
  • ImGuiNotificationType
  • ItemAnim
  • KnifeSubType
  • KnifeVariant
  • Language
  • LineCheckMode
  • MainMenuType
  • MouseButton
  • NullPickupSubType
  • PauseMenuStates
  • PedestalType
  • PillCardSlot
  • PlayerVariant
  • PocketItemType
  • PressurePlateVariant
  • ProceduralEffectActionType
  • ProceduralEffectConditionType
  • ProjectileMode
  • PurityState
  • RetractingSpikesVariant
  • RoomSubType
  • ShaderType
  • SlotVariant
  • SpecialQuest
  • StbGridType
  • StbPoopSubType
  • StbRailVariant
  • StbRockSubType
  • StbTeleporterSubType
  • StbType
  • TaintedMarksGroup
  • TeleporterVariant
  • WeaponModifier
  • WispSubType
  • XMLNode
"},{"location":"tags.html#file","title":"File","text":"
  • achievements.xml
  • ambush.xml
  • challenges.xml
  • costumes.xml
  • cutscenes.xml
  • entities2.xml
  • giantbook.xml
  • items.xml
  • players.xml
"},{"location":"tags.html#global","title":"Global","text":"
  • Ambush
  • Console
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntityConfig
  • Isaac
  • ItemOverlay
  • Minimap
  • NightmareScene
  • PlayerManager
  • ProceduralItemManager
  • ProjectileParams
  • RoomTransition
  • ScoreSheet
  • StageTransition
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
"}]} \ No newline at end of file +{"config":{"lang":["en"],"separator":"[\\s\\-,:!=\\[\\]()\"/_]+|(?!\\b)(?=[A-Z][a-z])|\\.(?!\\d)|&[lg]t;","pipeline":["stopWordFilter"]},"docs":[{"location":"Ambush.html","title":"Global Class \"Ambush\"","text":"Info

You can get this class by using the Ambush global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local currwave = Ambush.GetCurrentWave()\n
","tags":["Global","Class"]},{"location":"Ambush.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Ambush.html#getcurrentwave","title":"GetCurrentWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getcurrentwave","title":"int GetCurrentWave ( )","text":"

Returns the current wave number of the current challenge room or boss rush room.

","tags":["Global","Class"]},{"location":"Ambush.html#getmaxbossrushwaves","title":"GetMaxBossrushWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getmaxbossrushwaves","title":"int GetMaxBossrushWaves ( )","text":"

Returns the maximum amount of boss rush waves.

By default, the maximum amount of boss rush waves are 15. It's important to note that mods can modify the maximum amount of boss rush waves.

","tags":["Global","Class"]},{"location":"Ambush.html#getmaxchallengewaves","title":"GetMaxChallengeWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#int-getmaxchallengewaves","title":"int GetMaxChallengeWaves ( )","text":"

Returns the maximum amount of challenge room waves.

By default, the maximum amount of challenge room waves are 3. It's important to note that mods can modify the maximum amount of challenge room waves.

","tags":["Global","Class"]},{"location":"Ambush.html#getnextwave","title":"GetNextWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#roomconfigroom-getnextwave","title":"RoomConfigRoom GetNextWave ( )","text":"

Returns the RoomConfigRoom of the next challenge room wave. Calling this function outside of a challenge room will result in an error.

","tags":["Global","Class"]},{"location":"Ambush.html#getnextwaves","title":"GetNextWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#roomconfigroom-getnextwaves","title":"RoomConfigRoom[] GetNextWaves ( )","text":"

Returns a table containing the RoomConfigRoom of the next challenge room waves.

","tags":["Global","Class"]},{"location":"Ambush.html#setmaxbossrushwaves","title":"SetMaxBossrushWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-setmaxbossrushwaves-int-waves","title":"void SetMaxBossrushWaves ( int Waves )","text":"

Sets the maximum amount of boss rush waves. As of now, there is a maximum cap of 25 waves.

","tags":["Global","Class"]},{"location":"Ambush.html#setmaxchallengewaves","title":"SetMaxChallengeWaves ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-setmaxchallengewaves-int-waves","title":"void SetMaxChallengeWaves ( int Waves )","text":"

Sets the maximum amount of challenge room waves.

Bug

Currently this value is not reset on game restart. This will be fixed as soon as we figure out how to cleanly run code on init on the C++ side!

","tags":["Global","Class"]},{"location":"Ambush.html#spawnbossrushwave","title":"SpawnBossrushWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-spawnbossrushwave","title":"void SpawnBossrushWave ( )","text":"

Spawns a boss rush wave in the current room.

Bug

Calling this function will do nothing unless a boss rush has been triggered at least once during the current game session.

","tags":["Global","Class"]},{"location":"Ambush.html#spawnwave","title":"SpawnWave ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-spawnwave","title":"void SpawnWave ( )","text":"

Spawns a challenge room wave associated with the current floor.

Bug

Calling this function crashes the game if the current game mode is Greed or Greedier.

The game also crashes if the current floor is Blue Womb.

","tags":["Global","Class"]},{"location":"Ambush.html#startchallenge","title":"StartChallenge ()","text":"","tags":["Global","Class"]},{"location":"Ambush.html#void-startchallenge","title":"void StartChallenge ( )","text":"

Triggers the challenge room or boss rush.

Bug

Calling this function outside of the boss rush room or a challenge room will do nothing except permanently close the doors, resulting in a softlock.

","tags":["Global","Class"]},{"location":"AnimationData.html","title":"Class \"AnimationData\"","text":"

Cached data for one animation from a loaded ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Can be obtained via Sprite:GetAnimationData(), Sprite:GetCurrentAnimationData() or Sprite:GetOverlayAnimationData().

","tags":["Class"]},{"location":"AnimationData.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationData.html#getalllayers","title":"GetAllLayers ()","text":"","tags":["Class"]},{"location":"AnimationData.html#animationlayer-getalllayers","title":"AnimationLayer[] GetAllLayers ( )","text":"

Returns a table of AnimationLayers, in order from bottom to top (NOT ordered by layer ID).

","tags":["Class"]},{"location":"AnimationData.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"AnimationData.html#animationlayer-getlayer-int-layerid","title":"AnimationLayer GetLayer ( int LayerId )","text":"

Gets an AnimationLayer by that layer's ID number.

","tags":["Class"]},{"location":"AnimationData.html#getlength","title":"GetLength ()","text":"","tags":["Class"]},{"location":"AnimationData.html#int-getlength","title":"int GetLength ( )","text":"

Length of this animation in frames.

","tags":["Class"]},{"location":"AnimationData.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"AnimationData.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"AnimationData.html#isloopinganimation","title":"IsLoopingAnimation ()","text":"","tags":["Class"]},{"location":"AnimationData.html#boolean-isloopinganimation","title":"boolean IsLoopingAnimation ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html","title":"Class \"AnimationFrame\"","text":"

Cached data for a single frame of one layer of an animation from an ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Note that interpolation and root animations have already been baked into these values.

Otherwise, these values correspond to the same ones viewable in the ANM2 editor, and have been named the same way.

Obtained via AnimationLayer:GetFrame().

","tags":["Class"]},{"location":"AnimationFrame.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-color-getcolor","title":"const Color GetColor ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getcrop","title":"GetCrop ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getcrop","title":"const Vector GetCrop ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getheight","title":"GetHeight ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getheight","title":"float GetHeight ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getpivot","title":"GetPivot ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getpivot","title":"const Vector GetPivot ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getpos","title":"const Vector GetPos ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#const-vector-getscale","title":"const Vector GetScale ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#getwidth","title":"GetWidth ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#float-getwidth","title":"float GetWidth ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#isinterpolated","title":"IsInterpolated ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#boolean-isinterpolated","title":"boolean IsInterpolated ( )","text":"","tags":["Class"]},{"location":"AnimationFrame.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"AnimationFrame.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"AnimationLayer.html","title":"Class \"AnimationLayer\"","text":"

Cached data for one layer of an animation from a loaded ANM2 file. Shared by all Sprites using the same ANM2 and cannot be modified.

Obtained via AnimationData:GetLayer().

","tags":["Class"]},{"location":"AnimationLayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"AnimationLayer.html#getframe","title":"GetFrame ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#animationframe-getframe-int-frame","title":"AnimationFrame GetFrame ( int Frame )","text":"","tags":["Class"]},{"location":"AnimationLayer.html#getlayerid","title":"GetLayerID ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#int-getlayerid","title":"int GetLayerID ( )","text":"","tags":["Class"]},{"location":"AnimationLayer.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"AnimationLayer.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"Backdrop.html","title":"Class \"Backdrop\"","text":"Info

You can get this class by using the following functions:

  • Room:GetBackdrop()
Example Code
local backdrop = Game():GetRoom():GetBackdrop()\n
","tags":["Class"]},{"location":"Backdrop.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Backdrop.html#getfloorimage","title":"GetFloorImage ()","text":"","tags":["Class"]},{"location":"Backdrop.html#image-getfloorimage","title":"Image GetFloorImage ( )","text":"

Returns the buffer containing the floor texture of the current room.

","tags":["Class"]},{"location":"Backdrop.html#getwallimage","title":"GetWallImage ()","text":"","tags":["Class"]},{"location":"Backdrop.html#image-getwallimage","title":"Image GetWallImage ( )","text":"

Returns the buffer containing the wall texture of the current room.

","tags":["Class"]},{"location":"Camera.html","title":"Class \"Camera\"","text":"Info

You can get this class by using the following functions:

  • Room:GetCamera()
Example Code
local camera = Game():GetRoom():GetCamera()\n
","tags":["Class"]},{"location":"Camera.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Camera.html#setfocusposition","title":"SetFocusPosition ()","text":"","tags":["Class"]},{"location":"Camera.html#void-setfocusposition-vector-pos","title":"void SetFocusPosition ( Vector Pos )","text":"

Sets the camera's current focus position, causing it to shift towards the specified position

The camera will only move if the current room size is larger than 1x1. If the room size is 1x1 or smaller, the camera will remain stationary and this function will do nothing.

This function must be called on every game update, otherwise the game will override the camera's position.

","tags":["Class"]},{"location":"Camera.html#snaptoposition","title":"SnapToPosition ()","text":"","tags":["Class"]},{"location":"Camera.html#void-snaptoposition-vector-pos","title":"void SnapToPosition ( Vector Pos )","text":"

Sets the camera's position instantly to the specified position.

The camera will only move if the current room size is larger than 1x1. If the room size is 1x1 or smaller, the camera will remain stationary and this function will do nothing.

This function must be called on every game update, otherwise the game will override the camera's position.

Bug

This function seems to only work when Active Camera is off.

","tags":["Class"]},{"location":"Capsule.html","title":"Class \"Capsule\"","text":"

An example mod using the Capsule class can be found here.

Info

You can get this class by using the following functions:

  • Entity:GetCollisionCapsule()
  • Entity:GetNullCapsule()
","tags":["Class"]},{"location":"Capsule.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"Capsule.html#capsule","title":"Capsule ()","text":"","tags":["Class"]},{"location":"Capsule.html#capsule-capsule-vector-position-vector-sizemult-float-rotation-float-size","title":"Capsule Capsule ( Vector Position, Vector SizeMult, float Rotation, float Size )","text":"","tags":["Class"]},{"location":"Capsule.html#capsule-capsule-vector-position-vector-targetposition-float-size","title":"Capsule Capsule ( Vector Position, Vector TargetPosition, float Size )","text":"","tags":["Class"]},{"location":"Capsule.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Capsule.html#collide","title":"Collide ()","text":"","tags":["Class"]},{"location":"Capsule.html#boolean-collide-capsule-capsule-vector-point","title":"boolean Collide ( Capsule Capsule, Vector Point )","text":"","tags":["Class"]},{"location":"Capsule.html#getdirection","title":"GetDirection ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getdirection","title":"Vector GetDirection ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getf1","title":"GetF1 ()","text":"","tags":["Class"]},{"location":"Capsule.html#float-getf1","title":"float GetF1 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getf2","title":"GetF2 ()","text":"","tags":["Class"]},{"location":"Capsule.html#float-getf2","title":"float GetF2 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getposition","title":"GetPosition ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getposition","title":"Vector GetPosition ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getvec2","title":"GetVec2 ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getvec2","title":"Vector GetVec2 ( )","text":"","tags":["Class"]},{"location":"Capsule.html#getvec3","title":"GetVec3 ()","text":"","tags":["Class"]},{"location":"Capsule.html#vector-getvec3","title":"Vector GetVec3 ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html","title":"Class \"ChallengeParam\"","text":"Info

You can get this class by using the following functions:

  • Game():GetChallengeParams()
  • DailyChallenge.GetChallengeParams()
Example Code
local params = Game():GetChallengeParams()\n
","tags":["Class"]},{"location":"ChallengeParam.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ChallengeParam.html#canshoot","title":"CanShoot ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-canshoot","title":"boolean CanShoot ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getachievementlist","title":"GetAchievementList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#achievement-getachievementlist","title":"Achievement[] GetAchievementList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getadddamage","title":"GetAddDamage ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#float-getadddamage","title":"float GetAddDamage ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getblackhearts","title":"GetBlackHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getblackhearts","title":"int GetBlackHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcoins","title":"GetCoins ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcoins","title":"int GetCoins ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcollectiblelist","title":"GetCollectibleList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#collectibletype-getcollectiblelist","title":"CollectibleType[] GetCollectibleList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcollectibletwinlist","title":"GetCollectibleTwinList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#collectibletype-getcollectibletwinlist","title":"CollectibleType[] GetCollectibleTwinList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcurse","title":"GetCurse ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcurse","title":"int GetCurse ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getcursefilter","title":"GetCurseFilter ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getcursefilter","title":"int GetCurseFilter ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getdifficulty","title":"GetDifficulty ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#difficulty-getdifficulty","title":"Difficulty GetDifficulty ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getendstage","title":"GetEndStage ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#levelstage-getendstage","title":"LevelStage GetEndStage ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#gethearts","title":"GetHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-gethearts","title":"int GetHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getmaxhearts","title":"GetMaxHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getmaxhearts","title":"int GetMaxHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getminfirerate","title":"GetMinFireRate ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#float-getminfirerate","title":"float GetMinFireRate ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#playertype-getplayertype","title":"PlayerType GetPlayerType ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getroomfilter","title":"GetRoomFilter ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#roomtype-getroomfilter","title":"RoomType[] GetRoomFilter ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getsoulhearts","title":"GetSoulHearts ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#int-getsoulhearts","title":"int GetSoulHearts ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getstartingcard","title":"GetStartingCard ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#card-getstartingcard","title":"Card GetStartingCard ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#getstartingpill","title":"GetStartingPill ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#pilleffect-getstartingpill","title":"PillEffect GetStartingPill ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#gettrinketlist","title":"GetTrinketList ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#trinkettype-gettrinketlist","title":"TrinketType[] GetTrinketList ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isaltpath","title":"IsAltPath ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isaltpath","title":"boolean IsAltPath ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isbigrangeenabled","title":"IsBigRangeEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isbigrangeenabled","title":"boolean IsBigRangeEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#ismaxdamageenabled","title":"IsMaxDamageEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-ismaxdamageenabled","title":"boolean IsMaxDamageEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#ismegasatanrun","title":"IsMegaSatanRun ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-ismegasatanrun","title":"boolean IsMegaSatanRun ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#isminshotspeedenabled","title":"IsMinShotSpeedEnabled ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-isminshotspeedenabled","title":"boolean IsMinShotSpeedEnabled ( )","text":"","tags":["Class"]},{"location":"ChallengeParam.html#issecretpath","title":"IsSecretPath ()","text":"","tags":["Class"]},{"location":"ChallengeParam.html#boolean-issecretpath","title":"boolean IsSecretPath ( )","text":"","tags":["Class"]},{"location":"Color.html","title":"Class \"Color\"","text":"Info

This class can be accessed using its constructor:

Example Code
local redColor = Color(1,0,0,1)\n
","tags":["Class"]},{"location":"Color.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Color.html#color","title":"Color ()","text":"","tags":["Class"]},{"location":"Color.html#color-color-float-r-1-float-g-1-float-b-1-float-a-1-float-ro-0-float-go-0-float-bo-0-float-rc-0-float-gc-0-float-bc-0-float-ac-0","title":"Color Color ( float R = 1, float G = 1, float B = 1, float A = 1, float RO = 0, float GO = 0, float BO = 0, float RC = 0, float GC = 0, float BC = 0, float AC = 0 )","text":"

All arguments are now optional. Colorize can now be set through the constructor.

","tags":["Class"]},{"location":"Color.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Color.html#getcolorize","title":"GetColorize ()","text":"","tags":["Class"]},{"location":"Color.html#table-getcolorize","title":"table GetColorize ( )","text":"

Returns a table corresponding to the color's current Colorize values: {R, G, B, A}

","tags":["Class"]},{"location":"Color.html#getoffset","title":"GetOffset ()","text":"","tags":["Class"]},{"location":"Color.html#table-getoffset","title":"table GetOffset ( )","text":"

Returns a table corresponding to the color's current Offset values: {R, G, B}

While the Color class does already contain .RO, .GO and .BO variables for this, GetOffset() has been measured to be ~30% faster in cases where access to all three values is necessary and is recommended in that scenario as a result. Performance is near identical when accessing two variables, and worse when accessing one. In cases where only one or two offset values are needed, stick with the variables.

","tags":["Class"]},{"location":"Color.html#gettint","title":"GetTint ()","text":"","tags":["Class"]},{"location":"Color.html#table-gettint","title":"table GetTint ( )","text":"

Returns a table corresponding to the color's current Tint values: {R, G, B, A}

","tags":["Class"]},{"location":"Color.html#print","title":"Print ()","text":"","tags":["Class"]},{"location":"Color.html#string-print","title":"string Print ( )","text":"

Returns a string representation of the color object.

","tags":["Class"]},{"location":"Color.html#__tostring","title":"__tostring ()","text":"","tags":["Class"]},{"location":"Color.html#string-__tostring","title":"string __tostring ( )","text":"

Creates a string representation of the color object.

This enables direct printing of the object by doing print(myColorObj)

","tags":["Class"]},{"location":"Color.html#constants","title":"Constants","text":"","tags":["Class"]},{"location":"Color.html#coloremberfade","title":"Color.EmberFade","text":"","tags":["Class"]},{"location":"Color.html#color-emberfade","title":"Color EmberFade","text":"

Used for enemies like Crackles and Coal Spiders. This color has a hardcoded special property; gibs start orange and fade into grey.

Tint of (0, 0, 0, 1.1) Colorize of (0, 0, 0, 0) Offset of (1, 0.514, 0.004)

","tags":["Class"]},{"location":"Color.html#colorlaseralmond","title":"Color.LaserAlmond","text":"","tags":["Class"]},{"location":"Color.html#color-laseralmond","title":"Color LaserAlmond","text":"

Used for lasers with the Almond Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlaserchocolate","title":"Color.LaserChocolate","text":"","tags":["Class"]},{"location":"Color.html#color-laserchocolate","title":"Color LaserChocolate","text":"

Used for lasers with the Chocolate Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlasercoal","title":"Color.LaserCoal","text":"","tags":["Class"]},{"location":"Color.html#color-lasercoal","title":"Color LaserCoal","text":"

Used for lasers with the A Lump of Coal effect.

","tags":["Class"]},{"location":"Color.html#colorlaserfiremind","title":"Color.LaserFireMind","text":"","tags":["Class"]},{"location":"Color.html#color-laserfiremind","title":"Color LaserFireMind","text":"

Used for lasers fired by players with Fire Mind.

","tags":["Class"]},{"location":"Color.html#colorlaserhoming","title":"Color.LaserHoming","text":"","tags":["Class"]},{"location":"Color.html#color-laserhoming","title":"Color LaserHoming","text":"

Used for homing lasers.

","tags":["Class"]},{"location":"Color.html#colorlaseripecac","title":"Color.LaserIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-laseripecac","title":"Color LaserIpecac","text":"

Used for lasers with the Ipecac effect.

","tags":["Class"]},{"location":"Color.html#colorlasermother","title":"Color.LaserMother","text":"","tags":["Class"]},{"location":"Color.html#color-lasermother","title":"Color LaserMother","text":"

Used for Mother's mega laser.

","tags":["Class"]},{"location":"Color.html#colorlasernumberone","title":"Color.LaserNumberOne","text":"","tags":["Class"]},{"location":"Color.html#color-lasernumberone","title":"Color LaserNumberOne","text":"

Used for lasers fired by players with Number One.

","tags":["Class"]},{"location":"Color.html#colorlasersoy","title":"Color.LaserSoy","text":"","tags":["Class"]},{"location":"Color.html#color-lasersoy","title":"Color LaserSoy","text":"

Used for lasers with the Soy Milk effect.

","tags":["Class"]},{"location":"Color.html#colorlaserpoison","title":"Color.LaserPoison","text":"","tags":["Class"]},{"location":"Color.html#color-laserpoison","title":"Color LaserPoison","text":"

Used for poisonous lasers fired by players with items like Scorpio or Common Cold.

","tags":["Class"]},{"location":"Color.html#colorprojectilecageblue","title":"Color.ProjectileCageBlue","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecageblue","title":"Color ProjectileCageBlue","text":"

Used for ProjectileVariant.PROJECTILE_PUKEs fired by The Cage.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseclusterdark","title":"Color.ProjectileCorpseClusterDark","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseclusterdark","title":"Color ProjectileCorpseClusterDark","text":"

Used for clustered ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseclusterlight","title":"Color.ProjectileCorpseClusterLight","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseclusterlight","title":"Color ProjectileCorpseClusterLight","text":"

Used for clustered ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsegreen","title":"Color.ProjectileCorpseGreen","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsegreen","title":"Color ProjectileCorpseGreen","text":"

Used for green ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

Also used for the green laser fired by Chimera.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsepink","title":"Color.ProjectileCorpsePink","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsepink","title":"Color ProjectileCorpsePink","text":"

Used for pink-ish white-ish ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpsewhite","title":"Color.ProjectileCorpseWhite","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpsewhite","title":"Color ProjectileCorpseWhite","text":"

Used for white-ish grey-ish ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like Mother.

","tags":["Class"]},{"location":"Color.html#colorprojectilecorpseyellow","title":"Color.ProjectileCorpseYellow","text":"","tags":["Class"]},{"location":"Color.html#color-projectilecorpseyellow","title":"Color ProjectileCorpseYellow","text":"

Used for yellow ProjectileVariant.PROJECTILE_NORMALs fired in Corpse by enemies like The Scourge.

","tags":["Class"]},{"location":"Color.html#colorprojectilefirewave","title":"Color.ProjectileFireWave","text":"","tags":["Class"]},{"location":"Color.html#color-projectilefirewave","title":"Color ProjectileFireWave","text":"

Used for fire-pillar-wave-spawning ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Crackle.

","tags":["Class"]},{"location":"Color.html#colorprojectilehoming","title":"Color.ProjectileHoming","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehoming","title":"Color ProjectileHoming","text":"

Used for homing ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Psychic Maw.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushblue","title":"Color.ProjectileHushBlue","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushblue","title":"Color ProjectileHushBlue","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushgreen","title":"Color.ProjectileHushGreen","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushgreen","title":"Color ProjectileHushGreen","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectilehushyellow","title":"Color.ProjectileHushYellow","text":"","tags":["Class"]},{"location":"Color.html#color-projectilehushyellow","title":"Color ProjectileHushYellow","text":"

Used for blue ProjectileVariant.PROJECTILE_HUSHs fired by Hush.

","tags":["Class"]},{"location":"Color.html#colorprojectileipecac","title":"Color.ProjectileIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-projectileipecac","title":"Color ProjectileIpecac","text":"

Used for explosive ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Gurgles.

","tags":["Class"]},{"location":"Color.html#colorprojectilemegasatanblack","title":"Color.ProjectileMegaSatanBlack","text":"","tags":["Class"]},{"location":"Color.html#color-projectilemegasatanblack","title":"Color ProjectileMegaSatanBlack","text":"

Used for black ProjectileVariant.PROJECTILE_NORMALs fired by Mega Satan.

","tags":["Class"]},{"location":"Color.html#colorprojectilemegasatanwhite","title":"Color.ProjectileMegaSatanWhite","text":"","tags":["Class"]},{"location":"Color.html#color-projectilemegasatanwhite","title":"Color ProjectileMegaSatanWhite","text":"

Used for white ProjectileVariant.PROJECTILE_NORMALs fired by Mega Satan.

","tags":["Class"]},{"location":"Color.html#colorprojectilesoy","title":"Color.ProjectileSoy","text":"","tags":["Class"]},{"location":"Color.html#color-projectilesoy","title":"Color ProjectileSoy","text":"

Used for soy ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Soy Creep.

","tags":["Class"]},{"location":"Color.html#colorprojectiletar","title":"Color.ProjectileTar","text":"","tags":["Class"]},{"location":"Color.html#color-projectiletar","title":"Color ProjectileTar","text":"

Used for tar ProjectileVariant.PROJECTILE_NORMALs fired by enemies like Clot.

","tags":["Class"]},{"location":"Color.html#colortearalmond","title":"Color.TearAlmond","text":"","tags":["Class"]},{"location":"Color.html#color-tearalmond","title":"Color TearAlmond","text":"

Used for tears fired by players with Soy Milk.

","tags":["Class"]},{"location":"Color.html#colortearchocolate","title":"Color.TearChocolate","text":"","tags":["Class"]},{"location":"Color.html#color-tearchocolate","title":"Color TearChocolate","text":"

Used for tears fired by players with Chocolate Milk.

","tags":["Class"]},{"location":"Color.html#colortearcoal","title":"Color.TearCoal","text":"","tags":["Class"]},{"location":"Color.html#color-tearcoal","title":"Color TearCoal","text":"

Used for tears fired by players with A Lump of Coal.

","tags":["Class"]},{"location":"Color.html#colortearcommoncold","title":"Color.TearCommonCold","text":"","tags":["Class"]},{"location":"Color.html#color-tearcommoncold","title":"Color TearCommonCold","text":"

Used for poison tears fired by players with Common Cold.

","tags":["Class"]},{"location":"Color.html#colortearhoming","title":"Color.TearHoming","text":"","tags":["Class"]},{"location":"Color.html#color-tearhoming","title":"Color TearHoming","text":"

Used for homing tears fired by players with Spoon Bender.

","tags":["Class"]},{"location":"Color.html#colortearipecac","title":"Color.TearIpecac","text":"","tags":["Class"]},{"location":"Color.html#color-tearipecac","title":"Color TearIpecac","text":"

Used for explosive tears fired by players with Ipecac.

","tags":["Class"]},{"location":"Color.html#colortearnumberone","title":"Color.TearNumberOne","text":"","tags":["Class"]},{"location":"Color.html#color-tearnumberone","title":"Color TearNumberOne","text":"

Used for tears fired by players with Number One.

","tags":["Class"]},{"location":"Color.html#colortearscorpio","title":"Color.TearScorpio","text":"","tags":["Class"]},{"location":"Color.html#color-tearscorpio","title":"Color TearScorpio","text":"

Used for poison tears fired by players with Scorpio.

","tags":["Class"]},{"location":"Color.html#colortearserpentskiss","title":"Color.TearSerpentsKiss","text":"","tags":["Class"]},{"location":"Color.html#color-tearserpentskiss","title":"Color TearSerpentsKiss","text":"

Used for poison tears fired by players with Serpent's Kiss.

","tags":["Class"]},{"location":"Color.html#colortearsoy","title":"Color.TearSoy","text":"","tags":["Class"]},{"location":"Color.html#color-tearsoy","title":"Color TearSoy","text":"

Used for tears fired by players with Soy Milk.

","tags":["Class"]},{"location":"Color.html#colorteartar","title":"Color.TearTar","text":"","tags":["Class"]},{"location":"Color.html#color-teartar","title":"Color TearTar","text":"

Used for tar tears fired by familiars like Little Gish.

","tags":["Class"]},{"location":"ColorModifier.html","title":"Class \"ColorModifier\"","text":"Info

This class can be accessed by using its constructor:

Example Code
local tintRed = ColorModifier(1,0,0,0.33,0,1)\n
","tags":["Class"]},{"location":"ColorModifier.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier","title":"ColorModifier ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-colormodifier-float-r-1-float-g-1-float-b-1-float-a-0-float-brightness-0-float-contrast-1","title":"ColorModifier ColorModifier ( float R = 1, float G = 1, float B = 1, float A = 0, float Brightness = 0, float Contrast = 1 )","text":"","tags":["Class"]},{"location":"ColorModifier.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"ColorModifier.html#a","title":"A","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-a","title":"float A","text":"Warning

This acts as a strength multiplier and must be non-zero in order for RGB to have any effect!

","tags":["Class"]},{"location":"ColorModifier.html#b","title":"B","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-b","title":"float B","text":"","tags":["Class"]},{"location":"ColorModifier.html#brightness","title":"Brightness","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-brightness","title":"float Brightness","text":"","tags":["Class"]},{"location":"ColorModifier.html#contrast","title":"Contrast","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-contrast","title":"float Contrast","text":"","tags":["Class"]},{"location":"ColorModifier.html#g","title":"G","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-g","title":"float G","text":"","tags":["Class"]},{"location":"ColorModifier.html#r","title":"R","text":"","tags":["Class"]},{"location":"ColorModifier.html#float-r","title":"float R","text":"","tags":["Class"]},{"location":"ColorModifier.html#operators","title":"Operators","text":"","tags":["Class"]},{"location":"ColorModifier.html#__add","title":"__add ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__add-colormodifier-right","title":"ColorModifier __add ( ColorModifier right )","text":"

Defines the addition of two ColorModifier objects using the + operator.

","tags":["Class"]},{"location":"ColorModifier.html#__div","title":"__div ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__div-colormodifier-right","title":"ColorModifier __div ( ColorModifier right )","text":"

Defines the division of a ColorModifier object and a float using the / operator. The ColorModifier must be on the left side.

","tags":["Class"]},{"location":"ColorModifier.html#__eq","title":"__eq ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__eq-colormodifier-right","title":"ColorModifier __eq ( ColorModifier right )","text":"

Defines equal of two ColorModifier objects using the == operator.

","tags":["Class"]},{"location":"ColorModifier.html#__mul","title":"__mul ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__mul-colormodifier-right","title":"ColorModifier __mul ( ColorModifier right )","text":"

Defines the multiplication of a ColorModifier object and a float using the * operator. The ColorModifier must be on the left side.

","tags":["Class"]},{"location":"ColorModifier.html#__sub","title":"__sub ()","text":"","tags":["Class"]},{"location":"ColorModifier.html#colormodifier-__sub-colormodifier-right","title":"ColorModifier __sub ( ColorModifier right )","text":"

Defines the subtraction of two ColorModifier objects using the - operator.

","tags":["Class"]},{"location":"ColorParams.html","title":"Class \"ColorParams\"","text":"Info

This class can be accessed using its constructor:

Example Code
local fiveSecondRedColor = ColorParams(Color(1,0,0,1),255,150,false,false)\n
","tags":["Class"]},{"location":"ColorParams.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ColorParams.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"ColorParams.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getduration","title":"GetDuration ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getduration","title":"int GetDuration ( )","text":"

Defines the time in update frames that these parameters should last. Has no effect on how many frames are left, but does affect fadeout speed (calculated as Lifespan / Duration) if Fadeout is enabled.

","tags":["Class"]},{"location":"ColorParams.html#getfadeout","title":"GetFadeout ()","text":"","tags":["Class"]},{"location":"ColorParams.html#boolean-getfadeout","title":"boolean GetFadeout ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getlifespan","title":"GetLifespan ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getlifespan","title":"int GetLifespan ( )","text":"

Defines how many update frames are left before this expires. This is decremented by 1 each non-interpolation update at a rate of 30 per second. Altering this will directly effect how many frames are left before these parameters expire.

","tags":["Class"]},{"location":"ColorParams.html#getpriority","title":"GetPriority ()","text":"","tags":["Class"]},{"location":"ColorParams.html#int-getpriority","title":"int GetPriority ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#getshared","title":"GetShared ()","text":"","tags":["Class"]},{"location":"ColorParams.html#boolean-getshared","title":"boolean GetShared ( )","text":"","tags":["Class"]},{"location":"ColorParams.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setcolor-color-color","title":"void SetColor ( Color Color )","text":"","tags":["Class"]},{"location":"ColorParams.html#setduration","title":"SetDuration ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setduration-int-duration","title":"void SetDuration ( int Duration )","text":"","tags":["Class"]},{"location":"ColorParams.html#setfadeout","title":"SetFadeout ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setfadeout-boolean-value","title":"void SetFadeout ( boolean Value )","text":"","tags":["Class"]},{"location":"ColorParams.html#setlifespan","title":"SetLifespan ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setlifespan-int-duration","title":"void SetLifespan ( int Duration )","text":"","tags":["Class"]},{"location":"ColorParams.html#setpriority","title":"SetPriority ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setpriority-int-priority","title":"void SetPriority ( int Priority )","text":"","tags":["Class"]},{"location":"ColorParams.html#setshared","title":"SetShared ()","text":"","tags":["Class"]},{"location":"ColorParams.html#void-setfadeout-boolean-value_1","title":"void SetFadeout ( boolean Value )","text":"","tags":["Class"]},{"location":"Console.html","title":"Global Class \"Console\"","text":"Info

You can get this class by using the Console global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local cmdhistory = Console.GetCommandHistory()\n
","tags":["Global","Class"]},{"location":"Console.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Console.html#getcommandhistory","title":"GetCommandHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#string-getcommandhistory","title":"string[] GetCommandHistory ( )","text":"

Returns a table containing current command history.

","tags":["Global","Class"]},{"location":"Console.html#gethistory","title":"GetHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#string-gethistory","title":"string[] GetHistory ( )","text":"

Returns a table containing every previous entry printed to the console this run.

This is ordered last-to-first- the first entry will be the currently blank line awaiting user input, followed by the previous print, and so on. The last line will always be Repentance Console.

","tags":["Global","Class"]},{"location":"Console.html#pophistory","title":"PopHistory ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-pophistory-int-amount-1","title":"void PopHistory ( int Amount = 1 )","text":"

Removes previous lines from history. Optionally, use amount to define how many entries should be removed. The line currently awaiting user input in the console counts as a part of the history, but this is already accounted for on the C++ side.

","tags":["Global","Class"]},{"location":"Console.html#printerror","title":"PrintError ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-printerror-string-error","title":"void PrintError ( string Error )","text":"

Prints an error to the console, errors display in red text.

","tags":["Global","Class"]},{"location":"Console.html#printwarning","title":"PrintWarning ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-printwarning-string-warning","title":"void PrintWarning ( string Warning )","text":"

Prints a warning to the console, warnings display in yellow text.

","tags":["Global","Class"]},{"location":"Console.html#registercommand","title":"RegisterCommand ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-registercommand-string-name-string-desc-string-helptext-boolean-showonmenu-autocompletetype-type","title":"void RegisterCommand ( string Name, string Desc, string HelpText, boolean ShowOnMenu, AutocompleteType Type )","text":"

Registers a command in the new console. These will show up in the new console's autocomplete.

  • Desc will show when typing the help command.
  • HelpText will show when typing help (Name).
  • AutocompleteType will make the command inherit that autocomplete type. If the command doesn't fit into any of the standard types, use CUSTOM combined with MC_CONSOLE_AUTOCOMPLETE to create a bespoke one for this command.
","tags":["Global","Class"]},{"location":"Console.html#registermacro","title":"RegisterMacro ()","text":"","tags":["Global","Class"]},{"location":"Console.html#void-registermacro-string-name-string-commands","title":"void RegisterMacro ( string Name, string[] Commands )","text":"

Registers a macro in the new console. These will show up in the new console's autocomplete for the macro command.

  • Commands is a table of strings containing the commands that should be executed, in order.
","tags":["Global","Class"]},{"location":"CostumeSpriteDesc.html","title":"Class \"CostumeSpriteDesc\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetCostumeSpriteDescs()
Example Code
local firstCostumeDesc = Isaac.GetPlayer():GetCostumeSpriteDescs()[1]\n
","tags":["Class"]},{"location":"CostumeSpriteDesc.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#canoverwritecolor","title":"CanOverwriteColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-canoverwritecolor","title":"boolean CanOverwriteColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getbodycolor","title":"GetBodyColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getbodycolor","title":"int GetBodyColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getheadcolor","title":"GetHeadColor ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getheadcolor","title":"int GetHeadColor ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getitemconfig","title":"GetItemConfig ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#itemconfig_item-getitemconfig","title":"ItemConfig_Item GetItemConfig ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getplayertype","title":"int GetPlayerType ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getpriority","title":"GetPriority ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#int-getpriority","title":"int GetPriority ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#getsprite","title":"GetSprite ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"

Returns sprite of associated to the costume.

","tags":["Class"]},{"location":"CostumeSpriteDesc.html#hasoverlay","title":"HasOverlay ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-hasoverlay","title":"boolean HasOverlay ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#hasskinalt","title":"HasSkinAlt ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-hasskinalt","title":"boolean HasSkinAlt ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isflying","title":"IsFlying ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isflying","title":"boolean IsFlying ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isitemanimplaying","title":"IsItemAnimPlaying ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isitemanimplaying","title":"boolean IsItemAnimPlaying ( )","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#isitemstateonly","title":"IsItemStateOnly ()","text":"","tags":["Class"]},{"location":"CostumeSpriteDesc.html#boolean-isitemstateonly","title":"boolean IsItemStateOnly ( )","text":"","tags":["Class"]},{"location":"DailyChallenge.html","title":"Global Class \"DailyChallenge\"","text":"Info

You can get this class by using the DailyChallenge global table.

Example Code
local dailyparams = DailyChallenge.GetChallengeParams()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks.

","tags":["Global","Class"]},{"location":"DailyChallenge.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"DailyChallenge.html#getchallengeparams","title":"GetChallengeParams ()","text":"","tags":["Global","Class"]},{"location":"DailyChallenge.html#challengeparam-getchallengeparams","title":"ChallengeParam GetChallengeParams ( )","text":"","tags":["Global","Class"]},{"location":"Debug.html","title":"Global Class \"Debug\"","text":"Info

You can get this class by using the Debug global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local loadedFiles = Debug.ListLoadedFiles()\n
","tags":["Global","Class"]},{"location":"Debug.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Debug.html#forceunload","title":"ForceUnload ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#void-forceunload-string-modulename","title":"void ForceUnload ( string ModuleName )","text":"","tags":["Global","Class"]},{"location":"Debug.html#getsignature","title":"GetSignature ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#string-getsignature-int-address","title":"string GetSignature ( int Address )","text":"","tags":["Global","Class"]},{"location":"Debug.html#listloadedfiles","title":"ListLoadedFiles ()","text":"","tags":["Global","Class"]},{"location":"Debug.html#string-listloadedfiles","title":"string[] ListLoadedFiles ( )","text":"

Returns a list of all files loaded into the LUA environment.

","tags":["Global","Class"]},{"location":"DebugRenderer.html","title":"Global Class \"DebugRenderer\"","text":"Info

You can get this class by using the DebugRenderer global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local shapeone = DebugRenderer.Get(1,true)\n
","tags":["Global","Class"]},{"location":"DebugRenderer.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"DebugRenderer.html#get","title":"Get ()","text":"","tags":["Global","Class"]},{"location":"DebugRenderer.html#shape-get-int-index-boolean-unknown","title":"Shape Get ( int Index, boolean Unknown)","text":"","tags":["Global","Class"]},{"location":"EntitiesSaveState.html","title":"Class \"EntitiesSaveState\"","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getb1","title":"GetB1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#boolean-getb1","title":"boolean GetB1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getb2","title":"GetB2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#boolean-getb2","title":"boolean GetB2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getdropseed","title":"GetDropSeed ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getdropseed","title":"int GetDropSeed ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getf1","title":"GetF1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#float-getf1","title":"float GetF1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getf2","title":"GetF2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#float-getf2","title":"float GetF2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getgridspawnidx","title":"GetGridSpawnIdx ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getgridspawnidx","title":"int GetGridSpawnIdx ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti1","title":"GetI1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti1","title":"int GetI1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti2","title":"GetI2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti2","title":"int GetI2 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti3","title":"GetI3 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti3","title":"int GetI3 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti4","title":"GetI4 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti4","title":"int GetI4 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti5","title":"GetI5 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti5","title":"int GetI5 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti6","title":"GetI6 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti6","title":"int GetI6 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti7","title":"GetI7 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti7","title":"int GetI7 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#geti8","title":"GetI8 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-geti8","title":"int GetI8 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getinitseed","title":"GetInitSeed ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getinitseed","title":"int GetInitSeed ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getspawnertype","title":"GetSpawnerType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#entitytype-getspawnertype","title":"EntityType GetSpawnerType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getspawnervariant","title":"GetSpawnerVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getspawnervariant","title":"int GetSpawnerVariant ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getsubtype","title":"GetSubType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getsubtype","title":"int GetSubType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#entitytype-gettype","title":"EntityType GetType ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getu1","title":"GetU1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getu1","title":"int GetU1 ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#getvariant","title":"GetVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#int-getvariant","title":"int GetVariant ( )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setb1","title":"SetB1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setb1-boolean-b1","title":"void SetB1 ( boolean B1 )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setb2","title":"SetB2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setb2-boolean-b2","title":"void SetB2 ( boolean B2 )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setf1","title":"SetF1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setf1-float-num","title":"void SetF1 ( float Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setf2","title":"SetF2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setf2-float-num","title":"void SetF2 ( float Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti1","title":"SetI1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti1-int-num","title":"void SetI1 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti2","title":"SetI2 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti2-int-num","title":"void SetI2 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti3","title":"SetI3 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti3-int-num","title":"void SetI3 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti4","title":"SetI4 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti4-int-num","title":"void SetI4 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti5","title":"SetI5 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti5-int-num","title":"void SetI5 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti6","title":"SetI6 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti6-int-num","title":"void SetI6 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti7","title":"SetI7 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti7-int-num","title":"void SetI7 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#seti8","title":"SetI8 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-seti8-int-num","title":"void SetI8 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setpos","title":"SetPos ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setpos-vector-pos","title":"void SetPos ( Vector Pos )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setsubtype","title":"SetSubType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setsubtype-int-subtype","title":"void SetSubType ( int SubType )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#settype","title":"SetType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-settype-entitytype-type","title":"void SetType ( EntityType Type )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setu1","title":"SetU1 ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setu1-int-num","title":"void SetU1 ( int Num )","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#setvariant","title":"SetVariant ()","text":"","tags":["Class"]},{"location":"EntitiesSaveState.html#void-setvariant-int-variant","title":"void SetVariant ( int Variant )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html","title":"Class \"EntitiesSaveStateVector\"","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#get","title":"Get ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#entitiessavestate-get-int-index","title":"EntitiesSaveState Get ( int Index )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#getbytype","title":"GetByType ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#entitiessavestate-getbytype-entitytype-type-int-variant-0-int-subtype-0","title":"EntitiesSaveState GetByType ( EntityType Type, int Variant = 0, int SubType = 0 )","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#__len","title":"__len ()","text":"","tags":["Class"]},{"location":"EntitiesSaveStateVector.html#int-__len","title":"int __len ( )","text":"","tags":["Class"]},{"location":"Entity.html","title":"Class \"Entity\"","text":"","tags":["Class"]},{"location":"Entity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Entity.html#addbaited","title":"AddBaited ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbaited-entityref-source-int-duration","title":"void AddBaited ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addbleeding","title":"AddBleeding ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbleeding-entityref-source-int-duration","title":"void AddBleeding ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addbrimstonemark","title":"AddBrimstoneMark ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addbrimstonemark-entityref-source-int-duration","title":"void AddBrimstoneMark ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addice","title":"AddIce ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addice-entityref-source-int-duration","title":"void AddIce ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addknockback","title":"AddKnockback ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addknockback-entityref-source-vector-pushdirection-int-duration-boolean-takeimpactdamage","title":"void AddKnockback ( EntityRef Source, Vector PushDirection, int Duration, boolean TakeImpactDamage )","text":"Duration info

The Duration has a maximum of 0.5 seconds / 15 frames.

","tags":["Class"]},{"location":"Entity.html#addmagnetized","title":"AddMagnetized ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addmagnetized-entityref-source-int-duration","title":"void AddMagnetized ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#addweakness","title":"AddWeakness ()","text":"","tags":["Class"]},{"location":"Entity.html#void-addweakness-entityref-source-int-duration","title":"void AddWeakness ( EntityRef Source, int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#computestatuseffectduration","title":"ComputeStatusEffectDuration ()","text":"","tags":["Class"]},{"location":"Entity.html#int-computestatuseffectduration-int-initiallength-entityref-source","title":"int ComputeStatusEffectDuration ( int InitialLength, EntityRef Source )","text":"","tags":["Class"]},{"location":"Entity.html#copystatuseffects","title":"CopyStatusEffects ()","text":"","tags":["Class"]},{"location":"Entity.html#void-copystatuseffects-boolean-copycolor-true","title":"void CopyStatusEffects ( boolean CopyColor = true )","text":"","tags":["Class"]},{"location":"Entity.html#void-copystatuseffects-entity-target-boolean-copycolor-true","title":"void CopyStatusEffects ( Entity Target, boolean CopyColor = true )","text":"

If no Entity is specified, this will recursively copy status effects to all Child Entities.

","tags":["Class"]},{"location":"Entity.html#forcecollide","title":"ForceCollide ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-forcecollide-entity-entity-boolean-low","title":"boolean ForceCollide ( Entity Entity, boolean Low )","text":"","tags":["Class"]},{"location":"Entity.html#getbaitedcountdown","title":"GetBaitedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbaitedcountdown","title":"int GetBaitedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbleedingcountdown","title":"GetBleedingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbleedingcountdown","title":"int GetBleedingCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbossstatuseffectcooldown","title":"GetBossStatusEffectCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbossstatuseffectcooldown","title":"int GetBossStatusEffectCooldown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getbrimstonemarkcountdown","title":"GetBrimstoneMarkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getbrimstonemarkcountdown","title":"int GetBrimstoneMarkCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getburncountdown","title":"GetBurnCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getburncountdown","title":"int GetBurnCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getburndamagetimer","title":"GetBurnDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getburndamagetimer","title":"int GetBurnDamageTimer ( )","text":"","tags":["Class"]},{"location":"Entity.html#getcharmedcountdown","title":"GetCharmedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getcharmedcountdown","title":"int GetCharmedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getcollisioncapsule","title":"GetCollisionCapsule ()","text":"","tags":["Class"]},{"location":"Entity.html#capsule-getcollisioncapsule-vector-vector","title":"Capsule GetCollisionCapsule ( Vector Vector )","text":"","tags":["Class"]},{"location":"Entity.html#getcolorparams","title":"GetColorParams ()","text":"","tags":["Class"]},{"location":"Entity.html#colorparams-getcolorparams","title":"ColorParams[] GetColorParams ( )","text":"

Returns a table of all colors currently queued by SetColor alongside their parameters.

","tags":["Class"]},{"location":"Entity.html#getconfusioncountdown","title":"GetConfusionCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getconfusioncountdown","title":"int GetConfusionCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getdamagecountdown","title":"GetDamageCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getdamagecountdown","title":"int GetDamageCountdown ( )","text":"

If the entity recently took damage with the DAMAGE_COUNTDOWN DamageFlag, this returns how many more frames must pass before they can take damage with the DAMAGE_COUNTDOWN DamageFlag again.

Note that this is NOT the same as the player's invincibility frames (EntityPlayer:GetDamageCooldown()). The DAMAGE_COUNTDOWN DamageFlag and this associated countdown are typically used to control how rapidly an enemy will take damage from the few sources that uses that flag, such as the the collision damage effects from the \"My Little Unicorn\", \"The Nail\", and \"The Gamekid\".

","tags":["Class"]},{"location":"Entity.html#getdebugshape","title":"GetDebugShape ()","text":"","tags":["Class"]},{"location":"Entity.html#shape-getdebugshape-boolean-unknown","title":"Shape GetDebugShape ( boolean Unknown )","text":"","tags":["Class"]},{"location":"Entity.html#getentityconfigentity","title":"GetEntityConfigEntity ()","text":"","tags":["Class"]},{"location":"Entity.html#entityconfigentity-getentityconfigentity","title":"EntityConfigEntity GetEntityConfigEntity ( )","text":"

Returns the corresponding EntityConfig entry for this entity.

","tags":["Class"]},{"location":"Entity.html#getfearcountdown","title":"GetFearCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfearcountdown","title":"int GetFearCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getfiredamagecooldown","title":"GetFireDamageCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfiredamagecooldown","title":"int GetFireDamageCooldown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getfreezecountdown","title":"GetFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getfreezecountdown","title":"int GetFreezeCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#gethitlistindex","title":"GetHitListIndex ()","text":"","tags":["Class"]},{"location":"Entity.html#int-gethitlistindex","title":"int GetHitListIndex ( )","text":"","tags":["Class"]},{"location":"Entity.html#geticecountdown","title":"GetIceCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-geticecountdown","title":"int GetIceCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getknockbackcountdown","title":"GetKnockbackCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getknockbackcountdown","title":"int GetKnockbackCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getknockbackdirection","title":"GetKnockbackDirection ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getknockbackdirection","title":"Vector GetKnockbackDirection ( )","text":"","tags":["Class"]},{"location":"Entity.html#getmagnetizedcountdown","title":"GetMagnetizedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getmagnetizedcountdown","title":"int GetMagnetizedCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getmidasfreezecountdown","title":"GetMidasFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getmidasfreezecountdown","title":"int GetMidasFreezeCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getminecart","title":"GetMinecart ()","text":"","tags":["Class"]},{"location":"Entity.html#entitynpc-getminecart","title":"EntityNPC GetMinecart ( )","text":"

Returns the minecart the entity is riding.

Return

If the entity is not riding a minecart, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#getnullcapsule","title":"GetNullCapsule ()","text":"","tags":["Class"]},{"location":"Entity.html#capsule-getnullcapsule-string-nulllayername","title":"Capsule GetNullCapsule ( string NullLayerName )","text":"","tags":["Class"]},{"location":"Entity.html#getnulloffset","title":"GetNullOffset ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getnulloffset-string-nulllayername","title":"Vector GetNullOffset ( string NullLayerName )","text":"

Returns position of null layer mark. Alternatively returns Vector.Zero if the layer is not visible, has no frame available for the current animation, or for other unknown reasons.

","tags":["Class"]},{"location":"Entity.html#getpausetime","title":"GetPauseTime ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpausetime","title":"int GetPauseTime ( )","text":"","tags":["Class"]},{"location":"Entity.html#getpoisoncountdown","title":"GetPoisonCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpoisoncountdown","title":"int GetPoisonCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getpoisondamagetimer","title":"GetPoisonDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getpoisondamagetimer","title":"int GetPoisonDamageTimer ( )","text":"","tags":["Class"]},{"location":"Entity.html#getposvel","title":"GetPosVel ()","text":"","tags":["Class"]},{"location":"Entity.html#posvel-getposvel","title":"PosVel GetPosVel ( )","text":"

Returns 2 values, both Vectors. 1st the Position of the entity, 2nd the Velocity of the entity.

","tags":["Class"]},{"location":"Entity.html#getpredictedtargetposition","title":"GetPredictedTargetPosition ()","text":"","tags":["Class"]},{"location":"Entity.html#vector-getpredictedtargetposition-entity-target-float-delay","title":"Vector GetPredictedTargetPosition ( Entity Target, float Delay )","text":"

The prediction is the target's current position plus their velocity multiplied by the distance between this and the target. Delay acts as a multiplier for how far ahead the prediction should be. For example, 1.0 would predict where the target's velocity would place them on the next update.

","tags":["Class"]},{"location":"Entity.html#getshadowsize","title":"GetShadowSize ()","text":"","tags":["Class"]},{"location":"Entity.html#float-getshadowsize","title":"float GetShadowSize ( )","text":"","tags":["Class"]},{"location":"Entity.html#getshrinkcountdown","title":"GetShrinkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getshrinkcountdown","title":"int GetShrinkCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getslowingcountdown","title":"GetSlowingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getslowingcountdown","title":"int GetSlowingCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#getspeedmultiplier","title":"GetSpeedMultiplier ()","text":"","tags":["Class"]},{"location":"Entity.html#float-getspeedmultiplier","title":"float GetSpeedMultiplier ( )","text":"","tags":["Class"]},{"location":"Entity.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"Entity.html#entitytype-gettype","title":"EntityType GetType ( )","text":"","tags":["Class"]},{"location":"Entity.html#getweaknesscountdown","title":"GetWeaknessCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#int-getweaknesscountdown","title":"int GetWeaknessCountdown ( )","text":"","tags":["Class"]},{"location":"Entity.html#giveminecart","title":"GiveMinecart ()","text":"","tags":["Class"]},{"location":"Entity.html#entitynpc-giveminecart-vector-position-vector-velocity","title":"EntityNPC GiveMinecart ( Vector Position, Vector Velocity )","text":"","tags":["Class"]},{"location":"Entity.html#ignoreeffectfromfriendly","title":"IgnoreEffectFromFriendly ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-ignoreeffectfromfriendly-entityref-source","title":"boolean IgnoreEffectFromFriendly ( EntityRef Source )","text":"

Used to determine if this entity should ignore any status effect coming from Source.

","tags":["Class"]},{"location":"Entity.html#makebloodpoof","title":"MakeBloodPoof ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-makebloodpoof-vector-position-selfposition-color-color-default-float-scale-10","title":"EntityEffect MakeBloodPoof ( Vector Position = self.Position, Color Color = default, float Scale = 1.0 )","text":"Info

This function spawns two effects; the second will be the the Child of the one returned.

","tags":["Class"]},{"location":"Entity.html#makegroundpoof","title":"MakeGroundPoof ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-makegroundpoof-vector-position-selfposition-color-color-default-float-scale-10","title":"EntityEffect MakeGroundPoof ( Vector Position = self.Position, Color Color = default, float Scale = 1.0 )","text":"Info

This function spawns two effects; the second will be the the Child of the one returned.

","tags":["Class"]},{"location":"Entity.html#setbaitedcountdown","title":"SetBaitedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbaitedcountdown-int-countdown","title":"void SetBaitedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setbleedingcountdown","title":"SetBleedingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbleedingcountdown-int-countdown","title":"void SetBleedingCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setbossstatuseffectcooldown","title":"SetBossStatusEffectCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbossstatuseffectcooldown-int-cooldown","title":"void SetBossStatusEffectCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"Entity.html#setbrimstonemarkcountdown","title":"SetBrimstoneMarkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setbrimstonemarkcountdown-int-countdown","title":"void SetBrimstoneMarkCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setburncountdown","title":"SetBurnCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setburncountdown-int-countdown","title":"void SetBurnCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setburndamagetimer","title":"SetBurnDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setburndamagetimer-int-timer","title":"void SetBurnDamageTimer ( int Timer )","text":"","tags":["Class"]},{"location":"Entity.html#setcharmedcountdown","title":"SetCharmedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setcharmedcountdown-int-countdown","title":"void SetCharmedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setcolorparams","title":"SetColorParams ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setcolorparams-colorparams-params","title":"void SetColorParams ( ColorParams[] Params )","text":"

Sets colors to be used alongside their parameters.

","tags":["Class"]},{"location":"Entity.html#setconfusioncountdown","title":"SetConfusionCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setconfusioncountdown-int-countdown","title":"void SetConfusionCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setdamagecountdown","title":"SetDamageCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setdamagecountdown-int-countdown","title":"void SetDamageCountdown ( int countdown )","text":"

Sets how many frames must pass before the entity can take damage that has the DAMAGE_COUNTDOWN DamageFlag.

Note that this is NOT the same as the player's invincibility frames (EntityPlayer:GetDamageCooldown()). The DAMAGE_COUNTDOWN DamageFlag and this associated countdown are typically used to control how rapidly an enemy will take damage from the few sources that uses that flag, such as the the collision damage effects from the \"My Little Unicorn\", \"The Nail\", and \"The Gamekid\".

","tags":["Class"]},{"location":"Entity.html#setdead","title":"SetDead ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setdead-boolean-isdead","title":"void SetDead ( boolean IsDead )","text":"","tags":["Class"]},{"location":"Entity.html#setfearcountdown","title":"SetFearCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfearcountdown-int-countdown","title":"void SetFearCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setfiredamagecooldown","title":"SetFireDamageCooldown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfiredamagecooldown-int-cooldown","title":"void SetFireDamageCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"Entity.html#setfreezecountdown","title":"SetFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setfreezecountdown-int-countdown","title":"void SetFreezeCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#seticecountdown","title":"SetIceCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-seticecountdown-int-countdown","title":"void SetIceCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setinvincible","title":"SetInvincible ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setinvincible-boolean-isinvincible","title":"void SetInvincible ( boolean IsInvincible )","text":"","tags":["Class"]},{"location":"Entity.html#setknockbackcountdown","title":"SetKnockbackCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setknockbackcountdown-int-countdown","title":"void SetKnockbackCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setknockbackdirection","title":"SetKnockbackDirection ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setknockbackdirection-vector-direction","title":"void SetKnockbackDirection ( Vector Direction )","text":"","tags":["Class"]},{"location":"Entity.html#setmagnetizedcountdown","title":"SetMagnetizedCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setmagnetizedcountdown-int-countdown","title":"void SetMagnetizedCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setmidasfreezecountdown","title":"SetMidasFreezeCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setmidasfreezecountdown-int-countdown","title":"void SetMidasFreezeCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setpausetime","title":"SetPauseTime ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpausetime-int-duration","title":"void SetPauseTime ( int Duration )","text":"","tags":["Class"]},{"location":"Entity.html#setpoisoncountdown","title":"SetPoisonCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpoisoncountdown-int-countdown","title":"void SetPoisonCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setpoisondamagetimer","title":"SetPoisonDamageTimer ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setpoisondamagetimer-int-timer","title":"void SetPoisonDamageTimer ( int Timer )","text":"","tags":["Class"]},{"location":"Entity.html#setshadowsize","title":"SetShadowSize ()","text":"","tags":["Class"]},{"location":"Entity.html#float-setshadowsize-float-size","title":"float SetShadowSize ( float Size )","text":"","tags":["Class"]},{"location":"Entity.html#setshrinkcountdown","title":"SetShrinkCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setshrinkcountdown-int-countdown","title":"void SetShrinkCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setslowingcountdown","title":"SetSlowingCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setslowingcountdown-int-countdown","title":"void SetSlowingCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#setspeedmultiplier","title":"SetSpeedMultiplier ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setspeedmultiplier-float-amount","title":"void SetSpeedMultiplier ( float Amount )","text":"","tags":["Class"]},{"location":"Entity.html#setweaknesscountdown","title":"SetWeaknessCountdown ()","text":"","tags":["Class"]},{"location":"Entity.html#void-setweaknesscountdown-int-countdown","title":"void SetWeaknessCountdown ( int Countdown )","text":"","tags":["Class"]},{"location":"Entity.html#spawnbloodeffect","title":"SpawnBloodEffect ()","text":"","tags":["Class"]},{"location":"Entity.html#entityeffect-spawnbloodeffect-int-subtype-0-vector-position-selfposition-vector-offset-vectorzero-color-color-default-vector-velocity-vectorzero","title":"EntityEffect SpawnBloodEffect ( int SubType = 0, Vector position = self.Position, Vector Offset = Vector.Zero, Color Color = Default, Vector Velocity = Vector.Zero )","text":"","tags":["Class"]},{"location":"Entity.html#spawnwaterimpacteffects","title":"SpawnWaterImpactEffects ()","text":"","tags":["Class"]},{"location":"Entity.html#void-spawnwaterimpacteffects-vector-position-vector-velocity-vectorzero-float-strength","title":"void SpawnWaterImpactEffects ( Vector Position, Vector Velocity = Vector.Zero, float Strength )","text":"Warning

This function will only spawn effects if the Room's water amount is above or equal to 0.2.

","tags":["Class"]},{"location":"Entity.html#teleporttorandomposition","title":"TeleportToRandomPosition ()","text":"","tags":["Class"]},{"location":"Entity.html#void-teleporttorandomposition","title":"void TeleportToRandomPosition ( )","text":"","tags":["Class"]},{"location":"Entity.html#todelirium","title":"ToDelirium ()","text":"","tags":["Class"]},{"location":"Entity.html#entitydelirium-todelirium","title":"EntityDelirium ToDelirium ( )","text":"

Convert an Entity userdata to an EntityDelirium userdata. The conversion will only succeed if the source entity is an instance of Delirium (in its normal form or in a transformed form).

Return behavior

If the conversion fails, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#toslot","title":"ToSlot ()","text":"","tags":["Class"]},{"location":"Entity.html#entityslot-toslot","title":"EntitySlot ToSlot ( )","text":"

Used to cast an Entity object to an EntitySlot object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"Entity.html#trythrow","title":"TryThrow ()","text":"","tags":["Class"]},{"location":"Entity.html#boolean-trythrow-entityref-source-vector-throwdirection-float-force","title":"boolean TryThrow ( EntityRef Source, Vector ThrowDirection, float Force )","text":"","tags":["Class"]},{"location":"EntityBomb.html","title":"Class \"EntityBomb\"","text":"","tags":["Class"]},{"location":"EntityBomb.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityBomb.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityBomb.html#getcostumelayersprite","title":"GetCostumeLayerSprite ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#sprite-getcostumelayersprite-bombcostumelayer-layerid","title":"Sprite GetCostumeLayerSprite ( BombCostumeLayer LayerID )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getexplosioncountdown","title":"GetExplosionCountdown ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#int-getexplosioncountdown","title":"int GetExplosionCountdown ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getfallingspeed","title":"GetFallingSpeed ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getfallingspeed","title":"float GetFallingSpeed ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getheight","title":"GetHeight ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getheight","title":"float GetHeight ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#float-getscale","title":"float GetScale ( )","text":"

Used to apply animation set for bomb costume.

","tags":["Class"]},{"location":"EntityBomb.html#isloadingcostumes","title":"IsLoadingCostumes ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#boolean-isloadingcostumes","title":"boolean IsLoadingCostumes ( )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setfallingspeed","title":"SetFallingSpeed ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setfallingspeed-float-speed","title":"void SetFallingSpeed ( float Speed )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setheight","title":"SetHeight ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setheight-float-height","title":"void SetHeight ( float Height )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setloadcostumes","title":"SetLoadCostumes ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setloadcostumes-boolean-load-true","title":"void SetLoadCostumes ( boolean Load = true )","text":"","tags":["Class"]},{"location":"EntityBomb.html#setscale","title":"SetScale ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-setscale-float-scale","title":"void SetScale ( float Scale )","text":"

Should be used with SetLoadCostumes method.

","tags":["Class"]},{"location":"EntityBomb.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityBomb.html#void-updatedirtcolor","title":"void UpdateDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityConfig.html","title":"Global Class \"EntityConfig\"","text":"Info

These functions can be accessed via the EntityConfig global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local gaperConfig = EntityConfig.GetEntity(EntityType.ENTITY_GAPER)\n
","tags":["Global","Class"]},{"location":"EntityConfig.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#getentity","title":"GetEntity ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#entityconfigentity-getentity-entitytype-type-int-variant-1-int-subtype-1","title":"EntityConfigEntity GetEntity ( EntityType Type, int Variant = -1, int SubType = -1 )","text":"

Returns nil if no entity exists with the specified Type.

Providing Variant and/or SubType is optional. If a non-existent Variant/SubType is requested, returns the base version of that entity.

","tags":["Global","Class"]},{"location":"EntityConfig.html#getmaxplayertype","title":"GetMaxPlayerType ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#int-getmaxplayertype","title":"int GetMaxPlayerType ( )","text":"

Returns the highest PlayerType currently assigned to a valid character.

","tags":["Global","Class"]},{"location":"EntityConfig.html#getplayer","title":"GetPlayer ()","text":"","tags":["Global","Class"]},{"location":"EntityConfig.html#entityconfigplayer-getplayer-playertype-playertype","title":"EntityConfigPlayer GetPlayer ( PlayerType PlayerType )","text":"

Returns nil if no character exists with the specified PlayerType.

","tags":["Global","Class"]},{"location":"EntityConfigEntity.html","title":"Class \"EntityConfigEntity\"","text":"Info

You can get this class by using the following functions:

  • EntityConfig.GetEntity()
Example Code
local gaperConfig = EntityConfig.GetEntity(EntityType.ENTITY_GAPER)\n
","tags":["Class"]},{"location":"EntityConfigEntity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canbechampion","title":"CanBeChampion ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canbechampion","title":"boolean CanBeChampion ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canbererolledinto","title":"CanBeRerolledInto ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canbererolledinto","title":"boolean CanBeRerolledInto ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#canshutdoors","title":"CanShutDoors ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-canshutdoors","title":"boolean CanShutDoors ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getanm2path","title":"GetAnm2Path ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getanm2path","title":"string GetAnm2Path ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbasehp","title":"GetBaseHP ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getbasehp","title":"float GetBaseHP ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryanimation","title":"GetBestiaryAnimation ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryanimation","title":"string GetBestiaryAnimation ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryanm2path","title":"GetBestiaryAnm2Path ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryanm2path","title":"string GetBestiaryAnm2Path ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryflooralt","title":"GetBestiaryFloorAlt ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryflooralt","title":"string GetBestiaryFloorAlt ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryoffset","title":"GetBestiaryOffset ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#const-vector-getbestiaryoffset","title":"const Vector GetBestiaryOffset ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryoverlay","title":"GetBestiaryOverlay ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getbestiaryoverlay","title":"string GetBestiaryOverlay ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbestiaryscale","title":"GetBestiaryScale ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getbestiaryscale","title":"float GetBestiaryScale ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getbossid","title":"GetBossID ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getbossid","title":"int GetBossID ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisiondamage","title":"GetCollisionDamage ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getcollisiondamage","title":"float GetCollisionDamage ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisioninterval","title":"GetCollisionInterval ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getcollisioninterval","title":"int GetCollisionInterval ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisionradius","title":"GetCollisionRadius ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getcollisionradius","title":"float GetCollisionRadius ( )","text":"

Also known as \"Size\".

","tags":["Class"]},{"location":"EntityConfigEntity.html#getcollisionradiusmultiplier","title":"GetCollisionRadiusMultiplier ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#const-vector-getcollisionradiusmultiplier","title":"const Vector GetCollisionRadiusMultiplier ( )","text":"

Also known as \"SizeMulti\".

","tags":["Class"]},{"location":"EntityConfigEntity.html#getcustomtags","title":"GetCustomTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#table-getcustomtags","title":"table GetCustomTags ( )","text":"

Returns a table containing all the strings specified in the entity's customtags attribute in entities2.xml. Tags are always provided in all lowercase. See entities2.xml for more information on customtags.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getentitytags","title":"GetEntityTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getentitytags","title":"int GetEntityTags ( )","text":"

Returns the bitmask of EntityTags for this entity.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getfriction","title":"GetFriction ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getfriction","title":"float GetFriction ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getgibflags","title":"GetGibFlags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgibflags","title":"int GetGibFlags ( )","text":"

Returns the bitmask of GibFlags for this entity.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getgibsamount","title":"GetGibsAmount ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgibsamount","title":"int GetGibsAmount ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getgridcollisionpoints","title":"GetGridCollisionPoints ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getgridcollisionpoints","title":"int GetGridCollisionPoints ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getmass","title":"GetMass ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getmass","title":"float GetMass ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getmodname","title":"GetModName ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getmodname","title":"string GetModName ( )","text":"

Name string of the mod that entity is from.

Returns nil for vanilla entities.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getportraitid","title":"GetPortraitID ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getportraitid","title":"int GetPortraitID ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getshadowsize","title":"GetShadowSize ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getshadowsize","title":"float GetShadowSize ( )","text":"

Note that this value is the \"shadowSize\" specified in the XML divided by 100.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getshieldstrength","title":"GetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getshieldstrength","title":"float GetShieldStrength ( )","text":"

The amount of armor the entity has.

","tags":["Class"]},{"location":"EntityConfigEntity.html#getstagehp","title":"GetStageHP ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#float-getstagehp","title":"float GetStageHP ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getsubtype","title":"GetSubType ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getsubtype","title":"int GetSubType ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-gettype","title":"int GetType ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#getvariant","title":"GetVariant ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#int-getvariant","title":"int GetVariant ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#hascustomtag","title":"HasCustomTag ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hascustomtag-string-tag","title":"boolean HasCustomTag ( string tag )","text":"

Returns true if the entity has the provided string specified in its customtags attribute in entities2.xml. Capitalization does not matter. See entities2.xml for more information on customtags.

","tags":["Class"]},{"location":"EntityConfigEntity.html#hasentitytags","title":"HasEntityTags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasentitytags-int-tags","title":"boolean HasEntityTags ( int Tags )","text":"

Returns true if the entity has all EntityTags specified in the provided bitset.

","tags":["Class"]},{"location":"EntityConfigEntity.html#hasflooralts","title":"HasFloorAlts ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasflooralts","title":"boolean HasFloorAlts ( )","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#hasgibflags","title":"HasGibFlags ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-hasgibflags-int-flags","title":"boolean HasGibFlags ( int Flags )","text":"

Returns true if the entity has all GibFlags specified in the provided bitset.

","tags":["Class"]},{"location":"EntityConfigEntity.html#isboss","title":"IsBoss ()","text":"","tags":["Class"]},{"location":"EntityConfigEntity.html#boolean-isboss","title":"boolean IsBoss ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html","title":"Class \"EntityConfigPlayer\"","text":"Info

You can get this class by using the following functions:

  • EntityConfig.GetPlayer()
Example Code
local cainConfig = EntityConfig.GetPlayer(PlayerType.PLAYER_CAIN)\n
","tags":["Class"]},{"location":"EntityConfigPlayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#canshoot","title":"CanShoot ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-canshoot","title":"boolean CanShoot ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getachievementid","title":"GetAchievementID ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#achievement-getachievementid","title":"Achievement GetAchievementID ( )","text":"

Returns -1 if the character is not locked behind a vanilla achievement (or -2 for \"hidden\" vanilla characters).

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbirthrightdescription","title":"GetBirthrightDescription ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getbirthrightdescription","title":"string GetBirthrightDescription ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getblackhearts","title":"GetBlackHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getblackhearts","title":"int GetBlackHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbombs","title":"GetBombs ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getbombs","title":"int GetBombs ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getbrokenhearts","title":"GetBrokenHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getbrokenhearts","title":"int GetBrokenHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcard","title":"GetCard ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#card-getcard","title":"Card GetCard ( )","text":"

Returns 0 if the character does not start with any vanilla card.

Does not include starting cards obtained via unlocks.

Does not include cards added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcoins","title":"GetCoins ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getcoins","title":"int GetCoins ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcollectibles","title":"GetCollectibles ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#collectibletype-getcollectibles","title":"CollectibleType[] GetCollectibles ( )","text":"

Returns a table of CollectibleTypes for the character's starting items.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcostumeid","title":"GetCostumeID ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getcostumeid","title":"int GetCostumeID ( )","text":"

Returns -1 if the character does not have any XML-defined starting costume (like Maggy's hair).

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getcostumesuffix","title":"GetCostumeSuffix ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getcostumesuffix","title":"string GetCostumeSuffix ( )","text":"

Directory suffix used for character-specific costume sprites.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getextraportraitpath","title":"GetExtraPortraitPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getextraportraitpath","title":"string GetExtraPortraitPath ( )","text":"

Path to a .anm2 file displayed on top of the character's level transition and boss VS screen portrait.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getkeys","title":"GetKeys ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getkeys","title":"int GetKeys ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedcontrolssprite","title":"GetModdedControlsSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedcontrolssprite","title":"Sprite GetModdedControlsSprite ( )","text":"

Returns the Sprite used for a modded character's starting room controls.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedcoopmenusprite","title":"GetModdedCoopMenuSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedcoopmenusprite","title":"Sprite GetModdedCoopMenuSprite ( )","text":"

Returns the Sprite used for a modded character's icon in the co-op character select wheel.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedgameoversprite","title":"GetModdedGameOverSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedgameoversprite","title":"Sprite GetModdedGameOverSprite ( )","text":"

Returns the Sprite used for a modded character's game over screen (ie, their name).

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedmenubackgroundsprite","title":"GetModdedMenuBackgroundSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedmenubackgroundsprite","title":"Sprite GetModdedMenuBackgroundSprite ( )","text":"

Returns the Sprite used for a modded character's character select screen.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getmoddedmenuportraitsprite","title":"GetModdedMenuPortraitSprite ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#sprite-getmoddedmenuportraitsprite","title":"Sprite GetModdedMenuPortraitSprite ( )","text":"

Returns the Sprite used for a modded character's character select portrait.

Note that this Sprite is shared by other characters from the same mod - there is an animation with the same name as this character.

Returns nil for vanilla characters, or characters with no corresponding animation.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getnameimagepath","title":"GetNameImagePath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getnameimagepath","title":"string GetNameImagePath ( )","text":"

Path to the PNG file used for the character's name on the boss VS screen.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getpill","title":"GetPill ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#pillcolor-getpill","title":"PillColor GetPill ( )","text":"

Does not include starting pills obtained via unlocks.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getplayertype","title":"GetPlayerType ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getplayertype","title":"int GetPlayerType ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getpocketactive","title":"GetPocketActive ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#collectibletype-getpocketactive","title":"CollectibleType GetPocketActive ( )","text":"

Does not include items added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getportraitpath","title":"GetPortraitPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getportraitpath","title":"string GetPortraitPath ( )","text":"

Path to the PNG file used for the character's main level transition and boss VS screen portrait.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getredhearts","title":"GetRedHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getredhearts","title":"int GetRedHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getskincolor","title":"GetSkinColor ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#skincolor-getskincolor","title":"SkinColor GetSkinColor ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#getskinpath","title":"GetSkinPath ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#string-getskinpath","title":"string GetSkinPath ( )","text":"

Path to the PNG file used for the character's primary sprite sheet.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#getsoulhearts","title":"GetSoulHearts ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#int-getsoulhearts","title":"int GetSoulHearts ( )","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#gettaintedcounterpart","title":"GetTaintedCounterpart ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#entityconfigplayer-gettaintedcounterpart","title":"EntityConfigPlayer GetTaintedCounterpart ( )","text":"

For non-tainted characters, returns their tainted counterpart, or returns nil if there is none.

For tainted characters, returns their non-tainted counterpart.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#gettrinket","title":"GetTrinket ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#trinkettype-gettrinket","title":"TrinketType GetTrinket ( )","text":"

Does not include starting trinkets obtained via unlocks.

Does not include trinkets added by mods.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#ishidden","title":"IsHidden ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-ishidden","title":"boolean IsHidden ( )","text":"

Returns true if the character is not visible/selectable from the character select screen.

Doesn't include characters who are only hidden until unlocked.

","tags":["Class"]},{"location":"EntityConfigPlayer.html#istainted","title":"IsTainted ()","text":"","tags":["Class"]},{"location":"EntityConfigPlayer.html#boolean-istainted","title":"boolean IsTainted ( )","text":"","tags":["Class"]},{"location":"EntityDelirium.html","title":"Class \"EntityDelirium\"","text":"","tags":["Class"]},{"location":"EntityDelirium.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityDelirium.html#getteleportationtimer","title":"GetTeleportationTimer ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-getteleportationtimer","title":"int GetTeleportationTimer ( )","text":"

Return the number of frames before Delirium teleports.

","tags":["Class"]},{"location":"EntityDelirium.html#isredmode","title":"IsRedMode ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#boolean-isredmode","title":"boolean IsRedMode ( )","text":"

Returns a boolean indicating if the red mode is activated or not.

About red mode

Red mode is mechanic in the Delirium fight where Delirium's sprite is tinted red. While this mode is active, Delirium's movement speed is increased in a way that cannot be observed through the modding API as it occurs outside of the update callbacks.

","tags":["Class"]},{"location":"EntityDelirium.html#setredmode","title":"SetRedMode ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-setredmode-boolean-on","title":"void SetRedMode ( boolean On )","text":"

Enable or disable red mode according to the parameter on.

About red mode

Please refer to the note in the documentation of IsRedMode for an explanation of red mode.

","tags":["Class"]},{"location":"EntityDelirium.html#setteleportationtimer","title":"SetTeleportationTimer ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-setteleportationtimer-int-timer","title":"void SetTeleportationTimer ( int Timer )","text":"

Set the number of frames before Delirium teleports. Negative values are not allowed.

","tags":["Class"]},{"location":"EntityDelirium.html#transform","title":"Transform ()","text":"","tags":["Class"]},{"location":"EntityDelirium.html#void-transform-int-type-int-variant-0","title":"void Transform ( int Type, int Variant = 0 )","text":"

Transform Delirium into the entity with the specified type and variant.

Warning

The validation of the type and variant is only as strong as the validation performed by the game when it attempts to transform Delirium. In other words, this behaves exactly as if the game itself attempted to transform Delirium, with everything it implies if the specified entity is invalid.

Warning

In order to properly handle transformations, we use the native transformation mechanic of Delirium. As such, the transformation will not be effective immediately, but instead on the next frame. Internally, this function forces the transformation timer to 1 frame and lets Delirium's AI update as needed.

","tags":["Class"]},{"location":"EntityDelirium.html#attributes","title":"Attributes","text":"","tags":["Class"]},{"location":"EntityDelirium.html#angle","title":"Angle","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int8-angle","title":"int8 Angle","text":"

Angle of Delirium's projectiles.

Geometric system

This variable is an eight bit integers, so the allowed values are the integers from 0 to 255 (inclusive). You can use a linear interpolation between the [0: 255] and the [0: 360[ ranges in order to convert angles in degree to this system.

WTH

All of Delirium bullet hell patterns can be influenced by this variable. Unlike most bosses, Delirium does not aim its projectiles at the player, instead spawning them in random directions (with some control to prevent \"absurd\" patterns). For instance, if Delirium spawns eight tears around it, and Angle is set to 0, the 8 tears will fire in the cardinal and ordinal directions. If Angle is set to 32, all tears will be rotated by 45\u00b0. No, I have no idea why Nicalis used an eight bits integer to represent an angle (analyzing the memory layout of Delirium shows that it would have made no difference using a 32 bits float).

","tags":["Class"]},{"location":"EntityDelirium.html#attackid","title":"AttackID","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-attackid","title":"int AttackID","text":"

Internal I1 value used by Delirium to identify the bullet hell pattern it is currently executing.

","tags":["Class"]},{"location":"EntityDelirium.html#bosstype","title":"BossType","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-bosstype","title":"int BossType","text":"

EntityType of the boss Delirium is currently transformed as.

","tags":["Class"]},{"location":"EntityDelirium.html#bossvariant","title":"BossVariant","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-bossvariant","title":"int BossVariant","text":"

Variant of the boss Delirium is currently transformed as.

","tags":["Class"]},{"location":"EntityDelirium.html#cycle","title":"Cycle","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-cycle","title":"int Cycle","text":"

Internal I2 value used by Delirium to identify whether red mode is activated and the amount of time before a teleportation. You should not use this variable directly and instead rely on the GetTeleportationTimer, SetTeleportationTimer, IsRedMode and SetRedMode functions instead. The only reason to use this variable directly is if you want to freeze it to a certain value that you know will do exactly what you want (for instance disable red mode and prevent teleportation).

Format of the variable

The variable is 32 bits wide and is structured as follows: bits 0 to 6 (inclusive) are unknown, bits 7 to 14 (inclusive) indicate whether red mode is active (it is active if any of the bits is set) and bits 15 to 25 (inclusive) are the teleportation timer.

Preservation of state

The aforementioned methods used to manipulate this variable preserve the bits of the variable that are irrelevant to the operation performed. For instance, enabling or disabling red mode will not change the transformation timer.

","tags":["Class"]},{"location":"EntityDelirium.html#remainingattacks","title":"RemainingAttacks","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-remainingattacks","title":"int RemainingAttacks","text":"

Number of attacks remaining before Delirium transforms into another boss.

About remaining attacks

This variable is Nicalis answer to prevent Delirium from performing too many attacks as a single boss before transforming. Under certain conditions, the game will decrement this value by 1. If it reaches 0, Delirium transforms regardless of the transformation timer. The conditions that must be met (simultaneously) are: the StateFrame variable must be 1 during the current frame, and the State variable must be set to any of the attack states. This is the reason why Delirium will sometimes initiate an attack as a boss and immediately transform. You can refer to the complete breakdown of bosses AI configurations to see the AI configuration of each attack.

","tags":["Class"]},{"location":"EntityDelirium.html#stated","title":"StateD","text":"","tags":["Class"]},{"location":"EntityDelirium.html#npcstate-stated","title":"NpcState StateD","text":"

Internal State of Delirium.

","tags":["Class"]},{"location":"EntityDelirium.html#transformationtimer","title":"TransformationTimer","text":"","tags":["Class"]},{"location":"EntityDelirium.html#int-transformationtimer","title":"int TransformationTimer","text":"

Get or set the amount of time before Delirium transforms into another boss.

On transformations

Delirium can transform in two situations: either this value reaches 0, or the value of RemainingAttacks reaches 0. Refer to the documentation of RemainingAttacks for a more detailed explanation of that mechanic.

","tags":["Class"]},{"location":"EntityEffect.html","title":"Class \"EntityEffect\"","text":"","tags":["Class"]},{"location":"EntityEffect.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityEffect.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityEffect.html#createlight","title":"CreateLight ()","text":"","tags":["Class"]},{"location":"EntityEffect.html#entityeffect-createlight-vector-position-float-scale-randomfloat00-10-int-lifespan-1-int-state-6-color-color-default","title":"EntityEffect CreateLight ( Vector Position, float Scale = RandomFloat[0.0-1.0], int Lifespan = -1, int State = 6, Color Color = Default)","text":"Warning

This is a static function and must be called via EntityEffect.CreateLight.

","tags":["Class"]},{"location":"EntityFamiliar.html","title":"Class \"EntityFamiliar\"","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityFamiliar.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getdirtcolor","title":"GetDirtColor ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#color-getdirtcolor","title":"Color GetDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getfollowerpriority","title":"GetFollowerPriority ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#followerpriority-getfollowerpriority","title":"FollowerPriority GetFollowerPriority ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getpathfinder","title":"GetPathFinder ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#pathfinder-getpathfinder","title":"PathFinder GetPathFinder ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#getweapon","title":"GetWeapon ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#weapon-getweapon","title":"Weapon GetWeapon ( )","text":"

Returns nil for familiars that don't mimic the player's attacks (Incubus, etc).

","tags":["Class"]},{"location":"EntityFamiliar.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#tryaimatmarkedtarget","title":"TryAimAtMarkedTarget ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#vector-tryaimatmarkedtarget-vector-aimdirection-direction-direction","title":"Vector TryAimAtMarkedTarget ( Vector AimDirection, Direction Direction)","text":"

Returns nil if unsuccessful.

","tags":["Class"]},{"location":"EntityFamiliar.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityFamiliar.html#void-updatedirtcolor","title":"void UpdateDirtColor ( )","text":"","tags":["Class"]},{"location":"EntityKnife.html","title":"Class \"EntityKnife\"","text":"","tags":["Class"]},{"location":"EntityKnife.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityKnife.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityKnife.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityKnife.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html","title":"Class \"EntityLaser\"","text":"","tags":["Class"]},{"location":"EntityLaser.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityLaser.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"EntityLaser.html#homingtype","title":"HomingType","text":"","tags":["Class"]},{"location":"EntityLaser.html#int-homingtype","title":"int HomingType","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"EntityLaser.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityLaser.html#getdisablefollowparent","title":"GetDisableFollowParent ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getdisablefollowparent","title":"boolean GetDisableFollowParent ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#int-gethitlist","title":"int GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getonehit","title":"GetOneHit ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getonehit","title":"boolean GetOneHit ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#float-getscale","title":"float GetScale ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#getshrink","title":"GetShrink ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-getshrink","title":"boolean GetShrink ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#boolean-gettimeout","title":"boolean GetTimeout ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#resetspritescale","title":"ResetSpriteScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-resetspritescale","title":"void ResetSpriteScale ( )","text":"","tags":["Class"]},{"location":"EntityLaser.html#rotatetoangle","title":"RotateToAngle ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-rotatetoangle-float-angle-float-speed-80","title":"void RotateToAngle ( float Angle, float Speed = 8.0 )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setdisablefollowparent","title":"SetDisableFollowParent ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setdisablefollowparent-boolean-value","title":"void SetDisableFollowParent ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setscale","title":"SetScale ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setscale-float-value","title":"void SetScale ( float Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#setshrink","title":"SetShrink ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-setshrink-boolean-value","title":"void SetShrink ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityLaser.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"EntityLaser.html#void-settimeout-boolean-value","title":"void SetTimeout ( boolean Value )","text":"","tags":["Class"]},{"location":"EntityNPC.html","title":"Class \"EntityNPC\"","text":"","tags":["Class"]},{"location":"EntityNPC.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityNPC.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"EntityNPC.html#playsound","title":"PlaySound ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-playsound-int-id-float-volume-10-int-framedelay-2-boolean-loop-true-float-pitch-10","title":"void PlaySound ( int ID, float Volume = 1.0, int FrameDelay = 2, boolean Loop = true, float Pitch = 1.0 )","text":"

All arguments besides ID are now optional.

","tags":["Class"]},{"location":"EntityNPC.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityNPC.html#firebossprojectilesex","title":"FireBossProjectilesEx ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-firebossprojectilesex-int-numprojectiles-vector-targetpos-float-trajectorymodifier-projectileparams-params","title":"EntityProjectile[] FireBossProjectilesEx ( int NumProjectiles, Vector TargetPos, float TrajectoryModifier, ProjectileParams Params )","text":"

Same as FireBossProjectiles, but returns a table containing the list of spawned projectiles.

","tags":["Class"]},{"location":"EntityNPC.html#firegridentity","title":"FireGridEntity ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-firegridentity-sprite-gridentitysprite-gridentitydesc-gridentitydesc-vector-velocity-backdroptype-backdrop-backdroptypebasement","title":"EntityProjectile FireGridEntity ( Sprite GridEntitySprite, GridEntityDesc GridEntityDesc, Vector Velocity, BackdropType Backdrop = BackdropType.BASEMENT )","text":"","tags":["Class"]},{"location":"EntityNPC.html#fireprojectilesex","title":"FireProjectilesEx ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityprojectile-fireprojectilesex-vector-position-vector-velocity-projectilesmode-mode-projectileparams-params","title":"EntityProjectile[] FireProjectilesEx (Vector Position, Vector Velocity, ProjectilesMode Mode, ProjectileParams Params)","text":"

Same as FireProjectiles, but returns a table containing the list of spawned projectiles.

","tags":["Class"]},{"location":"EntityNPC.html#getcontrollerid","title":"GetControllerId ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-getcontrollerid","title":"int GetControllerId ( )","text":"

Returns the ControllerId for the NPC, which indicates which player is controlling it. Will return -1 when not being controlled by any player.

","tags":["Class"]},{"location":"EntityNPC.html#getdirtcolor","title":"GetDirtColor ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#color-getdirtcolor","title":"Color GetDirtColor ( )","text":"

Returns the dynamic dirt color of the entity. This lets entities like Nightcrawler blend in to the environment.

","tags":["Class"]},{"location":"EntityNPC.html#gethitlist","title":"GetHitList ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-gethitlist","title":"int[] GetHitList ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#getshieldstrength","title":"GetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#float-getshieldstrength","title":"float GetShieldStrength ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#setcontrollerid","title":"SetControllerId ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#int-setcontrollerid-int-controllerid","title":"int SetControllerId ( int ControllerId )","text":"

Sets the ControllerId for the NPC, which indicates which player will control it. Set it to -1 for no player controls(back to normal behaviour).

","tags":["Class"]},{"location":"EntityNPC.html#setshieldstrength","title":"SetShieldStrength ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-setshieldstrength-float-strength","title":"void SetShieldStrength ( float Strength )","text":"","tags":["Class"]},{"location":"EntityNPC.html#shootmaggotprojectile","title":"ShootMaggotProjectile ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-shootmaggotprojectile-vector-target-float-velocity-240-float-yoffset-80","title":"EntityNPC ShootMaggotProjectile ( Vector Target, float Velocity = -24.0, float YOffset = -8.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#spawnbloodcloud","title":"SpawnBloodCloud ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entityeffect-spawnbloodcloud-vector-position-color-color","title":"EntityEffect SpawnBloodCloud ( Vector Position, Color Color )","text":"","tags":["Class"]},{"location":"EntityNPC.html#spawnbloodsplash","title":"SpawnBloodSplash ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-spawnbloodsplash","title":"void SpawnBloodSplash ( )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwleech","title":"ThrowLeech ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwleech-entity-source-vector-target-float-yposoffset-100-boolean-big-false","title":"EntityNPC ThrowLeech ( Entity Source, Vector Target, float YPosOffset = -10.0, boolean Big = false )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwmaggotatpos","title":"ThrowMaggotAtPos ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwmaggotatpos-vector-origin-float-velocity-80-float-yoffset-00","title":"EntityNPC ThrowMaggotAtPos ( Vector Origin, float Velocity = -8.0, float YOffset = 0.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwrockspider","title":"ThrowRockSpider ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwrockspider-entity-source-vector-target-int-variant-0-float-yposoffset-100","title":"EntityNPC ThrowRockSpider ( Entity Source, Vector Target, int Variant = 0, float YPosOffset = -10.0 )","text":"","tags":["Class"]},{"location":"EntityNPC.html#throwstrider","title":"ThrowStrider ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#entitynpc-throwstrider-entity-source-vector-target","title":"EntityNPC ThrowStrider ( Entity Source, Vector Target )","text":"","tags":["Class"]},{"location":"EntityNPC.html#tryforcetarget","title":"TryForceTarget ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#boolean-tryforcetarget-entity-target-int-duration","title":"boolean TryForceTarget ( Entity Target, int Duration )","text":"

Used by Lost Fly to force this NPC to focus on a specific target.

","tags":["Class"]},{"location":"EntityNPC.html#trythrow","title":"TryThrow ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#boolean-trythrow-entityref-source-vector-direction-float-force","title":"boolean TryThrow ( EntityRef Source, Vector Direction, float Force )","text":"Info

Force only applies to NPC poop (it's modified and then used as V1.y, with V1.x being -20.0) and may be incorrect. This needs further investigation.

","tags":["Class"]},{"location":"EntityNPC.html#updatedirtcolor","title":"UpdateDirtColor ()","text":"","tags":["Class"]},{"location":"EntityNPC.html#void-updatedirtcolor-boolean-immediate","title":"void UpdateDirtColor ( boolean Immediate )","text":"

Instructs the entity to update its dirt color. This is generally done automatically on vanilla entities, but up until now, modded ones have been quite limited in this reagard.

If Immediate is set, the dirt color will be set to exactly what is beneath the entity. Otherwise, it will be updated smoothly over the course of multiple frames.

","tags":["Class"]},{"location":"EntityNPC.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"EntityNPC.html#v1","title":"V1","text":"","tags":["Class"]},{"location":"EntityNPC.html#vector-v1","title":"Vector V1","text":"

Fix of original function that now correctly returns a pointer to the Vector.

","tags":["Class"]},{"location":"EntityNPC.html#v2","title":"V2","text":"","tags":["Class"]},{"location":"EntityNPC.html#vector-v2","title":"Vector V2","text":"

Fix of original function that now correctly returns a pointer to the Vector.

","tags":["Class"]},{"location":"EntityPickup.html","title":"Class \"EntityPickup\"","text":"","tags":["Class"]},{"location":"EntityPickup.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityPickup.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityPickup.html#addcollectiblecycle","title":"AddCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-addcollectiblecycle-int-id","title":"boolean AddCollectibleCycle ( int id )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getalternatepedestal","title":"GetAlternatePedestal ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getalternatepedestal","title":"int GetAlternatePedestal ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getcollectiblecycle","title":"GetCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#collectibletype-getcollectiblecycle","title":"CollectibleType[] GetCollectibleCycle ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getdropdelay","title":"GetDropDelay ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getdropdelay","title":"int GetDropDelay ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getpricesprite","title":"GetPriceSprite ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#sprite-getpricesprite","title":"Sprite GetPriceSprite ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#getrandompickupvelocity","title":"GetRandomPickupVelocity ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#vector-getrandompickupvelocity-vector-position-rng-rng-nil-int-velocitytype-0","title":"Vector GetRandomPickupVelocity ( Vector Position, RNG RNG = nil, int VelocityType = 0 )","text":"

VelocityType seems to only affect pickups in Challenge Rooms, causing them to have a weaker velocity.

Warning

This is a static function and must be called via EntityPickup.GetRandomPickupVelocity(Position, RNG, VelocityType).

","tags":["Class"]},{"location":"EntityPickup.html#getvardata","title":"GetVarData ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-getvardata","title":"int GetVarData ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#isblind","title":"IsBlind ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-isblind","title":"boolean IsBlind ( )","text":"

Returns whether a collectible is being hidden by the Curse of the Blind question mark graphics. Always returns false for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#makeshopitem","title":"MakeShopItem ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-makeshopitem-int-shopitemid","title":"void MakeShopItem ( int ShopItemID )","text":"","tags":["Class"]},{"location":"EntityPickup.html#removecollectiblecycle","title":"RemoveCollectibleCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-removecollectiblecycle","title":"void RemoveCollectibleCycle ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#setalternatepedestal","title":"SetAlternatePedestal ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setalternatepedestal-int-pedestaltype","title":"void SetAlternatePedestal ( int PedestalType )","text":"

Sets the graphics of the item pedestal. Does nothing for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#setdropdelay","title":"SetDropDelay ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setdropdelay-int-delay","title":"void SetDropDelay ( int Delay )","text":"","tags":["Class"]},{"location":"EntityPickup.html#setforceblind","title":"SetForceBlind ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setforceblind-boolean-setblind","title":"void SetForceBlind ( boolean SetBlind )","text":"

Hides pedestal items similar to Curse of the Blind. Does nothing for non-collectible EntityPickups.

","tags":["Class"]},{"location":"EntityPickup.html#setnewoptionspickupindex","title":"SetNewOptionsPickupIndex ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#int-setnewoptionspickupindex","title":"int SetNewOptionsPickupIndex ( )","text":"

Returns the new pickup index.

","tags":["Class"]},{"location":"EntityPickup.html#setvardata","title":"SetVarData ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#void-setvardata-int-vardata","title":"void SetVarData ( int VarData )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryflip","title":"TryFlip ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryflip","title":"boolean TryFlip ( )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryinitoptioncycle","title":"TryInitOptionCycle ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryinitoptioncycle-int-numcycle","title":"boolean TryInitOptionCycle ( int NumCycle )","text":"","tags":["Class"]},{"location":"EntityPickup.html#tryremovecollectible","title":"TryRemoveCollectible ()","text":"","tags":["Class"]},{"location":"EntityPickup.html#boolean-tryremovecollectible","title":"boolean TryRemoveCollectible ( )","text":"

Attempts to remove the collectible from an item pedestal.

Returns true if a collectible was successfully removed from the pedestal. Returns false if the pedestal was already empty, or if called on a non-collectible EntityPickup.

","tags":["Class"]},{"location":"EntityPlayer.html","title":"Class \"EntityPlayer\"","text":"

This class contains both new functions and modified reimplementations of existing ones.

","tags":["Class"]},{"location":"EntityPlayer.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityPlayer.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addcacheflags","title":"AddCacheFlags ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addcacheflags-cacheflag-cacheflag-boolean-evaluateitems-false","title":"void AddCacheFlags ( CacheFlag CacheFlag, boolean EvaluateItems = false )","text":"

Now accepts an optional bool to determine if EntityPlayer:EvaluateItems() should be automatically called after adding cache flags. In most cases, you'll want to do this.

","tags":["Class"]},{"location":"EntityPlayer.html#cleardeadeyecharge","title":"ClearDeadEyeCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-cleardeadeyecharge-boolean-force-false","title":"void ClearDeadEyeCharge ( boolean Force = false )","text":"

Now accepts a Force argument to forcefully reset the charge instead of only rolling for a change to reset.

","tags":["Class"]},{"location":"EntityPlayer.html#getmultishotparams","title":"GetMultiShotParams ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#multishotparams-getmultishotparams-weapontype-weapontype","title":"MultiShotParams GetMultiShotParams ( WeaponType WeaponType )","text":"

Now returns a proper MultiShotParams object.

","tags":["Class"]},{"location":"EntityPlayer.html#getmultishotpositionvelocity","title":"GetMultiShotPositionVelocity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#posvel-getmultishotpositionvelocity-int-loopindex-weapontype-weapontype-vector-shotdirection-float-shotspeed-multishotparams-params","title":"PosVel GetMultiShotPositionVelocity ( int LoopIndex, WeaponType WeaponType, Vector ShotDirection, float ShotSpeed, MultiShotParams Params )","text":"

This magically vanished from the API some time after 1.7.8.

Compared to the vanilla function, this implementation has been further augmented to throw an error if LoopIndex is higher than MultiShotParams:GetNumTears().

","tags":["Class"]},{"location":"EntityPlayer.html#getpocketitem","title":"GetPocketItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#pocketitem-getpocketitem-activeslot-slotid","title":"PocketItem GetPocketItem ( ActiveSlot SlotId )","text":"

Now returns a proper PocketItem object.

","tags":["Class"]},{"location":"EntityPlayer.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"EntityPlayer.html#babyskin","title":"BabySkin","text":"","tags":["Class"]},{"location":"EntityPlayer.html#babysubtype-babyskin","title":"BabySubType BabySkin","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"EntityPlayer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addactivecharge","title":"AddActiveCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-addactivecharge-int-charge-activeslot-slot-boolean-flashhud-true-boolean-overcharge-false-boolean-force-false","title":"int AddActiveCharge ( int Charge, ActiveSlot Slot, boolean FlashHUD = true, boolean Overcharge = false, boolean Force = false )","text":"

Returns the true amount of charge added, which may have been capped by the targeted item's MaxCharge.

","tags":["Class"]},{"location":"EntityPlayer.html#addboneorbital","title":"AddBoneOrbital ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addboneorbital-vector-position","title":"void AddBoneOrbital ( Vector Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addinnatecollectible","title":"AddInnateCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addinnatecollectible-collectibletype-collectible-int-amount-1","title":"void AddInnateCollectible ( CollectibleType Collectible, int Amount = 1 )","text":"Bug

Currently this function directly modifies the contents of WispCollectiblesList, so if this list was updated on wisp init/delete, or the player exits the run, your added innate items will not be saved.

","tags":["Class"]},{"location":"EntityPlayer.html#addleprosy","title":"AddLeprosy ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addleprosy","title":"void AddLeprosy ( )","text":"Info

This is currently still capped at a max of three familiars, and would require further modification to change this.

","tags":["Class"]},{"location":"EntityPlayer.html#addlocust","title":"AddLocust ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addlocust-collectibletype-collectible-vector-position","title":"void AddLocust ( CollectibleType Collectible, Vector Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#addsmeltedtrinket","title":"AddSmeltedTrinket ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-addsmeltedtrinket-trinkettype-trinket-boolean-firsttimepickingup-true","title":"boolean AddSmeltedTrinket ( TrinketType Trinket, boolean FirstTimePickingUp = true )","text":"

Adds a smelted trinket directly to the player's inventory.

Returns true if the trinket was successfully added, otherwise false.

","tags":["Class"]},{"location":"EntityPlayer.html#addurnsouls","title":"AddUrnSouls ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-addurnsouls-int-count-0","title":"void AddUrnSouls ( int Count = 0 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canaddcollectibletoinventory","title":"CanAddCollectibleToInventory ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canaddcollectibletoinventory-collectibletype-collectible","title":"boolean CanAddCollectibleToInventory ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#cancrushrocks","title":"CanCrushRocks ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-cancrushrocks","title":"boolean CanCrushRocks ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canoverrideactiveitem","title":"CanOverrideActiveItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canoverrideactiveitem-collectibletype-collectible","title":"boolean CanOverrideActiveItem ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#canusepill","title":"CanUsePill ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-canusepill-pilleffect-id","title":"boolean CanUsePill ( PillEffect ID )","text":"

By some conditions, usually health-related, determines whether a player can use a given pill effect.

","tags":["Class"]},{"location":"EntityPlayer.html#checkfamiliarex","title":"CheckFamiliarEx ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityfamiliar-checkfamiliarex-int-familiarvariant-familiar-int-targetcount-rng-rng-itemconfigitem-sourceitemconfigitem-nil-int-familiarsubtype-1","title":"EntityFamiliar[] CheckFamiliarEx ( int FamiliarVariant Familiar, int TargetCount, RNG rng, ItemConfigItem SourceItemConfigItem = nil, int FamiliarSubType = -1 )","text":"

A version of CheckFamiliar that returns all familiars spawned by the function as a table.

","tags":["Class"]},{"location":"EntityPlayer.html#clearcollectibleanim","title":"ClearCollectibleAnim ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearcollectibleanim-collectibletype-collectible","title":"void ClearCollectibleAnim ( CollectibleType Collectible)","text":"","tags":["Class"]},{"location":"EntityPlayer.html#clearitemanimcollectible","title":"ClearItemAnimCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearitemanimcollectible-collectibletype-id","title":"void ClearItemAnimCollectible ( CollectibleType ID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#clearitemanimnullitems","title":"ClearItemAnimNullItems ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-clearitemanimnullitems","title":"void ClearItemAnimNullItems ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#dropcollectible","title":"DropCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-dropcollectible-collectibletype-collectible-entitypickup-existingpedestal-nil-boolean-removefromplayerform-false","title":"void DropCollectible ( CollectibleType Collectible, EntityPickup ExistingPedestal = nil, boolean RemoveFromPlayerForm = false )","text":"

If ExistingPedestal is set, the collectible it contains will be swapped out for the dropped collectible instead of a new pedestal spawning.

","tags":["Class"]},{"location":"EntityPlayer.html#dropcollectiblebyhistoryindex","title":"DropCollectibleByHistoryIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entitypickup-dropcollectiblebyhistoryindex-int-idx-entitypickup-existingpedestal-nil","title":"EntityPickup DropCollectibleByHistoryIndex ( int Idx, EntityPickup ExistingPedestal = nil )","text":"

If ExistingPedestal is set, the collectible it contains will be swapped out for the dropped collectible instead of a new pedestal spawning.

","tags":["Class"]},{"location":"EntityPlayer.html#enableweapontype","title":"EnableWeaponType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-enableweapontype-weapontype-weapon-boolean-set","title":"void EnableWeaponType ( WeaponType Weapon, boolean Set )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#firebrimstoneball","title":"FireBrimstoneBall ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-firebrimstoneball-vector-position-vector-velocity-vector-offset-vectorzero","title":"EntityEffect FireBrimstoneBall ( Vector Position, Vector Velocity, Vector Offset = Vector.Zero )","text":"Info

If the player has Tech X, this function will fire an EntityLaser as well. The laser will have the Brimstone ball effect as a parent, it's unclear if the effect also links back to the laser.

","tags":["Class"]},{"location":"EntityPlayer.html#getactiveitemdesc","title":"GetActiveItemDesc ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#activeitemdesc-getactiveitemdesc-activeslot-slot-activeslotslot_primary","title":"ActiveItemDesc GetActiveItemDesc ( ActiveSlot Slot = ActiveSlot.SLOT_PRIMARY )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveitemslot","title":"GetActiveItemSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#activeslot-getactiveitemslot-collectibletype-collectible","title":"ActiveSlot GetActiveItemSlot ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactivemaxcharge","title":"GetActiveMaxCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactivemaxcharge-activeslot-slot","title":"int GetActiveMaxCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveminusablecharge","title":"GetActiveMinUsableCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactiveminusablecharge-activeslot-slot","title":"int GetActiveMinUsableCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getactiveweaponnumfired","title":"GetActiveWeaponNumFired ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getactiveweaponnumfired","title":"int GetActiveWeaponNumFired ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingcontent","title":"GetBagOfCraftingContent ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#bagofcraftingpickup-getbagofcraftingcontent","title":"BagOfCraftingPickup[] GetBagOfCraftingContent ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingoutput","title":"GetBagOfCraftingOutput ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#collectibletype-getbagofcraftingoutput","title":"CollectibleType GetBagOfCraftingOutput ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbagofcraftingslot","title":"GetBagOfCraftingSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#bagofcraftingpickup-getbagofcraftingslot-int-slotid","title":"BagOfCraftingPickup GetBagOfCraftingSlot ( int SlotID )","text":"

Gets the current content of the bag in the given Slot ID.

","tags":["Class"]},{"location":"EntityPlayer.html#getbladdercharge","title":"GetBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getbladdercharge","title":"int GetBladderCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getbodymovedirection","title":"GetBodyMoveDirection ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#vector-getbodymovedirection","title":"Vector GetBodyMoveDirection ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcambionconceptionstate","title":"GetCambionConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getcambionconceptionstate","title":"int GetCambionConceptionState ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcambionpregnancylevel","title":"GetCambionPregnancyLevel ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getcambionpregnancylevel","title":"int GetCambionPregnancyLevel ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getcollectibleslist","title":"GetCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getcollectibleslist","title":"table GetCollectiblesList ( )","text":"

Returns a table with the amount of each collectible the player has without counting innate items.

Example Code

This code prints how many sad onions the player has.

local collectiblesList = player:GetCollectiblesList()\n\nprint(collectiblesList[CollectibleType.COLLECTIBLE_SAD_ONION])\n
","tags":["Class"]},{"location":"EntityPlayer.html#getcostumelayermap","title":"GetCostumeLayerMap ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getcostumelayermap","title":"table GetCostumeLayerMap ( )","text":"

Returns table of player sprite layers data for costumes with the following fields:

Field Type Comment costumeIndex int Index of active/visible costume for layer. layerID int priority int isBodyLayer boolean","tags":["Class"]},{"location":"EntityPlayer.html#getcostumespritedescs","title":"GetCostumeSpriteDescs ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#costumespritedesc-getcostumespritedescs","title":"CostumeSpriteDesc[] GetCostumeSpriteDescs ( )","text":"

Returns a table of CostumeSpriteDesc.

","tags":["Class"]},{"location":"EntityPlayer.html#getd8damagemodifier","title":"GetD8DamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8damagemodifier","title":"int GetD8DamageModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8firedelaymodifier","title":"GetD8FireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8firedelaymodifier","title":"int GetD8FireDelayModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8rangemodifier","title":"GetD8RangeModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8rangemodifier","title":"int GetD8RangeModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getd8speedmodifier","title":"GetD8SpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getd8speedmodifier","title":"int GetD8SpeedModifier ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getdamagemodifier","title":"GetDamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getdamagemodifier","title":"int GetDamageModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the damage rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getdeadeyecharge","title":"GetDeadEyeCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getdeadeyecharge","title":"int GetDeadEyeCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getdeathanimname","title":"GetDeathAnimName ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#string-getdeathanimname","title":"string GetDeathAnimName ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedendamage","title":"GetEdenDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedendamage","title":"float GetEdenDamage ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenfiredelay","title":"GetEdenFireDelay ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenfiredelay","title":"float GetEdenFireDelay ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenluck","title":"GetEdenLuck ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenluck","title":"float GetEdenLuck ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenrange","title":"GetEdenRange ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenrange","title":"float GetEdenRange ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenshotspeed","title":"GetEdenShotSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenshotspeed","title":"float GetEdenShotSpeed ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getedenspeed","title":"GetEdenSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#float-getedenspeed","title":"float GetEdenSpeed ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getenterposition","title":"GetEnterPosition ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#vector-getenterposition","title":"Vector GetEnterPosition ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getentityconfigplayer","title":"GetEntityConfigPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityconfigplayer-getentityconfigplayer","title":"EntityConfigPlayer GetEntityConfigPlayer ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getepiphoracharge","title":"GetEpiphoraCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getepiphoracharge","title":"int GetEpiphoraCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getevesumptoriumcharge","title":"GetEveSumptoriumCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getevesumptoriumcharge","title":"int GetEveSumptoriumCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getfiredelaymodifier","title":"GetFireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getfiredelaymodifier","title":"int GetFireDelayModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the fire delay rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getflippedform","title":"GetFlippedForm ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityplayer-getflippedform","title":"EntityPlayer GetFlippedForm ( )","text":"

Returns flipped form of the current character. (only used for Tainted Lazarus)

Otherwise, returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getfocusentity","title":"GetFocusEntity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entity-getfocusentity","title":"Entity GetFocusEntity ( )","text":"

Returns the entity used by Active Camera to determine where the camera should focus. This can be either the Marked target EntityEffect or a weapon's entity. If none of these exist, this returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getfootprintcolor","title":"GetFootprintColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#color-getfootprintcolor-boolean-leftfootprint","title":"Color GetFootprintColor ( boolean LeftFootprint )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getglitchbabysubtype","title":"GetGlitchBabySubType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getglitchbabysubtype","title":"int GetGlitchBabySubType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getglyphofbalancedrop","title":"GetGlyphOfBalanceDrop ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getglyphofbalancedrop-int-variant-1-int-subtype-1","title":"table GetGlyphOfBalanceDrop ( int Variant = -1, int SubType = -1 )","text":"

Returns a table containing the variant and subtype of the possible Glyph of Balance drop.

","tags":["Class"]},{"location":"EntityPlayer.html#getgreedsgullethearts","title":"GetGreedsGulletHearts ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getgreedsgullethearts","title":"int GetGreedsGulletHearts ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#gethealthtype","title":"GetHealthType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#healthtype-gethealthtype","title":"HealthType GetHealthType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getheldentity","title":"GetHeldEntity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entity-getheldentity","title":"Entity GetHeldEntity ( )","text":"

Returns the Entity that the player is holding over their head, such as with throwable red bombs or Suplex! Returns nil if no entity is currently being held.

","tags":["Class"]},{"location":"EntityPlayer.html#getheldsprite","title":"GetHeldSprite ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#sprite-getheldsprite","title":"Sprite GetHeldSprite ( )","text":"

Gets the Sprite object used for when the player is doing an animation that involves holding a sprite over their head, such as active item usage.

","tags":["Class"]},{"location":"EntityPlayer.html#gethistory","title":"GetHistory ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#history-gethistory","title":"History GetHistory ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getimmaculateconceptionstate","title":"GetImmaculateConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getimmaculateconceptionstate","title":"int GetImmaculateConceptionState ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getkeeperssackbonus","title":"GetKeepersSackBonus ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getkeeperssackbonus","title":"int GetKeepersSackBonus ( )","text":"

Gets the number of coins spent while possessing Keeper's Sack.

","tags":["Class"]},{"location":"EntityPlayer.html#getlasercolor","title":"GetLaserColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#color-getlasercolor","title":"Color GetLaserColor ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getluckmodifier","title":"GetLuckModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getluckmodifier","title":"int GetLuckModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the luck rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getmaggyswingcooldown","title":"GetMaggySwingCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaggyswingcooldown","title":"int GetMaggySwingCooldown ( )","text":"

Used for Tainted Magdalene's hugging attack.

","tags":["Class"]},{"location":"EntityPlayer.html#getmarkedtarget","title":"GetMarkedTarget ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-getmarkedtarget","title":"EntityEffect GetMarkedTarget ( )","text":"

Returns the entity effect representing the target of the Marked item. If the target is not displayed on the ground, this function returns nil.

","tags":["Class"]},{"location":"EntityPlayer.html#getmaxbladdercharge","title":"GetMaxBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxbladdercharge","title":"int GetMaxBladderCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmaxpeeburstcooldown","title":"GetMaxPeeBurstCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxpeeburstcooldown","title":"int GetMaxPeeBurstCooldown ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmaxpocketitems","title":"GetMaxPocketItems ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmaxpocketitems","title":"int GetMaxPocketItems ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmegablastduration","title":"GetMegaBlastDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmegablastduration","title":"int GetMegaBlastDuration ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getmetronomecollectibleid","title":"GetMetronomeCollectibleID ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getmetronomecollectibleid","title":"int GetMetronomeCollectibleID ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getnexturethrablockframe","title":"GetNextUrethraBlockFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getnexturethrablockframe","title":"int GetNextUrethraBlockFrame ( )","text":"

Returns the frame at which the player stops shooting and starts charging the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#getpeeburstcooldown","title":"GetPeeBurstCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getpeeburstcooldown","title":"int GetPeeBurstCooldown ( )","text":"

Returns the attack duration of the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#getplayerformcounter","title":"GetPlayerFormCounter ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getplayerformcounter-playerform-playerformid","title":"int GetPlayerFormCounter ( PlayerForm PlayerFormID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getponycharge","title":"GetPonyCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getponycharge","title":"int GetPonyCharge ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getpuritystate","title":"GetPurityState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#puritystate-getpuritystate","title":"PurityState GetPurityState ( )","text":"

Returns the state in which the Purity item effect currently is.

","tags":["Class"]},{"location":"EntityPlayer.html#getredstewbonusduration","title":"GetRedStewBonusDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getredstewbonusduration","title":"int GetRedStewBonusDuration ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getshotspeedmodifier","title":"GetShotSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getshotspeedmodifier","title":"int GetShotSpeedModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the shot speed rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#getsmeltedtrinkets","title":"GetSmeltedTrinkets ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getsmeltedtrinkets","title":"table GetSmeltedTrinkets ( )","text":"

Returns a table of smelted trinkets and their corresponding amounts. The returned table contains the following fields:

Field Type Comment trinketAmount int goldenTrinketAmount int","tags":["Class"]},{"location":"EntityPlayer.html#getspecialgridcollision","title":"GetSpecialGridCollision ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getspecialgridcollision-vector-position-selfposition","title":"int GetSpecialGridCollision ( Vector Position = self.Position )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getspeedmodifier","title":"GetSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getspeedmodifier","title":"int GetSpeedModifier ( )","text":"

For Experimental Treatement, returns -1, 0 or 1 depending on the speed rolled.

","tags":["Class"]},{"location":"EntityPlayer.html#gettotalactivecharge","title":"GetTotalActiveCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-gettotalactivecharge-activeslot-slot","title":"int GetTotalActiveCharge ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getvoidedcollectibleslist","title":"GetVoidedCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#collectibletype-collectibles-getvoidedcollectibleslist","title":"CollectibleType[] Collectibles GetVoidedCollectiblesList ( )","text":"

Retuns a table containing the CollectibleTypes of all voided Active items.

","tags":["Class"]},{"location":"EntityPlayer.html#getweapon","title":"GetWeapon ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#weapon-getweapon-int-slot","title":"Weapon GetWeapon ( int Slot )","text":"

Slot needs to be between 0 and 4.

","tags":["Class"]},{"location":"EntityPlayer.html#getweaponmodifiers","title":"GetWeaponModifiers ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getweaponmodifiers","title":"int GetWeaponModifiers ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwildcarditem","title":"GetWildCardItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-getwildcarditem","title":"int GetWildCardItem ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwildcarditemtype","title":"GetWildCardItemType ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#pocketitemtype-getwildcarditemtype","title":"PocketItemType GetWildCardItemType ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#getwispcollectibleslist","title":"GetWispCollectiblesList ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#table-getwispcollectibleslist","title":"table GetWispCollectiblesList ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#hasinstantdeathcurse","title":"HasInstantDeathCurse ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-hasinstantdeathcurse","title":"boolean HasInstantDeathCurse ( )","text":"

Returns true when the player is in the Lost form triggered by either the white fire in Downpour or Soul of The Lost. (or when in Tainted Jacob's ghost form when being touched by Dark Esau)

","tags":["Class"]},{"location":"EntityPlayer.html#haspoisonimmunity","title":"HasPoisonImmunity ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-haspoisonimmunity","title":"boolean HasPoisonImmunity ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#incrementplayerformcounter","title":"IncrementPlayerFormCounter ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-incrementplayerformcounter-playerform-form-int-count","title":"void IncrementPlayerFormCounter ( PlayerForm Form, int Count )","text":"Info

Count can be negative to decrement the PlayerForm.

","tags":["Class"]},{"location":"EntityPlayer.html#initpostlevelinitstats","title":"InitPostLevelInitStats ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-initpostlevelinitstats","title":"void InitPostLevelInitStats ( )","text":"

Call this after spawning characters with \"special\" tears (Forgotten, Lilith, Azazel etc) with InitTwin, or they won't have their proper tear type.

","tags":["Class"]},{"location":"EntityPlayer.html#inittwin","title":"InitTwin ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityplayer-inittwin-playertype-playertype","title":"EntityPlayer InitTwin ( PlayerType PlayerType )","text":"

I believe this is used by J&E, Strawman etc.

Bug

The twin player will desync from its main twin on save and continue. This softlocks the game in singleplayer, as the game prompts for a controller.

We've received confirmation from _Kilburn that this is hardcoded to be handled on vanilla characters. We will need to add a workaround for this.

","tags":["Class"]},{"location":"EntityPlayer.html#iscollectibleanimfinished","title":"IsCollectibleAnimFinished ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectibleanimfinished-collectibletype-collectible-string-animation","title":"boolean IsCollectibleAnimFinished ( CollectibleType Collectible, string Animation )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#iscollectiblecostumevisible","title":"IsCollectibleCostumeVisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectiblecostumevisible-collectibletype-collectible-int-playerspritelayerid","title":"boolean IsCollectibleCostumeVisible ( CollectibleType Collectible, int PlayerSpriteLayerID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-iscollectiblecostumevisible-collectibletype-collectible-string-playerspritelayername","title":"boolean IsCollectibleCostumeVisible ( CollectibleType Collectible, string PlayerSpriteLayerName )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isentityvalidtarget","title":"IsEntityValidTarget ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isentityvalidtarget-entity-entity","title":"boolean IsEntityValidTarget ( Entity Entity )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isfootstepframe","title":"IsFootstepFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isfootstepframe-int-foot-1","title":"boolean IsFootstepFrame ( int Foot = -1 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isheadless","title":"IsHeadless ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isheadless","title":"boolean IsHeadless ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#ishologram","title":"IsHologram ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-ishologram","title":"boolean IsHologram ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isinvisible","title":"IsInvisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isinvisible","title":"boolean IsInvisible ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isitemcostumevisible","title":"IsItemCostumeVisible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isitemcostumevisible-itemconfig_item-item-int-playerspritelayerid","title":"boolean IsItemCostumeVisible ( ItemConfig_Item Item, int PlayerSpriteLayerID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isitemcostumevisible-itemconfig_item-item-int-playerspritelayername","title":"boolean IsItemCostumeVisible ( ItemConfig_Item Item, int PlayerSpriteLayerName )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#islocalplayer","title":"IsLocalPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-islocalplayer","title":"boolean IsLocalPlayer ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#ispacifist","title":"IsPacifist ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-ispacifist","title":"boolean IsPacifist ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#isurethrablocked","title":"IsUrethraBlocked ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-isurethrablocked","title":"boolean IsUrethraBlocked ( )","text":"

Returns true when the player can no longer shoot due to charging the Kidney Stone item.

","tags":["Class"]},{"location":"EntityPlayer.html#morphtocoopghost","title":"MorphToCoopGhost ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-morphtocoopghost","title":"void MorphToCoopGhost ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#playcollectibleanim","title":"PlayCollectibleAnim ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-playcollectibleanim-collectibletype-collectible-boolean-checkbodylayers-string-animationname-int-frame-1","title":"void PlayCollectibleAnim ( CollectibleType Collectible, boolean CheckBodyLayers, string AnimationName, int Frame = -1 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#playdelayedsfx","title":"PlayDelayedSFX ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-playdelayedsfx-soundeffect-id-int-sounddelay-0-int-framedelay-2-float-volume-10","title":"void PlayDelayedSFX ( SoundEffect ID, int SoundDelay = 0, int FrameDelay = 2, float Volume = 1.0 )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removecollectiblebyhistoryindex","title":"RemoveCollectibleByHistoryIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removecollectiblebyhistoryindex-int-index","title":"void RemoveCollectibleByHistoryIndex ( int Index )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removepocketitem","title":"RemovePocketItem ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removepocketitem-activeslot-slot","title":"void RemovePocketItem ( ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#removepoopspell","title":"RemovePoopSpell ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-removepoopspell-int-position-0","title":"void RemovePoopSpell ( int Position = 0 )","text":"

Removes the poop spell from the specified queue position and shifts all spells after it forward to fill the space. A new spell is randomly picked to fill the last position.

","tags":["Class"]},{"location":"EntityPlayer.html#rerollallcollectibles","title":"RerollAllCollectibles ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-rerollallcollectibles-rng-rng-boolean-includeactiveitems","title":"void RerollAllCollectibles ( RNG rng, boolean includeActiveItems )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#resetplayer","title":"ResetPlayer ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-resetplayer","title":"void ResetPlayer ( )","text":"Info

This is used by the Genesis active item.

","tags":["Class"]},{"location":"EntityPlayer.html#revivecoopghost","title":"ReviveCoopGhost ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-revivecoopghost","title":"boolean ReviveCoopGhost ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#salvagecollectible","title":"SalvageCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-salvagecollectible-entitypickup-pickup-rng-rng-pickupdroprng-itempooltype-pool-itempooltypepool_null","title":"void SalvageCollectible ( EntityPickup Pickup, RNG rng = PickupDropRNG, ItemPoolType Pool = ItemPoolType.POOL_NULL)","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-salvagecollectible-collectibletype-collectible-vector-position-playerposition-rng-rng-playerdroprng-itempooltype-pool-itempooltypepool_null","title":"void SalvageCollectible ( CollectibleType Collectible, Vector position = playerPosition, RNG rng = PlayerDropRNG, ItemPoolType Pool = ItemPoolType.POOL_NULL )","text":"Info

The provided EntityPickup will be removed by this function. Use the override to avoid this.

","tags":["Class"]},{"location":"EntityPlayer.html#setactivevardata","title":"SetActiveVarData ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setactivevardata-int-vardata-activeslot-slot","title":"void SetActiveVarData ( int VarData, ActiveSlot Slot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingcontent","title":"SetBagOfCraftingContent ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingcontent-bagofcraftingpickup-contenttable","title":"void SetBagOfCraftingContent ( BagOfCraftingPickup[] ContentTable )","text":"

Sets the content of the bag to the content of the table. Table must use valid BagOfCraftingPickup ids. Table can be shorter than 8, in which case the remaining indexes are set to empty.

","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingoutput","title":"SetBagOfCraftingOutput ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingoutput-collectibletype-collectible","title":"void SetBagOfCraftingOutput ( CollectibleType Collectible )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbagofcraftingslot","title":"SetBagOfCraftingSlot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbagofcraftingslot-int-slotid-int-pickupid","title":"void SetBagOfCraftingSlot ( int SlotID, int PickupID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setbladdercharge","title":"SetBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setbladdercharge-int-charge","title":"void SetBladderCharge ( int Charge )","text":"

Used by the Kidney Stone item.

Bug

The player's head turns pitch black when this function is used without Kidney Stone.

","tags":["Class"]},{"location":"EntityPlayer.html#setcambionconceptionstate","title":"SetCambionConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setcambionconceptionstate-int-state","title":"void SetCambionConceptionState ( int State )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setcanshoot","title":"SetCanShoot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-setcanshoot-boolean-canshoot","title":"boolean SetCanShoot ( boolean CanShoot )","text":"

Instantaneously disables (or enables) the player's ability to shoot. The base game primarily uses this for special challenges.

","tags":["Class"]},{"location":"EntityPlayer.html#setcontrollerindex","title":"SetControllerIndex ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setcontrollerindex-int-idx","title":"void SetControllerIndex ( int Idx )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setdamagemodifier","title":"SetDamageModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setdamagemodifier-int-modifier","title":"void SetDamageModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedendamage","title":"SetEdenDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedendamage-float-value","title":"void SetEdenDamage ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenfiredelay","title":"SetEdenFireDelay ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenfiredelay-float-value","title":"void SetEdenFireDelay ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenluck","title":"SetEdenLuck ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenluck-float-value","title":"void SetEdenLuck ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenrange","title":"SetEdenRange ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenrange-float-value","title":"void SetEdenRange ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenshotspeed","title":"SetEdenShotSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenshotspeed-float-value","title":"void SetEdenShotSpeed ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setedenspeed","title":"SetEdenSpeed ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setedenspeed-float-value","title":"void SetEdenSpeed ( float Value )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setevesumptoriumcharge","title":"SetEveSumptoriumCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setevesumptoriumcharge-int-chargenum","title":"void SetEveSumptoriumCharge ( int ChargeNum )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setfiredelaymodifier","title":"SetFireDelayModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setfiredelaymodifier-int-modifier","title":"void SetFireDelayModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setfootprintcolor","title":"SetFootprintColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setfootprintcolor-kcolor-color-boolean-rightfoot-false","title":"void SetFootprintColor ( KColor color, boolean RightFoot = false )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setimmaculateconceptionstate","title":"SetImmaculateConceptionState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setimmaculateconceptionstate-int-state","title":"void SetImmaculateConceptionState ( int State )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setitemstate","title":"SetItemState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setitemstate-collectibletype-collectible","title":"void SetItemState ( CollectibleType Collectible )","text":"

This is used for thrown/2-input items (e.g. Bob's Rotten Head).

","tags":["Class"]},{"location":"EntityPlayer.html#setkeeperssackbonus","title":"SetKeepersSackBonus ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setkeeperssackbonus-int-bonus","title":"void SetKeepersSackBonus ( int Bonus )","text":"

This is the number of coins spent while possessing Keeper's Sack.

","tags":["Class"]},{"location":"EntityPlayer.html#setlasercolor","title":"SetLaserColor ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setlasercolor-color-color","title":"void SetLaserColor ( Color color )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setluckmodifier","title":"SetLuckModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setluckmodifier-int-modifier","title":"void SetLuckModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmaggyswingcooldown","title":"SetMaggySwingCooldown ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmaggyswingcooldown-int-cooldown","title":"void SetMaggySwingCooldown ( int Cooldown )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmaxbladdercharge","title":"SetMaxBladderCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmaxbladdercharge-int-charge","title":"void SetMaxBladderCharge ( int Charge )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setmegablastduration","title":"SetMegaBlastDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setmegablastduration-int-duration","title":"void SetMegaBlastDuration ( int Duration )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setnexturethrablockframe","title":"SetNextUrethraBlockFrame ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setnexturethrablockframe-int-frame","title":"void SetNextUrethraBlockFrame ( int Frame )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setponycharge","title":"SetPonyCharge ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setponycharge-int-time","title":"void SetPonyCharge ( int Time )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setpoopspell","title":"SetPoopSpell ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setpoopspell-int-slot-poopspelltype-poopspelltype","title":"void SetPoopSpell ( int Slot, PoopSpellType PoopSpellType )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setpuritystate","title":"SetPurityState ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setpuritystate-puritystate-state","title":"void SetPurityState ( PurityState State )","text":"

Set the state in which the Purity item effect currently is.

","tags":["Class"]},{"location":"EntityPlayer.html#setredstewbonusduration","title":"SetRedStewBonusDuration ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setredstewbonusduration-int-duration","title":"void SetRedStewBonusDuration ( int Duration )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setshotspeedmodifier","title":"SetShotSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setshotspeedmodifier-int-modifier","title":"void SetShotSpeedModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setspeedmodifier","title":"SetSpeedModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setspeedmodifier-int-modifier","title":"void SetSpeedModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#settearpoisondamage","title":"SetTearPoisonDamage ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-settearpoisondamage-float-damage","title":"void SetTearPoisonDamage ( float Damage )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#settearrangemodifier","title":"SetTearRangeModifier ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-settearrangemodifier-int-modifier","title":"void SetTearRangeModifier ( int Modifier )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#seturethrablock","title":"SetUrethraBlock ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-seturethrablock-boolean-blocked","title":"void SetUrethraBlock ( boolean Blocked )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#setweapon","title":"SetWeapon ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-setweapon-weapon-weapon-int-weaponslot","title":"void SetWeapon ( Weapon Weapon, int WeaponSlot )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#shootbluecandle","title":"ShootBlueCandle ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-shootbluecandle-vector-direction","title":"void ShootBlueCandle ( Vector Direction )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#shufflecostumes","title":"ShuffleCostumes ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-shufflecostumes-int-seed-random","title":"void ShuffleCostumes ( int Seed = Random( ) )","text":"

Randomizes the current costumes.

","tags":["Class"]},{"location":"EntityPlayer.html#spawnaquariuscreep","title":"SpawnAquariusCreep ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#entityeffect-spawnaquariuscreep-tearparams-tearparams-selftearparams","title":"EntityEffect SpawnAquariusCreep ( TearParams TearParams = self.TearParams)","text":"

Spawns a creep effect that acts like the ones created by Aquarius, including inhereting the player's TearParams. Supports passing a custom TearParams instead.

Info

For reference, this is how the game calculates the TearParams for this normally:

player->GetTearHitParams(&params, WeaponType.WEAPON_TEARS, (*player->GetTearPoisonDamage() * 0.666f) / player->_damage, -(int)(-Isaac::Random(2) != 0) & 2 - 1, nil)

","tags":["Class"]},{"location":"EntityPlayer.html#spawnclot","title":"SpawnClot ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-spawnclot-vector-pos-boolean-allowplayerdeath-false","title":"void SpawnClot ( Vector pos, boolean AllowPlayerDeath = false )","text":"

Acts like a use of Sumptorium, removing health and spawning a clot with the type of health removed. If AllowPlayerDeath is set, a clot will spawn even if the health drained will kill the player.

","tags":["Class"]},{"location":"EntityPlayer.html#spawnsaturnustears","title":"SpawnSaturnusTears ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#int-spawnsaturnustears","title":"int SpawnSaturnusTears ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#swapforgottenform","title":"SwapForgottenForm ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-swapforgottenform-boolean-force-false-boolean-noeffects-false","title":"void SwapForgottenForm ( boolean Force = false, boolean NoEffects = false)","text":"

If the player has a SubPlayer, swaps between them. Force will swap even if the subplayer doesn't have any health, or while a room/stage transition is active. NoEffects will disable the dust effect & fade from white when switching from The Soul to The Forgotten.

Warning

This function currently only has an effect for The Forgotten and The Soul.

","tags":["Class"]},{"location":"EntityPlayer.html#syncconsumablecounts","title":"SyncConsumableCounts ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-syncconsumablecounts-entityplayer-player-int-collectibleflags","title":"void SyncConsumableCounts ( EntityPlayer Player, int CollectibleFlags )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#teleport","title":"Teleport ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-teleport-vector-position-boolean-doeffects-true-boolean-teleporttwinplayers-false","title":"void Teleport ( Vector Position, boolean DoEffects = true, boolean TeleportTwinPlayers = false )","text":"

Teleports the player to a position within the room.

DoEffects controls whether the teleport animation and sound plays. TeleportTwinPlayers controls whether twin players (e.g. Esau, Tainted Lazarus w/ Birthright) are teleported alongside this one.

","tags":["Class"]},{"location":"EntityPlayer.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#tryaddtobagofcrafting","title":"TryAddToBagOfCrafting ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-tryaddtobagofcrafting-entitypickup-pickup","title":"void TryAddToBagOfCrafting ( EntityPickup Pickup )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#trydecreaseglowinghourglassuses","title":"TryDecreaseGlowingHourglassUses ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-trydecreaseglowinghourglassuses-int-uses-boolean-forcehourglass-false","title":"void TryDecreaseGlowingHourglassUses ( int Uses, boolean ForceHourglass = false )","text":"

ForceHourglass instantly removes all the charges and turns Glowing Hourglass into it's regular Hourglass form.

Bug

Uses are only decreased by 1 regardless of how large of a number you tell it to remove.

","tags":["Class"]},{"location":"EntityPlayer.html#tryfakedeath","title":"TryFakeDeath ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-tryfakedeath","title":"boolean TryFakeDeath ( )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#tryforgottenthrow","title":"TryForgottenThrow ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-tryforgottenthrow-vector-direction","title":"boolean TryForgottenThrow ( Vector Direction )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#trypreventdeath","title":"TryPreventDeath ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-trypreventdeath","title":"boolean TryPreventDeath ( )","text":"

Adds a heart container to a character if there are none left, depending on its HealthType.

Returns true on success, otherwise false.

","tags":["Class"]},{"location":"EntityPlayer.html#tryremovesmeltedtrinket","title":"TryRemoveSmeltedTrinket ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-tryremovesmeltedtrinket-trinkettype-id","title":"void TryRemoveSmeltedTrinket ( TrinketType ID )","text":"","tags":["Class"]},{"location":"EntityPlayer.html#updateisaacpregnancy","title":"UpdateIsaacPregnancy ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#void-updateisaacpregnancy-boolean-updatecambion","title":"void UpdateIsaacPregnancy ( boolean UpdateCambion )","text":"

Set true if you want to update the Cambion Conception costume, otherwise updates the Immaculate Conception costume.

","tags":["Class"]},{"location":"EntityPlayer.html#voidhascollectible","title":"VoidHasCollectible ()","text":"","tags":["Class"]},{"location":"EntityPlayer.html#boolean-voidhascollectible-collectibletype-id","title":"boolean VoidHasCollectible ( CollectibleType ID )","text":"","tags":["Class"]},{"location":"EntityProjectile.html","title":"Class \"EntityProjectile\"","text":"","tags":["Class"]},{"location":"EntityProjectile.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityProjectile.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityProjectile.html#deflect","title":"Deflect ()","text":"","tags":["Class"]},{"location":"EntityProjectile.html#void-deflect-vector-newvelocity","title":"void Deflect ( Vector NewVelocity )","text":"","tags":["Class"]},{"location":"EntitySlot.html","title":"Class \"EntitySlot\"","text":"

It's Real.

","tags":["Class"]},{"location":"EntitySlot.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntitySlot.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntitySlot.html#createdropsfromexplosion","title":"CreateDropsFromExplosion ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-createdropsfromexplosion","title":"void CreateDropsFromExplosion ( )","text":"

This forces the EntitySlot to drop what it typically would if blown up.

","tags":["Class"]},{"location":"EntitySlot.html#getdonationvalue","title":"GetDonationValue ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getdonationvalue","title":"int GetDonationValue ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#getprizetype","title":"GetPrizeType ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getprizetype","title":"int GetPrizeType ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#getstate","title":"GetState ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-getstate","title":"int GetState ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-gettimeout","title":"int GetTimeout ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#gettouch","title":"GetTouch ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#int-gettouch","title":"int GetTouch ( )","text":"","tags":["Class"]},{"location":"EntitySlot.html#randomcoinjamanim","title":"RandomCoinJamAnim ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#string-randomcoinjamanim","title":"string RandomCoinJamAnim ( )","text":"

Returns a random string from the following options: CoinJam, CoinJam2, CoinJam3, CoinJam4. Presumably only used on the donation machines.

","tags":["Class"]},{"location":"EntitySlot.html#setdonationvalue","title":"SetDonationValue ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setdonationvalue-int-donationvalue","title":"void SetDonationValue ( int DonationValue )","text":"","tags":["Class"]},{"location":"EntitySlot.html#setprizecollectible","title":"SetPrizeCollectible ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setprizecollectible-collectibletype-collectible","title":"void SetPrizeCollectible ( CollectibleType Collectible )","text":"

Seems to only be used by Crane Game and Hell Game. This sets the collectible that the games will pay out with, and updates the rendered collectible accordingly.

","tags":["Class"]},{"location":"EntitySlot.html#setprizetype","title":"SetPrizeType ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setprizetype-int-prizetype","title":"void SetPrizeType ( int PrizeType )","text":"","tags":["Class"]},{"location":"EntitySlot.html#setstate","title":"SetState ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-setstate-int-state","title":"void SetState ( int State )","text":"","tags":["Class"]},{"location":"EntitySlot.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-settimeout-int-timeout","title":"void SetTimeout ( int Timeout )","text":"","tags":["Class"]},{"location":"EntitySlot.html#settouch","title":"SetTouch ()","text":"","tags":["Class"]},{"location":"EntitySlot.html#void-settouch-int-touch","title":"void SetTouch ( int Touch )","text":"","tags":["Class"]},{"location":"EntityTear.html","title":"Class \"EntityTear\"","text":"","tags":["Class"]},{"location":"EntityTear.html#class-diagram","title":"Class Diagram","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
","tags":["Class"]},{"location":"EntityTear.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"EntityTear.html#getdeadeyeintensity","title":"GetDeadEyeIntensity ()","text":"","tags":["Class"]},{"location":"EntityTear.html#float-getdeadeyeintensity","title":"float GetDeadEyeIntensity ( )","text":"","tags":["Class"]},{"location":"EntityTear.html#makemultidimensionalcopy","title":"MakeMultidimensionalCopy ()","text":"","tags":["Class"]},{"location":"EntityTear.html#entitytear-makemultidimensionalcopy","title":"EntityTear MakeMultidimensionalCopy ( )","text":"","tags":["Class"]},{"location":"FXParams.html","title":"Class \"FXParams\"","text":"Info

You can get this class by using the following functions:

  • Room:GetFXParams()
Example Code
local fxparams = Game():GetRoom():GetFXParams()\n
","tags":["Class"]},{"location":"FXParams.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"FXParams.html#colormodifier","title":"ColorModifier","text":"","tags":["Class"]},{"location":"FXParams.html#colormodifier-colormodifier","title":"ColorModifier ColorModifier","text":"

Gets a modifiable copy of the color correction introduced in Repentance. This stores the values used in fxlayers.xml and not the raw values (see GetCurrentColorModifier for this).

Changes made here are not automatically applied, use UpdateColorModifier to do this.

","tags":["Class"]},{"location":"FXParams.html#lightcolor","title":"LightColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-lightcolor","title":"KColor LightColor","text":"","tags":["Class"]},{"location":"FXParams.html#shadowalpha","title":"ShadowAlpha","text":"","tags":["Class"]},{"location":"FXParams.html#float-shadowalpha","title":"float ShadowAlpha","text":"","tags":["Class"]},{"location":"FXParams.html#shadowcolor","title":"ShadowColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-shadowcolor","title":"KColor ShadowColor","text":"","tags":["Class"]},{"location":"FXParams.html#usewaterv2","title":"UseWaterV2","text":"","tags":["Class"]},{"location":"FXParams.html#boolean-usewaterv2","title":"boolean UseWaterV2","text":"

If set, water will use the reflective shader featured in Downpour and Dross.

","tags":["Class"]},{"location":"FXParams.html#watercolor","title":"WaterColor","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-watercolor","title":"KColor WaterColor","text":"","tags":["Class"]},{"location":"FXParams.html#watercolormultiplier","title":"WaterColorMultiplier","text":"","tags":["Class"]},{"location":"FXParams.html#kcolor-watercolormultiplier","title":"KColor WaterColorMultiplier","text":"","tags":["Class"]},{"location":"FXParams.html#watereffectcolor","title":"WaterEffectColor","text":"","tags":["Class"]},{"location":"FXParams.html#color-watereffectcolor","title":"Color WaterEffectColor","text":"","tags":["Class"]},{"location":"Font.html","title":"Class \"Font\"","text":"","tags":["Class"]},{"location":"Font.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Font.html#font","title":"Font ()","text":"","tags":["Class"]},{"location":"Font.html#fontbool-font-string-fontpath","title":"Font,bool Font ( string FontPath )","text":"

Added optional \"FontPath\" argument, the function now returns two values: Font object and the bool signifying whether the font was loaded successfully or not.

","tags":["Class"]},{"location":"Font.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Font.html#drawstring","title":"DrawString ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstring-string-string-float-positionx-float-positiony-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawString ( string String, float PositionX, float PositionY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringscaled","title":"DrawStringScaled ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringscaled-string-string-float-positionx-float-positiony-float-scalex-float-scaley-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringScaled ( string String, float PositionX, float PositionY, float ScaleX, float ScaleY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringscaledutf8","title":"DrawStringScaledUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringscaledutf8-string-string-float-positionx-float-positiony-float-scalex-float-scaley-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringScaledUTF8 ( string String, float PositionX, float PositionY, float ScaleX, float ScaleY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#drawstringutf8","title":"DrawStringUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#void-drawstringutf8-string-string-float-positionx-float-positiony-kcolor-rendercolor-int-boxwidth-0-boolean-center-false","title":"void DrawStringUTF8 ( string String, float PositionX, float PositionY, KColor RenderColor, int BoxWidth = 0, boolean Center = false )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#getstringwidth","title":"GetStringWidth ()","text":"","tags":["Class"]},{"location":"Font.html#int-getstringwidth-string-string","title":"int GetStringWidth ( string String )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Font.html#getstringwidthutf8","title":"GetStringWidthUTF8 ()","text":"","tags":["Class"]},{"location":"Font.html#int-getstringwidthutf8-string-string","title":"int GetStringWidthUTF8 ( string String )","text":"

Same as default function, but with better input validation to prevent crashes.

","tags":["Class"]},{"location":"Game.html","title":"Class \"Game\"","text":"","tags":["Class"]},{"location":"Game.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Game.html#getlastdevilroomstage","title":"GetLastDevilRoomStage ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastdevilroomstage","title":"LevelStage GetLastDevilRoomStage ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getlastlevelwithdamage","title":"GetLastLevelWithDamage ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastlevelwithdamage","title":"LevelStage GetLastLevelWithDamage ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getlastlevelwithouthalfhp","title":"GetLastLevelWithoutHalfHp ()","text":"","tags":["Class"]},{"location":"Game.html#levelstage-getlastlevelwithouthalfhp","title":"LevelStage GetLastLevelWithoutHalfHp ( )","text":"

Now returns integer instead of unusable userdata.

","tags":["Class"]},{"location":"Game.html#getplayer","title":"GetPlayer ()","text":"","tags":["Class"]},{"location":"Game.html#entityplayer-getplayer-int-index","title":"EntityPlayer GetPlayer ( int Index )","text":"

If no players exist, this now returns nil to prevent a crash. Invalid indexes will return index 0.

","tags":["Class"]},{"location":"Game.html#startstagetransition","title":"StartStageTransition ()","text":"","tags":["Class"]},{"location":"Game.html#void-startstagetransition-boolean-samestage-int-transitionoverride-entityplayer-player-nil","title":"void StartStageTransition ( boolean SameStage, int TransitionOverride, EntityPlayer Player = nil )","text":"

Fixed the crash that sometimes occured due to an incorrect call on the C++ side. Player is now optional (will default to GetPlayer(0)).

","tags":["Class"]},{"location":"Game.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Game.html#achievementunlocksdisallowed","title":"AchievementUnlocksDisallowed ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-achievementunlocksdisallowed","title":"boolean AchievementUnlocksDisallowed ( )","text":"

Returns true if achievements can't be unlocked this run (challenges, seeded, etc).

","tags":["Class"]},{"location":"Game.html#adddebugflags","title":"AddDebugFlags ()","text":"","tags":["Class"]},{"location":"Game.html#void-adddebugflags-debugflag-flag","title":"void AddDebugFlags ( DebugFlag Flag )","text":"

Adds a debug flag to the game. Multiple can be added simultaneously with bitwise concatenation (e.g. DebugFlag.ENTITY_POSITIONS | DebugFlag.HITSPHERES).

","tags":["Class"]},{"location":"Game.html#devolveenemy","title":"DevolveEnemy ()","text":"","tags":["Class"]},{"location":"Game.html#void-devolveenemy-entity","title":"void DevolveEnemy ( Entity )","text":"","tags":["Class"]},{"location":"Game.html#getchallengeparams","title":"GetChallengeParams ()","text":"","tags":["Class"]},{"location":"Game.html#challengeparam-getchallengeparams","title":"ChallengeParam GetChallengeParams ( )","text":"","tags":["Class"]},{"location":"Game.html#getcurrentcolormodifier","title":"GetCurrentColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-getcurrentcolormodifier","title":"ColorModifier GetCurrentColorModifier ( )","text":"

Gets a copy of the color correction introduced in Repentance. This stores the raw values currently being used (which can be affected by items such as Astral Projection) and not what the room is set to use (see FXParams.ColorModifier for this).

","tags":["Class"]},{"location":"Game.html#getdebugflags","title":"GetDebugFlags ()","text":"","tags":["Class"]},{"location":"Game.html#int-getdebugflags","title":"int GetDebugFlags ( )","text":"

Returns a DebugFlag bitmask.

","tags":["Class"]},{"location":"Game.html#getdimension","title":"GetDimension ()","text":"","tags":["Class"]},{"location":"Game.html#int-getdimension","title":"int GetDimension ( )","text":"","tags":["Class"]},{"location":"Game.html#getlerpcolormodifier","title":"GetLerpColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-getlerpcolormodifier","title":"ColorModifier GetLerpColorModifier ( )","text":"Info

This is formatted as the absolute rate of change (ie, all values are positive).

","tags":["Class"]},{"location":"Game.html#getpausemenustate","title":"GetPauseMenuState ()","text":"","tags":["Class"]},{"location":"Game.html#int-getpausemenustate","title":"int GetPauseMenuState ( )","text":"","tags":["Class"]},{"location":"Game.html#getplanetariumsvisited","title":"GetPlanetariumsVisited ()","text":"","tags":["Class"]},{"location":"Game.html#int-getplanetariumsvisited","title":"int GetPlanetariumsVisited ( )","text":"

Returns the amount of planetariums the player has entered this run.

","tags":["Class"]},{"location":"Game.html#gettargetcolormodifier","title":"GetTargetColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#colormodifier-gettargetcolormodifier","title":"ColorModifier GetTargetColorModifier ( )","text":"

If currently lerping between two ColorModifier states, returns the target state. Is otherwise the same as GetCurrentColorModifier.

","tags":["Class"]},{"location":"Game.html#iserased","title":"IsErased ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-iserased-entity-entity","title":"boolean IsErased ( Entity Entity )","text":"","tags":["Class"]},{"location":"Game.html#boolean-iserased-int-type-int-variant-1-int-subtype-1","title":"boolean IsErased ( int Type, int Variant = -1, int SubType = -1 )","text":"

Checks if an entity was erased.

","tags":["Class"]},{"location":"Game.html#isgreedboss","title":"IsGreedBoss ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isgreedboss","title":"boolean IsGreedBoss ( )","text":"","tags":["Class"]},{"location":"Game.html#isgreedfinalboss","title":"IsGreedFinalBoss ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isgreedfinalboss","title":"boolean IsGreedFinalBoss ( )","text":"","tags":["Class"]},{"location":"Game.html#ishardmode","title":"IsHardMode ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-ishardmode","title":"boolean IsHardMode ( )","text":"

Returns true if current mode is Hard Mode or Greedier.

","tags":["Class"]},{"location":"Game.html#ispausemenuopen","title":"IsPauseMenuOpen ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-ispausemenuopen","title":"boolean IsPauseMenuOpen ( )","text":"

Returns true if the pause menu is open.

","tags":["Class"]},{"location":"Game.html#isrerun","title":"IsRerun ()","text":"","tags":["Class"]},{"location":"Game.html#boolean-isrerun","title":"boolean IsRerun ( )","text":"","tags":["Class"]},{"location":"Game.html#setcolormodifier","title":"SetColorModifier ()","text":"","tags":["Class"]},{"location":"Game.html#void-setcolormodifier-colormodifier-colormodifier-boolean-lerp-true-float-rate-0015","title":"void SetColorModifier ( ColorModifier ColorModifier, boolean Lerp = true, float Rate = 0.015 )","text":"","tags":["Class"]},{"location":"Game.html#spawnbombcrater","title":"SpawnBombCrater ()","text":"","tags":["Class"]},{"location":"Game.html#entity-spawnbombcrater-vector-position-float-radius-10","title":"Entity SpawnBombCrater ( Vector Position, float Radius = 1.0 )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html","title":"Class \"GridEntitiesSaveStateVector\"","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#get","title":"Get ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#gridentitydesc-get-int-index","title":"GridEntityDesc Get ( int Index )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#getbytype","title":"GetByType ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#gridentitydesc-getbytype-gridentitytype-type","title":"GridEntityDesc GetByType ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#__len","title":"__len ()","text":"","tags":["Class"]},{"location":"GridEntitiesSaveStateVector.html#int-__len","title":"int __len ( )","text":"","tags":["Class"]},{"location":"GridEntity.html","title":"Class \"GridEntity\"","text":"","tags":["Class"]},{"location":"GridEntity.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntity.html#getaltrocktype","title":"GetAltRockType ()","text":"","tags":["Class"]},{"location":"GridEntity.html#int-getaltrocktype-backdroptype-backdrop","title":"int GetAltRockType ( BackdropType Backdrop )","text":"","tags":["Class"]},{"location":"GridEntity.html#getrenderposition","title":"GetRenderPosition ()","text":"","tags":["Class"]},{"location":"GridEntity.html#vector-getrenderposition","title":"Vector GetRenderPosition ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#hurtdamage","title":"HurtDamage ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-hurtdamage-entity-entity-int-damage-int-damageflags-float-unknown-boolean-unknown","title":"void HurtDamage ( Entity Entity, int Damage, int DamageFlags, float Unknown, boolean Unknown )","text":"","tags":["Class"]},{"location":"GridEntity.html#hurtsurroundings","title":"HurtSurroundings ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-hurtsurroundings-int-damage-int-damageflags-float-unknown-boolean-unknown","title":"void HurtSurroundings ( int Damage, int DamageFlags, float Unknown, boolean Unknown )","text":"","tags":["Class"]},{"location":"GridEntity.html#isbreakablerock","title":"IsBreakableRock ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-isbreakablerock","title":"void IsBreakableRock ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#playbreaksound","title":"PlayBreakSound ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-playbreaksound-gridentitytype-type-backdroptype-backdrop","title":"void PlayBreakSound ( GridEntityType Type, BackdropType Backdrop )","text":"","tags":["Class"]},{"location":"GridEntity.html#registerrockdestroyed","title":"RegisterRockDestroyed ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-registerrockdestroyed-gridentitytype-type","title":"void RegisterRockDestroyed ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntity.html#rendertop","title":"RenderTop ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-rendertop-vector-offset","title":"void RenderTop ( Vector Offset )","text":"","tags":["Class"]},{"location":"GridEntity.html#todecoration","title":"ToDecoration ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitydecoration-todecoration","title":"GridEntityDecoration ToDecoration ( )","text":"

Used to cast a GridEntity object to a GridEntityDecoration object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tofire","title":"ToFire ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentityfire-tofire","title":"GridEntityFire ToFire ( )","text":"

Used to cast a GridEntity object to a GridEntityFire object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#togravity","title":"ToGravity ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitygravity-togravity","title":"GridEntityGravity ToGravity ( )","text":"

Used to cast a GridEntity object to a GridEntityGravity object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tostairs","title":"ToStairs ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitystairs-tostairs","title":"GridEntityStairs ToStairs ( )","text":"

Used to cast a GridEntity object to a GridEntityStairs object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tostatue","title":"ToStatue ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitystatue-tostatue","title":"GridEntityStatue ToStatue ( )","text":"

Used to cast a GridEntity object to a GridEntityStatue object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#totrapdoor","title":"ToTrapDoor ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitytrapdoor-totrapdoor","title":"GridEntityTrapDoor ToTrapDoor ( )","text":"

Used to cast a GridEntity object to a GridEntityTrapDoor object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#towall","title":"ToWall ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentitywall-towall","title":"GridEntityWall ToWall ( )","text":"

Used to cast a GridEntity object to a GridEntityWall object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#toweb","title":"ToWeb ()","text":"","tags":["Class"]},{"location":"GridEntity.html#gridentityweb-toweb","title":"GridEntityWeb ToWeb ( )","text":"

Used to cast a GridEntity object to a GridEntityWeb object.

Return behavior

If the conversion is not successful, this function returns nil.

","tags":["Class"]},{"location":"GridEntity.html#tryspawnladder","title":"TrySpawnLadder ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-tryspawnladder","title":"void TrySpawnLadder ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#tryspawnworms","title":"TrySpawnWorms ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-tryspawnworms","title":"void TrySpawnWorms ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#updatecollision","title":"UpdateCollision ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-updatecollision","title":"void UpdateCollision ( )","text":"","tags":["Class"]},{"location":"GridEntity.html#updateneighbors","title":"UpdateNeighbors ()","text":"","tags":["Class"]},{"location":"GridEntity.html#void-updateneighbors","title":"void UpdateNeighbors ( )","text":"","tags":["Class"]},{"location":"GridEntityDecoration.html","title":"Class \"GridEntityDecoration\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityDoor.html","title":"Class \"GridEntityDoor\"","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#previousstate","title":"PreviousState","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#int-previousstate","title":"int PreviousState","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"GridEntityDoor.html#previousvariant","title":"PreviousVariant","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#int-previousvariant","title":"int PreviousVariant","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"GridEntityDoor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#getextrasprite","title":"GetExtraSprite ()","text":"","tags":["Class"]},{"location":"GridEntityDoor.html#sprite-getextrasprite","title":"Sprite GetExtraSprite ( )","text":"

Same as the vanilla variable ExtraSprite, but as a getter function.

","tags":["Class"]},{"location":"GridEntityFire.html","title":"Class \"GridEntityFire\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityGravity.html","title":"Class \"GridEntityGravity\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityPressurePlate.html","title":"Class \"GridEntityPressurePlate\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityRock.html","title":"Class \"GridEntityRock\"","text":"","tags":["Class"]},{"location":"GridEntityRock.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"GridEntityRock.html#getaltrocktype","title":"GetAltRockType ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#int-getaltrocktype-backdroptype-backdrop-0","title":"int GetAltRockType ( BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#playbreaksound","title":"PlayBreakSound ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-playbreaksound-gridentitytype-type-backdroptype-backdrop-0","title":"void PlayBreakSound ( GridEntityType Type, BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#registerrockdestroyed","title":"RegisterRockDestroyed ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-registerrockdestroyed-gridentitytype-type","title":"void RegisterRockDestroyed ( GridEntityType Type )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#rendertop","title":"RenderTop ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-rendertop-vector-offset","title":"void RenderTop ( Vector Offset )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#spawndrops","title":"SpawnDrops ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-spawndrops-gridentitytype-type-int-gridvariant-int-seed-boolean-unknown-backdroptype-backdrop-0","title":"void SpawnDrops ( GridEntityType Type, int GridVariant, int Seed, boolean Unknown, BackdropType Backdrop = 0 )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#tryspawnladder","title":"TrySpawnLadder ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-tryspawnladder","title":"void TrySpawnLadder ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#tryspawnworms","title":"TrySpawnWorms ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-tryspawnworms","title":"void TrySpawnWorms ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#updatecollision","title":"UpdateCollision ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-updatecollision","title":"void UpdateCollision ( )","text":"","tags":["Class"]},{"location":"GridEntityRock.html#updateneighbors","title":"UpdateNeighbors ()","text":"","tags":["Class"]},{"location":"GridEntityRock.html#void-updateneighbors","title":"void UpdateNeighbors ( )","text":"","tags":["Class"]},{"location":"GridEntityStairs.html","title":"Class \"GridEntityStairs\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityStatue.html","title":"Class \"GridEntityStatue\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityTeleporter.html","title":"Class \"GridEntityTeleporter\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityTrapDoor.html","title":"Class \"GridEntityTrapDoor\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityWall.html","title":"Class \"GridEntityWall\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"GridEntityWeb.html","title":"Class \"GridEntityWeb\"","text":"

Currently used as a distinct object from GridEntity. No content at this point, sorry!

","tags":["Class"]},{"location":"HUD.html","title":"Class \"HUD\"","text":"Info

You can get this class by using the following functions:

  • Game:GetHUD()
Example Code
local hud = Game():GetHUD()\nlocal sprite = hud:GetChargeBarSprite()\n
","tags":["Class"]},{"location":"HUD.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"HUD.html#flashredhearts","title":"FlashRedHearts ()","text":"","tags":["Class"]},{"location":"HUD.html#void-flashredhearts-entityplayer-player","title":"void FlashRedHearts ( EntityPlayer Player )","text":"","tags":["Class"]},{"location":"HUD.html#getchargebarsprite","title":"GetChargeBarSprite ()","text":"","tags":["Class"]},{"location":"HUD.html#sprite-getchargebarsprite","title":"Sprite GetChargeBarSprite ( )","text":"","tags":["Class"]},{"location":"HUD.html#getpickupshudsprite","title":"GetPickupsHUDSprite ()","text":"","tags":["Class"]},{"location":"HUD.html#sprite-getpickupshudsprite","title":"Sprite GetPickupsHUDSprite ( )","text":"","tags":["Class"]},{"location":"HUD.html#getplayerhud","title":"GetPlayerHUD ()","text":"","tags":["Class"]},{"location":"HUD.html#playerhud-getplayerhud-int-index-0","title":"PlayerHUD GetPlayerHUD ( int Index = 0 )","text":"","tags":["Class"]},{"location":"History.html","title":"Class \"History\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetHistory()
Example Code
local history = Isaac.GetPlayer(0):GetHistory()\n
","tags":["Class"]},{"location":"History.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"History.html#getcollectibleshistory","title":"GetCollectiblesHistory ()","text":"","tags":["Class"]},{"location":"History.html#historyitems-getcollectibleshistory","title":"HistoryItems[] GetCollectiblesHistory ( )","text":"

Returns table of collectible HistoryItems.

","tags":["Class"]},{"location":"History.html#removehistoryitembyindex","title":"RemoveHistoryItemByIndex ()","text":"","tags":["Class"]},{"location":"History.html#boolean-removehistoryitembyindex-int-index","title":"boolean RemoveHistoryItemByIndex ( int Index )","text":"

Removes an item from the item history tracker on the right-hand side of the screen. Note that this does not remove the item effect from the player.

Returns true if an item was removed, false if not.

","tags":["Class"]},{"location":"HistoryItem.html","title":"Class \"HistoryItem\"","text":"Info

You can get this class by using the following functions:

  • History:GetCollectiblesHistory()
Example Code
local history = Isaac.GetPlayer(0):GetHistory():GetCollectiblesHistory()[1]\n
","tags":["Class"]},{"location":"HistoryItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"HistoryItem.html#getitemid","title":"GetItemID ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#int-getitemid","title":"int GetItemID ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getitempooltype","title":"GetItemPoolType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#itempooltype-getitempooltype","title":"ItemPoolType GetItemPoolType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getlevelstage","title":"GetLevelStage ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#levelstage-getlevelstage","title":"LevelStage GetLevelStage ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getroomtype","title":"GetRoomType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#roomtype-getroomtype","title":"RoomType GetRoomType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#getstagetype","title":"GetStageType ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#stagetype-getstagetype","title":"StageType GetStageType ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#gettime","title":"GetTime ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#int-gettime","title":"int GetTime ( )","text":"","tags":["Class"]},{"location":"HistoryItem.html#istrinket","title":"IsTrinket ()","text":"","tags":["Class"]},{"location":"HistoryItem.html#boolean-istrinket","title":"boolean IsTrinket ( )","text":"","tags":["Class"]},{"location":"ImGui.html","title":"Class \"ImGui\"","text":"Info

You can get this class by using the global table \"ImGui\"

Example Code
local isblind = ImGui.GetVisible(\"braillemenu\")\n
","tags":["Class"]},{"location":"ImGui.html#reference","title":"Reference","text":"

For element types we use the same names as in ImGui itself. Check out the interactive ImGui example.

","tags":["Class"]},{"location":"ImGui.html#icons","title":"Icons","text":"

All imgui text supports the usage of icons. Right now, we use \"FontAwesome 6\", which provides ~1400 icons. You can search for fitting icons here: https://fontawesome.com/search?o=r&m=free&s=solid

Icon usage in Lua:

If you want to add an Icon into your widget, just use the \"Unicode\" representation of the icon and put it in between a \\u{ } string. You can find this, by selecting the icon on the fontawesome page, and looking in the top right corner of the popup-window. You can add it to your element like this:

\"\\u{f0f9} My Text\"

This will add the \"truck-medical\" icon in front of the text \"My text\".

Result: \" My Text\"

","tags":["Class"]},{"location":"ImGui.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ImGui.html#addbutton","title":"AddButton ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addbutton-string-parentid-string-elementid-string-label-function-clickcallback-nil-boolean-issmall-false","title":"void AddButton ( string ParentId, string ElementId, string Label = \"\", function ClickCallback = nil, boolean IsSmall = false )","text":"","tags":["Class"]},{"location":"ImGui.html#addcallback","title":"AddCallback ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcallback-string-elementid-imguicallback-type-function-func","title":"void AddCallback ( string ElementId, ImGuiCallback Type, Function func )","text":"

Add a callback to an ImGui-element. An element can have one callback per type.

","tags":["Class"]},{"location":"ImGui.html#addcheckbox","title":"AddCheckbox ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcheckbox-string-parentid-string-elementid-string-label-function-changecallback-nil-boolean-isactive-false","title":"void AddCheckbox ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, boolean IsActive = false )","text":"","tags":["Class"]},{"location":"ImGui.html#addcombobox","title":"AddCombobox ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addcombobox-string-parentid-string-elementid-string-label-function-changecallback-nil-table-options-int-selectedindex-0-boolean-isslider-false","title":"void AddCombobox ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, table Options, int SelectedIndex = 0, boolean IsSlider = false )","text":"

Adds a Combobox element which represents a single line element that allows you to select a value from a dropdown menu. If isSlider is set to true, instead of a dropdown menu, the values can be selected by interacting with a slider element.

Example Code
ImGui.AddCombobox(\"catInput\", \"combobox1\", \"Combobox\", function(index, val) print(index, val) end, { \"Item 1\", \"Item 2\", \"Item 3\" }, 1)\n
","tags":["Class"]},{"location":"ImGui.html#adddragfloat","title":"AddDragFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-adddragfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-speed-1-float-min-integer_min-float-min-integer_max-string-formatting-3f","title":"void AddDragFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Speed = 1, float Min = INTEGER_MIN, float Min = INTEGER_MAX, string Formatting = \"%.3f\" )","text":"","tags":["Class"]},{"location":"ImGui.html#adddraginteger","title":"AddDragInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-adddraginteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-float-speed-1-int-min-integer_min-int-min-integer_max-string-formatting-d","title":"void AddDragInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, float Speed = 1, int Min = INTEGER_MIN, int Min = INTEGER_MAX, string Formatting = \"%d%\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addelement","title":"AddElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addelement-string-parentid-string-elementid-imguielement-type-string-label","title":"void AddElement ( string ParentId, string ElementId = \"\", ImGuiElement type, string Label = \"\" )","text":"

Adds a generic element to a given parent. Useful to add control elements like \"SameLine\", \"Bullet\" or \"Text\".

","tags":["Class"]},{"location":"ImGui.html#addinputcolor","title":"AddInputColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcolor-string-parentid-string-elementid-string-label-function-changecallback-nil-float-r-0-float-g-0-float-b-0","title":"void AddInputColor ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float r = 0, float g = 0, float b = 0)","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcolor-string-parentid-string-elementid-string-label-function-changecallback-nil-float-r-0-float-g-0-float-b-0-float-a-1","title":"void AddInputColor ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float r = 0, float g = 0, float b = 0, float a = 1 )","text":"

Adds a color input element. If the parameter a is set, it acts as an RGBA input. Otherwise its just an RGB input. The float values are between 0 and 1.

The callback gets passed the r,g,b and a values as seperate parameters.

Example Code
ImGui.AddInputColor(\"catInput\", \"inputColorRGB\", \"RGB input\", function(r, g, b) print(r, g, b) end, 1, 0.25, 0.45)\nImGui.AddInputColor(\"catInput\", \"inputColorRGBA\", \"RGBA input\", function(r, g, b, a) print(r, g, b, a) end, 0.5, 0.5, 0.5,\n    0.5)\n
","tags":["Class"]},{"location":"ImGui.html#addinputcontroller","title":"AddInputController ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputcontroller-string-parentid-string-elementid-string-buttonlabel-function-changecallback-nil-float-defaultval-0","title":"void AddInputController ( string ParentId, string ElementId, string ButtonLabel = \"\", function ChangeCallback = nil, float DefaultVal = 0 )","text":"

Adds an input for Gamepad / controller buttons.

The callback gets passed the ButtonAction ID and the ImGuiKey name of the new button.

","tags":["Class"]},{"location":"ImGui.html#addinputfloat","title":"AddInputFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-step-1-float-stepfast-100","title":"void AddInputFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Step = 1, float StepFast = 100 )","text":"","tags":["Class"]},{"location":"ImGui.html#addinputinteger","title":"AddInputInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputinteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-int-step-1-int-stepfast-100","title":"void AddInputInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, int Step = 1, int StepFast = 100 )","text":"","tags":["Class"]},{"location":"ImGui.html#addinputkeyboard","title":"AddInputKeyboard ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputkeyboard-string-parentid-string-elementid-string-buttonlabel-function-changecallback-nil-float-defaultval-0","title":"void AddInputKeyboard ( string ParentId, string ElementId, string ButtonLabel = \"\", function ChangeCallback = nil, float DefaultVal = 0 )","text":"

Adds an input for keyboard buttons.

The callback gets passed the Keyboard key ID and the ImGuiKey name of the new button.

","tags":["Class"]},{"location":"ImGui.html#addinputtext","title":"AddInputText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputtext-string-parentid-string-elementid-string-description-function-changecallback-nil-string-defaultval-string-hinttext","title":"void AddInputText ( string ParentId, string ElementId, string Description = \"\", function ChangeCallback = nil, string DefaultVal = \"\", string HintText = \"\" )","text":"

Adds a text input element. The text from HintText will get displayed as a \"placeholder\" inside the input element, if the input of the element is empty.

","tags":["Class"]},{"location":"ImGui.html#addinputtextmultiline","title":"AddInputTextMultiline ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addinputtextmultiline-string-parentid-string-elementid-string-description-function-changecallback-nil-string-defaultval-float-displayedlines-6","title":"void AddInputTextMultiline ( string ParentId, string ElementId, string Description = \"\", function ChangeCallback = nil, string DefaultVal = \"\", float DisplayedLines = 6 )","text":"

Adds a text input element that allows to input multiple lines of text. The attribute displayedLines can be used to change the height of the element.

","tags":["Class"]},{"location":"ImGui.html#addplothistogram","title":"AddPlotHistogram ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addplothistogram-string-parentid-string-elementid-string-label-table-values-string-overlaytext-float-minimum-flt_min-float-maximum-flt_max-float-height-40","title":"void AddPlotHistogram ( string ParentId, string ElementId, string Label = \"\", table Values, string OverlayText = \"\", float Minimum = FLT_MIN, float Maximum = FLT_MAX, float Height = 40 )","text":"

Adds a bar-diagram displaying the given data as vertical bars. On default, minimum and maximum are set \"dynamicaly\", making the diagram fit its content perfectly.

","tags":["Class"]},{"location":"ImGui.html#addplotlines","title":"AddPlotLines ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addplotlines-string-parentid-string-elementid-string-label-table-values-string-overlaytext-float-minimum-flt_min-float-maximum-flt_max-float-height-40","title":"void AddPlotLines ( string ParentId, string ElementId, string Label = \"\", table Values, string OverlayText = \"\", float Minimum = FLT_MIN, float Maximum = FLT_MAX, float Height = 40 )","text":"

Adds a line-diagram connecting the given values using lines. On default, minimum and maximum are set \"dynamicaly\", making the diagram fit its content perfectly.

","tags":["Class"]},{"location":"ImGui.html#addprogressbar","title":"AddProgressBar ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addprogressbar-string-parentid-string-elementid-string-label-float-progress-0-string-overlaytext-default","title":"void AddProgressBar ( string ParentId, string ElementId, string Label = \"\", float Progress = 0, string OverlayText = \"DEFAULT\" )","text":"

Adds a progressbar element. The progress value defines the fill percentage (0 to 1).

If the overlayText was not defined, the progressbar will display the current fill state in percent inside the progressbar (for example 50% when progress is set to 0.5).

If the label is empty, the progressbar will render over the full width of the parent element.

","tags":["Class"]},{"location":"ImGui.html#addradiobuttons","title":"AddRadioButtons ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addradiobuttons-string-parentid-string-elementid-function-changecallback-nil-table-options-int-selectedindex-0-boolean-rendersameline-true","title":"void AddRadioButtons ( string ParentId, string ElementId, function ChangeCallback = nil, table options, int SelectedIndex = 0, boolean renderSameLine = true )","text":"Example Code
ImGui.AddRadioButtons(\"catInput\", \"radioButtons\", function(index) print(index) end, { \"Radio 1\", \"Radio 2\", \"Radio 3\" }, 1)\n
","tags":["Class"]},{"location":"ImGui.html#addsliderfloat","title":"AddSliderFloat ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addsliderfloat-string-parentid-string-elementid-string-label-function-changecallback-nil-float-defaultval-0-float-min-integer_min-float-max-integer_max-string-formatting-3f","title":"void AddSliderFloat ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, float DefaultVal = 0, float Min = INTEGER_MIN, float Max = INTEGER_MAX, string Formatting = \"%.3f\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addsliderinteger","title":"AddSliderInteger ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addsliderinteger-string-parentid-string-elementid-string-label-function-changecallback-nil-int-defaultval-0-int-min-integer_min-int-max-integer_max-string-formatting-d","title":"void AddSliderInteger ( string ParentId, string ElementId, string Label = \"\", function ChangeCallback = nil, int DefaultVal = 0, int Min = INTEGER_MIN, int Max = INTEGER_MAX, string Formatting = \"%d%\" )","text":"","tags":["Class"]},{"location":"ImGui.html#addtab","title":"AddTab ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtab-string-parentid-string-elementid-string-label","title":"void AddTab ( string ParentId, string ElementId, string Label )","text":"

A tab is a clickable area that shows another page or area.

The parent object needs to be a TabBar.

","tags":["Class"]},{"location":"ImGui.html#addtabbar","title":"AddTabBar ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtabbar-string-parentid-string-elementid","title":"void AddTabBar ( string ParentId, string ElementId )","text":"

A TabBar is a container which is used to store Tab elements.

","tags":["Class"]},{"location":"ImGui.html#addtext","title":"AddText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-addtext-string-parentid-string-text-boolean-wraptext-false-string-elementid","title":"void AddText ( string ParentId, string Text, boolean WrapText = false, string ElementId = \"\" )","text":"

Creates a text element. If wrapText is set to true, the text will wrap on the window borders. If set to false it will expand the window content till it fits.

The ElementId can be set as well, if the text should be able to be edited by later code.

","tags":["Class"]},{"location":"ImGui.html#createmenu","title":"CreateMenu ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-createmenu-string-elementid-string-label","title":"void CreateMenu ( string ElementId, string Label = \"\" )","text":"

Creates an entry to the main menu bar of Repentogon.

","tags":["Class"]},{"location":"ImGui.html#createwindow","title":"CreateWindow ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-createwindow-string-elementid-string-title","title":"void CreateWindow ( string ElementId, string Title = \"\" )","text":"

Creates a window object. You need to use LinkWindowToElement() or SetVisible() to toggle the visibility of the window.

","tags":["Class"]},{"location":"ImGui.html#elementexists","title":"ElementExists ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-elementexists-string-elementid","title":"boolean ElementExists ( string ElementId )","text":"

Returns true if an element with the given ID exists already.

","tags":["Class"]},{"location":"ImGui.html#getmouseposition","title":"GetMousePosition ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-getmouseposition","title":"void GetMousePosition ( )","text":"

Returns the mouse position in Screen coordinates.

Use this instead of Input.GetMousePosition() when working with imgui!

","tags":["Class"]},{"location":"ImGui.html#getvisible","title":"GetVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-getvisible-string-elementid","title":"boolean GetVisible ( string ElementId )","text":"

Get if a window element is visible or not.

","tags":["Class"]},{"location":"ImGui.html#getwindowpinned","title":"GetWindowPinned ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-getwindowpinned-string-windowid","title":"boolean GetWindowPinned ( string WindowId )","text":"

Get the pinned state of a window.

","tags":["Class"]},{"location":"ImGui.html#hide","title":"Hide ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-hide","title":"void Hide ( )","text":"

Closes ImGui.

","tags":["Class"]},{"location":"ImGui.html#imguitoworld","title":"ImGuiToWorld ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-imguitoworld-vector-position","title":"void ImGuiToWorld ( Vector Position )","text":"

Converts ImGui coordinates into World coordinates.

Bug

This function does not work correctly when the game's scale factor exceeds MaxRenderScale.

","tags":["Class"]},{"location":"ImGui.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"

Called when the player is actively in ImGui. This isn't triggered by \"pinned\" windows.

","tags":["Class"]},{"location":"ImGui.html#linkwindowtoelement","title":"LinkWindowToElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-linkwindowtoelement-string-windowid-string-elementid","title":"void LinkWindowToElement ( string WindowId, string ElementId )","text":"

Connects a Window or Popup element to another element, making said element act as a \"toggle\" for that window.

Example Code

this code creates a new menu entry with one menuitem, which on click toggles a window

ImGui.CreateMenu(\"myMenu\", \"Test Menu\")\nImGui.AddElement(\"myMenu\", \"myButton\", ImGuiElement.MenuItem, \"Some Text\")\nImGui.CreateWindow(\"myWindow\", \"Some Window title\")\nImGui.LinkWindowToElement(\"myWindow\", \"myButton\")\n

","tags":["Class"]},{"location":"ImGui.html#pushnotification","title":"PushNotification ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-pushnotification-const-text-imguinotificationtype-notificationtype-0-int-lifetime-5000","title":"void PushNotification ( const Text, ImGuiNotificationType notificationType = 0, int lifetime = 5000 )","text":"

Displays a pop-up message window in the style of a notification.

","tags":["Class"]},{"location":"ImGui.html#removecallback","title":"RemoveCallback ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removecallback-string-elementid-imguicallback-type","title":"void RemoveCallback ( string ElementId, ImGuiCallback type )","text":"

Remove the callback of the given type from the element.

","tags":["Class"]},{"location":"ImGui.html#removecolor","title":"RemoveColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removecolor-string-elementid-imguicolor-colortype","title":"void RemoveColor ( string ElementId, ImGuiColor colorType )","text":"

Remove a color modifier of the given type from the element.

","tags":["Class"]},{"location":"ImGui.html#removeelement","title":"RemoveElement ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removeelement-string-elementid","title":"void RemoveElement ( string ElementId )","text":"

General function to remove any kind of element.

","tags":["Class"]},{"location":"ImGui.html#removemenu","title":"RemoveMenu ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removemenu-string-elementid","title":"void RemoveMenu ( string ElementId )","text":"","tags":["Class"]},{"location":"ImGui.html#removewindow","title":"RemoveWindow ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-removewindow-string-elementid","title":"void RemoveWindow ( string ElementId )","text":"","tags":["Class"]},{"location":"ImGui.html#reset","title":"Reset ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-reset","title":"void Reset ( )","text":"

Removes all custom defined Imgui elements and resets imgui back to its original state.

","tags":["Class"]},{"location":"ImGui.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setcolor-string-elementid-imguicolor-colortype-float-r-float-g-float-b-float-a-10","title":"void SetColor ( string ElementId, ImGuiColor ColorType, float r, float g, float b, float a = 1.0 )","text":"

Adds a color modifier to a given element.

","tags":["Class"]},{"location":"ImGui.html#sethelpmarker","title":"SetHelpmarker ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-sethelpmarker-string-elementid-string-text","title":"void SetHelpmarker ( string ElementId, string Text )","text":"

Adds a helpmarker to a given element. A Helpmarker is a (?) element rendered on the right of an element, which when hovered displays a tooltip.

","tags":["Class"]},{"location":"ImGui.html#settextcolor","title":"SetTextColor ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-settextcolor-string-elementid-float-r-float-g-float-b-float-a-10","title":"void SetTextColor ( string ElementId, float r, float g, float b, float a = 1.0 )","text":"

Shortcut function to add a color modifier to text of a given element.

","tags":["Class"]},{"location":"ImGui.html#settooltip","title":"SetTooltip ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-settooltip-string-elementid-string-text","title":"void SetTooltip ( string ElementId, string Text )","text":"

Adds a tooltip to a given element. The tooltip is visible when the user hovers over the element.

","tags":["Class"]},{"location":"ImGui.html#setvisible","title":"SetVisible ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setvisible-string-elementid-boolean-visible","title":"void SetVisible ( string ElementId, boolean Visible )","text":"","tags":["Class"]},{"location":"ImGui.html#setwindowpinned","title":"SetWindowPinned ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowpinned-string-windowid-boolean-pinned","title":"void SetWindowPinned ( string WindowId, boolean Pinned )","text":"

Set the pinned state of a window, making it visible when the ImGui interface is not active.

","tags":["Class"]},{"location":"ImGui.html#setwindowposition","title":"SetWindowPosition ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowposition-string-windowid-float-x-float-y","title":"void SetWindowPosition ( string WindowId, float x, float y )","text":"

Set the position of a window in screen coordinates.

","tags":["Class"]},{"location":"ImGui.html#setwindowsize","title":"SetWindowSize ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-setwindowsize-string-windowid-float-width-float-height","title":"void SetWindowSize ( string WindowId, float width, float Height )","text":"

Set the width and height of a window, in pixels.

","tags":["Class"]},{"location":"ImGui.html#show","title":"Show ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-show","title":"void Show ( )","text":"

Opens ImGui.

","tags":["Class"]},{"location":"ImGui.html#updatedata","title":"UpdateData ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-int-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, int NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-float-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, float NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-boolean-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, boolean NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-string-newdatavalue","title":"void UpdateData ( string ElementId, ImGuiData DataType, string NewDataValue )","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatedata-string-elementid-imguidata-datatype-table-newdatavalues","title":"void UpdateData ( string ElementId, ImGuiData DataType, table NewDataValues )","text":"

Update arbitrary data of a given element. See ImGuiData for possible data to update.

The dataTypes and the expected NewDataValue are evaluated per element. Therefore, if you try to update data of an element where this data is not used, this function will throw an error for you.

","tags":["Class"]},{"location":"ImGui.html#updatetext","title":"UpdateText ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-updatetext-string-elementid-string-text","title":"void UpdateText ( string ElementId, string Text )","text":"

Shortcut function to update an element text or label.

","tags":["Class"]},{"location":"ImGui.html#worldtoimgui","title":"WorldToImGui ()","text":"","tags":["Class"]},{"location":"ImGui.html#void-worldtoimgui-vector-position","title":"void WorldToImGui ( Vector Position )","text":"

Converts world coordinates into ImGui coordinates.

Bug

This function does not work correctly when the game's scale factor exceeds MaxRenderScale.

","tags":["Class"]},{"location":"Isaac.html","title":"Global Class \"Isaac\"","text":"","tags":["Global","Class"]},{"location":"Isaac.html#modified-functions","title":"Modified Functions","text":"","tags":["Global","Class"]},{"location":"Isaac.html#findbytype","title":"FindByType ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findbytype-entitytype-type-int-variant-1-int-subtype-1-boolean-cache-false-boolean-ignorefriendly-false","title":"Entity[] FindByType ( EntityType Type, int Variant = -1, int SubType = -1, boolean Cache = false, boolean IgnoreFriendly = false )","text":"

Same as vanilla, but much faster.

","tags":["Global","Class"]},{"location":"Isaac.html#findinradius","title":"FindInRadius ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findinradius-vector-position-float-radius-int-partitions-0xffffffff","title":"Entity[] FindInRadius ( Vector Position, float Radius, int Partitions = 0xFFFFFFFF )","text":"

Same as in vanilla, but much faster and with fixed search for effects.

","tags":["Global","Class"]},{"location":"Isaac.html#getroomentities","title":"GetRoomEntities ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-getroomentities","title":"Entity[] GetRoomEntities ( )","text":"

Same as vanilla, but much faster.

","tags":["Global","Class"]},{"location":"Isaac.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Isaac.html#allmarksfilled","title":"AllMarksFilled ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-allmarksfilled-playertype-character","title":"int AllMarksFilled ( PlayerType Character)","text":"

Checks if a given character has completed all marks and returns the highest difficulty it was accomplished in if it applies(1-normal/2-hard/0-none). Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#alltaintedcompletion","title":"AllTaintedCompletion ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-alltaintedcompletion-playertype-character-taintedmarksgroup-group","title":"int AllTaintedCompletion ( PlayerType Character, TaintedMarksGroup Group)","text":"

Checks if a given character has completed all the tainted unlock-related marks and returns the highest difficulty it was accomplished in if it applies(1-normal/2-hard/0-none). Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#canstarttruecoop","title":"CanStartTrueCoop ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-canstarttruecoop","title":"boolean CanStartTrueCoop ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#centercursor","title":"CenterCursor ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-centercursor","title":"void CenterCursor ( )","text":"

Moves the windows mouse cursor to the center of the game's window. This is incredibly niche but useful if you want to use cursor controls for anything fancy and have full control over it. It wont move the cursor if Isaac.exe becomes out of focus.

Note

Take in mind the screen center is NOT the center of the room necessarily, it's just the center of the game's window(center of the actual screen if you are on fullscreen).

","tags":["Global","Class"]},{"location":"Isaac.html#clearbosshazards","title":"ClearBossHazards ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearbosshazards-boolean-ignorenpcs-false","title":"void ClearBossHazards ( boolean IgnoreNPCs = false )","text":"

Kills all projectiles and, if IgnoreNPCs is false, all non-friendly NPCs capable of keeping doors closed.

","tags":["Global","Class"]},{"location":"Isaac.html#clearcompletionmarks","title":"ClearCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearcompletionmarks-playertype-character","title":"void ClearCompletionMarks ( PlayerType Character)","text":"

Deletes all completion marks for a given character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#clearchallenge","title":"ClearChallenge ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-clearchallenge-int-challengeid","title":"void ClearChallenge ( int challengeid)","text":"

Sets the challenge of the corresponding challengeid to completed. Should work with both custom and vanilla challenges.

","tags":["Global","Class"]},{"location":"Isaac.html#createtimer","title":"CreateTimer ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entityeffect-createtimer-function-function-int-interval-int-times-boolean-persistent","title":"EntityEffect CreateTimer ( function Function, int Interval, int Times, boolean Persistent )","text":"

Spawns a timer EntityEffect. This entity will starting running Function function after Interval frames, and will repeat it Times amount of times. Persistent controls whether or not this timer \"dies\" in the current room, or persists across rooms.

Timer behavior

This timer is called every game update. This means the timer only takes into consideration frames in which the game is actively running, not paused, and uses update frames for its Delay parameter (30 frames per second).

If your use case requires that a timer takes paused time into account, stick with a custom timer running on a RENDER callback.

","tags":["Global","Class"]},{"location":"Isaac.html#createweapon","title":"CreateWeapon ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#weapon-createweapon-weapontype-type-entity-owner","title":"Weapon CreateWeapon ( WeaponType Type, Entity Owner )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#destroyweapon","title":"DestroyWeapon ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-destroyweapon-weapon-weapon","title":"void DestroyWeapon ( Weapon Weapon )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#drawline","title":"DrawLine ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-drawline-vector-startpos-vector-endpos-kcolor-startcolor-kcolor-endcolor-int-thickness","title":"void DrawLine ( Vector StartPos, Vector EndPos, KColor StartColor, KColor EndColor, int Thickness )","text":"

Draws a line between the two given positions this render frame.

","tags":["Global","Class"]},{"location":"Isaac.html#drawquad","title":"DrawQuad ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-drawquad-vector-topleftpos-vector-toprightpos-vector-bottomleftpos-vector-bottomrightpos-kcolor-color-int-thickness","title":"void DrawQuad ( Vector TopLeftPos, Vector TopRightPos, Vector BottomLeftPos, Vector BottomRightPos, KColor Color, int Thickness )","text":"

Draws a line between the two given positions this render frame. Internally the game uses its own struct for this, DestinationQuad, but I haven't gotten to adding that to Lua yet

","tags":["Global","Class"]},{"location":"Isaac.html#fillcompletionmarks","title":"FillCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-fillcompletionmarks-playertype-character","title":"void FillCompletionMarks ( PlayerType Character)","text":"

Completes all completion marks for a given character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#findincapsule","title":"FindInCapsule ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#entity-findincapsule-capsule-capsule-entitypartitions-partitions-1","title":"Entity[] FindInCapsule ( Capsule Capsule, EntityPartitions Partitions = -1 )","text":"

Return entities inside of given capsule, filtered by partitions mask.

","tags":["Global","Class"]},{"location":"Isaac.html#getachievementidbyname","title":"GetAchievementIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getachievementidbyname-string-name","title":"table GetAchievementIdByName ( string name )","text":"

Gets the Achievement ID By Name.

Warning

Modded achievements are not loaded until past the main menu is initialized, so dont use this function on modload to get your ids. A suggested place to do so is the MC_POST_SAVESLOT_LOAD callback.

","tags":["Global","Class"]},{"location":"Isaac.html#getclipboard","title":"GetClipboard ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getclipboard","title":"string GetClipboard ( )","text":"

Gets the contents of the clipboard as long as they are in text form, otherwise it will just return nil.

","tags":["Global","Class"]},{"location":"Isaac.html#getcollectiblespawnposition","title":"GetCollectibleSpawnPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-getcollectiblespawnposition-vector-position","title":"Vector GetCollectibleSpawnPosition ( Vector Position )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getcompletionmark","title":"GetCompletionMark ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getcompletionmark-playertype-character-completiontype-mark","title":"int GetCompletionMark ( PlayerType Character, CompletionType Mark)","text":"

Gets a completion mark value for a specific character. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#getcompletionmarks","title":"GetCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getcompletionmarks-playertype-character","title":"table GetCompletionMarks ( PlayerType Character)","text":"

Returns a table containing all the marks for the character. Supports both modded and vanilla characters.

Table structure & usage
  • The table has the following fields:
    • PlayerType: containing the PlayerType asociated to the marks
    • MomsHeart: value of Difficulty 0-2 indicating the completion
    • Isaac: value of Difficulty 0-2 indicating the completion
    • Satan: value of Difficulty 0-2 indicating the completion
    • BossRush: value of Difficulty 0-2 indicating the completion
    • BlueBaby: value of Difficulty 0-2 indicating the completion
    • Lamb: value of Difficulty 0-2 indicating the completion
    • MegaSatan: value of Difficulty 0-2 indicating the completion
    • UltraGreed: value of Difficulty 0-2 indicating the completion
    • Hush: value of Difficulty 0-2 indicating the completion
    • UltraGreedier: Mostly redundant with UltraGreed when it has a value of 2, no need to set it
    • Delirium: value of Difficulty 0-2 indicating the completion
    • Mother: value of Difficulty 0-2 indicating the completion
    • Beast: value of Difficulty 0-2 indicating the completion
      local marks = Isaac.GetCompletionMarks(0)\nif (marks.MomsHeart > 0) then\n    print(\"got mom\")\nend\nif (marks.Lamb >= 2) then\n    print(\"GOATED ON H4RD\")\nend\nif (Isaac.GetCompletionMarks(0).Delirium > 0) then --doing it the lazy way, fitting deliriums theme\n    print(\"Got Deli\")\nend\n
","tags":["Global","Class"]},{"location":"Isaac.html#getcursorsprite","title":"GetCursorSprite ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#sprite-getcursorsprite","title":"Sprite GetCursorSprite ( )","text":"

Returns the cursor sprite that is rendered when Options.MouseControl is set to true.

","tags":["Global","Class"]},{"location":"Isaac.html#getcutsceneidbyname","title":"GetCutsceneIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getcutsceneidbyname-string-name","title":"table GetCutsceneIdByName ( string Name )","text":"

Gets the Cutscene ID By Name.

","tags":["Global","Class"]},{"location":"Isaac.html#getentitysubtypebyname","title":"GetEntitySubTypeByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getentitysubtypebyname-string-name","title":"int GetEntitySubTypeByName ( string Name )","text":"

Gets the entity SubType by entity name.

","tags":["Global","Class"]},{"location":"Isaac.html#getgiantbookidbyname","title":"GetGiantBookIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getgiantbookidbyname-string-name","title":"int GetGiantBookIdByName ( string Name )","text":"

Gets a GiantBook Id by name. For vanilla giantbooks, the png filename, from the gfx xml attribute, is used as the giantbook name.

","tags":["Global","Class"]},{"location":"Isaac.html#getloadedmodules","title":"GetLoadedModules ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#table-getloadedmodules","title":"table GetLoadedModules ( )","text":"

Returns a key - value table containing all loaded script files, where the key is the name or path of a given script file, and the value the return value of that file after loading. (In most cases its true or a table)

","tags":["Global","Class"]},{"location":"Isaac.html#getlocalizedstring","title":"GetLocalizedString ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getlocalizedstring-string-category-string-key-int-language","title":"string GetLocalizedString ( string Category, string Key, int Language )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getlocalizedstring-string-category-string-key-string-languagecode","title":"string GetLocalizedString ( string Category, string Key, string LanguageCode )","text":"

Returns the translation string associated with the given key in the given category. The translation is given in the language ID/language code given as parameter.

","tags":["Global","Class"]},{"location":"Isaac.html#getmodchallengeclearcount","title":"GetModChallengeClearCount ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getmodchallengeclearcount-int-challengeid","title":"int GetModChallengeClearCount (int challengeid)","text":"

Returns the number of times a custom challenge was cleared. It resets if its ever set as not Done.

","tags":["Global","Class"]},{"location":"Isaac.html#getnullitemidbyname","title":"GetNullItemIdByName ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-getnullitemidbyname","title":"int GetNullItemIdByName ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getpersistentgamedata","title":"GetPersistentGameData ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#persistentgamedata-getpersistentgamedata","title":"PersistentGameData GetPersistentGameData ( )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getrenderposition","title":"GetRenderPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-getrenderposition-vector-position-boolean-scale-true","title":"Vector GetRenderPosition ( Vector Position, boolean Scale = true )","text":"","tags":["Global","Class"]},{"location":"Isaac.html#getstring","title":"GetString ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#string-getstring-string-category-string-key","title":"string GetString ( string Category, string Key )","text":"

Returns the translation string associated with the given key in the given category. The translation is given in the currently selected language.

","tags":["Global","Class"]},{"location":"Isaac.html#isingame","title":"IsInGame ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-isingame","title":"boolean IsInGame ( )","text":"

Returns true if Game is non-nil and the current state is correct.

","tags":["Global","Class"]},{"location":"Isaac.html#ischallengedone","title":"IsChallengeDone ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-ischallengedone-int-challengeid","title":"boolean IsChallengeDone (int challengeid )","text":"

Returns true if the challenge of the corresponding challengeid is completed.

","tags":["Global","Class"]},{"location":"Isaac.html#markchallengeasnotdone","title":"MarkChallengeAsNotDone ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-markchallengeasnotdone-int-challengeid","title":"void MarkChallengeAsNotDone (int challengeid )","text":"

Sets the challenge as not done.

","tags":["Global","Class"]},{"location":"Isaac.html#levelgeneratorentry","title":"LevelGeneratorEntry ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#levelgeneratorentry-levelgeneratorentry","title":"LevelGeneratorEntry LevelGeneratorEntry ( )","text":"

Creates a new blank LevelGeneratorEntry object.

","tags":["Global","Class"]},{"location":"Isaac.html#playcutscene","title":"PlayCutscene ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#int-playcutscene-int-id","title":"int PlayCutscene ( int ID )","text":"

Plays the Cutscene of the provided ID. Use Isaac.GetCutsceneIdByName to get the IDs, or the enum for the vanilla ones if you prefer.

","tags":["Global","Class"]},{"location":"Isaac.html#setclipboard","title":"SetClipboard ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#boolean-setclipboard-string-clipboarddata","title":"boolean SetClipboard ( string ClipboardData )","text":"

Sets the contents of the clipboard to the provided string.

","tags":["Global","Class"]},{"location":"Isaac.html#setcompletionmark","title":"SetCompletionMark ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-setcompletionmark-playertype-character-completiontype-mark-int-value","title":"void SetCompletionMark ( PlayerType Character, CompletionType Mark, int Value)","text":"

Sets a completion mark of a character to match a specific value from 0 to 2. Supports both modded and vanilla characters.

","tags":["Global","Class"]},{"location":"Isaac.html#setcompletionmarks","title":"SetCompletionMarks ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-setcompletionmarks-table-marks","title":"void SetCompletionMarks ( table Marks )","text":"

Sets the completion marks of a character to match an input table. Supports both modded and vanilla characters. Requires a table containing all the marks for the character, getting it from GetCompletionMarks is adviced for convenience.

Table structure & usage
  • The table needs the following fields:
    • PlayerType: containing the PlayerType asociated to the marks
    • MomsHeart: value of Difficulty 0-2 indicating the completion
    • Isaac: value of Difficulty 0-2 indicating the completion
    • Satan: value of Difficulty 0-2 indicating the completion
    • BossRush: value of Difficulty 0-2 indicating the completion
    • BlueBaby: value of Difficulty 0-2 indicating the completion
    • Lamb: value of Difficulty 0-2 indicating the completion
    • MegaSatan: value of Difficulty 0-2 indicating the completion
    • UltraGreed: value of Difficulty 0-2 indicating the completion
    • Hush: value of Difficulty 0-2 indicating the completion
    • UltraGreedier: Mostly redundant with UltraGreed when it has a value of 2, no need to set it
    • Delirium: value of Difficulty 0-2 indicating the completion
    • Mother: value of Difficulty 0-2 indicating the completion
    • Beast: value of Difficulty 0-2 indicating the completion
      local marks = Isaac.GetCompletionMarks(0) --getting the current table\nmarks.MomsHeart = 2 --Isaac now will have the hard mark on MHeart\nmarks.Satan = 1 --Isaac will now have the normal mark on Satan\nmarks.BlueBaby = 0 --Removes the BlueBaby Mark if its present\nIsaac.SetCompletionMarks(marks) --Impacts the changes on the player\n
","tags":["Global","Class"]},{"location":"Isaac.html#showerrordialog","title":"ShowErrorDialog ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#dialogreturn-showerrordialog-string-title-string-text-dialogicons-icon-dialogiconserror-dialogbuttons-buttons-dialogbuttonsok","title":"DialogReturn ShowErrorDialog ( string Title, string Text, DialogIcons Icon = DialogIcons.ERROR, DialogButtons Buttons = DialogButtons.OK )","text":"

Displays a Win32 message box. Can be controlled with the icon and buttons parameters. Returns a DialogReturn value that indicates the button pressed.

","tags":["Global","Class"]},{"location":"Isaac.html#worldtomenuposition","title":"WorldToMenuPosition ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#vector-worldtomenuposition-mainmenu-menuid-vector-position","title":"Vector WorldToMenuPosition ( MainMenu MenuId, Vector Position )","text":"

Converts the World position from input to a pinned main menu position that varies depending on the enum selected. It's important to reconvert this every frame, in a similar fashion to WorldToRender, in order to properly render when menus are changed or the window is resized.

","tags":["Global","Class"]},{"location":"Isaac.html#triggerwindowresize","title":"TriggerWindowResize ()","text":"","tags":["Global","Class"]},{"location":"Isaac.html#void-triggerwindowresize","title":"void TriggerWindowResize ( )","text":"

Simulates a window resize, useful to refresh some option changes like maxrender.

","tags":["Global","Class"]},{"location":"ItemConfig.html","title":"Class \"ItemConfig\"","text":"","tags":["Class"]},{"location":"ItemConfig.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ItemConfig.html#canrerollcollectible","title":"CanRerollCollectible ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#boolean-canrerollcollectible-int-id","title":"boolean CanRerollCollectible ( int ID )","text":"","tags":["Class"]},{"location":"ItemConfig.html#gettaggeditems","title":"GetTaggedItems ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#itemconfig_item-gettaggeditems-int-tags","title":"ItemConfig_Item[] GetTaggedItems ( int Tags )","text":"

Returns a table of ItemConfig_Item objects with the given tags

","tags":["Class"]},{"location":"ItemConfig.html#isvalidtrinket","title":"IsValidTrinket ()","text":"","tags":["Class"]},{"location":"ItemConfig.html#boolean-isvalidtrinket-trinkettype-trinkettype","title":"boolean IsValidTrinket ( TrinketType TrinketType )","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html","title":"Class \"ItemConfigPillEffect\"","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#effectclass","title":"EffectClass","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#int-effectclass","title":"int EffectClass","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#effectsubclass","title":"EffectSubClass","text":"","tags":["Class"]},{"location":"ItemConfig_PillEffect.html#int-effectsubclass","title":"int EffectSubClass","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"ItemOverlay.html","title":"Global Class \"ItemOverlay\"","text":"Info

You can get this class by using the ItemOverlay global table.

Example Code
local overlaysprite = ItemOverlay.GetSprite()\n
","tags":["Global","Class"]},{"location":"ItemOverlay.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getdelay","title":"GetDelay ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#int-getdelay","title":"int GetDelay ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getmegamushplayersprite","title":"GetMegaMushPlayerSprite ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#sprite-getmegamushplayersprite","title":"Sprite GetMegaMushPlayerSprite ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getoverlayid","title":"GetOverlayID ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#int-getoverlayid","title":"int GetOverlayID ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getplayer","title":"GetPlayer ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#entityplayer-getplayer","title":"EntityPlayer GetPlayer ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#show","title":"Show ()","text":"","tags":["Global","Class"]},{"location":"ItemOverlay.html#void-show-giantbook-giantbookid-int-delay-3-entityplayer-nil","title":"void Show ( Giantbook GiantbookID, int Delay = 3, EntityPlayer = nil )","text":"","tags":["Global","Class"]},{"location":"ItemPool.html","title":"Class \"ItemPool\"","text":"","tags":["Class"]},{"location":"ItemPool.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ItemPool.html#canspawncollectible","title":"CanSpawnCollectible ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-canspawncollectible-collectibletype-collectible-boolean-ignorelocked","title":"boolean CanSpawnCollectible ( CollectibleType Collectible, boolean ignoreLocked )","text":"IgnoreLocked

If IgnoreLocked is set to true, this function will return true for items that could appear but are locked behind achievements.

It will still return false if the item was removed from the item pool or if it can't appear because other effects (Tainted Lost offensive items mechanic or NO! trinket effect).

","tags":["Class"]},{"location":"ItemPool.html#getcardex","title":"GetCardEx ()","text":"","tags":["Class"]},{"location":"ItemPool.html#card-getcardex-int-seed-int-specialchance-int-runechance-int-suitchance-boolean-allownoncards","title":"Card GetCardEx ( int Seed, int SpecialChance, int RuneChance, int SuitChance, boolean AllowNonCards )","text":"

More sophisticated version of ItemPool:GetCard() that allows to define individual chances.

","tags":["Class"]},{"location":"ItemPool.html#getcollectiblefromlist","title":"GetCollectibleFromList ()","text":"","tags":["Class"]},{"location":"ItemPool.html#collectibletype-getcollectiblefromlist-collectibletype-itemlist-int-seed-random-collectibletype-defaultitem-collectibletypecollectible_breakfast-boolean-addtoblacklist-true-boolean-excludelockeditems-false","title":"CollectibleType GetCollectibleFromList ( CollectibleType[] ItemList, int Seed = Random(), CollectibleType DefaultItem = CollectibleType.COLLECTIBLE_BREAKFAST, boolean AddToBlacklist = true, boolean ExcludeLockedItems = false )","text":"","tags":["Class"]},{"location":"ItemPool.html#getcollectiblesfrompool","title":"GetCollectiblesFromPool ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getcollectiblesfrompool-itempooltype-pooltype","title":"table GetCollectiblesFromPool ( ItemPoolType PoolType )","text":"

Returns a table of collectibles registered in the specified pool. The table contains the following fields

Field Type Comment decreaseBy float initialWeight float itemID CollectibleType removeOn float weight float","tags":["Class"]},{"location":"ItemPool.html#getnumavailabletrinkets","title":"GetNumAvailableTrinkets ()","text":"","tags":["Class"]},{"location":"ItemPool.html#int-getnumavailabletrinkets","title":"int GetNumAvailableTrinkets ( )","text":"

Returns the amount of trinkets available in the item pool.

","tags":["Class"]},{"location":"ItemPool.html#getpillcolor","title":"GetPillColor ()","text":"","tags":["Class"]},{"location":"ItemPool.html#pillcolor-getpillcolor-pilleffect-id","title":"PillColor GetPillColor ( PillEffect ID )","text":"

Returns a PillColor matching the specificed PillEffect, returns -1 if the Effect is not in the rotation.

Currently not applied by pill modifications, such as PHD/False PHD.

","tags":["Class"]},{"location":"ItemPool.html#getremovedcollectibles","title":"GetRemovedCollectibles ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getremovedcollectibles","title":"table GetRemovedCollectibles ( )","text":"

Returns a table of collectibles removed from all pools.

Example Code

This code checks if the sad onion has been removed.

local removedCollectibles = itemPool:GetRemovedCollectibles()\n\nif removedCollectibles[CollectibleType.COLLECTIBLE_SAD_ONION] then\n  print(\"Sad onion removed!\")\nend\n
","tags":["Class"]},{"location":"ItemPool.html#getroomblacklistedcollectibles","title":"GetRoomBlacklistedCollectibles ()","text":"","tags":["Class"]},{"location":"ItemPool.html#table-getroomblacklistedcollectibles","title":"table GetRoomBlacklistedCollectibles ( )","text":"

Returns a table of collectibles blacklisted in the current room.

Example Code

This code checks if the sad onion has been removed.

local blacklistedCollectibles = itemPool:GetRoomBlacklistedCollectibles()\n\nif blacklistedCollectibles[CollectibleType.COLLECTIBLE_SAD_ONION] then\n  print(\"Sad onion blacklisted!\")\nend\n
","tags":["Class"]},{"location":"ItemPool.html#hascollectible","title":"HasCollectible ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-hascollectible-collectibletype-collectible","title":"boolean HasCollectible ( CollectibleType Collectible )","text":"

Returns true if collectible is available in item pools, false otherwise.

","tags":["Class"]},{"location":"ItemPool.html#hastrinket","title":"HasTrinket ()","text":"","tags":["Class"]},{"location":"ItemPool.html#boolean-hastrinket-trinkettype-trinket","title":"boolean HasTrinket ( TrinketType Trinket )","text":"

Returns true if trinket is currently available in trinket pool, false otherwise.

","tags":["Class"]},{"location":"ItemPool.html#unidentifypill","title":"UnidentifyPill ()","text":"","tags":["Class"]},{"location":"ItemPool.html#void-unidentifypill-pillcolor-pill","title":"void UnidentifyPill ( PillColor Pill )","text":"

Will reset a pill back to unidentified (???) state.

","tags":["Class"]},{"location":"LayerState.html","title":"Class \"LayerState\"","text":"","tags":["Class"]},{"location":"LayerState.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LayerState.html#getblendmode","title":"GetBlendMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#blendmode-getblendmode","title":"BlendMode GetBlendMode ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"LayerState.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getcropoffset","title":"GetCropOffset ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getcropoffset","title":"Vector GetCropOffset ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getdefaultspritesheetpath","title":"GetDefaultSpritesheetPath ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getdefaultspritesheetpath","title":"string GetDefaultSpritesheetPath ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getlayerid","title":"GetLayerID ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getlayerid","title":"int GetLayerID ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getname","title":"GetName ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getname","title":"string GetName ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getrenderflags","title":"GetRenderFlags ()","text":"","tags":["Class"]},{"location":"LayerState.html#animrenderflags-getrenderflags","title":"AnimRenderFlags GetRenderFlags ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"LayerState.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getsize","title":"GetSize ()","text":"","tags":["Class"]},{"location":"LayerState.html#vector-getsize","title":"Vector GetSize ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getspritesheetpath","title":"GetSpritesheetPath ()","text":"","tags":["Class"]},{"location":"LayerState.html#string-getspritesheetpath","title":"string GetSpritesheetPath ( )","text":"","tags":["Class"]},{"location":"LayerState.html#getwrapsmode","title":"GetWrapSMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getwrapsmode","title":"int GetWrapSMode ( )","text":"

Returns the wrap mode for the x coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#getwraptmode","title":"GetWrapTMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#int-getwraptmode","title":"int GetWrapTMode ( )","text":"

Returns the wrap mode for the y coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"LayerState.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"LayerState.html#setcolor","title":"SetColor ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setcolor-color-color","title":"void SetColor ( Color Color )","text":"","tags":["Class"]},{"location":"LayerState.html#setcropoffset","title":"SetCropOffset ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setcropoffset-vector-offset","title":"void SetCropOffset ( Vector Offset )","text":"","tags":["Class"]},{"location":"LayerState.html#setpos","title":"SetPos ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setpos-vector-pos","title":"void SetPos ( Vector Pos )","text":"","tags":["Class"]},{"location":"LayerState.html#setrenderflags","title":"SetRenderFlags ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setrenderflags-animrenderflags-flags","title":"void SetRenderFlags ( AnimRenderFlags Flags )","text":"","tags":["Class"]},{"location":"LayerState.html#setrotation","title":"SetRotation ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setrotation-float-rotation","title":"void SetRotation ( float Rotation )","text":"","tags":["Class"]},{"location":"LayerState.html#setsize","title":"SetSize ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setsize-vector-size","title":"void SetSize ( Vector Size )","text":"","tags":["Class"]},{"location":"LayerState.html#setvisible","title":"SetVisible ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setvisible-boolean-visible","title":"void SetVisible ( boolean Visible )","text":"","tags":["Class"]},{"location":"LayerState.html#setwrapsmode","title":"SetWrapSMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setwrapsmode-int-mode","title":"void SetWrapSMode ( int Mode )","text":"

Sets the wrap mode for the x coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"LayerState.html#setwraptmode","title":"SetWrapTMode ()","text":"","tags":["Class"]},{"location":"LayerState.html#void-setwraptmode-int-mode","title":"void SetWrapTMode ( int Mode )","text":"

Sets the wrap mode for the y coordinate. See this website for a general overview.

Info

Enums for these are pending.

","tags":["Class"]},{"location":"Level.html","title":"Class \"Level\"","text":"","tags":["Class"]},{"location":"Level.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Level.html#canspawndooroutline","title":"CanSpawnDoorOutline ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-canspawndooroutline-int-roomidx-doorslot-doorslot","title":"boolean CanSpawnDoorOutline ( int RoomIdx, DoorSlot DoorSlot )","text":"","tags":["Class"]},{"location":"Level.html#getdimension","title":"GetDimension ()","text":"","tags":["Class"]},{"location":"Level.html#dimension-getdimension","title":"Dimension GetDimension ( )","text":"","tags":["Class"]},{"location":"Level.html#getforcespecialquest","title":"GetForceSpecialQuest ()","text":"","tags":["Class"]},{"location":"Level.html#specialquest-getforcespecialquest","title":"SpecialQuest GetForceSpecialQuest ( )","text":"

If set, the level will automatically attempt to place the Knife Piece puzzle door for this LevelStage.

Info

This is set to SpecialQuest.DEFAULT immediately before calling MC_PRE_LEVEL_INIT.

","tags":["Class"]},{"location":"Level.html#hasabandonedmineshaft","title":"HasAbandonedMineshaft ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasabandonedmineshaft","title":"boolean HasAbandonedMineshaft ( )","text":"

Returns true if the floor has the mineshaft room used for the second Knife Piece puzzle.

","tags":["Class"]},{"location":"Level.html#hasmirrordimension","title":"HasMirrorDimension ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasmirrordimension","title":"boolean HasMirrorDimension ( )","text":"

Returns true if the floor has the mirror dimension used for the first Knife Piece puzzle.

","tags":["Class"]},{"location":"Level.html#hasphotodoor","title":"HasPhotoDoor ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-hasphotodoor","title":"boolean HasPhotoDoor ( )","text":"

Returns true if the floor has the photo door used to enter Mausoleum/Gehenna leading to the Ascent sequence.

","tags":["Class"]},{"location":"Level.html#isstageavailable","title":"IsStageAvailable ()","text":"","tags":["Class"]},{"location":"Level.html#void-isstageavailable-levelstage-level-stagetype-stage","title":"void IsStageAvailable ( LevelStage Level, StageType Stage )","text":"","tags":["Class"]},{"location":"Level.html#placeroom","title":"PlaceRoom ()","text":"","tags":["Class"]},{"location":"Level.html#boolean-placeroom-levelgeneratorentry-room-roomconfigroom-roomconfig-int-seed","title":"boolean PlaceRoom ( LevelGeneratorEntry Room, RoomConfigRoom RoomConfig, int Seed )","text":"

Places a room into the game. Returns true if successful.

","tags":["Class"]},{"location":"Level.html#setforcespecialquest","title":"SetForceSpecialQuest ()","text":"","tags":["Class"]},{"location":"Level.html#void-setforcespecialquest-specialquest-quest","title":"void SetForceSpecialQuest ( SpecialQuest Quest )","text":"

Sets whether the level should attempt to place the Knife Piece puzzle door for this LevelStage.

Info

This is set to SpecialQuest.DEFAULT immediately before calling MC_PRE_LEVEL_INIT.

","tags":["Class"]},{"location":"Level.html#setname","title":"SetName ()","text":"","tags":["Class"]},{"location":"Level.html#void-setname-string-name","title":"void SetName ( string Name )","text":"","tags":["Class"]},{"location":"LevelGenerator.html","title":"Class \"LevelGenerator\"","text":"Info

This class gives access to the level generator, the tool that generates a floor.

This class cannot be instanciated. The only way to access it is through callback parameters.

  • MC_POST_LEVEL_LAYOUT_GENERATED
","tags":["Class"]},{"location":"LevelGenerator.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGenerator.html#getallrooms","title":"GetAllRooms ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getallrooms","title":"LevelGeneratorRoom[] GetAllRooms ( )","text":"

Returns a table of LevelGeneratorRoom representing all the rooms that have been generated so far.

","tags":["Class"]},{"location":"LevelGenerator.html#getdeadends","title":"GetDeadEnds ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getdeadends","title":"LevelGeneratorRoom[] GetDeadEnds ( )","text":"

Returns a table of LevelGeneratorRoom representing all the dead end rooms that have been generated so far.

","tags":["Class"]},{"location":"LevelGenerator.html#getnondeadends","title":"GetNonDeadEnds ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#levelgeneratorroom-getnondeadends","title":"LevelGeneratorRoom[] GetNonDeadEnds ( )","text":"

Returns a table of LevelGeneratorRoom representing all the non dead end rooms that have been generator so far.

","tags":["Class"]},{"location":"LevelGenerator.html#placeroom","title":"PlaceRoom ()","text":"","tags":["Class"]},{"location":"LevelGenerator.html#int-placeroom-int-column-int-row-roomshape-shape-levelgeneratorroom-origin","title":"int PlaceRoom ( int Column, int Row, RoomShape Shape, LevelGeneratorRoom Origin )","text":"

Place a LevelGeneratorRoom object onto the level-grid. The Origin parameter is used as the index of the connecting room. For instance, if you want to place a room on top of the starting room, then Origin can be the starting room of the floor.

The column and row values need to be between 0 and 12 (inclusive).

Returns the GenerationIndex of the placed room. If placement was not possible, returns nil.

Multiple origins

The Origin parameter is used to ensure consistency with the existing rooms. During the generation phase, the game always picks a room and starts placing rooms around it. This parameter reflects this behavior.

When placing a room, you may be wondering which of its neighbors must act as the origin. This has consequences on the placement of special rooms, as the game places special rooms in a specific order based on the distance between each dead end room and the start of the floor. The distance from the start of the floor of the new room is equal to the distance from the start of the floor of Origin plus one. In practice you are free to chose any neighboring room as a point of origin.

","tags":["Class"]},{"location":"LevelGeneratorEntry.html","title":"Class \"LevelGeneratorEntry\"","text":"Info

You can get this class by using the following functions:

  • Isaac.LevelGeneratorEntry()
Example Code
local newLevelGeneratorEntry = Isaac.LevelGeneratorEntry()\n
","tags":["Class"]},{"location":"LevelGeneratorEntry.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setalloweddoors","title":"SetAllowedDoors ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setalloweddoors-levelgeneratorentry-room-int-doors","title":"void SetAllowedDoors ( LevelGeneratorEntry Room, int Doors )","text":"

I believe Doors here is a bitmask (1 << DoorSlot)

","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setcolidx","title":"SetColIdx ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setcolidx-levelgeneratorentry-room-int-colidx","title":"void SetColIdx ( LevelGeneratorEntry Room, int ColIdx )","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#setlineidx","title":"SetLineIdx ()","text":"","tags":["Class"]},{"location":"LevelGeneratorEntry.html#void-setlineidx-levelgeneratorentry-room-int-lineidx","title":"void SetLineIdx ( LevelGeneratorEntry Room, int LineIdx )","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html","title":"Class \"LevelGeneratorRoom\"","text":"Info

This class is used during level generation. Its purpose is to represent a slot in the graph of rooms that is generated during the generation phase.

This class is immutable and cannot be instanciated manually: you cannot change the value of the fields of an instance and you cannot instance it by yourself.

Access to instances is always performed through methods of the LevelGenerator itself, or instances are given as parameters of the callbacks:

  • MC_PRE_LEVEL_PLACE_ROOM
","tags":["Class"]},{"location":"LevelGeneratorRoom.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#column","title":"Column ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-column","title":"int Column ( )","text":"

Return the column of the room slot on the level grid (index is 0 based).

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#doormask","title":"DoorMask ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-doormask","title":"int DoorMask ( )","text":"

Return a mask of the available doors of the room slot. In order to check if a door at a given slot is available, use the DoorSlot enumeration.

Example

This tests if the DoorSlot LEFT0 is available.

if room:DoorMask() & (1 << DoorSlot.LEFT0) then\n    print (\"Room has a door on slot LEFT0)\nend\n

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#generationindex","title":"GenerationIndex ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-generationindex","title":"int GenerationIndex ( )","text":"

Index of the room during generation: 0 if the room was the first to be generated, 1 if it was the second etc.

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#isdeadend","title":"IsDeadEnd ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#boolean-isdeadend","title":"boolean IsDeadEnd ( )","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#neighbors","title":"Neighbors ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-neighbors","title":"int[] Neighbors ( )","text":"

Returns a table of the generation indices of the neighboring rooms.

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#row","title":"Row ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-row","title":"int Row ( )","text":"

Return the row of the room slot on the level grid (index is 0 based).

","tags":["Class"]},{"location":"LevelGeneratorRoom.html#shape","title":"Shape ()","text":"","tags":["Class"]},{"location":"LevelGeneratorRoom.html#int-shape","title":"int Shape ( )","text":"

Return the shape of the room, as per the RoomShape enumeration.

","tags":["Class"]},{"location":"Minimap.html","title":"Global Class \"Minimap\"","text":"Info

You can get this class by using the Minimap global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local size = Minimap.GetDisplayedSize()\n
","tags":["Global","Class"]},{"location":"Minimap.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"Minimap.html#getdisplayedsize","title":"GetDisplayedSize ()","text":"","tags":["Global","Class"]},{"location":"Minimap.html#vector-getdisplayedsize","title":"Vector GetDisplayedSize ( )","text":"

Returns the current display size of the minimap. When not expanded this is always Vector(47,47).

","tags":["Global","Class"]},{"location":"MultiShotParams.html","title":"Class \"MultiShotParams\"","text":"Info

MultiShotParams contains information the game uses to properly calculate the position and velocity of every tear fired, among other things.

You can get this class by using the following functions:

  • EntityPlayer:GetMultiShotParams
Example Code
local params = Game():GetPlayer(0):GetMultiShotParams(WeaponType.WEAPON_TEARS)\n
","tags":["Class"]},{"location":"MultiShotParams.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"MultiShotParams.html#getmultieyeangle","title":"GetMultiEyeAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#float-getmultieyeangle","title":"float GetMultiEyeAngle ( )","text":"

When more than one eye is active, defines the angle the eyes are offset to eachother. Similar to cross eye effect.

Example: for The Wiz, this is 45.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumeyesactive","title":"GetNumEyesActive ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumeyesactive","title":"int GetNumEyesActive ( )","text":"

Returns the number of eyes simultaniously shooting. Examples: For The Wiz, its 2, for mutant Spider its 1.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumlanespereye","title":"GetNumLanesPerEye ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumlanespereye","title":"int GetNumLanesPerEye ( )","text":"

Returns the amount of lanes used to spread the shot tears onto. Lane positions are calculated by dividing the area, defined by the shooting direction +- the spreadAngle, by the number of lanes. This will create a pattern similar to a symetrical hand fan. Normally the number of lanes should be the same number as the amount of tears divided by the number of eyes.

A smaller number of lanes than the amount of tears will cause tears to overlap each other. A higher lane count than tears will make the fan pattern asymetrical.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumrandomdirtears","title":"GetNumRandomDirTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumrandomdirtears","title":"int GetNumRandomDirTears ( )","text":"

Returns the amount of tears additionally shot in random directions. Same effect as \"Eye Sore\" collectible.

","tags":["Class"]},{"location":"MultiShotParams.html#getnumtears","title":"GetNumTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#int-getnumtears","title":"int GetNumTears ( )","text":"

Returns the amount of tears the player can currently simultaneously fire.

","tags":["Class"]},{"location":"MultiShotParams.html#getspreadangle","title":"GetSpreadAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#float-getspreadangle-weapontype-weapontype","title":"float GetSpreadAngle ( WeaponType WeaponType )","text":"

Get the spread angle for the given WeaponType.

","tags":["Class"]},{"location":"MultiShotParams.html#iscrosseyed","title":"IsCrossEyed ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-iscrosseyed","title":"boolean IsCrossEyed ( )","text":"

Returns if a cross eye effect is active, aka. player shoots in two directions with 45\u00b0 offset to eachother.

","tags":["Class"]},{"location":"MultiShotParams.html#isshootingbackwards","title":"IsShootingBackwards ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-isshootingbackwards","title":"boolean IsShootingBackwards ( )","text":"

Returns if an additional shot backwards will be triggered. Similar effect to Mom's Eye.

","tags":["Class"]},{"location":"MultiShotParams.html#isshootingsideways","title":"IsShootingSideways ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#boolean-isshootingsideways","title":"boolean IsShootingSideways ( )","text":"

Returns if two additional shots sideways will be triggered. Similar effect to Loki's horns.

","tags":["Class"]},{"location":"MultiShotParams.html#setiscrosseyed","title":"SetIsCrossEyed ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setiscrosseyed-boolean-value","title":"void SetIsCrossEyed ( boolean Value )","text":"

Set if a cross eye effect is active, aka. player shoots in two directions with 45\u00b0 offset to eachother.

","tags":["Class"]},{"location":"MultiShotParams.html#setisshootingbackwards","title":"SetIsShootingBackwards ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setisshootingbackwards-boolean-value","title":"void SetIsShootingBackwards ( boolean Value )","text":"

Set if an additional shot backwards will be triggered. Similar effect to Mom's Eye.

","tags":["Class"]},{"location":"MultiShotParams.html#setisshootingsideways","title":"SetIsShootingSideways ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setisshootingsideways-boolean-value","title":"void SetIsShootingSideways ( boolean Value )","text":"

Set if two additional shots sideways will be triggered. Similar effect to Loki's horns.

","tags":["Class"]},{"location":"MultiShotParams.html#setmultieyeangle","title":"SetMultiEyeAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setmultieyeangle-float-angle","title":"void SetMultiEyeAngle ( float Angle )","text":"

When more than one eye is active, defines the angle the eyes are offset to eachother. Similar to cross eye effect.

Example: for The Wiz, this is 45.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumeyesactive","title":"SetNumEyesActive ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumeyesactive-int-value","title":"void SetNumEyesActive ( int Value )","text":"

Set the number of eyes simultaniously shooting. Examples: For The Wiz, its 2, for mutant Spider its 1.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumlanespereye","title":"SetNumLanesPerEye ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumlanespereye-int-value","title":"void SetNumLanesPerEye ( int Value )","text":"","tags":["Class"]},{"location":"MultiShotParams.html#setnumrandomdirtears","title":"SetNumRandomDirTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumrandomdirtears-int-value","title":"void SetNumRandomDirTears ( int Value )","text":"

Set the amount of tears additionally shot in random directions. Same effect as \"Eye Sore\" collectible.

","tags":["Class"]},{"location":"MultiShotParams.html#setnumtears","title":"SetNumTears ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setnumtears-int-value","title":"void SetNumTears ( int Value )","text":"

Set the amount of tears the player can currently simultaneously fire.

","tags":["Class"]},{"location":"MultiShotParams.html#setspreadangle","title":"SetSpreadAngle ()","text":"","tags":["Class"]},{"location":"MultiShotParams.html#void-setspreadangle-weapontype-weapontype-float-angle","title":"void SetSpreadAngle ( WeaponType WeaponType, float Angle )","text":"

Set the spread angle for the given WeaponType.

","tags":["Class"]},{"location":"MusicManager.html","title":"Class \"MusicManager\"","text":"","tags":["Class"]},{"location":"MusicManager.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"MusicManager.html#crossfade","title":"Crossfade ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-crossfade-music-musicid-float-faderate-008","title":"void Crossfade ( Music MusicId, float FadeRate = 0.08 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#fadein","title":"Fadein ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-fadein-music-musicid-float-volume-1-float-volume-008","title":"void Fadein ( Music MusicId, float Volume = 1, float Volume = 0.08 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#play","title":"Play ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-play-music-musicid-int-volume-1","title":"void Play ( Music MusicId, int Volume = -1 )","text":"

Now validates the Music ID to prevent crashes.

","tags":["Class"]},{"location":"MusicManager.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"MusicManager.html#playjingle","title":"PlayJingle ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-playjingle-music-musicid","title":"void PlayJingle ( Music MusicId )","text":"","tags":["Class"]},{"location":"MusicManager.html#stopjingle","title":"StopJingle ()","text":"","tags":["Class"]},{"location":"MusicManager.html#void-stopjingle","title":"void StopJingle ( )","text":"","tags":["Class"]},{"location":"NightmareScene.html","title":"Global Class \"NightmareScene\"","text":"Info

You can get this class by using the NightmareScene global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = NightmareScene.GetBubbleSprite()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks.

","tags":["Global","Class"]},{"location":"NightmareScene.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getbackgroundsprite","title":"GetBackgroundSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getbackgroundsprite","title":"Sprite GetBackgroundSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getbubblesprite","title":"GetBubbleSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getbubblesprite","title":"Sprite GetBubbleSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getprogressbarmap","title":"GetProgressBarMap ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#int-getprogressbarmap","title":"int[] GetProgressBarMap ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#getprogressbarsprite","title":"GetProgressBarSprite ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#sprite-getprogressbarsprite","title":"Sprite GetProgressBarSprite ( )","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#isdogmanightmare","title":"IsDogmaNightmare ()","text":"","tags":["Global","Class"]},{"location":"NightmareScene.html#boolean-isdogmanightmare","title":"boolean IsDogmaNightmare ( )","text":"","tags":["Global","Class"]},{"location":"NullFrame.html","title":"Class \"NullFrame\"","text":"","tags":["Class"]},{"location":"NullFrame.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"NullFrame.html#getcolor","title":"GetColor ()","text":"","tags":["Class"]},{"location":"NullFrame.html#color-getcolor","title":"Color GetColor ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getpos","title":"GetPos ()","text":"","tags":["Class"]},{"location":"NullFrame.html#vector-getpos","title":"Vector GetPos ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getrotation","title":"GetRotation ()","text":"","tags":["Class"]},{"location":"NullFrame.html#float-getrotation","title":"float GetRotation ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#getscale","title":"GetScale ()","text":"","tags":["Class"]},{"location":"NullFrame.html#vector-getscale","title":"Vector GetScale ( )","text":"","tags":["Class"]},{"location":"NullFrame.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"NullFrame.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"Options.html","title":"Class \"Options\"","text":"","tags":["Class"]},{"location":"Options.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"Options.html#sfxvolume","title":"SFXVolume","text":"","tags":["Class"]},{"location":"Options.html#float-sfxvolume","title":"float SFXVolume","text":"

Can now be properly set. Will clamp new values to the first decimal so that changing volume with the options menu doesn't cause invalid values.

","tags":["Class"]},{"location":"Options.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"Options.html#bettervoidgeneration","title":"BetterVoidGeneration","text":"","tags":["Class"]},{"location":"Options.html#boolean-bettervoidgeneration","title":"boolean BetterVoidGeneration","text":"

If set, The Void will draw from all unlocked floors, including alt path ones.

","tags":["Class"]},{"location":"Options.html#hushpanicstatefix","title":"HushPanicStateFix","text":"","tags":["Class"]},{"location":"Options.html#boolean-hushpanicstatefix","title":"boolean HushPanicStateFix","text":"

Fixes the vanilla bug that causes Hush to have no attack cooldown below 50% health.

","tags":["Class"]},{"location":"Options.html#keymasterdealchance","title":"KeyMasterDealChance","text":"","tags":["Class"]},{"location":"Options.html#boolean-keymasterdealchance","title":"boolean KeyMasterDealChance","text":"

If set, Key Master bums will also raise the chance for a deal when killed.

","tags":["Class"]},{"location":"Options.html#preventmodupdates","title":"PreventModUpdates","text":"","tags":["Class"]},{"location":"Options.html#boolean-preventmodupdates","title":"boolean PreventModUpdates","text":"","tags":["Class"]},{"location":"Options.html#quickroomclear","title":"QuickRoomClear","text":"","tags":["Class"]},{"location":"Options.html#boolean-quickroomclear","title":"boolean QuickRoomClear","text":"","tags":["Class"]},{"location":"PersistentGameData.html","title":"Class \"PersistentGameData\"","text":"Info

You can get this class by using the following functions:

  • Isaac.GetPersistentGameData()
Example Code
local persistentGameData = Isaac.GetPersistentGameData()\n
Warning

This class' functions should not be called until the game fully initializes! Make sure not to try using them outside of callbacks

","tags":["Class"]},{"location":"PersistentGameData.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiarydeathcount","title":"GetBestiaryDeathCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiarydeathcount-int-type-int-variant","title":"void GetBestiaryDeathCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiaryencountercount","title":"GetBestiaryEncounterCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiaryencountercount-int-type-int-variant","title":"void GetBestiaryEncounterCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#getbestiarykillcount","title":"GetBestiaryKillCount ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-getbestiarykillcount-int-type-int-variant","title":"void GetBestiaryKillCount ( int Type, int Variant )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#geteventcounter","title":"GetEventCounter ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-geteventcounter-eventcounter-eventcounter","title":"void GetEventCounter ( EventCounter EventCounter )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#increaseeventcounter","title":"IncreaseEventCounter ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#void-increaseeventcounter-eventcounter-eventcounter-int-count","title":"void IncreaseEventCounter ( EventCounter EventCounter, int Count )","text":"","tags":["Class"]},{"location":"PersistentGameData.html#ischallengecompleted","title":"IsChallengeCompleted ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-ischallengecompleted-challenge-challengeid","title":"boolean IsChallengeCompleted ( Challenge ChallengeId )","text":"

Checks if a challenge is completed.

","tags":["Class"]},{"location":"PersistentGameData.html#isitemincollection","title":"IsItemInCollection ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-isitemincollection-collectibletype-collectibleid","title":"boolean IsItemInCollection ( CollectibleType CollectibleId )","text":"

Checks if an item is in the collection. Aka. its at least picked up once in any run.

","tags":["Class"]},{"location":"PersistentGameData.html#tryunlock","title":"TryUnlock ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-tryunlock-achievement-unlock","title":"boolean TryUnlock ( Achievement Unlock )","text":"

Returns true if successful, false if unlocking failed or the secret was already unlocked.

","tags":["Class"]},{"location":"PersistentGameData.html#unlocked","title":"Unlocked ()","text":"","tags":["Class"]},{"location":"PersistentGameData.html#boolean-unlocked-achievement-unlock","title":"boolean Unlocked ( Achievement Unlock )","text":"

Checks if achievement is unlocked.

","tags":["Class"]},{"location":"PlayerHUD.html","title":"Class \"PlayerHUD\"","text":"Info

You can get this class by using the following functions:

  • HUD.GetPlayerHUD()
Example Code
local playerHud = HUD.GetPlayerHUD(0)\n
","tags":["Class"]},{"location":"PlayerHUD.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PlayerHUD.html#getheartbyindex","title":"GetHeartByIndex ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#playerhudheart-getheartbyindex-int-index","title":"PlayerHUDHeart GetHeartByIndex ( int Index )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#gethearts","title":"GetHearts ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#playerhudheart-gethearts","title":"PlayerHUDHeart[] GetHearts ( )","text":"

Returns table of PlayerHUDHeart objects.

","tags":["Class"]},{"location":"PlayerHUD.html#gethud","title":"GetHUD ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#hud-gethud","title":"HUD GetHUD ( )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#getplayer","title":"GetPlayer ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#entityplayer-getplayer","title":"EntityPlayer GetPlayer ( )","text":"","tags":["Class"]},{"location":"PlayerHUD.html#renderactiveitem","title":"RenderActiveItem ()","text":"","tags":["Class"]},{"location":"PlayerHUD.html#void-renderactiveitem-activeslot-slot-vector-position-float-alpha-10-float-scale-10","title":"void RenderActiveItem ( ActiveSlot Slot, Vector Position, float Alpha = 1.0, float Scale = 1.0 )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html","title":"Class \"PlayerHUDHeart\"","text":"Info

You can get this class by using the following functions:

  • PlayerHUD.GetHeartByIndex()
Example Code
local playerHud = HUD.GetPlayerHUD(0):GetHeartByIndex(0)\n
","tags":["Class"]},{"location":"PlayerHUDHeart.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getflashtype","title":"GetFlashType ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#int-getflashtype","title":"int GetFlashType ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getheartanim","title":"GetHeartAnim ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#string-getheartanim","title":"string GetHeartAnim ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#getheartoverlayanim","title":"GetHeartOverlayAnim ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#string-getheartoverlayanim","title":"string GetHeartOverlayAnim ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#isgoldenheartoverlayvisible","title":"IsGoldenHeartOverlayVisible ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#boolean-isgoldenheartoverlayvisible","title":"boolean IsGoldenHeartOverlayVisible ( )","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#isvisible","title":"IsVisible ()","text":"","tags":["Class"]},{"location":"PlayerHUDHeart.html#boolean-isvisible","title":"boolean IsVisible ( )","text":"","tags":["Class"]},{"location":"PlayerManager.html","title":"Global Class \"PlayerManager\"","text":"Info

You can get this class by using the PlayerManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local hasTrinket = PlayerManager.AnyoneHasTrinket(TrinketType.TRINKET_SWALLOWED_PENNY)\n
","tags":["Global","Class"]},{"location":"PlayerManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#anyonehascollectible","title":"AnyoneHasCollectible ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyonehascollectible-collectibletype-collectible","title":"boolean AnyoneHasCollectible ( CollectibleType Collectible )","text":"

Returns true when any player has the item and false when no one does.

","tags":["Global","Class"]},{"location":"PlayerManager.html#anyonehastrinket","title":"AnyoneHasTrinket ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyonehastrinket-trinkettype-trinket","title":"boolean AnyoneHasTrinket ( TrinketType Trinket )","text":"

Returns true when any player has the trinket and false when no one does.

","tags":["Global","Class"]},{"location":"PlayerManager.html#anyoneisplayertype","title":"AnyoneIsPlayerType ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyoneisplayertype-playertype-playertype","title":"boolean AnyoneIsPlayerType ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#anyplayertypehasbirthright","title":"AnyPlayerTypeHasBirthright ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-anyplayertypehasbirthright-playertype-playertype","title":"boolean AnyPlayerTypeHasBirthright ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firstbirthrightowner","title":"FirstBirthrightOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstbirthrightowner-playertype-playertype","title":"EntityPlayer FirstBirthrightOwner ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firstcollectibleowner","title":"FirstCollectibleOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstcollectibleowner-collectibletype-collectible-boolean-lazsharedglobaltag-true","title":"EntityPlayer FirstCollectibleOwner ( CollectibleType Collectible, boolean LazSharedGlobalTag = true )","text":"

Returns nil if the specified collectible has never been picked up.

","tags":["Global","Class"]},{"location":"PlayerManager.html#firstplayerbytype","title":"FirstPlayerByType ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firstplayerbytype-playertype-playertype","title":"EntityPlayer FirstPlayerByType ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#firsttrinketowner","title":"FirstTrinketOwner ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-firsttrinketowner-trinkettype-trinket-rng-rng-nil-boolean-lazsharedglobaltag-true","title":"EntityPlayer FirstTrinketOwner ( TrinketType Trinket, RNG RNG = nil, boolean LazSharedGlobalTag = true )","text":"

Returns nil if the specified trinket has never been picked up.

","tags":["Global","Class"]},{"location":"PlayerManager.html#getesaujrstate","title":"GetEsauJrState ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-getesaujrstate-int-index-0","title":"EntityPlayer GetEsauJrState ( int Index = 0 )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#getnumcollectibles","title":"GetNumCollectibles ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#int-getnumcollectibles-collectibletype-collectible","title":"int GetNumCollectibles ( CollectibleType Collectible )","text":"

Returns the number of collectibles held by all players.

","tags":["Global","Class"]},{"location":"PlayerManager.html#getplayers","title":"GetPlayers ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-getplayers","title":"EntityPlayer[] GetPlayers ( )","text":"

Returns a table containing all players.

","tags":["Global","Class"]},{"location":"PlayerManager.html#gettotaltrinketmultiplier","title":"GetTotalTrinketMultiplier ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#int-gettotaltrinketmultiplier-trinkettype-trinket","title":"int GetTotalTrinketMultiplier ( TrinketType Trinket )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#iscoopplay","title":"IsCoopPlay ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#boolean-iscoopplay","title":"boolean IsCoopPlay ( )","text":"

Returns true if the game is in co-op mode.

","tags":["Global","Class"]},{"location":"PlayerManager.html#spawncoplayer2","title":"SpawnCoPlayer2 ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#entityplayer-spawncoplayer2-playertype-playertype","title":"EntityPlayer SpawnCoPlayer2 ( PlayerType PlayerType )","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#triggerroomclear","title":"TriggerRoomClear ()","text":"","tags":["Global","Class"]},{"location":"PlayerManager.html#void-triggerroomclear","title":"void TriggerRoomClear ( )","text":"","tags":["Global","Class"]},{"location":"PocketItem.html","title":"Class \"PocketItem\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetPocketItem()
Example Code
local pocket = Isaac.GetPlayer(0):GetPocketItem(ActiveSlot.SLOT_PRIMARY)\n
","tags":["Class"]},{"location":"PocketItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"PocketItem.html#getslot","title":"GetSlot ()","text":"","tags":["Class"]},{"location":"PocketItem.html#int-getslot","title":"int GetSlot ( )","text":"","tags":["Class"]},{"location":"PocketItem.html#gettype","title":"GetType ()","text":"","tags":["Class"]},{"location":"PocketItem.html#int-gettype","title":"int GetType ( )","text":"","tags":["Class"]},{"location":"ProceduralEffect.html","title":"Class \"ProceduralEffect\"","text":"Info

You can get this class by using the following functions:

  • ProceduralItem.GetEffect()
Example Code
local pItemEffect = ProceduralItemManager.GetProceduralItem(0):GetEffect(0)\n
","tags":["Class"]},{"location":"ProceduralEffect.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#getactionproperty","title":"GetActionProperty ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#table-getactionproperty","title":"table GetActionProperty ( )","text":"

Returns a table that describes the action argument.

When GetActionType returns USE_ACTIVE_ITEM, the returned table has the following fields.

Field Type Comment id int

When GetActionType returns ADD_TEMPRORY_EFFECT, the returned table has the following fields.

Field Type Comment id int

When GetActionType returns SPAWN_ENTITY, the returned table has the following fields.

Field Type Comment type int variant int

When GetActionType returns CONVERT_ENTITY, the returned table has the following fields.

Field Type Comment fromType int fromVariant int toType int target type toVariant int target variant

When GetActionType returns AREA_DAMAGE, the returned table has the following fields.

Field Type Comment radius float damage float

When GetActionType returns FART, the returned table has the following fields.

Field Type Comment scale float radius float","tags":["Class"]},{"location":"ProceduralEffect.html#getactiontype","title":"GetActionType ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#proceduraleffectactiontype-getactiontype","title":"ProceduralEffectActionType GetActionType ( )","text":"

Returns what to do after the effect is triggered.

","tags":["Class"]},{"location":"ProceduralEffect.html#getconditionproperty","title":"GetConditionProperty ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#table-getconditionproperty","title":"table GetConditionProperty ( )","text":"

Returns a table that describes the condition argument.

When GetConditionType returns ENTITY_SPAWN, the returned table has the following fields.

Field Type type int variant int","tags":["Class"]},{"location":"ProceduralEffect.html#getconditiontype","title":"GetConditionType ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#proceduraleffectconditiontype-getconditiontype","title":"ProceduralEffectConditionType GetConditionType ( )","text":"

Returns the timing when the effect was triggered.

","tags":["Class"]},{"location":"ProceduralEffect.html#gettriggerchance","title":"GetTriggerChance ()","text":"","tags":["Class"]},{"location":"ProceduralEffect.html#float-gettriggerchance","title":"float GetTriggerChance ( )","text":"

Values range from 0 to 1.

","tags":["Class"]},{"location":"ProceduralItem.html","title":"Class \"ProceduralItem\"","text":"Info

You can get this class by using the following functions:

  • ProceduralItemManager.GetProceduralItem()
Example Code
local pItem = ProceduralItemManager.GetProceduralItem(0)\n
","tags":["Class"]},{"location":"ProceduralItem.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getdamage","title":"GetDamage ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getdamage","title":"float GetDamage ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#geteffect","title":"GetEffect ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#proceduraleffect-geteffect-int-index","title":"ProceduralEffect GetEffect ( int Index )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#geteffectcount","title":"GetEffectCount ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#int-geteffectcount","title":"int GetEffectCount ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getfiredelay","title":"GetFireDelay ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getfiredelay","title":"float GetFireDelay ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getid","title":"GetID ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#int-getid","title":"int GetID ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getitem","title":"GetItem ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#itemconfigitem-getitem","title":"ItemConfigItem GetItem ( )","text":"

Get the item config of the current glitched item.

","tags":["Class"]},{"location":"ProceduralItem.html#getluck","title":"GetLuck ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getluck","title":"float GetLuck ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getrange","title":"GetRange ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getrange","title":"float GetRange ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getshotspeed","title":"GetShotSpeed ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getshotspeed","title":"float GetShotSpeed ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#getspeed","title":"GetSpeed ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#float-getspeed","title":"float GetSpeed ( )","text":"","tags":["Class"]},{"location":"ProceduralItem.html#gettargetitem","title":"GetTargetItem ()","text":"","tags":["Class"]},{"location":"ProceduralItem.html#itemconfigitem-gettargetitem","title":"ItemConfigItem GetTargetItem ( )","text":"

Returns the item config that was randomly selected by the current glitched item, or nil if it doesn't exist.

","tags":["Class"]},{"location":"ProceduralItemManager.html","title":"Global Class \"ProceduralItemManager\"","text":"Info

You can get this class by using the ProceduralItemManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local pItem = ProceduralItemManager.GetProceduralItem(0)\n
","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#createproceduralitem","title":"CreateProceduralItem ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#int-createproceduralitem-int-seed-int-unknown","title":"int CreateProceduralItem ( int Seed, int Unknown )","text":"

Creates a glitch item based on a given seed. Returns the negative ID of the created item.

","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#getproceduralitem","title":"GetProceduralItem ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#proceduralitem-getproceduralitem-int-index","title":"ProceduralItem GetProceduralItem ( int Index )","text":"

Get the glitch item at the given index.

","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#getproceduralitemcount","title":"GetProceduralItemCount ()","text":"","tags":["Global","Class"]},{"location":"ProceduralItemManager.html#int-getproceduralitemcount","title":"int GetProceduralItemCount ( )","text":"","tags":["Global","Class"]},{"location":"ProjectileParams.html","title":"Class \"ProjectileParams\"","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#variables","title":"Variables","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#damage","title":"Damage","text":"","tags":["Global","Class"],"boost":0.25},{"location":"ProjectileParams.html#float-damage","title":"float Damage","text":"

Number of half hearts of damage dealt by the projectile. Cannot be set to a negative value.

Info

This value ignores the full heart damage modifier applied to projectiles with a Scale above 1.15, but non-boss champions will still double it (with a caveat, read warning below!).

Warning

Enemies with a ChampionColorIdx above -1 will cap the damage at 2.0!

","tags":["Global","Class"],"boost":0.25},{"location":"RNG.html","title":"Class \"RNG\"","text":"","tags":["Class"]},{"location":"RNG.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"RNG.html#randomint","title":"RandomInt ()","text":"","tags":["Class"]},{"location":"RNG.html#int-randomint-int-min-int-max","title":"int RandomInt ( int Min, int Max )","text":"

Can now emulate math.random by accepting a second argument to generate a number between the first argument and it, inclusive. Negative values are usable in this mode and will properly generate a number between min and max regardless of sign.

","tags":["Class"]},{"location":"RNG.html#setseed","title":"SetSeed ()","text":"","tags":["Class"]},{"location":"RNG.html#void-setseed-int-seed-int-shiftidx-35","title":"void SetSeed ( int Seed, int ShiftIdx = 35 )","text":"

An error is now thrown if Seed is below 0.

An error is now thrown if ShiftIdx is not between 0 and 80, inclusive.

ShiftIdx is now optional, with the default value set to 35.

","tags":["Class"]},{"location":"RNG.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RNG.html#phantomfloat","title":"PhantomFloat ()","text":"","tags":["Class"]},{"location":"RNG.html#float-phantomfloat","title":"float PhantomFloat ( )","text":"

Generates a random float between 0 (inclusive) and 1 (exclusive).

This does not advance the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#phantomint","title":"PhantomInt ()","text":"","tags":["Class"]},{"location":"RNG.html#int-phantomint-int-max","title":"int PhantomInt ( int Max )","text":"

Behaves identically to RandomInt without advancing the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#phantomvector","title":"PhantomVector ()","text":"","tags":["Class"]},{"location":"RNG.html#vector-phantomvector","title":"Vector PhantomVector ( )","text":"

Returns a random vector with length 1. Multiply this vector by a number for larger random vectors.

This does not advance the internal state of the RNG object.

","tags":["Class"]},{"location":"RNG.html#randomvector","title":"RandomVector ()","text":"","tags":["Class"]},{"location":"RNG.html#vector-randomvector","title":"Vector RandomVector ( )","text":"

Returns a random vector with length 1. Multiply this vector by a number for larger random vectors.

","tags":["Class"]},{"location":"RailManager.html","title":"Class \"RailManager\"","text":"Info

You can get this class by using the following functions:

  • Room:GetRailManager()
Example Code
local railManager = Game():GetRoom():GetRailManager()\n
","tags":["Class"]},{"location":"RailManager.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RailManager.html#getrailssprite","title":"GetRailsSprite ()","text":"","tags":["Class"]},{"location":"RailManager.html#sprite-getrailssprite","title":"Sprite GetRailsSprite ( )","text":"","tags":["Class"]},{"location":"Room.html","title":"Class \"Room\"","text":"","tags":["Class"]},{"location":"Room.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Room.html#spawngridentity","title":"SpawnGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-spawngridentity-int-gridindex-gridentitytype-type-int-variant-0-int-seed-nil-int-vardata-0","title":"boolean SpawnGridEntity ( int GridIndex, GridEntityType Type, int Variant = 0, int Seed = nil, int VarData = 0 )","text":"","tags":["Class"]},{"location":"Room.html#boolean-spawngridentity-int-gridindex-gridentitydesc-descriptor","title":"boolean SpawnGridEntity ( int GridIndex, GridEntityDesc Descriptor)","text":"

No longer crashes if an invalid GridIndex is used. All arguments beyond Type are optional. An overload has been added to allow spawning a new grid entity using an existing GridEntityDesc.

","tags":["Class"]},{"location":"Room.html#tryspawnspecialquestdoor","title":"TrySpawnSpecialQuestDoor ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-tryspawnspecialquestdoor-boolean-ignorestagetype-false","title":"boolean TrySpawnSpecialQuestDoor ( boolean IgnoreStageType = false )","text":"

An IgnoreStageType parameter has been added to allow spawning the Mirror & Mineshaft door outside of STAGETYPE_REPENTANCE and STAGETYPE_REPENTANCE_B stages. Note that the KNIFE_PUZZLE dimension must be set up properly for these doors not to crash on entry!

","tags":["Class"]},{"location":"Room.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Room.html#canpickupgridentity","title":"CanPickupGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-canpickupgridentity-int-gridindex","title":"boolean CanPickupGridEntity ( int GridIndex )","text":"

Returns true if the gridentity at the given position can be picked up.

","tags":["Class"]},{"location":"Room.html#canspawnobstacleatposition","title":"CanSpawnObstacleAtPosition ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-canspawnobstacleatposition-int-gridindex-boolean-force","title":"boolean CanSpawnObstacleAtPosition ( int GridIndex, boolean Force )","text":"","tags":["Class"]},{"location":"Room.html#getbackdrop","title":"GetBackdrop ()","text":"","tags":["Class"]},{"location":"Room.html#backdrop-getbackdrop","title":"Backdrop GetBackdrop ( )","text":"

Returns a Backdrop object.

","tags":["Class"]},{"location":"Room.html#getcamera","title":"GetCamera ()","text":"","tags":["Class"]},{"location":"Room.html#camera-getcamera","title":"Camera GetCamera ( )","text":"

Returns a Camera object.

","tags":["Class"]},{"location":"Room.html#getchampionbosschance","title":"GetChampionBossChance ()","text":"","tags":["Class"]},{"location":"Room.html#float-getchampionbosschance","title":"float GetChampionBossChance ( )","text":"

Return the probability that boss spawns in this room will be champions.

","tags":["Class"]},{"location":"Room.html#geteffects","title":"GetEffects ()","text":"","tags":["Class"]},{"location":"Room.html#temporaryeffects-geteffects","title":"TemporaryEffects GetEffects ( )","text":"","tags":["Class"]},{"location":"Room.html#getfloorcolor","title":"GetFloorColor ()","text":"","tags":["Class"]},{"location":"Room.html#color-getfloorcolor","title":"Color GetFloorColor ( )","text":"","tags":["Class"]},{"location":"Room.html#getfxparams","title":"GetFXParams ()","text":"","tags":["Class"]},{"location":"Room.html#fxparams-getfxparams","title":"FXParams GetFXParams ( )","text":"","tags":["Class"]},{"location":"Room.html#getgreedwavetimer","title":"GetGreedWaveTimer ()","text":"","tags":["Class"]},{"location":"Room.html#int-getgreedwavetimer","title":"int GetGreedWaveTimer ( )","text":"","tags":["Class"]},{"location":"Room.html#getgridindexbytile","title":"GetGridIndexByTile ()","text":"","tags":["Class"]},{"location":"Room.html#int-getgridindexbytile-int-gridrow-int-gridcolumn","title":"int GetGridIndexByTile ( int GridRow, int GridColumn )","text":"","tags":["Class"]},{"location":"Room.html#getrail","title":"GetRail ()","text":"","tags":["Class"]},{"location":"Room.html#stbrailvariant-getrail-int-gridindex","title":"StbRailVariant GetRail ( int GridIndex )","text":"","tags":["Class"]},{"location":"Room.html#getrailmanager","title":"GetRailManager ()","text":"","tags":["Class"]},{"location":"Room.html#railmanager-getrailmanager","title":"RailManager GetRailManager ( )","text":"","tags":["Class"]},{"location":"Room.html#getroomcleardelay","title":"GetRoomClearDelay ()","text":"","tags":["Class"]},{"location":"Room.html#int-getroomcleardelay","title":"int GetRoomClearDelay ( )","text":"","tags":["Class"]},{"location":"Room.html#getshopitemprice","title":"GetShopItemPrice ()","text":"","tags":["Class"]},{"location":"Room.html#int-getshopitemprice-int-entityvariant-int-entitysubtype-int-shopitemid","title":"int GetShopItemPrice ( int EntityVariant, int EntitySubType, int ShopItemID )","text":"

Returns the price of the item.

","tags":["Class"]},{"location":"Room.html#getwateramount","title":"GetWaterAmount ()","text":"","tags":["Class"]},{"location":"Room.html#float-getwateramount","title":"float GetWaterAmount ( )","text":"

Returns the \"amount\" of water currently in the room. Generally this will be 0 for no water and 1 for water, but values in between 0 and 1 (and technically above 1 in modded scenarios) are possible.

","tags":["Class"]},{"location":"Room.html#getwatercolor","title":"GetWaterColor ()","text":"","tags":["Class"]},{"location":"Room.html#kcolor-getwatercolor","title":"KColor GetWaterColor ( )","text":"","tags":["Class"]},{"location":"Room.html#getwatercolormultiplier","title":"GetWaterColorMultiplier ()","text":"","tags":["Class"]},{"location":"Room.html#kcolor-getwatercolormultiplier","title":"KColor GetWaterColorMultiplier ( )","text":"","tags":["Class"]},{"location":"Room.html#ischampionbossseed","title":"IsChampionBossSeed ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-ischampionbossseed","title":"boolean IsChampionBossSeed ( )","text":"

Return whether boss spawns in this room will be champions.

","tags":["Class"]},{"location":"Room.html#ispersistentroomentity","title":"IsPersistentRoomEntity ()","text":"","tags":["Class"]},{"location":"Room.html#boolean-ispersistentroomentity-entitytype-type-int-variant-0","title":"boolean IsPersistentRoomEntity ( EntityType Type, int Variant = 0 )","text":"","tags":["Class"]},{"location":"Room.html#pickupgridentity","title":"PickupGridEntity ()","text":"","tags":["Class"]},{"location":"Room.html#entityeffect-pickupgridentity-int-gridindex","title":"EntityEffect PickupGridEntity ( int GridIndex )","text":"","tags":["Class"]},{"location":"Room.html#removegridentityimmediate","title":"RemoveGridEntityImmediate ()","text":"","tags":["Class"]},{"location":"Room.html#void-removegridentityimmediate-int-gridindex-int-pathtrail-boolean-keepdecoration","title":"void RemoveGridEntityImmediate ( int GridIndex, int PathTrail, boolean KeepDecoration )","text":"

Immediately removes the GridEntity at the given index. This means grids can be properly removed and immediately replaced, without the need to call Room:Update.

","tags":["Class"]},{"location":"Room.html#setbackdroptype","title":"SetBackdropType ()","text":"","tags":["Class"]},{"location":"Room.html#void-setbackdroptype-backdroptype-int-unknown","title":"void SetBackdropType ( BackdropType, int Unknown )","text":"

This function will not work if the Unknown integer is passed as 0.

The backdrop variant chosen is seeded based on the room, and does not persist when leaving and re-entering. Calling this function again on re-entry will result in the same backdrop variant as before.

","tags":["Class"]},{"location":"Room.html#setgreedwavetimer","title":"SetGreedWaveTimer ()","text":"","tags":["Class"]},{"location":"Room.html#void-setgreedwavetimer-int-time","title":"void SetGreedWaveTimer ( int Time )","text":"","tags":["Class"]},{"location":"Room.html#setpausetimer","title":"SetPauseTimer ()","text":"","tags":["Class"]},{"location":"Room.html#void-setpausetimer-int-duration","title":"void SetPauseTimer ( int Duration )","text":"","tags":["Class"]},{"location":"Room.html#setrail","title":"SetRail ()","text":"","tags":["Class"]},{"location":"Room.html#void-setrail-int-gridindex-stbrailvariant-railvariant","title":"void SetRail ( int GridIndex, StbRailVariant RailVariant )","text":"","tags":["Class"]},{"location":"Room.html#setroomcleardelay","title":"SetRoomClearDelay ()","text":"","tags":["Class"]},{"location":"Room.html#void-setroomcleardelay-int-delay","title":"void SetRoomClearDelay ( int Delay )","text":"","tags":["Class"]},{"location":"Room.html#setwateramount","title":"SetWaterAmount ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwateramount-float-amount","title":"void SetWaterAmount ( float Amount )","text":"

Sets the amount of water that should be in the current room. Vanilla typically uses 0 for no water and 1 for water. You can technically go higher than this for some interesting results.

","tags":["Class"]},{"location":"Room.html#setwatercolor","title":"SetWaterColor ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercolor-kcolor-watercolor","title":"void SetWaterColor ( KColor WaterColor )","text":"","tags":["Class"]},{"location":"Room.html#setwatercolormultiplier","title":"SetWaterColorMultiplier ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercolormultiplier-kcolor-watercolor","title":"void SetWaterColorMultiplier ( KColor WaterColor )","text":"","tags":["Class"]},{"location":"Room.html#setwatercurrent","title":"SetWaterCurrent ()","text":"","tags":["Class"]},{"location":"Room.html#void-setwatercurrent-vector-watercurrent","title":"void SetWaterCurrent ( Vector WaterCurrent )","text":"

Sets the strength of the water current in the room. Current sounds and particles are automatically handled.

The game typically uses 1 or -1 for its values depending on current strength and direction. You can technically go higher than this for some interesting results. Arbitrary directions are fully supported as well.

Vector(0, 0) will remove the current.

","tags":["Class"]},{"location":"Room.html#trygetshopdiscount","title":"TryGetShopDiscount ()","text":"","tags":["Class"]},{"location":"Room.html#int-trygetshopdiscount-int-shopitemidx-int-price","title":"int TryGetShopDiscount ( int ShopItemIdx, int Price )","text":"","tags":["Class"]},{"location":"Room.html#updatecolormodifier","title":"UpdateColorModifier ()","text":"","tags":["Class"]},{"location":"Room.html#void-updatecolormodifier-boolean-process-true-boolean-lerp-true-float-rate-0015","title":"void UpdateColorModifier ( boolean Process = true, boolean Lerp = true, float Rate = 0.015 )","text":"

Updates the room's color correction with the copy of ColorModifier stored in FXParams. Process runs the color correction through some additional modifications for lava and the abandoned mineshaft sequence.

","tags":["Class"]},{"location":"RoomConfigHolder.html","title":"Class \"RoomConfigHolder\"","text":"Info

You can get this class by using the RoomConfigHolder global table.

Example Code
local roomconf = RoomConfigHolder.GetRoomByStageTypeAndVariant (StbType.BASEMENT,RoomType.ROOM_DEFAULT,1,0)\n
","tags":["Class"]},{"location":"RoomConfigHolder.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#getrandomroom","title":"GetRandomRoom ()","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#roomconfigroom-getrandomroom-int-seed-boolean-reduceweight-stbtype-stage-roomtype-type-roomshape-shape-roomshapenum_roomshapes-int-minvariant-0-int-maxvariant-1-int-mindifficulty-0-int-maxdifficulty-10-int-requireddoors-0-int-subtype-1-int-mode-1","title":"RoomConfigRoom GetRandomRoom ( int Seed, boolean ReduceWeight, StbType Stage, RoomType Type, RoomShape Shape = RoomShape.NUM_ROOMSHAPES, int MinVariant = 0, int MaxVariant = -1, int MinDifficulty = 0, int MaxDifficulty = 10, int RequiredDoors = 0, int SubType = -1, int Mode = -1 )","text":"

Returns a RoomConfigRoom corresponding to the given params.

","tags":["Class"]},{"location":"RoomConfigHolder.html#getroombystagetypeandvariant","title":"GetRoomByStageTypeAndVariant ()","text":"","tags":["Class"]},{"location":"RoomConfigHolder.html#roomconfigroom-getroombystagetypeandvariant-stbtype-stage-roomtype-type-int-variant-int-difficulty","title":"RoomConfigRoom GetRoomByStageTypeAndVariant ( StbType Stage, RoomType Type, int Variant, int Difficulty )","text":"

Returns a RoomConfigRoom corresponding to the given params.

","tags":["Class"]},{"location":"RoomConfigRoom.html","title":"Class \"RoomConfigRoom\"","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#modified-variables","title":"Modified Variables","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#mode","title":"Mode","text":"","tags":["Class"]},{"location":"RoomConfigRoom.html#int-mode","title":"int Mode","text":"

Same as default, but now returns a proper integer value instead of userdata.

","tags":["Class"]},{"location":"RoomDescriptor.html","title":"Class \"RoomDescriptor\"","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#addrestrictedgridindex","title":"AddRestrictedGridIndex ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#void-addrestrictedgridindex-int-gridindex","title":"void AddRestrictedGridIndex ( int GridIndex )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getentitiessavestate","title":"GetEntitiesSaveState ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#entitiessavestatevector-getentitiessavestate","title":"EntitiesSaveStateVector GetEntitiesSaveState ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getgridentitiessavestate","title":"GetGridEntitiesSaveState ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#gridentitiessavestatevector-getgridentitiessavestate","title":"GridEntitiesSaveStateVector GetGridEntitiesSaveState ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#getrestrictedgridindexes","title":"GetRestrictedGridIndexes ()","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#int-getrestrictedgridindexes","title":"int[] GetRestrictedGridIndexes ( )","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#alloweddoors","title":"AllowedDoors","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#doorset-alloweddoors","title":"DoorSet AllowedDoors","text":"

Now properly returns the allowed door slot.

","tags":["Class"]},{"location":"RoomDescriptor.html#doors","title":"Doors","text":"","tags":["Class"]},{"location":"RoomDescriptor.html#doorset-doors","title":"DoorSet Doors","text":"

Now properly returns the door slot.

","tags":["Class"]},{"location":"RoomTransition.html","title":"Global Class \"RoomTransition\"","text":"Info

You can get this class by using the RoomTransition global table.

Example Code
local tmode = RoomTransition.GetTransitionMode()\n
","tags":["Global","Class"]},{"location":"RoomTransition.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#gettransitionmode","title":"GetTransitionMode ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#int-gettransitionmode","title":"int GetTransitionMode ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#getversusscreensprite","title":"GetVersusScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#sprite-getversusscreensprite","title":"Sprite GetVersusScreenSprite ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#isrenderingbossintro","title":"IsRenderingBossIntro ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#boolean-isrenderingbossintro","title":"boolean IsRenderingBossIntro ( )","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#startbossintro","title":"StartBossIntro ()","text":"","tags":["Global","Class"]},{"location":"RoomTransition.html#void-startbossintro-bosstype-bossid1-bosstype-bossid2-0","title":"void StartBossIntro ( BossType BossID1, BossType BossID2 = 0 )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html","title":"Global Class \"ScoreSheet\"","text":"Info

You can get this class by using the ScoreSheet global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local bonus = ScoreSheet.GetBlueBabyBonus()\n
","tags":["Global","Class"]},{"location":"ScoreSheet.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#calculate","title":"Calculate ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#void-calculate","title":"void Calculate ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getbluebabybonus","title":"GetBlueBabyBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getbluebabybonus","title":"int GetBlueBabyBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getdamagepenalty","title":"GetDamagePenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getdamagepenalty","title":"int GetDamagePenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getexplorationbonus","title":"GetExplorationBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getexplorationbonus","title":"int GetExplorationBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getitempenalty","title":"GetItemPenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getitempenalty","title":"int GetItemPenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getlambbonus","title":"GetLambBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getlambbonus","title":"int GetLambBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getmegasatanbonus","title":"GetMegaSatanBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getmegasatanbonus","title":"int GetMegaSatanBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getrunending","title":"GetRunEnding ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#ending-getrunending","title":"Ending GetRunEnding ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntime","title":"GetRunTime ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getruntime","title":"int GetRunTime ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntimelevel","title":"GetRunTimeLevel ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#levelstage-getruntimelevel","title":"LevelStage GetRunTimeLevel ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getruntimeleveltype","title":"GetRunTimeLevelType ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#stagetype-getruntimeleveltype","title":"StageType GetRunTimeLevelType ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getrushbonus","title":"GetRushBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getrushbonus","title":"int GetRushBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getschwagbonus","title":"GetSchwagBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getschwagbonus","title":"int GetSchwagBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#getstagebonus","title":"GetStageBonus ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-getstagebonus","title":"int GetStageBonus ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#gettimepenalty","title":"GetTimePenalty ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-gettimepenalty","title":"int GetTimePenalty ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#gettotalscore","title":"GetTotalScore ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#int-gettotalscore","title":"int GetTotalScore ( )","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#setrunending","title":"SetRunEnding ()","text":"","tags":["Global","Class"]},{"location":"ScoreSheet.html#void-setrunending-ending-endingid","title":"void SetRunEnding ( Ending EndingID )","text":"","tags":["Global","Class"]},{"location":"Sprite.html","title":"Class \"Sprite\"","text":"","tags":["Class"]},{"location":"Sprite.html#modified-constructors","title":"Modified Constructors","text":"","tags":["Class"]},{"location":"Sprite.html#sprite","title":"Sprite ()","text":"","tags":["Class"]},{"location":"Sprite.html#spritebool-sprite-string-anm2path-bool-loadgraphics-true","title":"Sprite,bool Sprite ( string ANM2Path, bool LoadGraphics = true )","text":"

Added two optional arguments, the function now returns two values: Sprite object and the bool signifying whether the sprite was loaded successfully or not.

","tags":["Class"]},{"location":"Sprite.html#modified-functions","title":"Modified Functions","text":"","tags":["Class"]},{"location":"Sprite.html#replacespritesheet","title":"ReplaceSpritesheet ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-replacespritesheet-int-layerid-string-pngfilename-boolean-loadgraphics-false","title":"void ReplaceSpritesheet ( int LayerId, string PngFilename, boolean LoadGraphics = false )","text":"

Now accepts an optional bool to determine if Sprite:LoadGraphics should be called after replacing the spritesheet. In most cases, you'll want to do this.

","tags":["Class"]},{"location":"Sprite.html#setoverlayframe","title":"SetOverlayFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-setoverlayframe-int-framenum","title":"void SetOverlayFrame ( int FrameNum )","text":"

New overload for SetOverlayFrame() that sets the frame for the current animation without stopping it, akin to the one for SetFrame().

","tags":["Class"]},{"location":"Sprite.html#stop","title":"Stop ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-stop-boolean-stopoverlay-true","title":"void Stop ( boolean StopOverlay = true )","text":"

Now accepts an optional bool for whether to also stop the overlay animation. Defaults to true.

","tags":["Class"]},{"location":"Sprite.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Sprite.html#continue","title":"Continue ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-continue-boolean-continueoverlay-true","title":"void Continue ( boolean ContinueOverlay = true )","text":"

If the animation is currently stopped, makes it start playing again from the current frame. Will not restart a finished, non-looping animation.

","tags":["Class"]},{"location":"Sprite.html#continueoverlay","title":"ContinueOverlay ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-continueoverlay","title":"void ContinueOverlay ( )","text":"

Same as above, but only for the overlay animation.

","tags":["Class"]},{"location":"Sprite.html#getallanimationdata","title":"GetAllAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getallanimationdata","title":"AnimationData[] GetAllAnimationData ( )","text":"

Returns a table of AnimationData representing all animations in this anm2 file.

","tags":["Class"]},{"location":"Sprite.html#getalllayers","title":"GetAllLayers ()","text":"","tags":["Class"]},{"location":"Sprite.html#layerstates-getalllayers","title":"LayerStates[] GetAllLayers ( )","text":"

Returns a table of all LayerStates in this Sprite.

","tags":["Class"]},{"location":"Sprite.html#getanimationdata","title":"GetAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getanimationdata-string-animationname","title":"AnimationData GetAnimationData ( string AnimationName )","text":"","tags":["Class"]},{"location":"Sprite.html#getcurrentanimationdata","title":"GetCurrentAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getcurrentanimationdata","title":"AnimationData GetCurrentAnimationData ( )","text":"","tags":["Class"]},{"location":"Sprite.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"Sprite.html#layerstate-getlayer-int-layerid","title":"LayerState GetLayer ( int LayerId )","text":"","tags":["Class"]},{"location":"Sprite.html#layerstate-getlayer-string-layername","title":"LayerState GetLayer ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getnullframe","title":"GetNullFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#nullframe-getnullframe-string-layername","title":"NullFrame GetNullFrame ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getoverlayanimationdata","title":"GetOverlayAnimationData ()","text":"","tags":["Class"]},{"location":"Sprite.html#animationdata-getoverlayanimationdata","title":"AnimationData GetOverlayAnimationData ( )","text":"","tags":["Class"]},{"location":"Sprite.html#getoverlaynullframe","title":"GetOverlayNullFrame ()","text":"","tags":["Class"]},{"location":"Sprite.html#nullframe-getoverlaynullframe-string-layername","title":"NullFrame GetOverlayNullFrame ( string LayerName )","text":"","tags":["Class"]},{"location":"Sprite.html#getrenderflags","title":"GetRenderFlags ()","text":"","tags":["Class"]},{"location":"Sprite.html#animrenderflags-getrenderflags","title":"AnimRenderFlags GetRenderFlags ( )","text":"","tags":["Class"]},{"location":"Sprite.html#isoverlayeventtriggered","title":"IsOverlayEventTriggered ()","text":"","tags":["Class"]},{"location":"Sprite.html#boolean-isoverlayeventtriggered-string-eventname","title":"boolean IsOverlayEventTriggered ( string EventName )","text":"","tags":["Class"]},{"location":"Sprite.html#setrenderflags","title":"SetRenderFlags ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-setrenderflags-animrenderflags-flags","title":"void SetRenderFlags ( AnimRenderFlags Flags )","text":"","tags":["Class"]},{"location":"Sprite.html#stopoverlay","title":"StopOverlay ()","text":"","tags":["Class"]},{"location":"Sprite.html#void-stopoverlay","title":"void StopOverlay ( )","text":"","tags":["Class"]},{"location":"Sprite.html#wasoverlayeventtriggered","title":"WasOverlayEventTriggered ()","text":"","tags":["Class"]},{"location":"Sprite.html#boolean-wasoverlayeventtriggered-string-eventname","title":"boolean WasOverlayEventTriggered ( string EventName )","text":"","tags":["Class"]},{"location":"StageTransition.html","title":"Global Class \"StageTransition\"","text":"Info

This class gives access to data exclusive to the stage transition screen.

Please note that the StageTransition is only used to configure how the stage transition plays. If you want to manipulate the content of the screen during a stage transition, you need to use the NightmareScene class.

You can get this class by using the StageTransition global table.

Example Code
local samestage = StageTransition.GetSameStage()\n
","tags":["Global","Class"]},{"location":"StageTransition.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#getsamestage","title":"GetSameStage ()","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#boolean-getsamestage","title":"boolean GetSameStage ( )","text":"

Indicate if the stage transition screen will display Isaac's head moving from one stage to the other (false) or not (true).

","tags":["Global","Class"]},{"location":"StageTransition.html#setsamestage","title":"SetSameStage ()","text":"","tags":["Global","Class"]},{"location":"StageTransition.html#void-setsamestage-boolean-value","title":"void SetSameStage ( boolean Value )","text":"

Configure whether the stage transition will display Isaac's head moving from one stage to the other (false) or not (true).

This function is useful if you want to move the player to the first stage, or want to repeat the last stage on the progress bar of the transition screen, and have it be less jarring.

  • If transitioning back to the first floor, and SameStage is not set to true, Isaac's head will appear outside of the progress bar. Otherwise, Isaac's head will appear on the first floor.
  • If repeating the last floor, and SameStage is not set to true, Isaac's head will move from the previous stage to the last one. Otherwise, Isaac's head will appear on the last floor.
Warning

Calling this method before the current stage transition has called SetNextStage will override the transition itself. This means that instead of merely displaying Isaac's head not moving, it will actually change whether the next stage will be a repeat of the current one, or the actual next stage. Ideally, you should use this function in the context of the ModCallbacks.MC_PRE_LEVEL_SELECT callback.

","tags":["Global","Class"]},{"location":"Vector.html","title":"Class \"Vector\"","text":"","tags":["Class"]},{"location":"Vector.html#operators","title":"Operators","text":"","tags":["Class"]},{"location":"Vector.html#__add","title":"__add ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__add-vector-right","title":"Vector __add ( Vector Right )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Addition of two Vector objects using the + operator.

","tags":["Class"]},{"location":"Vector.html#__div","title":"__div ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__div-float-modifier","title":"Vector __div ( float Modifier )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Division of two Vector objects using the / operator.

","tags":["Class"]},{"location":"Vector.html#__mul","title":"__mul ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__mul-float-modifier","title":"Vector __mul ( float Modifier )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Multiplication of two Vector objects using the * operator.

","tags":["Class"]},{"location":"Vector.html#__sub","title":"__sub ()","text":"","tags":["Class"]},{"location":"Vector.html#vector-__sub-vector-right","title":"Vector __sub ( Vector Right )","text":"

Fixed version of original function that prevents a crash when the left operant of the vector calculation is nil.

Defines the Subtraction of two Vector objects using the - operator.

","tags":["Class"]},{"location":"Vector.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Vector.html#fromangle","title":"FromAngle ()","text":"","tags":["Class"]},{"location":"Vector.html#void-fromangle-float-angle","title":"void FromAngle ( float Angle )","text":"","tags":["Class"]},{"location":"Weapon.html","title":"Class \"Weapon\"","text":"Info

You can get this class by using the following functions:

  • EntityPlayer:GetWeapon()
Example Code
local weapon = Isaac.GetPlayer(0):GetWeapon(1)\n
","tags":["Class"]},{"location":"Weapon.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"Weapon.html#clearitemanim","title":"ClearItemAnim ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-clearitemanim-int-itemid","title":"void ClearItemAnim ( int ItemID )","text":"","tags":["Class"]},{"location":"Weapon.html#getcharge","title":"GetCharge ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getcharge","title":"int GetCharge ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getdirection","title":"GetDirection ()","text":"","tags":["Class"]},{"location":"Weapon.html#vector-getdirection","title":"Vector GetDirection ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getfiredelay","title":"GetFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getfiredelay","title":"int GetFireDelay ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getmaxfiredelay","title":"GetMaxFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getmaxfiredelay","title":"int GetMaxFireDelay ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getmodifiers","title":"GetModifiers ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getmodifiers","title":"int GetModifiers ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getnumfired","title":"GetNumFired ()","text":"","tags":["Class"]},{"location":"Weapon.html#int-getnumfired","title":"int GetNumFired ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getowner","title":"GetOwner ()","text":"","tags":["Class"]},{"location":"Weapon.html#entity-getowner","title":"Entity GetOwner ( )","text":"","tags":["Class"]},{"location":"Weapon.html#getweapontype","title":"GetWeaponType ()","text":"","tags":["Class"]},{"location":"Weapon.html#weapontype-getweapontype","title":"WeaponType GetWeaponType ( )","text":"","tags":["Class"]},{"location":"Weapon.html#isaxisaligned","title":"IsAxisAligned ()","text":"","tags":["Class"]},{"location":"Weapon.html#boolean-isaxisaligned","title":"boolean IsAxisAligned ( )","text":"","tags":["Class"]},{"location":"Weapon.html#isitemanimfinished","title":"IsItemAnimFinished ()","text":"","tags":["Class"]},{"location":"Weapon.html#boolean-isitemanimfinished-int-itemid","title":"boolean IsItemAnimFinished ( int ItemID )","text":"","tags":["Class"]},{"location":"Weapon.html#playitemanim","title":"PlayItemAnim ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-playitemanim-int-itemid-direction-animdirection-vector-position-float-charge","title":"void PlayItemAnim ( int ItemID, Direction AnimDirection, Vector Position, float Charge )","text":"","tags":["Class"]},{"location":"Weapon.html#setcharge","title":"SetCharge ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setcharge-int-charge","title":"void SetCharge ( int Charge )","text":"","tags":["Class"]},{"location":"Weapon.html#setfiredelay","title":"SetFireDelay ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setfiredelay-float-delay","title":"void SetFireDelay ( float Delay )","text":"","tags":["Class"]},{"location":"Weapon.html#setheadlocktime","title":"SetHeadLockTime ()","text":"","tags":["Class"]},{"location":"Weapon.html#void-setheadlocktime-int-time","title":"void SetHeadLockTime ( int Time )","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html","title":"Class \"WeightedOutcomePicker\"","text":"

An example mod using the WeightedOutcomePicker class can be found here.

Info

This class can be obtained using its constructor:

Example Code
local wop = WeightedOutcomePicker()\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#weightedoutcomepicker","title":"WeightedOutcomePicker ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#weightedoutcomepicker-weightedoutcomepicker","title":"WeightedOutcomePicker WeightedOutcomePicker ( )","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#addoutcomefloat","title":"AddOutcomeFloat ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-addoutcomefloat-int-value-float-weight-int-scalefactor-100","title":"void AddOutcomeFloat ( int Value, float Weight, int ScaleFactor = 100 )","text":"

Adds an outcome to the outcome selector with the specified Weight. The internal weight is still an integer calculated like this: fWeight * scaleFactor, where ScaleFactor is the maximum weight (equivalent to 1.0).

Example Code
local picker = WeightedOutcomePicker()\n\npicker:AddOutcomeFloat(1, 1.0) -- ~45%\npicker:AddOutcomeFloat(2, 1.0) -- ~45%\npicker:AddOutcomeFloat(3, 0.2) -- ~9%\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#addoutcomeweight","title":"AddOutcomeWeight ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-addoutcomeweight-int-value-int-weight","title":"void AddOutcomeWeight ( int Value, int Weight )","text":"

Adds an outcome to the outcome selector with the specified Weight.

Example Code
local picker = WeightedOutcomePicker()\n\npicker:AddOutcomeWeight(1, 65) -- 65%\npicker:AddOutcomeWeight(2, 30) -- 30%\npicker:AddOutcomeWeight(3, 5) -- 5%\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#clearoutcomes","title":"ClearOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-clearoutcomes","title":"void ClearOutcomes ( )","text":"

Clears all outcomes from the outcome picker.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#getnumoutcomes","title":"GetNumOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#int-getnumoutcomes","title":"int GetNumOutcomes ( )","text":"

Returns the number of outcomes in the outcome picker.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#getoutcomes","title":"GetOutcomes ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#table-getoutcomes","title":"table[] GetOutcomes ( )","text":"

Returns a table containing a list of all outcomes in the outcome picker.

Table structure & usage
  • The returned table contains a list of outcomes, where each outcome is a table containing the following fields:
    • Value: value of the outcome
    • Weight: weight of the outcome
      for i, outcome in ipairs(p:GetOutcomes()) do\n    print(outcome.Value, outcome.Weight)\nend\n
","tags":["Class"]},{"location":"WeightedOutcomePicker.html#pickoutcome","title":"PickOutcome ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#int-pickoutcome-rng-rng","title":"int PickOutcome ( RNG RNG )","text":"

Returns a random outcome from the list in WeightedOutcomePicker. Accepts RNG.

","tags":["Class"]},{"location":"WeightedOutcomePicker.html#removeoutcome","title":"RemoveOutcome ()","text":"","tags":["Class"]},{"location":"WeightedOutcomePicker.html#void-removeoutcome-int-value","title":"void RemoveOutcome ( int Value )","text":"

Removes an outcome from the outcome picker with the given Value.

","tags":["Class"]},{"location":"XMLData.html","title":"Global Class \"XMLData\"","text":"Info

A public table containing all the functions related to gathering XML attributes accross the different XMLs with updated values to match the real values.

You can get this class by using the XMLData global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local numEntries = XMLData.GetNumEntries(XMLNode.ENTITY)\n
Warning

XML attributes are converted to lowercase when being parsed by REPENTOGON! This eliminates capitializtion inconsistency in vanilla tags, but might result in not being able to find attributes if they're looked up by their name as definined in the XML (e.g bossID will return nil, so use bossid instead.)

","tags":["Global","Class"]},{"location":"XMLData.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"XMLData.html#getentitybytypevarsub","title":"GetEntityByTypeVarSub ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentitybytypevarsub-entitytype-type-int-variant-0-int-subtype-0-boolean-strict-false","title":"table GetEntityByTypeVarSub ( EntityType Type, int Variant = 0 , int SubType = 0, boolean Strict = false)","text":"

Returns a table containing the attributes of the entity on entities2.xml that match the given type and/or variant and/or subtype. The strict parameter determines if it should only return a value when all 3 attributes(type, var and sub) match or return whatever matches the type and take the rest as maybes.

Table usage
print(\"Monstro's BossID:\", XMLData.GetEntityByTypeVarSub(20).bossid)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getentrybyid","title":"GetEntryById ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentrybyid-xmlnode-nodetype-int-idx","title":"table GetEntryById ( XMLNode NodeType, int Idx )","text":"

Returns a table containing the attributes of the corresponding xml, the matching NodeType(Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given unique id.

Table usage
print(\"Sad Onion's description:\", XMLData.GetEntryById(XMLNode.ITEM, 1).description)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

id?

The Id usually matches the actual id of the node in question, with the exception of cases like the entities.xml where ids are not unique, on those cases, the id is the order of the node and wont correspond with the actual id. On the cases of XMLs without ids, its just the order again.

","tags":["Global","Class"]},{"location":"XMLData.html#getentrybyname","title":"GetEntryByName ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentrybyname-xmlnode-nodetype-string-name","title":"table GetEntryByName ( XMLNode NodeType, string Name )","text":"

Returns a table containing the attributes of the corresponding xml, the matching NodeType (Ex: XMLNode.TRINKET returns trinket nodes from pocketitems.xml) and match the given name parameter.

Table usage
print(\"Sad Onion's description:\", XMLData.GetEntryByName(XMLNode.ITEM, \"The Sad Onion\").description)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getentryfromentity","title":"GetEntryFromEntity ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#table-getentryfromentity-entity-entity-boolean-autoxmlpick-true-boolean-strict","title":"table GetEntryFromEntity ( Entity Entity, boolean AutoXMLPick = true, boolean Strict)","text":"

Returns a table containing the attributes of the provided entity. The AutoXMLPick parameter determines if only entities2.xml should be used or if it should pick the xml that matches the EntityType (Ex: items.xml for pedestal collectibles) . The strict parameter determines if it should only return a value when the type,variant and subtype attributes match or return whatever matches the type and take the rest as maybes.

Table usage
print(\"Player's birthright:\", XMLData.GetEntryFromEntity(Isaac.GetPlayer()).birthright)\n
child nodes

Child nodes are returned as tables alongside the rest of the attributes. For example, if you want to access the samples of a sound entry, you can use soundentry.sample[1].

","tags":["Global","Class"]},{"location":"XMLData.html#getnumentries","title":"GetNumEntries ()","text":"","tags":["Global","Class"]},{"location":"XMLData.html#int-getnumentries-xmlnode-nodetype","title":"int GetNumEntries ( XMLNode NodeType)","text":"

Returns the number of entries a given XMLNode structure has.

","tags":["Global","Class"]},{"location":"docs.html","title":"Lua API Documentation for The Binding of Isaac - REPENTOGON","text":"

This documentation covers the additions and modifications made to the Lua API by REPENTOGON.

Happily serving:

  • over 800 new or improved functions
  • over 200 new callbacks
  • over 30 new rideable dragons
  • over 60 new enums

A list of non API related changes can be found in the \"changes\" tab!

","boost":-999},{"location":"install.html","title":"Installation","text":"

We have two methods of installation: Automatic and Manual. We also have a Steam Workshop page that has a similar method to Manual.

If the installation is successful you should be able to notice multiple changes to the game, most notably you should see REPENTOGON version in the titlebar. Here is an example of a complete installation:

"},{"location":"install.html#automatic","title":"Automatic","text":"Info

Automatic instructions only work on Windows for now. A Linux version of the installer is being worked on, and for now it should work in Wine, but there's still extra setup on there for now.

Info

We'll make this more automatic in the future, bear with us.

"},{"location":"install.html#what-youll-need","title":"What you'll need","text":"
  • The REPENTOGON installer (click here to download)
"},{"location":"install.html#instructions","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Copy the REPENTOGONUpdater.exe downloaded earlier to the folder that just opened.
  1. Run REPENTOGONUpdater.exe.
    • This opens a new window.
  2. Press Install.
    • Once the log at the bottom says Finished!, installation is done. If the log instead says anything about failing, the installation was unsuccessful. Try a different method.
Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

"},{"location":"install.html#manual","title":"Manual","text":""},{"location":"install.html#what-youll-need_1","title":"What you'll need","text":"
  • The latest release of REPENTOGON (click here to download)
"},{"location":"install.html#instructions_1","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Extract the contents of REPENTOGON.zip to the folder that just opened.
Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

"},{"location":"install.html#steam-workshop","title":"Steam Workshop","text":""},{"location":"install.html#what-youll-need_2","title":"What you'll need","text":"
  • REPENTOGON from the Steam Workshop
"},{"location":"install.html#instructions_2","title":"Instructions","text":"
  1. Within Steam, navigate to The Binding of Isaac: Rebirth
  2. Click on the gear to the right of the screen, and click on it
  3. Click on Properties
    • This opens a new window.
  1. Navigate to Installed Files, then click Browse
    • This opens a new window.
  1. Navigate to the mods folder, then REPENTOGON_3127536138.

  2. Extract the contents of REPENTOGON.zip to the game's folder.

Info

On Linux and Steam Deck, add WINEDLLOVERRIDES=\"dsound=n,b\" %command% as a launch option for Isaac.

You can now unsubscribe from the mod on Steam, if you wish.

"},{"location":"tags.html","title":"Tags","text":""},{"location":"tags.html#class","title":"Class","text":"
  • Ambush
  • AnimationData
  • AnimationFrame
  • AnimationLayer
  • Backdrop
  • Camera
  • Capsule
  • ChallengeParam
  • Color
  • ColorModifier
  • ColorParams
  • Console
  • CostumeSpriteDesc
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntitiesSaveState
  • EntitiesSaveStateVector
  • Entity
  • EntityBomb
  • EntityConfig
  • EntityConfigEntity
  • EntityConfigPlayer
  • EntityDelirium
  • EntityEffect
  • EntityFamiliar
  • EntityKnife
  • EntityLaser
  • EntityNPC
  • EntityPickup
  • EntityPlayer
  • EntityProjectile
  • EntitySlot
  • EntityTear
  • FXParams
  • Font
  • Game
  • GridEntitiesSaveStateVector
  • GridEntity
  • GridEntityDecoration
  • GridEntityDoor
  • GridEntityFire
  • GridEntityGravity
  • GridEntityPressurePlate
  • GridEntityRock
  • GridEntityStairs
  • GridEntityStatue
  • GridEntityTeleporter
  • GridEntityTrapDoor
  • GridEntityWall
  • GridEntityWeb
  • HUD
  • History
  • HistoryItem
  • ImGui
  • Isaac
  • ItemConfig
  • ItemConfig - PillEffect
  • ItemOverlay
  • ItemPool
  • LayerState
  • Level
  • LevelGenerator
  • LevelGeneratorEntry
  • LevelGeneratorRoom
  • Minimap
  • MultiShotParams
  • MusicManager
  • NightmareScene
  • NullFrame
  • Options
  • PersistentGameData
  • PlayerHUD
  • PlayerHUDHeart
  • PlayerManager
  • PocketItem
  • ProceduralEffect
  • ProceduralItem
  • ProceduralItemManager
  • ProjectileParams
  • RNG
  • RailManager
  • Room
  • RoomConfigHolder
  • RoomConfigRoom
  • RoomDescriptor
  • RoomTransition
  • ScoreSheet
  • Sprite
  • StageTransition
  • Vector
  • Weapon
  • WeightedOutcomePicker
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
  • Beam
  • BlendMode
  • DestinationQuad
  • Class \"GLSLValue\"
  • Image
  • Class \"Pipeline\"
  • Point
  • Class \"RenderSet\"
  • Class \"Renderer\"
  • Class \"Shader\"
  • Shape
  • SourceQuad
  • Class \"Transformer\"
  • Class \"Vertex\"
  • Class \"VertexBuffer\"
  • Class \"VertexDescriptor\"
"},{"location":"tags.html#enum","title":"Enum","text":"
  • Achievement
  • AnimRenderFlags
  • AnnouncerVoiceMode
  • AutocompleteType
  • BagOfCraftingPickup
  • BombCostumeLayer
  • BossType
  • CameraStyle
  • CompletionType
  • ConsoleFont
  • DebugFlag
  • DialogButtons
  • DialogIcons
  • DialogReturn
  • Dimension
  • DipSubType
  • Ending
  • EntityPoopVariant
  • EntityTag
  • EventCounter
  • ExtraHudStyle
  • FadeoutTarget
  • FollowerPriority
  • GLSLType
  • Giantbook
  • GibFlag
  • GridPoopVariant
  • HealthType
  • ImGuiCallback
  • ImGuiColor
  • ImGuiData
  • ImGuiElement
  • ImGuiNotificationType
  • ItemAnim
  • KnifeSubType
  • KnifeVariant
  • Language
  • LineCheckMode
  • MainMenuType
  • MouseButton
  • NullPickupSubType
  • PauseMenuStates
  • PedestalType
  • PillCardSlot
  • PlayerVariant
  • PocketItemType
  • PressurePlateVariant
  • ProceduralEffectActionType
  • ProceduralEffectConditionType
  • ProjectileMode
  • PurityState
  • RetractingSpikesVariant
  • RoomSubType
  • ShaderType
  • SlotVariant
  • SpecialQuest
  • StbGridType
  • StbPoopSubType
  • StbRailVariant
  • StbRockSubType
  • StbTeleporterSubType
  • StbType
  • TaintedMarksGroup
  • TeleporterVariant
  • WeaponModifier
  • WispSubType
  • XMLNode
"},{"location":"tags.html#file","title":"File","text":"
  • achievements.xml
  • ambush.xml
  • challenges.xml
  • costumes.xml
  • cutscenes.xml
  • entities2.xml
  • giantbook.xml
  • items.xml
  • players.xml
"},{"location":"tags.html#global","title":"Global","text":"
  • Ambush
  • Console
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntityConfig
  • Isaac
  • ItemOverlay
  • Minimap
  • NightmareScene
  • PlayerManager
  • ProceduralItemManager
  • ProjectileParams
  • RoomTransition
  • ScoreSheet
  • StageTransition
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
"},{"location":"blog/index.html","title":"Blog","text":"

Welcome to the blog! We'll post announcements and updates here as necessary.

"},{"location":"blog/2023/12/31/faq.html","title":"FAQ","text":"

REPENTOGON works very differently from a traditional mod. We suspect there will inevitably be some confusion about its inner workings and how it will interact with future game updates.

This FAQ is broken down into different sections for both standard end-users and mod developers.

"},{"location":"blog/2023/12/31/faq.html#end-users","title":"End-Users","text":""},{"location":"blog/2023/12/31/faq.html#q-what-is-repentogon","title":"Q: What is REPENTOGON?","text":"

REPENTOGON is a script extender for The Binding of Isaac: Repentance. The project started in late January 2023 due to a \"perfect storm\" of events: at the time, we believed there to only be one update for Repentance left, several modders were frustrated with the lack of API updates, and we were pointed towards the direction of an open source version of LibZHL, the framework _Kilburn created to develop Antibirth, laying dormant in the source code of FTL: Hyperspace, a similar mod for FTL.

That version of LibZHL turned out not to work for us because it had extensive changes made to it to no longer suit our needs as far as Isaac goes. With the express permission of _Kilburn we used the original version directly from Antibirth, and have made significant changes to it in order to further increase its flexibility, power, and ease of use.

REPENTOGON's goal is to enhance the game's API to allow modders to drop many of the hacks they need to do in order to change basic game functionality, and to further allow for things that were previously impossible. We anticipate that REPENTOGON will become a hard dependency for many mods in the future, both big and small.

We also have some small quality-of-life tweaks and bugfixes, but these are all completely optional. Many of these are on by default but can be disabled in our options menu. This is bound to the same key that traditionally would open the debug console.

"},{"location":"blog/2023/12/31/faq.html#q-my-antivirus-says-repentogon-is-malicious-is-it-safe","title":"Q: My antivirus says REPENTOGON is malicious! Is it safe?","text":"

Yes. Any antivirus that flags us is reporting a false-positive. Some of the techniques we use to make this work are the same a (very primitive) virus could use to inject itself into a running program as well.

We are a fully open source project and always will be. The code can be audited at any time to show that we are not malicious.

"},{"location":"blog/2023/12/31/faq.html#q-will-repentogon-break-when-the-game-updates","title":"Q: Will REPENTOGON break when the game updates?","text":"

Yes, unavoidably, and this is not the fault of Nicalis! Instead, this is an unavoidable side effect of how REPENTOGON works. Please do not review bomb future updates or harass Nicalis developers because they break REPENTOGON. This will only serve to harm the project.

We will do our best to adapt to future updates, but this will take time. We suspect we can get REPENTOGON running on a new update quickly, but it will take time to ensure that REPENTOGON hasn't broken in a subtle way. We will need to extensively retest our changes.

In the future, if Nicalis were to add debug symbols into the game, this would significantly reduce the time needed to adapt to future updates. Isaac has never shipped with these on Windows despite shipping with them on most other platforms, so we feel the exclusion of these on Windows is doing more harm than good, but we nonetheless respect Nicalis's decision to not include them and ask that end-users do not harass Nicalis about getting these included.

"},{"location":"blog/2023/12/31/faq.html#q-how-do-i-disable-repentogon","title":"Q: How do I disable REPENTOGON?","text":"

You will need to add -repentogonoff as a launch option in order to make the game load without REPENTOGON.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-work-on-linux-steam-deck","title":"Q: Does REPENTOGON work on Linux / Steam Deck?","text":"

Yes! We do not have a native Linux build as there's no point to since there's no native Linux version of Repentance, but it works properly under Proton. On Steam Deck this is the default setup.

You will need to add WINEDLLOVERRIDES=dsound=n,b %command% as a launch option in order to make the game load our DLL. We aim to make an installer to automate this process.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-work-on-mac","title":"Q: Does REPENTOGON work on Mac?","text":"

It's complicated. If you're using the version of Repentance from the App Store, no. We have not researched this version and it likely doesn't support mods anyways. Running the Windows version in Wine should work, although you'll need to add the same launch option mentioned in the previous question.

"},{"location":"blog/2023/12/31/faq.html#q-does-repentogon-support-rebirth-afterbirth-or-afterbirth","title":"Q: Does REPENTOGON support Rebirth, Afterbirth, or Afterbirth+?","text":"

No, and we never will. It doesn't make much sense to support those DLCs as they are legacy versions of the game. Rebirth and Afterbirth don't have Lua mod support and most major mods have moved on from Afterbirth+. We will solely focus on Repentance.

"},{"location":"blog/2023/12/31/faq.html#mod-developers","title":"Mod Developers","text":""},{"location":"blog/2023/12/31/faq.html#q-how-do-i-detect-if-repentogon-is-in-use","title":"Q: How do I detect if REPENTOGON is in use?","text":"

We define a REPENTOGON global, much like Repentance defines a REPENTANCE global. You can use this to prompt the player to download REPENTOGON or to have a pathway in your mod that runs if REPENTOGON is enabled.

"},{"location":"blog/2023/12/31/faq.html#q-how-does-repentogon-speed-up-the-api","title":"Q: How does REPENTOGON speed up the API?","text":"

Multiple ways! By far the biggest impact is the move to Lua 5.4, which has a new generational garbage collector that works much better than the standard incremental garbage collector for the purposes of Isaac. The generational garbage collector does many tiny sweeps, whereas incremental performs less frequent large sweeps. This means garbage collection stutter is much, much less noticeable. In early REPENTOGON testing, generational GC's results were indistinguishable from not running GC at all on a high-end computer.

The port to 5.4 also necessitated rewriting three of the most frequently used API functions- Isaac.GetRoomEntities, Isaac.FindByType, and Isaac.FindInRadius- as these all violate Lua spec and rely on undefined behavior, and as such didn't work going to 5.4. Our reimplementations of these functions are indistinguishable from the originals from an API perspective, but perform twice (!) as fast.

Additionally, the base API is made using LuaBridge, which is a very slow Lua wrapper. Our new classses and functions are all made in traditional Lua instead. We'd like to fully eliminate LuaBridge in the future, which would create further performance improvements down the road. Don't rely on this, though! REPENTOGON allows for direct control over game functionality that previously had to be reimplemented, please use those. Ideally, mods transitioning to REPENTOGON will inherently increase game performance over time.

We've also made smaller changes like caching many of the commonly used classes like Game, which avoids a costly hop back to C++.

We briefly looked into adopting LuaJIT which would be the performance holy grail when combined with FFI, which allows calling C functions directly from Lua, but this would necessitate a full API rewrite. LuaJIT doesn't have bitwise operator support so we're currently stuck, but it's on the LuaJIT 3.0 roadmap. If and when this is implemented we will look into this, but we will not roll this out unless we achieve full compatibility with the existing mod ecosystem.

"},{"location":"blog/2023/12/31/faq.html#q-will-repentogon-get-updates-to-add-more-features-in-the-future","title":"Q: Will REPENTOGON get updates to add more features in the future?","text":"

Of course! REPENTOGON is not finished, far from it. The only reason we're releasing now is because if we don't set an arbitrary release date, we'll never release. REPENTOGON is a playground for us, with each core developer focusing on their personal goals first and foremost. Many of us are no longer interested in working on Isaac mods themselves, but have had a blast working on REPENTOGON, and that's not stopping any time soon.

"},{"location":"blog/2023/12/31/faq.html#q-repentogon-doesnt-have-a-feature-that-id-like-is-it-possible-to-add-x","title":"Q: REPENTOGON doesn't have a feature that I'd like. Is it possible to add X?","text":"

It's complicated. REPENTOGON is the result of nearly a year of reverse engineering. We've hit most of the low hanging fruit at this point. There's still stuff we'd like to fully investigate, like complete control over level generation, but this will take time.

Many of the issues we have on the repository are pipe dream wishes more than anything. We'd love to tackle everything there but some of it is going to take a lot of effort, potentially entire reimplementations of existing game functionality. Feel free to show your support for some of these, though- the more people that are interested, the more we'll prioritize a specific issue.

"},{"location":"blog/2023/12/31/welcome-to-the-new-era-of-isaac-modding.html","title":"Welcome to the new era of Isaac modding!","text":"

After nearly a year of hard work, we are proud to finally release REPENTOGON into the world! As our gift to the modding community as we head into the Year of the Dragon, we have rekindled the smoldering embers of the Isaac API into a flame that has never burned brighter.

REPENTOGON is a script extender, a concept you may be familiar with if you have ever modded some other games, especially Bethesda titles. These important mods make the game's modding API more flexible and powerful, significantly expanding the capabilities of mods. Many mods for those games simply wouldn't be possible without them! We feel that Isaac has similar untapped potential. The game's formula inherently allows for infinite expansion, and yet the base API simply cannot provide anything close to a level of power that allows for this concept to truly come to fruition.

Our ultimate goal is to reduce the amount of asinine workarounds needed in order for modders to changee basic functionality. The base API doesn't even have a clean way to add items that do something when picked up! With over 800 new functions and over 200 new callbacks, we've eliminated many of these problems.

REPENTOGON is free and open source, and always will be. We're far from finished- expect even more new features in the future.

Head over to the installation guide to get started. PLEASE let us know of any bugs or crashes that arise- we've done lots of testing but can't possibly predict every single mod configuration.

"},{"location":"changes/Debugging.html","title":"Changes done to debugging and the Console","text":""},{"location":"changes/Debugging.html#callback-typechecking","title":"Callback Typechecking","text":"

All callbacks are now typechecked.

  • An error is thrown when a callback return type is invalid.
  • A traceback will be printed into the debug console when a callback error is thrown.
  • This fixes some vanilla callbacks crashing the game when given a bad return type (MC_POST_CURSE_EVAL, MC_GET_CARD, MC_EXECUTE_CMD, etc);
"},{"location":"changes/Debugging.html#old-callback-error-behavior","title":"Old Callback Error Behavior","text":"

Callback error behavior has been reverted back to how it was before Repentance's 1.7.9b patch.

  • A callback with an error will no longer stop every future callback from running.
  • This deprecates Mod Error Container.
"},{"location":"changes/Debugging.html#error-display","title":"Error Display","text":"

The first mod to cause a Lua error will trigger a message at the top of the screen stating the mod is causing errors. This is in the hopes that unrelated mods stop being blamed for errors.

  • This can be clicked by the user to open a read-only (unless the console has already been opened by the player) version of the debug console to help show players what exactly is wrong.
"},{"location":"changes/Debugging.html#console-error-flattening","title":"Console Error Flattening","text":"

Multiple sequential instances of the same error will be flattened in the console (not the logs). Duplicate entries will be denoted with an (x2) (x3) etc. next to the error.

"},{"location":"changes/Debugging.html#external-console-window","title":"External console window","text":"

Adding the -console launch parameter to the game will open a second window that displays debug messages created by calling printf() inside of the C++ code.

"},{"location":"changes/Debugging.html#dear-imgui","title":"Dear ImGui","text":"

We have integrated the Dear ImGui user interface library into the game. This can be brought up at any time using the key that previously brought up the vanilla debug console. Mods can add their own user interfaces into the menu with the ImGui class.

"},{"location":"changes/Debugging.html#in-game-log-viewer","title":"In-game Log Viewer","text":"

A log viewer has been built-in to the Dear ImGui menu.

  • Game, Console and REPENTOGON logs can be filtered individually.
  • The log can be searched.
"},{"location":"changes/Debugging.html#completely-overhauled-console","title":"Completely Overhauled Console","text":"

The debug console has been completely rebuilt from the ground up in Dear ImGui.

  • The new console has an intelligent autocomplete system, featuring proper tab completion and a more compact autocomplete layout.
  • The macro command has been remade from scratch. Mods can now register macros and these will show up in the new autocomplete system.
  • Mods can register commands. These will show up in the new help menu and in autocomplete.
  • Autocomplete presets can be used by Lua commands.
  • Mods can define their own custom autocomplete with MC_CONSOLE_AUTOCOMPLETE and the CUSTOM AutocompleteType.
  • The new console works on the main menu. Commands marked as \"unsafe\" on the main menu when registered are not shown in autocomplete there, and will intentionally error if attempted.
  • The new console saves command history every time a command is entered. The vanilla one only saved on console or game exit. This prevents history from being lost on a game crash.
  • A help command has been added. This lists all registered commands. Commands marked as \"unsafe\" on the main menu when registered are not shown there.
"},{"location":"changes/General.html","title":"General changes to the game or game engine","text":"

In addition to the API changes listed in the docs, REPENTOGON makes the following general behavior changes to the game:

"},{"location":"changes/General.html#lua-54","title":"Lua 5.4","text":"

The API has been ported to use Lua 5.4 instead of 5.3.

  • The generational garbage collector from 5.4 has been enabled by default, allowing for a significant performance boost.
  • We have (tentative) plans to migrate to LuaJIT in the future, which is not fully compatible with 5.4 (or even 5.2, for that matter). As a result, we ask that mods refrain from relying on any Lua 5.4-specific functionality.
"},{"location":"changes/General.html#game-window","title":"Game Window","text":"

The Game window now displays the current build version and commit hash of REPENTOGON in its name.

"},{"location":"changes/UI.html","title":"Changes made to the UI","text":""},{"location":"changes/UI.html#title-screen","title":"Title Screen","text":"
  • The current REPENTOGON commit hash is displayed above the title screen logo.
  • A scrollable changelog displaying the commit history starting from the currently installed build is accessable by pressing TAB while on the title screen.
"},{"location":"changes/UI.html#stats-menu","title":"Stats Menu","text":"

The Stats menu now displays a scrollable list of more than 40 stats, including:

  • end-boss kills
  • angel/devil deals taken
  • boss rushs cleared
  • cards/pills used
  • rocks/poop destroyed
  • secret rooms opened
  • dailys played/won
  • ...
"},{"location":"changes/UI.html#dailies-menu","title":"Dailies Menu","text":"

The Dailies menu now displays extended stats, including:

  • Target Goal
  • Total runs
  • Current Streak
  • Target Difficulty
"},{"location":"changes/UI.html#mods-menu","title":"Mods menu","text":"

The Mods menu now uses a slightly smaller font to render mod names, making it less common for text to render outside the backdrop boundaries.

"},{"location":"enums/Achievement.html","title":"Enum \"Achievement\"","text":"Value Enumerator Comment 1 MAGDALENE 2 CAIN 3 JUDAS 4 THE_WOMB 4 WOMB 5 THE_HARBINGERS 5 HARBINGERS 5 HORSEMEN 6 A_CUBE_OF_MEAT 6 CUBE_OF_MEAT 7 THE_BOOK_OF_REVELATIONS 7 BOOK_OF_REVELATIONS 8 A_NOOSE 8 TRANSENDENCE 9 THE_NAIL 9 NAIL 10 A_QUARTER 10 QUARTER 11 A_FETUS_IN_A_JAR 11 DR_FETUS 12 A_SMALL_ROCK 12 SMALL_ROCK 13 MONSTROS_LUNG 14 LIL_CHUBBY 15 LOKIS_HORNS 16 SOMETHING_FROM_THE_FUTURE 16 STEVEN 17 SOMETHING_CUTE 17 CHAD 18 SOMETHING_STICKY 18 GISH 19 A_BANDAGE 19 SUPER_BANDAGE 20 A_CROSS 20 THE_RELIC 20 RELIC 21 A_BAG_OF_PENNIES 21 BAG_OF_PENNIES 22 THE_BOOK_OF_SIN 23 BOOK_OF_SIN 23 LITTLE_GISH 24 LITTLE_STEVEN 25 LITTLE_CHAD 26 A_GAMEKID 26 GAMEKID 27 A_HALO 27 HALO 28 MR_MEGA 29 ISAAC_HOLDS_THE_D6 30 THE_SCISSORS 30 SCISSORS 31 THE_PARASITE 31 PARASITE 32 BLUE_BABY 32 QQQ 33 EVERYTHING_IS_TERRIBLE 34 IT_LIVES 35 MOMS_CONTACT 36 THE_NECRONOMICON 36 NECRONOMICON 37 BASEMENT_BOY 38 SPELUNKER_BOY 39 DARK_BOY 40 MAMAS_BOY 41 GOLDEN_GOD 42 EVE 43 MOMS_KNIFE 44 THE_RAZOR 44 RAZOR 45 GUARDIAN_ANGEL 46 A_BAG_OF_BOMBS 46 BAG_OF_BOMBS 47 A_DEMON_BABY 47 DEMON_BABY 48 A_FORGET_ME_NOW 48 FORGET_ME_NOW 49 THE_D20 49 D20 50 THE_CRUCIFIX 50 CELTIC_CROSS 51 ABEL 52 CURVED_HORN 53 SACRIFICIAL_DAGGER 54 BLOOD_LUST 54 BLOODY_LUST 55 BLOOD_PENNY 55 BLOODY_PENNY 56 BLOOD_RIGHTS 57 THE_POLAROID 57 POLAROID 58 DADS_KEY 59 THE_BLUE_CANDLE 59 BLUE_CANDLE 60 BURNT_PENNY 61 LUCKY_TOE 62 EPIC_FETUS 63 SMB_SUPER_FAN 64 COUNTERFEIT_COIN 65 COUNTERFEIT_PENNY 65 GUPPYS_HAIRBALL 66 A_FORGOTTEN_HORSEMAN 66 CONQUEST 67 SAMSON 68 SOMETHING_ICKY 68 TRIACHNID 69 PLATINUM_GOD 70 ISAACS_HEAD 71 MAGGYS_FAITH 72 JUDAS_TONGUE 73 BLUE_BABYS_SOUL 73 QQQS_SOUL 74 SAMSONS_LOCK 75 CAINS_EYE 76 EVES_BIRD_FOOT 77 THE_LEFT_HAND 77 LEFT_HAND 78 THE_NEGATIVE 78 NEGATIVE 79 DEMON_ISAAC 79 AZAZEL 80 LAZARUS 81 EDEN 82 THE_SOUL 82 THE_LOST 82 LOST 83 DEAD_BOY 84 THE_REAL_PLATINUM_GOD 84 REAL_PLATINUM_GOD 85 LUCKY_ROCK 86 THE_CELLAR 86 CELLAR 87 THE_CATACOMBS 87 CATACOMBS 88 THE_NECROPOLIS 88 NECROPOLIS 89 RUNE_OF_HAGALAZ 89 HAGALAZ 90 RUNE_OF_JERA 90 JERA 91 RUNE_OF_EHWAZ 91 EHWAZ 92 RUNE_OF_DAGAZ 92 DAGAZ 93 RUNE_OF_ANSUZ 93 ANSUZ 94 RUNE_OF_PERTHRO 94 PERTHRO 95 RUNE_OF_BERKANO 95 BERKANO 96 RUNE_OF_ALGIZ 96 ALGIZ 97 CHAOS_CARD 98 CREDIT_CARD 99 RULES_CARD 100 CARD_AGAINST_HUMANITY 101 SWALLOWED_PENNY 102 ROBO_BABY_2 103 DEATHS_TOUCH 104 TECHNOLOGY_5 105 MISSING_NO 106 ISAACS_TEARS 107 GUILLOTINE 108 JUDAS_SHADOW 109 MAGGYS_BOW 110 CAINS_OTHER_EYE 111 BLACK_LIPSTICK 112 EVES_MASCARA 113 FATE 114 BLUE_BABYS_ONLY_FRIEND 114 QQQS_ONLY_FRIEND 115 SAMSONS_CHAINS 116 LAZARUS_RAGS 117 BROKEN_ANKH 118 STORE_CREDIT 119 PANDORAS_BOX 120 SUICIDE_KING 121 BLANK_CARD 122 BOOK_OF_SECRETS 123 MYSTERIOUS_PAPER 124 MYSTERY_SACK 125 UNDEFINED 126 SATANIC_BIBLE 127 DAEMONS_TAIL 128 ABADDON 129 ISAACS_HEART 130 THE_MIND_ITEM 130 MIND 131 THE_BODY_ITEM 131 BODY 132 THE_SOUL_ITEM 132 SOUL 133 A_D100 133 D100 134 BLUE_MAP 135 THERES_OPTIONS 136 BLACK_CANDLE 137 RED_CANDLE 138 STOP_WATCH 139 WIRE_COAT_HANGER 140 IPECAC 141 EXPERIMENTAL_TREATMENT 142 KRAMPUS_UNLOCKED 142 KRAMPUS 143 HEAD_OF_KRAMPUS 144 SUPER_MEAT_BOY 145 BUTTER_BEAN 146 LITTLE_BAGGY 147 BLOOD_BAG 148 A_D4 148 D4 149 THE_LOST_POSTER 149 LOST_POSTER 149 MISSING_POSTER 150 RUBBER_CEMENT 151 STORE_UPGRADE_LV1 152 STORE_UPGRADE_LV2 153 STORE_UPGRADE_LV3 154 STORE_UPGRADE_LV4 155 UNLOCKED_ANGEL_BOSSES 155 ANGELS 156 GODHEAD 157 CHALLENGE_4_DARKNESS_FALLS 157 DARKNESS_FALLS 158 CHALLENGE_5_THE_TANK 158 THE_TANK 159 CHALLENGE_6_SOLAR_SYSTEM 159 SOLAR_SYSTEM 160 CHALLENGE_7_SUICIDE_KING 160 SUICIDE_KING_CHALLENGE 161 CHALLENGE_8_CAT_GOT_YOUR_TONGUE 161 CAT_GOT_YOUR_TONGUE 162 CHALLENGE_9_DEMO_MAN 162 DEMO_MAN 163 CHALLENGE_10_CURSED 163 CURSED 164 CHALLENGE_11_GLASS_CANNON 164 GLASS_CANNON 165 CHALLENGE_19_THE_FAMILY_MAN 165 THE_FAMILY_MAN 165 FAMILY_MAN 166 CHALLENGE_20_PURIST 166 PURIST 167 LOST_BABY 168 CUTE_BABY 169 CROW_BABY 170 SHADOW_BABY 171 GLASS_BABY 172 WRAPPED_BABY 173 BEGOTTEN_BABY 174 DEAD_BABY 175 O_BABY 175 ZERO_BABY 176 GLITCH_BABY 177 FIGHTING_BABY 178 BECAME_LORD_OF_THE_FLIES 179 FART_BABY 179 FARTING_BABY 180 PURITY 181 D12 182 BETRAYAL 183 FATES_REWARD 184 ATHAME 185 BLIND_RAGE 186 MAW_OF_THE_VOID 187 EMPTY_VESSEL 188 EDENS_BLESSING 189 SWORN_PROTECTOR 190 INCUBUS 191 KEEPER_HOLDS_A_PENNY 192 LIL_CHEST 193 CENSER 194 EVIL_EYE 195 MY_SHADOW 196 CRACKED_DICE 197 BLACK_FEATHER 198 LUSTY_BLOOD 199 LILITH 200 KEY_BUM 201 GB_BUG 202 ZODIAC 203 BOX_OF_FRIENDS 204 RIB_OF_GREED 205 CRY_BABY 206 RED_BABY 207 GREEN_BABY 208 BROWN_BABY 209 BLUE_COOP_BABY 210 LIL_BABY 211 RAGE_BABY 212 BLACK_BABY 213 LONG_BABY 214 YELLOW_BABY 215 WHITE_BABY 216 BIG_BABY 217 NOOSE_BABY 218 RUNE_BAG 219 CAMBION_CONCEPTION 220 SERPENTS_KISS 221 SUCCUBUS 222 IMMACULATE_CONCEPTION 223 GOAT_HEAD_BABY 224 GOLD_HEART 224 GOLDEN_HEARTS 225 GET_OUT_OF_JAIL_FREE_CARD 225 GET_OUT_OF_JAIL_FREE 226 GOLD_BOMB 226 GOLDEN_BOMBS 227 TWO_NEW_PILLS 228 TWO_NEW_PILLS_2 229 POKER_CHIP 230 STUD_FINDER 231 D8 232 KIDNEY_STONE 233 BLANK_RUNE 234 BLUE_WOMB 235 ONE_THOUSAND_AND_ONE_PERCENT 235 NERD_1_MILLION 236 KEEPER_HOLDS_WOODEN_NICKEL 237 KEEPER_HOLDS_STORE_KEY 238 DEEP_POCKETS 239 KARMA 240 STICKY_NICKELS 241 SUPER_GREED_BABY 242 LUCKY_PENNIES 243 SPECIAL_HANGING_SHOPKEEPERS 244 WOODEN_NICKEL 245 CAIN_HOLDS_PAPERCLIP 246 EVERYTHING_IS_TERRIBLE_2 247 SPECIAL_SHOPKEEPERS 248 EVE_HOLDS_RAZOR_BLADE 249 STORE_KEY 250 THE_LOST_HOLDS_HOLY_MANTLE 250 LOST_HOLDS_HOLY_MANTLE 251 KEEPER 252 HIVE_BABY 253 BUDDY_BABY 254 COLORFUL_BABY 255 WHORE_BABY 256 CRACKED_BABY 257 DRIPPING_BABY 258 BLINDING_BABY 259 SUCKY_BABY 260 DARK_BABY 261 PICKY_BABY 262 REVENGE_BABY 263 BELIAL_BABY 264 SALE_BABY 265 CHALLENGE_21_XXXXXXXXL 265 XXXXXXXXL 266 CHALLENGE_22_SPEED 266 SPEED 267 CHALLENGE_23_BLUE_BOMBER 267 BLUE_BOMBER 268 CHALLENGE_24_PAY_TO_PLAY 268 PAY_TO_PLAY 269 CHALLENGE_25_HAVE_A_HEART 269 HAVE_A_HEART 270 CHALLENGE_26_I_RULE 270 I_RULE 271 CHALLENGE_27_BRAINS 271 BRAINS 272 CHALLENGE_28_PRIDE_DAY 272 PRIDE_DAY 273 CHALLENGE_29_ONANS_STREAK 273 ONANS_STREAK 274 CHALLENGE_30_THE_GUARDIAN 274 THE_GUARDIAN 275 GENEROSITY 276 MEGA_BLAST 277 CHALLENGE_31_BACKASSWARDS 277 BACKASSWARDS 278 CHALLENGE_32_APRILS_FOOL 278 APRILS_FOOL 279 CHALLENGE_33_POKEY_MANS 279 POKEY_MANS 280 CHALLENGE_34_ULTRA_HARD 280 ULTRA_HARD 281 CHALLENGE_35_PONG 281 PONG 282 D_INFINITY 283 EUCHARIST 284 SILVER_DOLLAR 285 SHADE 286 KING_BABY 287 BLOODY_CROWN 288 DULL_RAZOR 289 EDENS_SOUL 290 DARK_PRINCES_CROWN 291 COMPOUND_FRACTURE 292 EUTHANASIA 293 HOLY_CARD 294 CROOKED_CARD 295 VOID 296 D1 297 GLYPH_OF_BALANCE 298 SACK_OF_SACKS 299 EYE_OF_BELIAL 300 MECONIUM 301 STEM_CELL 302 CROW_HEART 303 METRONOME 304 BAT_WING 305 PLAN_C 306 DUALITY 307 DADS_LOST_COIN 308 EYE_OF_GREED 309 BLACK_RUNE 310 LOCUST_OF_WRATH 311 LOCUST_OF_PESTILENCE 312 LOCUST_OF_FAMINE 313 LOCUST_OF_DEATH 314 LOCUST_OF_CONQUEST 315 HUSHY 316 BROWN_NUGGET 317 MORT_BABY 318 SMELTER 319 APOLLYON_BABY 320 UNLOCKED_A_NEW_AREA 320 THE_VOID 320 VOID_FLOOR 321 ONCE_MORE_WITH_FEELING 321 GULP_PILL 322 HAT_TRICK 322 ACE_OF_CLUBS 323 FIVE_NIGHTS_AT_MOMS 323 SUPER_SPECIAL_ROCKS 324 SIN_COLLECTOR 324 FEELS_LIKE_IM_WALKING_ON_SUNSHINE 324 SUNSHINE_PILL 325 DEDICATION 325 HORF 326 ZIP 326 ACE_OF_DIAMONDS 327 ITS_THE_KEY 327 ACE_OF_SPADES 328 MR_RESETTER 328 SCARED_HEART 329 LIVING_ON_THE_EDGE 329 ACE_OF_HEARTS 330 U_BROKE_IT 330 VURP 331 LAZARUS_BLEEDS_MORE 331 LAZARUS_HOLDS_ANEMIA 332 MAGGY_HOLDS_A_PILL 332 MAGDALENE_HOLDS_A_PILL 333 CHARGED_KEY 334 SAMMSON_FEELS_HEALTHY 334 SAMSON_HOLDS_CHILDS_HEART 335 GREEDS_GULLET 336 CRACKED_CROWN 337 UNLOCKED_RERUNS 337 RERUNS 338 DELIRIOUS 339 ONE_MILLION_PERCENT_JUST_STOP 339 ONE_MILLION_PERCENT 339 JUST_STOP 340 THE_DESTROYER 340 APOLLYON 341 GREEDIER 342 BURNING_BASEMENT 343 FLOODED_CAVES 344 DANK_DEPTHS 345 SCARRED_WOMB 346 SOMETHING_WICKED 347 SOMETHING_WICKED_PLUS 347 SOMETHING_WICKED_2 348 THE_GATE_IS_OPEN 349 BLACK_HOLE 350 MYSTERY_GIFT 351 SPRINKLER 352 ANGRY_FLY 353 BOZO 354 BROKEN_MODEM 355 BUDDY_IN_A_BOX 356 FAST_BOMBS 357 LIL_DELIRIUM 358 HAIRPIN 359 WOODEN_CROSS 360 BUTTER 361 HUGE_GROWTH 362 ANCIENT_RECALL 363 ERA_WALK 364 COUPON 365 TELEKINESIS 366 MOVING_BOX 367 JUMPER_CABLES 368 LEPROSY 369 TECHNOLOGY_ZERO 370 FILIGREE_FEATHER 371 MR_ME 372 SEVEN_SEALS 373 ANGELIC_PRISM 374 POP 375 DOOR_STOP 376 DEATHS_LIST 377 HAEMOLACHRIA 378 LACHRYPHAGY 379 SCHOOLBAG 380 TRISAGION 381 EXTENSION_CORD 382 FLAT_STONE 383 SACRIFICAL_ALTAR 384 LIL_SPEWER 385 BLANKET 386 MARBLES 387 MYSTERY_EGG 388 ROTTEN_PENNY 389 BABY_BENDER 390 THE_FORGOTTEN 390 FORGOTTEN 391 BONE_HEARTS 392 MARROW 393 SLIPPED_RIB 394 POINTY_RIB 395 JAW_BONE 396 BRITTLE_BONES 397 DIVORCE_PAPERS 398 HALLOWED_GROUND 399 FINGER_BONE 400 DADS_RING 401 BOOK_OF_THE_DEAD 402 BONE_BABY 403 BOUND_BABY 404 BETHANY 405 JACOB_AND_ESAU 406 THE_STARS_ARE_CALLING 406 PLANETARIUMS 407 UNLOCKED_A_SECRET_EXIT 407 SECRET_EXIT 407 ALT_PATH 407 ANTIBIRTH_PATH 408 FORGOTTEN_LULLABY 409 FRUITY_PLUM 410 PLUM_FLUTE 411 ROTTEN_HEARTS 412 DROSS 413 ASHPIT 414 GEHENNA 415 RED_KEY 416 WISP_BABY 417 BOOK_OF_VIRTUES 418 URN_OF_SOULS 419 BLESSED_PENNY 420 ALABASTER_BOX 421 BETHS_FAITH 422 SOUL_LOCKET 423 DIVINE_INTERVENTION 424 VADE_RETRO 425 STAR_OF_BETHLEHEM 426 HOPE_BABY 427 GLOWING_BABY 428 DOUBLE_BABY 429 THE_STAIRWAY 429 STAIRWAY 430 RED_STEW 431 BIRTHRIGHT 432 DAMOCLES 433 ROCK_BOTTOM 434 INNER_CHILD 435 VANISHING_TWIN 436 GENESIS 437 SUPLEX 438 SOLOMONS_BABY 439 ILLUSION_BABY 440 MEAT_CLEAVER 441 OPTIONS 441 OPTIONS_Q 442 YUCK_HEART 443 CANDY_HEART 444 GUPPYS_EYE 445 A_POUND_OF_FLESH 445 POUND_OF_FLESH 446 AKELDAMA 447 REDEMPTION 448 ETERNAL_D6 449 MONTEZUMAS_REVENGE 450 BIRD_CAGE 451 CRACKED_ORB 452 BLOODY_GUST 453 EMPTY_HEART 454 DEVILS_CROWN 455 LIL_ABADDON 456 TINYTOMA 457 ASTRAL_PROJECTION 458 M 458 APOSTROPHE_M 459 EVERYTHING_JAR 460 LOST_SOUL 461 HUNGRY_SOUL 462 BLOOD_PUPPY 463 C_SECTION 464 KEEPERS_SACK 465 KEEPERS_BOX 466 LIL_PORTAL 467 WORM_FRIEND 468 BONE_SPURS 469 SPIRIT_SHACKLES 470 REVELATION 471 JAR_OF_WISPS 472 MAGIC_SKIN 473 FRIEND_FINDER 474 TAINTED_ISAAC 475 TAINTED_MAGGY 475 TAINTED_MAGDALENE 476 TAINTED_CAIN 477 TAINTED_JUDAS 478 TAINTED_BLUE_BABY 478 TAINTED_QQQ 479 TAINTED_EVE 480 TAINTED_SAMSON 481 TAINTED_AZAZEL 482 TAINTED_LAZARUS 483 TAINTED_EDEN 484 TAINTED_THE_LOST 484 TAINTED_LOST 485 TAINTED_LILITH 486 TAINTED_KEEPER 487 TAINTED_APOLLYON 488 TAINTED_THE_FORGOTTEN 488 TAINTED_FORGOTTEN 489 TAINTED_BETHANY 490 TAINTED_JACOB 490 TAINTED_JACOB_AND_ESAU 491 GLITCHED_CROWN 492 BELLY_JELLY 493 BLUE_KEY 494 SANGUINE_BOND 495 THE_SWARM 495 SWARM 496 HEARTBREAK 497 LARYNX 498 AZAZELS_RAGE 499 SALVATION 500 TMTRAINER 501 SACRED_ORB 502 TWISTED_PAIR 503 STRAWMAN 504 ECHO_CHAMBER 505 ISAACS_TOMB 506 VENGEFUL_SPIRIT 507 ESAU_JR 508 CHALLENGE_37_BLOODY_MARY 508 BLOODY_MARY 509 CHALLENGE_38_BAPTISM_BY_FIRE 509 BAPTISM_BY_FIRE 510 CHALLENGE_39_ISAACS_AWAKENING 510 ISAACS_AWAKENING 511 CHALLENGE_40_SEEING_DOUBLE 511 SEEING_DOUBLE 512 CHALLENGE_41_PICA_RUN 512 PICA_RUN 513 CHALLENGE_42_HOT_POTATO 513 HOT_POTATO 514 CHALLENGE_43_CANTRIPPED 514 CANTRIPPED 515 CHALLENGE_44_RED_REDEMPTION 515 RED_REDEMPTION 516 CHALLENGE_45_DELETE_THIS 516 DELETE_THIS 517 DIRTY_MIND 518 SIGIL_OF_BAPHOMET 519 PURGATORY 520 SPIRIT_SWORD 521 BROKEN_GLASSES 522 ICE_CUBE 523 CHARGED_PENNY 524 REVERSED_THE_FOOL 524 REVERSED_FOOL 525 REVERSED_THE_MAGICIAN 525 REVERSED_MAGICIAN 526 REVERSED_THE_HIGH_PRIESTESS 526 REVERSED_HIGH_PRIESTESS 527 REVERSED_THE_EMPRESS 527 REVERSED_EMPRESS 528 REVERSED_THE_EMPEROR 528 REVERSED_EMPEROR 529 REVERSED_THE_HEIROPHANT 529 RESERVED_HEIROPHANT 530 REVERSED_THE_LOVERS 530 REVERSED_LOVERS 531 REVERSED_THE_CHARIOT 531 REVERSED_CHARIOT 532 REVERSED_JUSTICE 533 REVERSED_THE_HERMIT 533 REVERSED_HERMIT 534 REVERSED_WHEEL_OF_FORTUNE 535 REVERSED_STRENGTH 536 REVERSED_THE_HANGED_MAN 536 REVERSED_HANGED_MAN 537 REVERSED_DEATH 538 REVERSED_TEMPERANCE 539 REVERSED_THE_DEVIL 539 REVERSED_DEVIL 540 REVERSED_THE_TOWER 540 REVERSED_TOWER 541 REVERSED_THE_STARS 541 REVERSED_STARS 542 REVERSED_THE_SUN_AND_THE_MOON 542 REVERSED_SUN_AND_MOON 543 REVERSED_JUDGEMENT 544 REVERSED_THE_WORLD 544 REVERSED_WORLD 545 OLD_CAPACITOR 546 BRIMSTONE_BOMBS 547 MEGA_MUSH 548 MOMS_LOCK 549 DICE_BAG 550 HOLY_CROWN 551 MOTHERS_KISS 552 GILDED_KEY 553 LUCKY_SACK 554 YOUR_SOUL 555 NUMBER_MAGNET 556 DINGLE_BERRY 557 RING_CAP 558 STRANGE_KEY 559 LIL_CLOT 560 TEMPORARY_TATTOO 561 SWALLOWED_M80 562 WICKED_CROWN 563 AZAZELS_STUMP 564 TORN_POCKET 565 TORN_CARD 566 NUH_UH 567 MODELING_CLAY 568 KIDS_DRAWING 569 CRYSTAL_KEY 570 THE_TWINS 571 ADOPTION_PAPERS 572 KEEPERS_BARGAIN 573 CURSED_PENNY 574 CRICKET_LEG 575 APOLLYONS_BEST_FRIEND 576 POLISHED_BONE 577 HOLLOW_HEART 578 EXPANSION_PACK 579 BETHS_ESSENCE 580 RC_REMOTE 581 FOUND_SOUL 582 MEMBER_CARD 583 GOLDEN_RAZOR 584 SPINDOWN_DICE 585 HYPERCOAGULATION 586 BAG_OF_CRAFTING 587 DARK_ARTS 588 IBS 589 SUMPTORIUM 590 BERSERK 591 HEMOPTYSIS 592 FLIP 593 CORRUPTED_DATA 594 GHOST_BOMBS 595 GELLO 596 KEEPERS_KIN 597 ABYSS 598 DECAP_ATTACK 599 LEMEGETON 600 ANIMA_SOLA 601 MEGA_CHEST 602 QUEEN_OF_HEARTS 603 GOLD_PILL 603 GOLDEN_PILLS 604 BLACK_SACK 605 CHARMING_POOP 606 HORSE_PILLS 607 CRANE_GAME 608 HELL_GAME 609 WOODEN_CHEST 610 WILD_CARD 611 HAUNTED_CHEST 612 FOOLS_GOLD 613 GOLDEN_PENNY 613 GOLDEN_PENNIES 614 ROTTEN_BEGGAR 615 GOLDEN_BATTERY 615 GOLDEN_BATTERIES 616 CONFESSIONAL 617 GOLDEN_TRINKET 617 GOLDEN_TRINKETS 618 SOUL_OF_ISAAC 619 SOUL_OF_MAGDALENE 619 SOUL_OF_MAGGY 620 SOUL_OF_CAIN 621 SOUL_OF_JUDAS 622 SOUL_OF_BLUE_BABY 622 SOUL_OF_QQQ 623 SOUL_OF_EVE 624 SOUL_OF_SAMSON 625 SOUL_OF_AZAZEL 626 SOUL_OF_LAZARUS 627 SOUL_OF_EDEN 628 SOUL_OF_THE_LOST 628 SOUL_OF_LOST 629 SOUL_OF_LILITH 630 SOUL_OF_THE_KEEPER 630 SOUL_OF_KEEPER 631 SOUL_OF_APOLLYON 632 SOUL_OF_THE_FORGOTTEN 632 SOUL_OF_FORGOTTEN 633 SOUL_OF_BETHANY 634 SOUL_OF_JACOB 634 SOUL_OF_JACOB_AND_ESAU 635 A_STRANGE_DOOR 635 STRANGE_DOOR 635 ASCENT_DOOR 636 DEATH_CERTIFICATE 637 DEAD_GOD","tags":["Enum"]},{"location":"enums/AnimRenderFlags.html","title":"AnimRenderFlags","text":"Warning

The flags contained in Sprite and LayerState are added together during rendering, thus if one is set in Sprite but not LayerState it will still take effect for that layer.

Not fully documented yet, sorry! (A test script is provided below if you'd like to help document this)

Bitset Calculator

","tags":["Enum"]},{"location":"enums/AnimRenderFlags.html#enum-animrenderflags","title":"Enum \"AnimRenderFlags\"","text":"Value Enumerator Comment 1<<1 GLITCH Rapidly distorts the spritesheet position. Likely used for glitch items generated by CORRUPTED DATA. 1<<4 COLOROFFSET_CHAMPION Used by champion NPCs. If not applied to a champion NPC, it will not render. 1<<5 STATIC Used by Dogma (boss, collectible, related effects). 1<<6 IGNORE_GAME_TIME If set, animated effects (static, golden) will continue animating even if the game is paused. 1<<7 GOLDEN Used by golden trinkets. 1<<10 ENABLE_LAYER_LIGHTING Layer names starting with * will become fullbright. 1<<11 ENABLE_NULL_LAYER_LIGHTING Null layer names starting with * will emit light. Test script

This script will print to both the console and log whenever an entity has flags applied to it:

local mod = RegisterMod(\"REPENTOTEST\", 1)\n\nlocal function debugprint(string)\n    print(string)\n    Isaac.DebugString(string)\nend\n\nfunction getfilename(sprite)\n    local name = sprite:GetFilename()\n    local index = string.find(name, \"/[^/]*$\")\n    return string.sub(name, index+1, string.len(name))\nend\n\nfunction printmessage(entity, sprite)\n    debugprint(\"For entity \"..entity.Type..\".\"..entity.Variant..\".\"..entity.SubType..\", frame \"..tostring(entity.FrameCount)..\", \"..\"\\\"\"..getfilename(sprite)..\"\\\":\")\nend\n\nfunction splitflags(n) --https://stackoverflow.com/questions/30445776/lua-decompose-a-number-by-powers-of-2\n    local res = {}\n    local ret = \"\"\n    i = 1\n    while i <= n do\n        if i&n ~= 0 then -- bitwise and check\n            table.insert(res, i)\n        end\n        i = i << 1 -- bitwise shift to the left\n    end\n\n    local count = 0\n    for _ in ipairs(res) do count = count + 1 end\n\n    for j,v in ipairs(res) do\n        local num = math.floor(math.log(v, 2 ))\n        if num == 0 then\n            ret = ret..\"1\"\n        else\n            ret = ret..\"1<<\"..num\n        end\n        if j ~= count then\n            ret = ret..\", \"\n        else\n            ret = ret..\" (\"..n..\")\"\n        end\n    end\n    return ret\nend\n\nfunction mod:CheckFlags(entity)\n    local data = entity:GetData()\n    local sprite = entity:GetSprite()\n    local anm2Flags = sprite:GetRenderFlags()\n    local layers = sprite:GetAllLayers()\n\n    local didmessage = false\n    if data.layerFlags == nil then\n        data.layerFlags = {}\n    end\n\n    if anm2Flags > 0 and anm2Flags ~= data.anm2Flags then\n        if not didmessage then\n            printmessage(entity, sprite)\n            didmessage = true\n        end\n        debugprint(\"[Sprite]: \"..splitflags(anm2Flags))\n        data.anm2Flags = anm2Flags\n    end\n\n    local layerFlags\n    for i = 1, #layers do\n        layerFlags = layers[i]:GetRenderFlags()\n        if layerFlags > 0 and layerFlags ~= data.layerFlags[i] then\n            if not didmessage then\n                printmessage(entity, sprite)\n                didmessage = true\n            end\n            debugprint(\"[\"..tostring(i)..\"] \\\"\"..layers[i]:GetName()..\"\\\": \"..splitflags(layerFlags))\n            data.layerFlags[i] = layerFlags\n        end\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_TEAR_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_FAMILIAR_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_BOMB_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_SLOT_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_LASER_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_KNIFE_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_PROJECTILE_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_NPC_RENDER, mod.CheckFlags)\nmod:AddCallback(ModCallbacks.MC_POST_EFFECT_RENDER, mod.CheckFlags)\n
","tags":["Enum"]},{"location":"enums/AnnouncerVoiceMode.html","title":"Enum \"AnnouncerVoiceMode\"","text":"Value Enumerator Comment 0 RANDOM 1 NEVER 1 OFF 2 ALWAYS","tags":["Enum"]},{"location":"enums/AutocompleteType.html","title":"Enum \"AutocompleteType\"","text":"Value Enumerator Comment 0 NONE 1 ENTITY 2 GOTO 3 STAGE 4 GRID 5 DEBUG_FLAG 6 ITEM 7 CHALLENGE 8 COMBO 9 CUTSCENE 10 MACRO 11 SFX 12 CURSE 13 METRO 14 DELIRIOUS 15 PLAYER 16 ACHIEVEMENT 17 MODFOLDER 18 CUSTOM","tags":["Enum"]},{"location":"enums/BagOfCraftingPickup.html","title":"Enum \"BagOfCraftingPickup\"","text":"Value Enumerator Comment 0 BOC_NONE 1 BOC_RED_HEART 2 BOC_SOUL_HEART 3 BOC_BLACK_HEART 4 BOC_ETERNAL_HEART 5 BOC_GOLD_HEART 6 BOC_BONE_HEART 7 BOC_ROTTEN_HEART 8 BOC_PENNY 9 BOC_NICKEL 10 BOC_DIME 11 BOC_LUCKY_PENNY 12 BOC_KEY 13 BOC_GOLD_KEY 14 BOC_CHARGED_KEY 15 BOC_BOMB 16 BOC_GOLD_BOMB 17 BOC_GIGA_BOMB 18 BOC_MINI_BATTERY 19 BOC_BATTERY 20 BOC_MEGA_BATTERY 21 BOC_CARD 22 BOC_PILL 23 BOC_RUNE 24 BOC_DICE_SHARD 25 BOC_CRACKED_KEY 26 BOC_GOLD_PENNY 27 BOC_GOLD_PILL 28 BOC_GOLD_BATTERY 29 BOC_POOP","tags":["Enum"]},{"location":"enums/BombCostumeLayer.html","title":"Enum \"BombCostumeLayer\"","text":"Value Enumerator Comment 0 BACK 1 BODY2 2 FRONT 3 FRONT2 4 OVERLAY","tags":["Enum"]},{"location":"enums/BossType.html","title":"Enum \"BossType\"","text":"Value Enumerator Comment 1 MONSTRO 2 LARRY_JR 3 CHUB 4 GURDY 5 MONSTRO_2 5 MONSTRO_II 6 MOM 7 SCOLEX 8 MOMS_HEART 9 FAMINE 10 PESTILENCE 11 WAR 12 DEATH 13 DUKE_OF_FLIES 14 PEEP 15 LOKI 16 BLASTOCYST 17 GEMINI 18 FISTULA 19 GISH 20 STEVEN 21 CHAD 22 HEADLESS_HORSEMAN 23 THE_FALLEN 23 FALLEN 24 SATAN 25 IT_LIVES 26 THE_HOLLOW 26 HOLLOW 27 THE_CARRION_QUEEN 27 CARRION_QUEEN 28 GURDY_JR 29 THE_HUSK 29 HUSK 30 THE_BLOAT 30 BLOAT 31 LOKII 32 THE_BLIGHTED_OVUM 32 BLIGHTED_OVUM 33 TERATOMA 34 THE_WIDOW 34 WIDOW 35 MASK_OF_INFAMY 36 THE_WRETCHED 36 WRETCHED 37 PIN 38 CONQUEST 39 ISAAC 40 BLUE_BABY 40 QQQ 41 DADDY_LONG_LEGS 42 TRIACHNID 43 THE_HAUNT 43 HAUNT 44 DINGLE 45 MEGA_MAW 46 THE_GATE 46 GATE 47 MEGA_FATTY 48 THE_CAGE 48 CAGE 49 MEGA_GURDY 50 DARK_ONE 51 THE_ADVERSARY 51 ADVERSARY 52 POLYCEPHALUS 53 MR_FRED 54 THE_LAMB 54 LAMB 55 MEGA_SATAN 56 GURGLINGS 57 THE_STAIN 57 STAIN 58 BROWNIE 59 THE_FORSAKEN 59 FORSAKEN 60 LITTLE_HORN 61 RAG_MAN 62 ULTRA_GREED 63 HUSH 64 DANGLE 65 TURDLINGS 66 THE_FRAIL 66 FRAIL 67 RAG_MEGA 68 SISTERS_VIS 69 BIG_HORN 70 DELIRIUM 71 ULTRA_GREEDIER 72 THE_MATRIACH 72 MATRIARCH 73 THE_PILE 73 PILE 74 REAP_CREEP 75 LIL_BLUB 75 BEELZEBLUB 76 WORMWOOD 77 THE_RAINMAKER 77 RAINMAKER 78 THE_VISAGE 78 VISAGE 79 THE_SIREN 79 SIREN 80 TUFF_TWINS 81 THE_HERETIC 81 HERETIC 82 HORNFEL 83 GREAT_GIDEON 84 BABY_PLUM 85 THE_SCOURGE 85 SCOURGE 86 CHIMERA 87 ROTGUT 88 MOTHER 89 MOM_MAUSOLEUM 89 MAUS_MOM 90 MOMS_HEART_MAUSOLEUM 90 MAUS_HEART 91 MIN_MIN 92 CLOG 93 SINGE 94 BUMBINO 95 COLOSTOMIA 96 THE_SHELL 96 SHELL 97 TURDLET 98 RAGLICH 99 DOGMA 100 THE_BEAST 100 BEAST 101 HORNY_BOYS 102 CLUTCH 103 CADAVRA","tags":["Enum"]},{"location":"enums/CameraStyle.html","title":"Enum \"CameraStyle\"","text":"Value Enumerator Comment 1 ACTIVE_CAM_ON 2 ACTIVE_CAM_OFF","tags":["Enum"]},{"location":"enums/CompletionType.html","title":"Enum \"CompletionType\"","text":"Value Enumerator Comment 0 MOMS_HEART 1 ISAAC 2 SATAN 3 BOSS_RUSH 4 BLUE_BABY 5 LAMB 6 MEGA_SATAN 7 ULTRA_GREED 9 HUSH 11 ULTRA_GREEDIER 12 DELIRIUM 13 MOTHER 14 BEAST","tags":["Enum"]},{"location":"enums/ConsoleFont.html","title":"Enum \"ConsoleFont\"","text":"Value Enumerator Comment 0 DEFAULT 1 SMALL 2 TINY","tags":["Enum"]},{"location":"enums/DebugFlag.html","title":"Enum \"DebugFlag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 ENTITY_POSITIONS 1 << 1 GRID 1 << 2 INFINITE_HP 1 << 3 HIGH_DAMAGE 1 << 4 ROOM_INFO 1 << 5 HITSPHERES 1 << 6 DAMAGE_VALUES 1 << 7 INFINITE_ITEM_CHARGES 1 << 8 HIGH_LUCK 1 << 9 QUICK_KILL 1 << 10 GRID_INFO 1 << 11 PLAYER_ITEM_INFO 1 << 12 GRID_COLLISION_POINTS 1 << 13 LUA_MEMORY_USAGE","tags":["Enum"]},{"location":"enums/DeliriumCallbacks.html","title":"Enum \"DeliriumCallbacks\"","text":"

This is a list of callbacks exclusive to the behavior of Delirium. These callbacks live under a different namespace as they are too specific when compared to the more general ones found in ModCallbacks.

"},{"location":"enums/DeliriumCallbacks.html#transformation","title":"TRANSFORMATION","text":"

This callback is fired immediately before the game transforms Delirium into a boss (this also includes when Delirium returns to its normal form). Accepts four parameters: Delirium, Type, Variant and Force. Delirium is the instance of Delirium that is transforming. Type and Variant are the type and variant of the selected boss. Force is set to false if the game performed the transformation by itself, true if the transformation was requested by the modding API.

You may return the following values:

  • true: lets the transformation happen without changing anything.
  • false: prevents the transformation, Delirium will remain the same.
  • a table containing at least one value. The first value in this table (index 1, mandatory) is the type of the desired transformation; the second value in this table (index 2, optional, defaults to 0) is the variant of the desired transformation; other indices are ignored.
  • any other value will let the transformation occur naturally.
Name Function Args Optional Args Return Type TRANSFORMATION (EntityDelirium Delirium, int Type, int Variant, bool Force) - boolean or table"},{"location":"enums/DeliriumCallbacks.html#post_transformation","title":"POST_TRANSFORMATION","text":"

This callback is fired immediately after the game transform Delirium into a boss (this also includes when Delirium returns to its normal form or transforms into the same boss). Accepts one parameter: Delirium, which is the instance of Delirium that transformed. This callback returns nothing.

Name Function Args Optional Args Return Type POST_TRANSFORMATION (EntityDelirium Delirium) - void"},{"location":"enums/DialogButtons.html","title":"Enum \"DialogButtons\"","text":"Value Enumerator Comment 0 OK 1 OK_CANCEL 2 ABORT_RETRY_IGNORE 3 YES_NO_CANCEL 4 YES_NO 5 RETRY_CANCEL 6 CANCEL_TRY_CONTINUE 16384 HELP","tags":["Enum"]},{"location":"enums/DialogIcons.html","title":"Enum \"DialogIcons\"","text":"Value Enumerator Comment 16 ERROR 16 HAND 16 STOP 32 QUESTION 48 EXCLAMATION 48 WARNING 64 ASTERISK 64 INFORMATION","tags":["Enum"]},{"location":"enums/DialogReturn.html","title":"Enum \"DialogReturn\"","text":"Value Enumerator Comment 1 OK 2 CANCEL 3 ABORT 4 RETRY 5 IGNORE 6 YES 7 NO 10 TRY_AGAIN 11 CONTINUE","tags":["Enum"]},{"location":"enums/Dimension.html","title":"Enum \"Dimension\"","text":"Value Enumerator Comment -1 CURRENT 0 NORMAL 1 KNIFE_PUZZLE 1 MIRROR 1 MINESHAFT 2 DEATH_CERTIFICATE","tags":["Enum"]},{"location":"enums/DipSubType.html","title":"Enum \"DipSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 RED 2 CHUNKY 2 CORN 3 GOLDEN 4 RAINBOW 5 BLACK 6 HOLY 6 WHITE 12 STONE 12 PETRIFIED 13 FLAMING 14 STINKY 14 POISON 20 BROWNIE","tags":["Enum"]},{"location":"enums/Ending.html","title":"Enum \"Ending\"","text":"Value Enumerator Comment 1 DIE 2 EPILOGUE 3 CREDITS 4 SATAN 4 ENDING_12 5 ISAAC 5 ENDING_13 6 LAMB 6 ENDING_15 7 BLUE_BABY 7 ENDING_14 8 MEGA_SATAN 8 ENDING_16 9 ULTRA_GREED 9 ENDING_18 10 HUSH 10 ENDING_17 11 DELIRIUM 11 ENDING_20 12 ULTRA_GREEDIER 12 ENDING_19 13 MOTHER 13 ENDING_21 14 BEAST 14 FINAL_ENDING","tags":["Enum"]},{"location":"enums/EntityPoopVariant.html","title":"Enum \"EntityPoopVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 GOLDEN 11 STONE 11 PETRIFIED 12 CHUNKY 12 CORN 13 FLAMING 14 STINKY 14 POISON 15 BLACK 16 HOLY 16 WHITE","tags":["Enum"]},{"location":"enums/EntityTag.html","title":"Enum \"EntityTag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 FLY 1 << 1 SPIDER 1 << 3 GHOST 1 << 4 NOREROLL 1 << 5 CANSACRIFICE 1 << 6 EXPLOSIVE_SOUL 1 << 7 HOMING_SOUL 1 << 8 BRIMSTONE_SOUL 1 << 9 NODELIRIUM","tags":["Enum"]},{"location":"enums/EventCounter.html","title":"Enum \"EventCounter\"","text":"Value Enumerator Comment 0 NULL Seems unused 1 MOM_KILLS Stat from the stat screen. Counts kills of Moms heart (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 2 ROCKS_DESTROYED Includes all rock types including tinted rocks 3 TINTED_ROCKS_DESTROYED 4 SUPER_SPECIAL_ROCKS_DESTROYED Super Special Rocks are Tinted Rock variants with smaller marks and lack of discoloration 5 POOP_DESTROYED Includes all poop types. Red poop counts everytime it gets destroyed 6 PILLS_EATEN Includes all pills including horse pills 7 XIII_DEATH_CARD_USED 8 UNKNOWN_EVENT_8 9 ARCADES_ENTERED Also includes teleports with goto. 10 DEATHS does not increase when revived 11 ISAAC_KILLS How often was the final boss of cathedral killed. (Isaac) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 12 SHOPKEEPER_KILLED 13 SATAN_KILLS How often was the final boss of sheol killed. (Satan) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 14 SHELLGAMES_PLAYED How often the shellgame was played 15 ANGEL_DEALS_TAKEN 16 DEVIL_DEALS_TAKEN 17 BLOOD_DONATION_MACHINE_USED 18 SLOT_MACHINES_BROKEN 20 DONATE_MACHINE_COUNTER 20 DONATION_MACHINE_COUNTER 21 EDEN_TOKENS 22 STREAK_COUNTER counts your current streak. 23 BEST_STREAK 24 BLUE_BABY_KILLS How often was the final boss of chest killed. (??? - Blue Baby) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 25 LAMB_KILLS How often was the final boss of dark room killed. (The lamb) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 26 MEGA_SATAN_KILLS 27 PROGRESSION_KILL_MOMS_HEART_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 28 PROGRESSION_KILL_MOMS_HEART_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 29 PROGRESSION_KILL_MOMS_HEART_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 30 PROGRESSION_KILL_MOMS_HEART_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 31 PROGRESSION_KILL_MOMS_HEART_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 32 PROGRESSION_KILL_MOMS_HEART_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 33 PROGRESSION_KILL_MOMS_HEART_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 34 PROGRESSION_KILL_MOMS_HEART_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 35 PROGRESSION_KILL_MOMS_HEART_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 36 PROGRESSION_KILL_MOMS_HEART_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 37 PROGRESSION_KILL_MOMS_HEART_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 38 PROGRESSION_KILL_MOMS_HEART_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 39 PROGRESSION_KILL_MOMS_HEART_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 40 PROGRESSION_KILL_MOMS_HEART_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 41 PROGRESSION_KILL_ISAAC_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 42 PROGRESSION_KILL_ISAAC_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 43 PROGRESSION_KILL_ISAAC_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 44 PROGRESSION_KILL_ISAAC_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 45 PROGRESSION_KILL_ISAAC_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 46 PROGRESSION_KILL_ISAAC_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 47 PROGRESSION_KILL_ISAAC_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 48 PROGRESSION_KILL_ISAAC_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 49 PROGRESSION_KILL_ISAAC_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 50 PROGRESSION_KILL_ISAAC_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 51 PROGRESSION_KILL_ISAAC_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 52 PROGRESSION_KILL_ISAAC_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 53 PROGRESSION_KILL_ISAAC_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 54 PROGRESSION_KILL_ISAAC_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 55 PROGRESSION_KILL_SATAN_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 56 PROGRESSION_KILL_SATAN_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 57 PROGRESSION_KILL_SATAN_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 58 PROGRESSION_KILL_SATAN_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 59 PROGRESSION_KILL_SATAN_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 60 PROGRESSION_KILL_SATAN_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 61 PROGRESSION_KILL_SATAN_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 62 PROGRESSION_KILL_SATAN_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 63 PROGRESSION_KILL_SATAN_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 64 PROGRESSION_KILL_SATAN_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 65 PROGRESSION_KILL_SATAN_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 66 PROGRESSION_KILL_SATAN_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 67 PROGRESSION_KILL_SATAN_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 68 PROGRESSION_KILL_SATAN_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 69 PROGRESSION_BOSSRUSH_CLEARED_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 70 PROGRESSION_BOSSRUSH_CLEARED_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 71 PROGRESSION_BOSSRUSH_CLEARED_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 72 PROGRESSION_BOSSRUSH_CLEARED_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 73 PROGRESSION_BOSSRUSH_CLEARED_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 74 PROGRESSION_BOSSRUSH_CLEARED_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 75 PROGRESSION_BOSSRUSH_CLEARED_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 76 PROGRESSION_BOSSRUSH_CLEARED_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 77 PROGRESSION_BOSSRUSH_CLEARED_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 78 PROGRESSION_BOSSRUSH_CLEARED_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 79 PROGRESSION_BOSSRUSH_CLEARED_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 80 PROGRESSION_BOSSRUSH_CLEARED_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 81 PROGRESSION_BOSSRUSH_CLEARED_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 82 PROGRESSION_BOSSRUSH_CLEARED_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 83 PROGRESSION_KILL_BLUE_BABY_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 84 PROGRESSION_KILL_BLUE_BABY_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 85 PROGRESSION_KILL_BLUE_BABY_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 86 PROGRESSION_KILL_BLUE_BABY_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 87 PROGRESSION_KILL_BLUE_BABY_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 88 PROGRESSION_KILL_BLUE_BABY_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 89 PROGRESSION_KILL_BLUE_BABY_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 90 PROGRESSION_KILL_BLUE_BABY_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 91 PROGRESSION_KILL_BLUE_BABY_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 92 PROGRESSION_KILL_BLUE_BABY_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 93 PROGRESSION_KILL_BLUE_BABY_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 94 PROGRESSION_KILL_BLUE_BABY_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 95 PROGRESSION_KILL_BLUE_BABY_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 96 PROGRESSION_KILL_BLUE_BABY_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 97 PROGRESSION_KILL_THE_LAMB_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 98 PROGRESSION_KILL_THE_LAMB_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 99 PROGRESSION_KILL_THE_LAMB_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 100 PROGRESSION_KILL_THE_LAMB_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 101 PROGRESSION_KILL_THE_LAMB_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 102 PROGRESSION_KILL_THE_LAMB_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 103 PROGRESSION_KILL_THE_LAMB_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 104 PROGRESSION_KILL_THE_LAMB_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 105 PROGRESSION_KILL_THE_LAMB_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 106 PROGRESSION_KILL_THE_LAMB_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 107 PROGRESSION_KILL_THE_LAMB_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 108 PROGRESSION_KILL_THE_LAMB_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 109 PROGRESSION_KILL_THE_LAMB_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 110 PROGRESSION_KILL_THE_LAMB_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 111 BOSSRUSHS_CLEARED 112 UNKNOWN_EVENT_112 seems to only be at 1 for a dead god file 113 NEGATIVE_STREAK_COUNTER counts your current negative streak. aka consecutive runs ending with death. 114 EDENS_BLESSINGS_NEXT_RUN number of edens blessing items added to the player in next run 115 GREED_DONATION_MACHINE_COUNTER 116 PROGRESSION_KILL_MEGA_SATAN_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 117 PROGRESSION_KILL_MEGA_SATAN_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 118 PROGRESSION_KILL_MEGA_SATAN_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 119 PROGRESSION_KILL_MEGA_SATAN_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 120 PROGRESSION_KILL_MEGA_SATAN_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 121 PROGRESSION_KILL_MEGA_SATAN_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 122 PROGRESSION_KILL_MEGA_SATAN_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 123 PROGRESSION_KILL_MEGA_SATAN_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 124 PROGRESSION_KILL_MEGA_SATAN_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 125 PROGRESSION_KILL_MEGA_SATAN_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 126 PROGRESSION_KILL_MEGA_SATAN_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 127 PROGRESSION_KILL_MEGA_SATAN_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 128 PROGRESSION_KILL_MEGA_SATAN_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 129 PROGRESSION_KILL_MEGA_SATAN_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 130 PROGRESSION_GREED_MODE_CLEARED_WITH_ISAAC (value = 0, 1 for greed mode, 2 for greedier) 131 PROGRESSION_GREED_MODE_CLEARED_WITH_MAGDALENE (value = 0, 1 for greed mode, 2 for greedier) 132 PROGRESSION_GREED_MODE_CLEARED_WITH_CAIN (value = 0, 1 for greed mode, 2 for greedier) 133 PROGRESSION_GREED_MODE_CLEARED_WITH_JUDAS (value = 0, 1 for greed mode, 2 for greedier) 134 PROGRESSION_GREED_MODE_CLEARED_WITH_BLUE_BABY (value = 0, 1 for greed mode, 2 for greedier) 135 PROGRESSION_GREED_MODE_CLEARED_WITH_EVE (value = 0, 1 for greed mode, 2 for greedier) 136 PROGRESSION_GREED_MODE_CLEARED_WITH_SAMSON (value = 0, 1 for greed mode, 2 for greedier) 137 PROGRESSION_GREED_MODE_CLEARED_WITH_AZAZEL (value = 0, 1 for greed mode, 2 for greedier) 138 PROGRESSION_GREED_MODE_CLEARED_WITH_LAZARUS (value = 0, 1 for greed mode, 2 for greedier) 139 PROGRESSION_GREED_MODE_CLEARED_WITH_EDEN (value = 0, 1 for greed mode, 2 for greedier) 140 PROGRESSION_GREED_MODE_CLEARED_WITH_THE_LOST (value = 0, 1 for greed mode, 2 for greedier) 141 PROGRESSION_GREED_MODE_CLEARED_WITH_LILITH (value = 0, 1 for greed mode, 2 for greedier) 142 PROGRESSION_GREED_MODE_CLEARED_WITH_KEEPER (value = 0, 1 for greed mode, 2 for greedier) 143 PROGRESSION_GREED_MODE_CLEARED_WITH_APOLLYON (value = 0, 1 for greed mode, 2 for greedier) 144 PROGRESSION_KILL_HUSH_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 145 PROGRESSION_KILL_HUSH_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 146 PROGRESSION_KILL_HUSH_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 147 PROGRESSION_KILL_HUSH_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 148 PROGRESSION_KILL_HUSH_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 149 PROGRESSION_KILL_HUSH_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 150 PROGRESSION_KILL_HUSH_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 151 PROGRESSION_KILL_HUSH_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 152 PROGRESSION_KILL_HUSH_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 153 PROGRESSION_KILL_HUSH_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 154 PROGRESSION_KILL_HUSH_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 155 PROGRESSION_KILL_HUSH_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 156 PROGRESSION_KILL_HUSH_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 157 PROGRESSION_KILL_HUSH_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 158 HUSH_KILLS How often Hush was killed. (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 159 GREED_MODE_COINS_DONATED_WITH_ISAAC 160 GREED_MODE_COINS_DONATED_WITH_MAGDALENE 161 GREED_MODE_COINS_DONATED_WITH_CAIN 162 GREED_MODE_COINS_DONATED_WITH_JUDAS 163 GREED_MODE_COINS_DONATED_WITH_BLUE 164 GREED_MODE_COINS_DONATED_WITH_EVE 165 GREED_MODE_COINS_DONATED_WITH_SAMSON 166 GREED_MODE_COINS_DONATED_WITH_AZAZEL 167 GREED_MODE_COINS_DONATED_WITH_LAZARUS 168 GREED_MODE_COINS_DONATED_WITH_EDEN 169 GREED_MODE_COINS_DONATED_WITH_THE 170 GREED_MODE_COINS_DONATED_WITH_LILITH 171 GREED_MODE_COINS_DONATED_WITH_KEEPER 172 GREED_MODE_COINS_DONATED_WITH_APOLLYON 173 PROGRESSION_KILL_DELIRIUM_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 174 PROGRESSION_KILL_DELIRIUM_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 175 PROGRESSION_KILL_DELIRIUM_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 176 PROGRESSION_KILL_DELIRIUM_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 177 PROGRESSION_KILL_DELIRIUM_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 178 PROGRESSION_KILL_DELIRIUM_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 179 PROGRESSION_KILL_DELIRIUM_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 180 PROGRESSION_KILL_DELIRIUM_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 181 PROGRESSION_KILL_DELIRIUM_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 182 PROGRESSION_KILL_DELIRIUM_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 183 PROGRESSION_KILL_DELIRIUM_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 184 PROGRESSION_KILL_DELIRIUM_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 185 PROGRESSION_KILL_DELIRIUM_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 186 PROGRESSION_KILL_DELIRIUM_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 187 DELIRIUM_KILLS How often was the final boss of the void was killed. (Delirium) (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 188 CHARACTER_LAST_RUN_WIN Potential Bitmask containing the ids of the characters that won the last run, including coop. gets cleared on run restart. TODO: Usage and pattern still unknown!!! 189 UNKNOWN_EVENT_189 really big counter 190 DAILYS_PLAYED counts dailies played 191 DAILY_RUN_IS_ACTIVE Set to 1 when daily is currently played. Set to 0 when trophy was collected 192 DAILYS_STREAK Numbers of dailies won in a row 193 DAILYS_WON Number of dailies won 194 RAINBOW_POOP_DESTROYED 195 BATTERIES_COLLECTED Sum of all batteries collected 196 CARDS_USED Sum of cards used 197 SHOP_ITEMS_BOUGHT Sum of shop items bought. this includes devil deals, dark room red chest deals, and black market deals 198 CHESTS_OPENED_WITH_KEY Sum of all golden and Eternal Chests opened. Mega chests dont count 199 SECRET_ROOMS_WALLS_OPENED Includes super secret rooms and counts walls that lead to secret rooms already entered or discovered. Also counts the door towards the mines. Does not count X-Ray Vision effect 200 BLOOD_CLOT_ITEM_AQUIRED 201 RUBBER_CEMENT_ITEM_AQUIRED 202 BEDS_USED Sleeping in a bed 203 PROGRESSION_KILL_MOMS_HEART_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 204 PROGRESSION_KILL_ISAAC_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 205 PROGRESSION_KILL_SATAN_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 206 PROGRESSION_BOSSRUSH_CLEARED_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 207 PROGRESSION_KILL_BLUE_BABY_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 208 PROGRESSION_KILL_THE_LAMB_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 209 PROGRESSION_KILL_MEGA_SATAN_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 210 PROGRESSION_GREED_MODE_CLEARED_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 211 PROGRESSION_KILL_HUSH_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 212 GREED_MODE_COINS_DONATED_WITH_FORGOTTEN 213 PROGRESSION_KILL_DELIRIUM_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 214 PROGRESSION_KILL_MOMS_HEART_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 215 PROGRESSION_KILL_MOMS_HEART_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 216 PROGRESSION_KILL_MOMS_HEART_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 217 PROGRESSION_KILL_MOMS_HEART_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 218 PROGRESSION_KILL_MOMS_HEART_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 219 PROGRESSION_KILL_MOMS_HEART_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 220 PROGRESSION_KILL_MOMS_HEART_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 221 PROGRESSION_KILL_MOMS_HEART_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 222 PROGRESSION_KILL_MOMS_HEART_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 223 PROGRESSION_KILL_MOMS_HEART_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 224 PROGRESSION_KILL_MOMS_HEART_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 225 PROGRESSION_KILL_MOMS_HEART_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 226 PROGRESSION_KILL_MOMS_HEART_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 227 PROGRESSION_KILL_MOMS_HEART_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 228 PROGRESSION_KILL_MOMS_HEART_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 229 PROGRESSION_KILL_MOMS_HEART_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 230 PROGRESSION_KILL_MOMS_HEART_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 231 PROGRESSION_KILL_MOMS_HEART_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 232 PROGRESSION_KILL_MOMS_HEART_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 233 PROGRESSION_KILL_ISAAC_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 234 PROGRESSION_KILL_ISAAC_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 235 PROGRESSION_KILL_ISAAC_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 236 PROGRESSION_KILL_ISAAC_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 237 PROGRESSION_KILL_ISAAC_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 238 PROGRESSION_KILL_ISAAC_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 239 PROGRESSION_KILL_ISAAC_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 240 PROGRESSION_KILL_ISAAC_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 241 PROGRESSION_KILL_ISAAC_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 242 PROGRESSION_KILL_ISAAC_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 243 PROGRESSION_KILL_ISAAC_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 244 PROGRESSION_KILL_ISAAC_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 245 PROGRESSION_KILL_ISAAC_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 246 PROGRESSION_KILL_ISAAC_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 247 PROGRESSION_KILL_ISAAC_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 248 PROGRESSION_KILL_ISAAC_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 249 PROGRESSION_KILL_ISAAC_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 250 PROGRESSION_KILL_ISAAC_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 251 PROGRESSION_KILL_ISAAC_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 252 PROGRESSION_KILL_SATAN_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 253 PROGRESSION_KILL_SATAN_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 254 PROGRESSION_KILL_SATAN_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 255 PROGRESSION_KILL_SATAN_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 256 PROGRESSION_KILL_SATAN_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 257 PROGRESSION_KILL_SATAN_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 258 PROGRESSION_KILL_SATAN_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 259 PROGRESSION_KILL_SATAN_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 260 PROGRESSION_KILL_SATAN_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 261 PROGRESSION_KILL_SATAN_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 262 PROGRESSION_KILL_SATAN_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 263 PROGRESSION_KILL_SATAN_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 264 PROGRESSION_KILL_SATAN_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 265 PROGRESSION_KILL_SATAN_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 266 PROGRESSION_KILL_SATAN_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 267 PROGRESSION_KILL_SATAN_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 268 PROGRESSION_KILL_SATAN_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 269 PROGRESSION_KILL_SATAN_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 270 PROGRESSION_KILL_SATAN_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 271 PROGRESSION_BOSSRUSH_CLEARED_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 272 PROGRESSION_BOSSRUSH_CLEARED_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 273 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 274 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 275 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 276 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 277 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 278 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 279 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 280 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 281 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 282 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 283 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 284 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 285 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 286 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 287 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 288 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 289 PROGRESSION_BOSSRUSH_CLEARED_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 290 PROGRESSION_KILL_BLUE_BABY_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 291 PROGRESSION_KILL_BLUE_BABY_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 292 PROGRESSION_KILL_BLUE_BABY_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 293 PROGRESSION_KILL_BLUE_BABY_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 294 PROGRESSION_KILL_BLUE_BABY_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 295 PROGRESSION_KILL_BLUE_BABY_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 296 PROGRESSION_KILL_BLUE_BABY_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 297 PROGRESSION_KILL_BLUE_BABY_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 298 PROGRESSION_KILL_BLUE_BABY_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 299 PROGRESSION_KILL_BLUE_BABY_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 300 PROGRESSION_KILL_BLUE_BABY_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 301 PROGRESSION_KILL_BLUE_BABY_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 302 PROGRESSION_KILL_BLUE_BABY_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 303 PROGRESSION_KILL_BLUE_BABY_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 304 PROGRESSION_KILL_BLUE_BABY_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 305 PROGRESSION_KILL_BLUE_BABY_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 306 PROGRESSION_KILL_BLUE_BABY_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 307 PROGRESSION_KILL_BLUE_BABY_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 308 PROGRESSION_KILL_BLUE_BABY_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 309 PROGRESSION_KILL_THE_LAMB_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 310 PROGRESSION_KILL_THE_LAMB_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 311 PROGRESSION_KILL_THE_LAMB_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 312 PROGRESSION_KILL_THE_LAMB_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 313 PROGRESSION_KILL_THE_LAMB_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 314 PROGRESSION_KILL_THE_LAMB_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 315 PROGRESSION_KILL_THE_LAMB_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 316 PROGRESSION_KILL_THE_LAMB_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 317 PROGRESSION_KILL_THE_LAMB_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 318 PROGRESSION_KILL_THE_LAMB_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 319 PROGRESSION_KILL_THE_LAMB_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 320 PROGRESSION_KILL_THE_LAMB_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 321 PROGRESSION_KILL_THE_LAMB_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 322 PROGRESSION_KILL_THE_LAMB_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 323 PROGRESSION_KILL_THE_LAMB_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 324 PROGRESSION_KILL_THE_LAMB_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 325 PROGRESSION_KILL_THE_LAMB_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 326 PROGRESSION_KILL_THE_LAMB_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 327 PROGRESSION_KILL_THE_LAMB_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 328 PROGRESSION_KILL_MEGA_SATAN_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 329 PROGRESSION_KILL_MEGA_SATAN_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 330 PROGRESSION_KILL_MEGA_SATAN_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 331 PROGRESSION_KILL_MEGA_SATAN_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 332 PROGRESSION_KILL_MEGA_SATAN_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 333 PROGRESSION_KILL_MEGA_SATAN_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 334 PROGRESSION_KILL_MEGA_SATAN_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 335 PROGRESSION_KILL_MEGA_SATAN_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 336 PROGRESSION_KILL_MEGA_SATAN_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 337 PROGRESSION_KILL_MEGA_SATAN_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 338 PROGRESSION_KILL_MEGA_SATAN_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 339 PROGRESSION_KILL_MEGA_SATAN_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 340 PROGRESSION_KILL_MEGA_SATAN_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 341 PROGRESSION_KILL_MEGA_SATAN_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 342 PROGRESSION_KILL_MEGA_SATAN_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 343 PROGRESSION_KILL_MEGA_SATAN_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 344 PROGRESSION_KILL_MEGA_SATAN_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 345 PROGRESSION_KILL_MEGA_SATAN_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 346 PROGRESSION_KILL_MEGA_SATAN_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 347 PROGRESSION_GREED_MODE_CLEARED_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 348 PROGRESSION_GREED_MODE_CLEARED_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 349 PROGRESSION_GREED_MODE_CLEARED_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 350 PROGRESSION_GREED_MODE_CLEARED_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 351 PROGRESSION_GREED_MODE_CLEARED_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 352 PROGRESSION_GREED_MODE_CLEARED_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 353 PROGRESSION_GREED_MODE_CLEARED_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 354 PROGRESSION_GREED_MODE_CLEARED_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 355 PROGRESSION_GREED_MODE_CLEARED_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 356 PROGRESSION_GREED_MODE_CLEARED_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 357 PROGRESSION_GREED_MODE_CLEARED_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 358 PROGRESSION_GREED_MODE_CLEARED_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 359 PROGRESSION_GREED_MODE_CLEARED_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 360 PROGRESSION_GREED_MODE_CLEARED_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 361 PROGRESSION_GREED_MODE_CLEARED_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 362 PROGRESSION_GREED_MODE_CLEARED_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 363 PROGRESSION_GREED_MODE_CLEARED_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 364 PROGRESSION_GREED_MODE_CLEARED_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 365 PROGRESSION_GREED_MODE_CLEARED_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 366 PROGRESSION_KILL_HUSH_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 367 PROGRESSION_KILL_HUSH_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 368 PROGRESSION_KILL_HUSH_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 369 PROGRESSION_KILL_HUSH_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 370 PROGRESSION_KILL_HUSH_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 371 PROGRESSION_KILL_HUSH_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 372 PROGRESSION_KILL_HUSH_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 373 PROGRESSION_KILL_HUSH_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 374 PROGRESSION_KILL_HUSH_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 375 PROGRESSION_KILL_HUSH_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 376 PROGRESSION_KILL_HUSH_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 377 PROGRESSION_KILL_HUSH_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 378 PROGRESSION_KILL_HUSH_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 379 PROGRESSION_KILL_HUSH_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 380 PROGRESSION_KILL_HUSH_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 381 PROGRESSION_KILL_HUSH_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 382 PROGRESSION_KILL_HUSH_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 383 PROGRESSION_KILL_HUSH_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 384 PROGRESSION_KILL_HUSH_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 385 GREED_MODE_COINS_DONATED_WITH_BETHANY 386 GREED_MODE_COINS_DONATED_WITH_JACOB_AND_ESAU 387 GREED_MODE_COINS_DONATED_WITH_T_ISAAC 388 GREED_MODE_COINS_DONATED_WITH_T_MAGDALENE 389 GREED_MODE_COINS_DONATED_WITH_T_CAIN 390 GREED_MODE_COINS_DONATED_WITH_T_JUDAS 391 GREED_MODE_COINS_DONATED_WITH_T_BLUE_BABY 392 GREED_MODE_COINS_DONATED_WITH_T_EVE 393 GREED_MODE_COINS_DONATED_WITH_T_SAMSON 394 GREED_MODE_COINS_DONATED_WITH_T_AZAZEL 395 GREED_MODE_COINS_DONATED_WITH_T_LAZARUS 396 GREED_MODE_COINS_DONATED_WITH_T_EDEN 397 GREED_MODE_COINS_DONATED_WITH_T_THE_LOST 398 GREED_MODE_COINS_DONATED_WITH_T_LILITH 399 GREED_MODE_COINS_DONATED_WITH_T_KEEPER 400 GREED_MODE_COINS_DONATED_WITH_T_THE_FORGOTTEN 401 GREED_MODE_COINS_DONATED_WITH_T_BETHANY 402 GREED_MODE_COINS_DONATED_WITH_T_JACOB_AND_ESAU 404 PROGRESSION_KILL_DELIRIUM_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 405 PROGRESSION_KILL_DELIRIUM_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 406 PROGRESSION_KILL_DELIRIUM_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 407 PROGRESSION_KILL_DELIRIUM_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 408 PROGRESSION_KILL_DELIRIUM_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 409 PROGRESSION_KILL_DELIRIUM_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 410 PROGRESSION_KILL_DELIRIUM_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 411 PROGRESSION_KILL_DELIRIUM_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 412 PROGRESSION_KILL_DELIRIUM_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 413 PROGRESSION_KILL_DELIRIUM_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 414 PROGRESSION_KILL_DELIRIUM_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 415 PROGRESSION_KILL_DELIRIUM_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 416 PROGRESSION_KILL_DELIRIUM_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 417 PROGRESSION_KILL_DELIRIUM_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 418 PROGRESSION_KILL_DELIRIUM_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 419 PROGRESSION_KILL_DELIRIUM_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 420 PROGRESSION_KILL_DELIRIUM_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 421 PROGRESSION_KILL_DELIRIUM_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 422 PROGRESSION_KILL_DELIRIUM_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 423 PROGRESSION_KILL_MOTHER_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 424 PROGRESSION_KILL_MOTHER_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 425 PROGRESSION_KILL_MOTHER_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 426 PROGRESSION_KILL_MOTHER_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 427 PROGRESSION_KILL_MOTHER_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 428 PROGRESSION_KILL_MOTHER_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 429 PROGRESSION_KILL_MOTHER_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 430 PROGRESSION_KILL_MOTHER_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 431 PROGRESSION_KILL_MOTHER_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 432 PROGRESSION_KILL_MOTHER_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 433 PROGRESSION_KILL_MOTHER_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 434 PROGRESSION_KILL_MOTHER_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 435 PROGRESSION_KILL_MOTHER_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 436 PROGRESSION_KILL_MOTHER_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 437 PROGRESSION_KILL_MOTHER_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 438 PROGRESSION_KILL_MOTHER_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 439 PROGRESSION_KILL_MOTHER_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 440 PROGRESSION_KILL_MOTHER_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 441 PROGRESSION_KILL_MOTHER_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 442 PROGRESSION_KILL_MOTHER_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 443 PROGRESSION_KILL_MOTHER_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 444 PROGRESSION_KILL_MOTHER_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 445 PROGRESSION_KILL_MOTHER_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 446 PROGRESSION_KILL_MOTHER_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 447 PROGRESSION_KILL_MOTHER_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 448 PROGRESSION_KILL_MOTHER_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 449 PROGRESSION_KILL_MOTHER_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 450 PROGRESSION_KILL_MOTHER_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 451 PROGRESSION_KILL_MOTHER_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 452 PROGRESSION_KILL_MOTHER_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 453 PROGRESSION_KILL_MOTHER_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 454 PROGRESSION_KILL_MOTHER_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 455 PROGRESSION_KILL_MOTHER_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 456 PROGRESSION_KILL_MOTHER_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 457 PROGRESSION_KILL_BEAST_WITH_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 458 PROGRESSION_KILL_BEAST_WITH_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 459 PROGRESSION_KILL_BEAST_WITH_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 460 PROGRESSION_KILL_BEAST_WITH_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 461 PROGRESSION_KILL_BEAST_WITH_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 462 PROGRESSION_KILL_BEAST_WITH_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 463 PROGRESSION_KILL_BEAST_WITH_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 464 PROGRESSION_KILL_BEAST_WITH_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 465 PROGRESSION_KILL_BEAST_WITH_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 466 PROGRESSION_KILL_BEAST_WITH_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 467 PROGRESSION_KILL_BEAST_WITH_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 468 PROGRESSION_KILL_BEAST_WITH_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 469 PROGRESSION_KILL_BEAST_WITH_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 470 PROGRESSION_KILL_BEAST_WITH_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 471 PROGRESSION_KILL_BEAST_WITH_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 472 PROGRESSION_KILL_BEAST_WITH_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 473 PROGRESSION_KILL_BEAST_WITH_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 474 PROGRESSION_KILL_BEAST_WITH_T_ISAAC (0 for not done. 1 for normal difficulty, 2 for hard) 475 PROGRESSION_KILL_BEAST_WITH_T_MAGDALENE (0 for not done. 1 for normal difficulty, 2 for hard) 476 PROGRESSION_KILL_BEAST_WITH_T_CAIN (0 for not done. 1 for normal difficulty, 2 for hard) 477 PROGRESSION_KILL_BEAST_WITH_T_JUDAS (0 for not done. 1 for normal difficulty, 2 for hard) 478 PROGRESSION_KILL_BEAST_WITH_T_BLUE_BABY (0 for not done. 1 for normal difficulty, 2 for hard) 479 PROGRESSION_KILL_BEAST_WITH_T_EVE (0 for not done. 1 for normal difficulty, 2 for hard) 480 PROGRESSION_KILL_BEAST_WITH_T_SAMSON (0 for not done. 1 for normal difficulty, 2 for hard) 481 PROGRESSION_KILL_BEAST_WITH_T_AZAZEL (0 for not done. 1 for normal difficulty, 2 for hard) 482 PROGRESSION_KILL_BEAST_WITH_T_LAZARUS (0 for not done. 1 for normal difficulty, 2 for hard) 483 PROGRESSION_KILL_BEAST_WITH_T_EDEN (0 for not done. 1 for normal difficulty, 2 for hard) 484 PROGRESSION_KILL_BEAST_WITH_T_THE_LOST (0 for not done. 1 for normal difficulty, 2 for hard) 485 PROGRESSION_KILL_BEAST_WITH_T_LILITH (0 for not done. 1 for normal difficulty, 2 for hard) 486 PROGRESSION_KILL_BEAST_WITH_T_KEEPER (0 for not done. 1 for normal difficulty, 2 for hard) 487 PROGRESSION_KILL_BEAST_WITH_T_APOLLYON (0 for not done. 1 for normal difficulty, 2 for hard) 488 PROGRESSION_KILL_BEAST_WITH_T_THE_FORGOTTEN (0 for not done. 1 for normal difficulty, 2 for hard) 489 PROGRESSION_KILL_BEAST_WITH_T_BETHANY (0 for not done. 1 for normal difficulty, 2 for hard) 490 PROGRESSION_KILL_BEAST_WITH_T_JACOB_AND_ESAU (0 for not done. 1 for normal difficulty, 2 for hard) 491 MOTHER_KILLS Killing endboss of Corpse 2 (Does only count instances where the kill is combined with run \"progression\". aka in final room and spawning a trapdoor/chest/trophy) 492 BEAST_KILLS Killing the endboss of Home 493 BABY_PLUM_KILLS 494 BATTERY_BUMS_KILLED 495 BATTERY_BUM_COLLECTIBLE_PAYOUTS counts how often the battery bum paid out with a collectible item 496 NUM_EVENT_COUNTERS","tags":["Enum"]},{"location":"enums/ExtraHudStyle.html","title":"Enum \"ExtraHudStyle\"","text":"Value Enumerator Comment 0 OFF 1 ON 2 ON_MINI","tags":["Enum"]},{"location":"enums/FadeoutTarget.html","title":"Enum \"FadeoutTarget\"","text":"Value Enumerator Comment 1 FILE_SELECT_MENU 2 SAVEFILE_MENU 3 TITLE_SCREEN 4 NEW_RUN","tags":["Enum"]},{"location":"enums/FollowerPriority.html","title":"Enum \"FollowerPriority\"","text":"Value Enumerator Comment 0 DEFAULT 1 SHOOTER 2 DEFENSIVE Dry Baby, Mongo Baby, Cencer, Lil Abaddon 3 SHOOTER_SPECIAL Lil Brim, Lil Monstro 10 INCUBUS 9999 KING_BABY","tags":["Enum"]},{"location":"enums/GLSLType.html","title":"Enum \"Renderer.GLSLType\"","text":"Value Enumerator Comment 0 Float 1 Vec2 2 Vec3 3 Vec4","tags":["Enum"]},{"location":"enums/Giantbook.html","title":"Enum \"Giantbook\"","text":"Value Enumerator Comment 1 NECRONOMICON 2 MONSTER_MANUAL 3 WHORE_OF_BABYLON 3 HORRIBLE_NIGHT 4 DEAD_SEA_SCROLLS 5 THE_SUN 6 ETERNAL_HEART_SOUL 7 MOMS_BRA 8 MOMS_PAD 9 ANARCHIST_COOKBOOK 10 BIBLE 11 BOOK_OF_REVELATIONS 12 DEATH 13 ETERNAL_HEART 14 HOURGLASS 15 SATANIC_BIBLE 16 BLACK_HEART 17 D4 18 D10 19 FLUSH 20 HAGALAZ 21 JERA 22 EHWAZ 23 DAGAZ 24 ANSUZ 25 PERTHRO 26 BERKANO 26 BERKAND 27 ALGIZ 28 D100 29 RAINBOW 29 RAINBOW_POOP 30 MISSING_PAGE 31 MISSING_PAGE_2 32 SPIDER_BUTT 33 SLEEP 34 BOOK_OF_BELIAL 34 BOOK_OF_BEAST 35 BETRAYAL 36 D8 37 D12 38 SUPER_BUM 39 CLICKER 40 MAMA_MEGA 41 ETERNAL_HEART_EMPTY 42 REVERSE_EMPRESS 42 MORNING_SUN 43 REVERSE_THE_SUN 43 REVERSE_SUN 44 SLEEP_NIGHTMARE 44 DOGMA 46 ETERNAL_HEART_BLACK","tags":["Enum"]},{"location":"enums/GibFlag.html","title":"Enum \"GibFlag\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 BLOOD 1 << 1 BONE 1 << 2 GUT 1 << 3 EYE 1 << 4 LARGE 1 << 5 POOP 1 << 6 WORM 1 << 7 ROCK 1 << 8 ROCK_SMALL 1 << 9 SOUND_BABY 1 << 10 SOUND_BONE 1 << 11 CHAIN 1 << 12 DUST 1 << 13 HUGE","tags":["Enum"]},{"location":"enums/GridPoopVariant.html","title":"Enum \"GridPoopVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 RED 2 CHUNKY 2 CORN 3 GOLDEN 4 RAINBOW 5 BLACK 6 HOLY 6 WHITE 7 GIANT_TL 8 GIANT_TR 9 GIANT_BL 10 GIANT_BR 11 CHARMING","tags":["Enum"]},{"location":"enums/HealthType.html","title":"Enum \"HealthType\"","text":"Value Enumerator Comment 0 DEFAULT 0 RED 1 SOUL 2 LOST 2 NO_HEALTH 3 COIN 3 KEEPER 4 BONE","tags":["Enum"]},{"location":"enums/ImGuiCallback.html","title":"Enum \"ImGuiCallback\"","text":"Value Enumerator Comment 0 Clicked 1 Hovered 2 Active 3 Focused 4 Visible 5 Edited 6 Activated 7 Deactivated 8 DeactivatedAfterEdit 9 ToggledOpen 10 Render Gets executed before an object gets rendered","tags":["Enum"]},{"location":"enums/ImGuiColor.html","title":"Enum \"ImGuiColor\"","text":"Value Enumerator Comment 0 Text 1 TextDisabled 2 WindowBg Background of normal windows 3 ChildBg Background of child windows 4 PopupBg Background of popups, menus, tooltips windows 5 Border 6 BorderShadow 7 FrameBg Background of checkbox, radio button, plot, slider, text input 8 FrameBgHovered 9 FrameBgActive 10 TitleBg 11 TitleBgActive 12 TitleBgCollapsed 13 MenuBarBg 14 ScrollbarBg 15 ScrollbarGrab 16 ScrollbarGrabHovered 17 ScrollbarGrabActive 18 CheckMark 19 SliderGrab 20 SliderGrabActive 21 Button 22 ButtonHovered 23 ButtonActive 24 Header Header* colors are used for CollapsingHeader, TreeNode, Selectable, MenuItem 25 HeaderHovered 26 HeaderActive 27 Separator 28 SeparatorHovered 29 SeparatorActive 30 ResizeGrip Resize grip in lower-right and lower-left corners of windows. 31 ResizeGripHovered 32 ResizeGripActive 33 Tab TabItem in a TabBar 34 TabHovered 35 TabActive 36 TabUnfocused 37 TabUnfocusedActive 38 PlotLines 39 PlotLinesHovered 40 PlotHistogram 41 PlotHistogramHovered 42 TableHeaderBg Table header background 43 TableBorderStrong Table outer and header borders (prefer using Alpha=1.0 here) 44 TableBorderLight Table inner borders (prefer using Alpha=1.0 here) 45 TableRowBg Table row background (even rows) 46 TableRowBgAlt Table row background (odd rows) 47 TextSelectedBg 48 DragDropTarget Rectangle highlighting a drop target 49 NavHighlight Gamepad/keyboard: current highlighted item 50 NavWindowingHighlight Highlight window when using CTRL+TAB 51 NavWindowingDimBg Darken/colorize entire screen behind the CTRL+TAB window list, when active 52 ModalWindowDimBg Darken/colorize entire screen behind a modal window, when one is active","tags":["Enum"]},{"location":"enums/ImGuiData.html","title":"Enum \"ImGuiData\"","text":"Value Enumerator Comment 0 Label descriptive text of an element 1 Value Used for single value Elements like Text- or Integer-Inputs, Checkboxes, or the currently selected Radiobutton 2 ListValues Used for elements that use a table as their data source like RadioButtons, Comboboxes, Plots, etc. 3 Min min value of a slider input 4 Max max value of a slider input 5 HintText hint text of a text input, or overlay texts used in plots or progressbars 6 ColorValues Color input. 3 values = RGB, 4 values = RGBA","tags":["Enum"]},{"location":"enums/ImGuiElement.html","title":"Enum \"ImGuiElement\"","text":"Value Enumerator Comment 0 Window 1 Menu 2 MenuItem 3 Popup 4 CollapsingHeader 5 TreeNode 6 Separator 7 SeparatorText 8 Text 9 TextWrapped 10 BulletText 11 SameLine used to render the next element in the same line 12 Button 13 SmallButton 14 InputInt 15 InputFloat 16 DragInt 17 DragFloat 18 SliderInt 19 SliderFloat 20 ColorEdit 21 TabBar 22 Tab 23 Checkbox 24 RadioButton 25 Combobox 26 InputText 27 InputTextWithHint 28 InputTextMultiline 29 InputController 30 InputKeyboard 31 PlotLines 32 PlotHistogram","tags":["Enum"]},{"location":"enums/ImGuiNotificationType.html","title":"Enum \"ImGuiNotificationType\"","text":"Value Enumerator Comment 0 INFO 1 SUCCESS 2 WARNING 3 ERROR","tags":["Enum"]},{"location":"enums/ItemAnim.html","title":"Enum \"ItemAnim\"","text":"Value Enumerator Comment 0 CHARGE 1 CHARGE_FULL 2 SHOOT 3 SHOOT_ALT","tags":["Enum"]},{"location":"enums/KnifeSubType.html","title":"Enum \"KnifeSubType\"","text":"Value Enumerator Comment 1 PROJECTILE 4 CLUB_HITBOX","tags":["Enum"]},{"location":"enums/KnifeVariant.html","title":"Enum \"KnifeVariant\"","text":"Value Enumerator Comment 0 MOMS_KNIFE 1 BONE_CLUB 2 BONE_SCYTHE 3 DONKEY_JAWBONE 3 BERSERK_CLUB 4 BAG_OF_CRAFTING 5 SUMPTORIUM 9 NOTCHED_AXE 10 SPIRIT_SWORD 11 TECH_SWORD","tags":["Enum"]},{"location":"enums/Language.html","title":"Enum \"Language\"","text":"Value Enumerator Comment 0 ENGLISH 2 JAPANESE 3 FRENCH 4 SPANISH 5 GERMAN 10 RUSSIAN 11 KOREAN 13 CHINESE 21 KEY","tags":["Enum"]},{"location":"enums/LineCheckMode.html","title":"Enum \"LineCheckMode\"","text":"Value Enumerator Comment 0 ENTITY 1 RAYCAST Similar to ENTITY, and cheaper, but can pass between diagonally adjacent GridEntities 2 EXPLOSION 3 PROJECTILE","tags":["Enum"]},{"location":"enums/MainMenuType.html","title":"Enum \"MainMenuType\"","text":"Value Enumerator Comment 1 TITLE 0 exists but its unusable 2 SAVES 3 GAME the actual menu where all the menus are 4 DAILYRUN 5 CHARACTER 6 SPECIALSEEDS 7 CHALLENGE 8 COLLECTION 9 STATS 10 OPTIONS 11 CONTROLS 12 KEYCONFIG 13 ENDINGS 14 BESTIARY 15 MODCHALLENGES 16 MODS 17 SEED","tags":["Enum"]},{"location":"enums/ModCallbacks.html","title":"Enum \"ModCallbacks\"","text":"

This is a list of all new callbacks added by REPENTOGON.

"},{"location":"enums/ModCallbacks.html#modified-old-callbacks","title":"Modified Old Callbacks","text":""},{"location":"enums/ModCallbacks.html#mc_use_pill","title":"MC_USE_PILL","text":"

MC_USE_PILL now passes PillColor as an argument. Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1064 MC_USE_PILL (PillEffect Effect, EntityPlayer Player, UseFlags Flags, PillColor Color) PillEffect void"},{"location":"enums/ModCallbacks.html#mc_pre_player_collision","title":"MC_PRE_PLAYER_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1065 MC_PRE_PLAYER_COLLISION (EntityPlayer Player, Entity Collider, boolean Low) PlayerVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_tear_collision","title":"MC_PRE_TEAR_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1232 MC_PRE_TEAR_COLLISION (EntityTear Tear, Entity Collider, boolean Low) TearVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_familiar_collision","title":"MC_PRE_FAMILIAR_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".

For example, you can return { Collide=true } to make a familiar to collide physically with something (like an enemy, which they don't normally do) without skipping on-collision code (like you would by returning false).

ID Name Function Args Optional Args Return Type 1234 MC_PRE_FAMILIAR_COLLISION (EntityFamiliar Familiar, Entity Collider, boolean Low) FamiliarVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_bomb_collision","title":"MC_PRE_BOMB_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1236 MC_PRE_BOMB_COLLISION (EntityBomb Bomb, Entity Collider, boolean Low) BombVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_collision","title":"MC_PRE_PICKUP_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1238 MC_PRE_PICKUP_COLLISION (EntityPickup Pickup, Entity Collider, boolean Low) PickupVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_knife_collision","title":"MC_PRE_KNIFE_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1242 MC_PRE_KNIFE_COLLISION (EntityKnife Knife, Entity Collider, boolean Low) KnifeSubType boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_projectile_collision","title":"MC_PRE_PROJECTILE_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1244 MC_PRE_PROJECTILE_COLLISION (EntityProjectile Projectile, Entity Collider, boolean Low) ProjectileVariant boolean or table"},{"location":"enums/ModCallbacks.html#mc_pre_npc_collision","title":"MC_PRE_NPC_COLLISION","text":"

Now optionally accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity, such as dealing collision damage. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1246 MC_PRE_NPC_COLLISION (EntityNPC NPC, Entity Collider, boolean Low) EntityType boolean or table"},{"location":"enums/ModCallbacks.html#mc_entity_take_dmg","title":"MC_ENTITY_TAKE_DMG","text":"

Now optionally accepts returning a table, with any combination of the following fields, to override the corresponding argument:

  • Damage
  • DamageFlags
  • DamageCountdown

Modified values are passed along to the remaining callbacks. Returning false to cancel the damage still skips the remaining callbacks.

ID Name Function Args Optional Args Return Type 1007 MC_ENTITY_TAKE_DMG (Entity Entity, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) EntityType boolean or table"},{"location":"enums/ModCallbacks.html#new-callbacks","title":"New Callbacks","text":""},{"location":"enums/ModCallbacks.html#mc_pre_add_collectible","title":"MC_PRE_ADD_COLLECTIBLE","text":"

Accepts a table of parameters: {Type, Charge, FirstTime, Slot, VarData, Player}

Alternatively accepts a CollectibleType to change the type without changing any other parameters or a boolean to cancel the addition altogether (false) or force it to happen skipping the following callbacks (true).

Example Code

This code will transform every collectible into Money = Power once the player picks it up.

function mod:myFunction(Type, Charge, FirstTime, Slot, VarData, Player)\n    return CollectibleType.COLLECTIBLE_MONEY_EQUALS_POWER\nend\nmod:AddCallback(ModCallbacks.MC_PRE_ADD_COLLECTIBLE, mod.myFunction)\n

This code will force active items to be uncharged on pickup.

function mod:myFunction(Type, Charge, FirstTime, Slot, VarData, Player)\n    return {Type, 0, FirstTime, Slot, VarData}\nend\nmod:AddCallback(ModCallbacks.MC_PRE_ADD_COLLECTIBLE, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1004 MC_PRE_ADD_COLLECTIBLE (CollectibleType Type, int Charge, boolean FirstTime, int Slot, int VarData, EntityPlayer Player) CollectibleType table or CollectibleType"},{"location":"enums/ModCallbacks.html#mc_post_add_collectible","title":"MC_POST_ADD_COLLECTIBLE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1005 MC_POST_ADD_COLLECTIBLE (CollectibleType Type, int Charge, boolean FirstTime, int Slot, int VarData, EntityPlayer Player) CollectibleType void"},{"location":"enums/ModCallbacks.html#mc_post_entity_take_dmg","title":"MC_POST_ENTITY_TAKE_DMG","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1006 MC_POST_ENTITY_TAKE_DMG (Entity Entity, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) EntityType void"},{"location":"enums/ModCallbacks.html#mc_grid_rock_update","title":"MC_GRID_ROCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1010 MC_GRID_ROCK_UPDATE (GridEntityType Type, GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_post_grid_rock_destroy","title":"MC_POST_GRID_ROCK_DESTROY","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1011 MC_POST_GRID_ROCK_DESTROY (GridEntityRock Rock, GridEntityType Type, boolean Immediate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_grid_hurt_damage","title":"MC_GRID_HURT_DAMAGE","text":"

Return false if entity or player should ignore damage from it.

ID Name Function Args Optional Args Return Type 1012 MC_GRID_HURT_DAMAGE (GridEntity GridEntity, Entity Entity, int DamageAmount, DamageFlags DamageFlags, float Unknown boolean Unknown) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_hurt_damage","title":"MC_POST_GRID_HURT_DAMAGE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1013 MC_POST_GRID_HURT_DAMAGE (GridEntity GridEntity, Entity Entity, int DamageAmount, DamageFlags DamageFlags, float Unknown boolean Unknown) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_hud_update","title":"MC_HUD_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1020 MC_HUD_UPDATE - - void"},{"location":"enums/ModCallbacks.html#mc_hud_post_update","title":"MC_HUD_POST_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1021 MC_HUD_POST_UPDATE - - void"},{"location":"enums/ModCallbacks.html#mc_hud_render","title":"MC_HUD_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1022 MC_HUD_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_post_hud_render","title":"MC_POST_HUD_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1024 MC_POST_HUD_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_main_menu_render","title":"MC_MAIN_MENU_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1023 MC_MAIN_MENU_RENDER - - void"},{"location":"enums/ModCallbacks.html#mc_pre_render_custom_character_menu","title":"MC_PRE_RENDER_CUSTOM_CHARACTER_MENU","text":"

Accepts no return parameters.

Execution informations

This callback only triggers when a custom character is selected, it doesn't trigger on regular characters.

ID Name Function Args Optional Args Return Type 1333 MC_PRE_RENDER_CUSTOM_CHARACTER_MENU int CharacterID,Vector RenderPos,Sprite DefaultSprite int CharacterID void"},{"location":"enums/ModCallbacks.html#mc_pre_pause_screen_render","title":"MC_PRE_PAUSE_SCREEN_RENDER","text":"

Can return false to prevent the pause screen from rendering. Doing so will also prevent the screen from darkening.

ID Name Function Args Optional Args Return Type 1218 MC_PRE_PAUSE_SCREEN_RENDER (Sprite PauseBody,Sprite PauseStats) - void"},{"location":"enums/ModCallbacks.html#mc_post_pause_screen_render","title":"MC_POST_PAUSE_SCREEN_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1219 MC_POST_PAUSE_SCREEN_RENDER (Sprite PauseBody,Sprite PauseStats) - void"},{"location":"enums/ModCallbacks.html#mc_pre_completion_marks_render","title":"MC_PRE_COMPLETION_MARKS_RENDER","text":"

Can return false to prevent the completion marks from rendering.

ID Name Function Args Optional Args Return Type 1216 MC_PRE_COMPLETION_MARKS_RENDER (Sprite CompletionMarksSprite,Vector RenderPos,Vector RenderScale,int PlayerType) - void"},{"location":"enums/ModCallbacks.html#mc_post_completion_marks_render","title":"MC_POST_COMPLETION_MARKS_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1217 MC_POST_COMPLETION_MARKS_RENDER (Sprite CompletionMarksSprite,Vector RenderPos,Vector RenderScale,int PlayerType) - void"},{"location":"enums/ModCallbacks.html#mc_pre_sfx_play","title":"MC_PRE_SFX_PLAY","text":"

Accepts a table of parameters: {ID, Volume, FrameDelay, Loop, Pitch, Pan}

Alternatively accepts false to cancel the sound.

Example Code

This code will forcibly loop every sound (for better or worse).

function mod:myFunction(ID, Volume, FrameDelay, Loop, Pitch, Pan)\n    return {ID, Volume, FrameDelay, true, Pitch, Pan}\nend\nmod:AddCallback(ModCallbacks.MC_PRE_SFX_PLAY, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1030 MC_PRE_SFX_PLAY (int ID, float Volume, int FrameDelay, boolean Loop, float Pitch, float Pan) SoundEffect table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_sfx_play","title":"MC_POST_SFX_PLAY","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1031 MC_POST_SFX_PLAY (int ID, float Volume, int FrameDelay, boolean Loop, float Pitch, float Pan) SoundEffect void"},{"location":"enums/ModCallbacks.html#mc_pre_music_play","title":"MC_PRE_MUSIC_PLAY","text":"

Accepts a table of parameters: {ID, Volume OR FadeRate}

Alternatively accepts a Music to change the track without changing volume or fade rate

Alternatively accepts false to cancel the track

Volume vs. FadeRate

This callback is called for both MusicManager::Play and MusicManager::Crossfade! IsFade is provided to distinguish the two.

Example Code

This code will forcibly loop every sound (for better or worse).

function mod:myFunction(ID, Volume, IsFade)\n    return Music.MUSIC_FLOODED_CAVES\nend\nmod:AddCallback(ModCallbacks.MC_PRE_MUSIC_PLAY, mod.myFunction)\n

ID Name Function Args Optional Args Return Type 1034 MC_PRE_MUSIC_PLAY (int ID, float Volume OR float FadeRate, boolean IsFade) Music table or Music or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_music_layer_toggle","title":"MC_PRE_MUSIC_LAYER_TOGGLE","text":"

Accepts a music layer ID (enum pending) to change the layer, or a boolean to change the state of the layer: true to keep it running, false to stop it.

CurrentState returns true if the layer is going to be enabled, and false if it is going to be disabled.

ID Name Function Args Optional Args Return Type 1035 MC_PRE_MUSIC_LAYER_TOGGLE (int ID, boolean CurrentState) int int or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_player_head","title":"MC_PRE_RENDER_PLAYER_HEAD","text":"

Accepts an override Vector for RenderPos.

Alternatively accepts a false to stop the rendering.

ID Name Function Args Optional Args Return Type 1038 MC_PRE_RENDER_PLAYER_HEAD (EntityPlayer player, Vector RenderPos) PlayerType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_player_body","title":"MC_PRE_RENDER_PLAYER_BODY","text":"

Accepts an override vector for RenderPos.

Alternatively accepts a false to stop the rendering.

ID Name Function Args Optional Args Return Type 1039 MC_PRE_RENDER_PLAYER_BODY (EntityPlayer player, Vector RenderPos) PlayerType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_entity_throw","title":"MC_PRE_ENTITY_THROW","text":"

Accepts a Vector which will modify the velocity of the thrown entity.

ID Name Function Args Optional Args Return Type 1040 MC_PRE_ENTITY_THROW (EntityPlayer ThrowingPlayer, Entity HeldEntity, Vector Velocity) - Vector"},{"location":"enums/ModCallbacks.html#mc_post_entity_throw","title":"MC_POST_ENTITY_THROW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1041 MC_POST_ENTITY_THROW (EntityPlayer ThrowingPlayer, Entity ThrownEntity, Vector Velocity) - void"},{"location":"enums/ModCallbacks.html#mc_player_init_post_level_init_stats","title":"MC_PLAYER_INIT_POST_LEVEL_INIT_STATS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1042 MC_PLAYER_INIT_POST_LEVEL_INIT_STATS (EntityPlayer Player) PlayerType void"},{"location":"enums/ModCallbacks.html#mc_pre_room_exit","title":"MC_PRE_ROOM_EXIT","text":"

Accepts no return parameters.

NewLevel

NewLevel returns true when entering a new level or when exiting a run.

ID Name Function Args Optional Args Return Type 1043 MC_PRE_ROOM_EXIT (EntityPlayer Player, boolean NewLevel) - void"},{"location":"enums/ModCallbacks.html#mc_pre_completion_event","title":"MC_PRE_COMPLETION_EVENT","text":"

Can return false to cancel the completion event. Canceling it will prevent all marks and completion event related stuff to trigger for all players.

Triggers when a completion even gets triggered, getting as a parameter the code for the event in question.

ID Name Function Args Optional Args Return Type 1049 MC_PRE_COMPLETION_EVENT (CompletionType Completion) - void or false"},{"location":"enums/ModCallbacks.html#mc_completion_mark_get","title":"MC_COMPLETION_MARK_GET","text":"

Can return false to cancel the completion mark.

Triggers when the player gets a completion mark, getting as a parameter the code for the mark in question and the playertype.

ID Name Function Args Optional Args Return Type 1047 MC_COMPLETION_MARK_GET (CompletionType Completion, int PlayerType) PlayerType void or false"},{"location":"enums/ModCallbacks.html#mc_post_completion_mark_get","title":"MC_POST_COMPLETION_MARK_GET","text":"

Triggers after the player gets a completion mark, getting as a parameter the code for the mark in question and the playertype.

ID Name Function Args Optional Args Return Type 1048 MC_POST_COMPLETION_MARK_GET (CompletionType Completion, int PlayerType) PlayerType"},{"location":"enums/ModCallbacks.html#mc_pre_level_init","title":"MC_PRE_LEVEL_INIT","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1060 MC_PRE_LEVEL_INIT - - void"},{"location":"enums/ModCallbacks.html#mc_pre_trigger_player_death","title":"MC_PRE_TRIGGER_PLAYER_DEATH","text":"

Fires right before the game over screen.

Accepts false to cancel the death, reviving the player in-place with half a heart, or true or nil to allow the death to go through.

Warning

Much like the vanilla Lua Revive() function, this removes the current run's ability to save. This occurs because the game immediately deletes the save file during the death animation if there's no pending revives, and this callback doesn't fire fast enough to register a revive on death as it occurs right before the game over screen.

There is no workaround for this behavior at this time, but this may change in the future.

ID Name Function Args Optional Args Return Type 1050 MC_PRE_TRIGGER_PLAYER_DEATH (EntityPlayer Player) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_restock_shop","title":"MC_PRE_RESTOCK_SHOP","text":"

Accepts false to cancel the restock, blocking shop rerolls from restock machines or restocks from Restock altogether.

Partial

This callback is called for both Room::ShopRestockFull and Room::ShopRestockPartial! Partial is provided to distinguish the two.

ID Name Function Args Optional Args Return Type 1070 MC_PRE_RESTOCK_SHOP (boolean Partial) - void"},{"location":"enums/ModCallbacks.html#mc_post_restock_shop","title":"MC_POST_RESTOCK_SHOP","text":"

Accepts no return parameters.

Partial

This callback is called for both Room::ShopRestockFull and Room::ShopRestockPartial! Partial is provided to distinguish the two.

ID Name Function Args Optional Args Return Type 1071 MC_POST_RESTOCK_SHOP (boolean Partial) - void"},{"location":"enums/ModCallbacks.html#mc_pre_change_room","title":"MC_PRE_CHANGE_ROOM","text":"

Accepts a table of parameters: {TargetRoomIdx, Dimension}

ID Name Function Args Optional Args Return Type 1061 MC_PRE_CHANGE_ROOM (int TargetRoomIdx, int Dimension) - table"},{"location":"enums/ModCallbacks.html#mc_pickup_get_coin_value","title":"MC_PICKUP_GET_COIN_VALUE","text":"

Accepts int CoinValue to modify the amount of coins a coin can give you on pickup.

ID Name Function Args Optional Args Return Type 1250 MC_PICKUP_GET_COIN_VALUE (EntityPickup Pickup) CoinSubType int CoinValue"},{"location":"enums/ModCallbacks.html#mc_post_pickup_shop_purchase","title":"MC_POST_PICKUP_SHOP_PURCHASE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1062 MC_POST_PICKUP_SHOP_PURCHASE (EntityPickup Pickup, EntityPlayer Player, int MoneySpent) PickupVariant void"},{"location":"enums/ModCallbacks.html#mc_get_follower_priority","title":"MC_GET_FOLLOWER_PRIORITY","text":"

Accepts FollowerPriority to give familiar priority. Can accept any int.

ID Name Function Args Optional Args Return Type 1063 MC_GET_FOLLOWER_PRIORITY (EntityFamiliar Familiar) FamiliarVariant FollowerPriority or int"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_morph","title":"MC_PRE_PICKUP_MORPH","text":"

Accepts a table of parameters: {EntityType, Variant, SubType, KeepPrice, KeepSeed, IgnoreModifiers} or just {EntityType, Variant, SubType}.

Returning false cancels the morph.

ID Name Function Args Optional Args Return Type 1213 MC_PRE_PICKUP_MORPH (EntityPickup Pickup, int EntityType, int Variant, int SubType, boolean KeepPrice, boolean KeepSeed, boolean IgnoreModifiers) - table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_pickup_morph","title":"MC_POST_PICKUP_MORPH","text":"

Runs after the morph already happened.

ID Name Function Args Optional Args Return Type 1215 MC_POST_PICKUP_MORPH (EntityPickup Pickup, int PreviousType, int PreviousVariant, int SubType, boolean KeptPrice, boolean KeptSeed, boolean IgnoredModifiers) - void"},{"location":"enums/ModCallbacks.html#mc_npc_pick_target","title":"MC_NPC_PICK_TARGET","text":"

Called whenever an EntityNPC selects its target, such as when EntityNPC:GetPlayerTarget() is called.

Return an entity to make the NPC target that entity instead.

ID Name Function Args Optional Args Return Type 1222 MC_NPC_PICK_TARGET (EntityNPC NPC, Entity CurrentTarget) EntityType Entity"},{"location":"enums/ModCallbacks.html#mc_pre_npc_morph","title":"MC_PRE_NPC_MORPH","text":"

Accepts a table of parameters: {EntityType, Variant, SubType, Championid} or just {EntityType, Variant, SubType}.

Returning false cancels the morph.

ID Name Function Args Optional Args Return Type 1212 MC_PRE_NPC_MORPH (int EntityType, int Variant, int SubType, int Championid) - table or boolean"},{"location":"enums/ModCallbacks.html#mc_post_npc_morph","title":"MC_POST_NPC_MORPH","text":"

Runs after the Morph already happened.

ID Name Function Args Optional Args Return Type 1214 MC_POST_NPC_MORPH (int PreviousType, int PreviousVariant, int PreviousSubType) - void"},{"location":"enums/ModCallbacks.html#mc_pre_use_card","title":"MC_PRE_USE_CARD","text":"

Accepts true to cancel card use.

ID Name Function Args Optional Args Return Type 1064 MC_PRE_USE_CARD (Card ID, EntityPlayer Player, int UseFlag) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_use_pill","title":"MC_PRE_USE_PILL","text":"

Accepts true to cancel pill use.

ID Name Function Args Optional Args Return Type 1065 MC_PRE_USE_PILL (PillEffect ID, PillColor PillColor, EntityPlayer Player, int UseFlag) - boolean"},{"location":"enums/ModCallbacks.html#mc_get_shop_item_price","title":"MC_GET_SHOP_ITEM_PRICE","text":"

Accepts an integer to change the price of the item.

ID Name Function Args Optional Args Return Type 1066 MC_GET_SHOP_ITEM_PRICE (int EntityVariant, int EntitySubType, int ShopItemID) int int"},{"location":"enums/ModCallbacks.html#mc_player_get_health_type","title":"MC_PLAYER_GET_HEALTH_TYPE","text":"

Accepts an HealthType to change health type for the character.

ID Name Function Args Optional Args Return Type 1067 MC_PLAYER_GET_HEALTH_TYPE (EntityPlayer Player) PlayerType HealthType"},{"location":"enums/ModCallbacks.html#mc_pre_familiar_render","title":"MC_PRE_FAMILIAR_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1080 MC_PRE_FAMILIAR_RENDER (EntityFamiliar Familiar, Vector Offset) FamiliarVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_npc_render","title":"MC_PRE_NPC_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1081 MC_PRE_NPC_RENDER (EntityNPC NPC, Vector Offset) EntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_player_render","title":"MC_PRE_PLAYER_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1082 MC_PRE_PLAYER_RENDER (EntityPlayer Player, Vector Offset) PlayerVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_pickup_render","title":"MC_PRE_PICKUP_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1083 MC_PRE_PICKUP_RENDER (EntityPickup Pickup, Vector Offset) PickupVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_tear_render","title":"MC_PRE_TEAR_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1084 MC_PRE_TEAR_RENDER (EntityTear Tear, Vector Offset) TearVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_projectile_render","title":"MC_PRE_PROJECTILE_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1085 MC_PRE_PROJECTILE_RENDER (EntityProjectile Projectile, Vector Offset) ProjectileVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_knife_render","title":"MC_PRE_KNIFE_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1086 MC_PRE_KNIFE_RENDER (EntityKnife Knife, Vector Offset) KnifeVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_effect_render","title":"MC_PRE_EFFECT_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1087 MC_PRE_EFFECT_RENDER (EntityEffect Effect, Vector Offset) EffectVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_bomb_render","title":"MC_PRE_BOMB_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1088 MC_PRE_BOMB_RENDER (EntityBomb Bomb, Vector Offset) BombVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_slot_render","title":"MC_PRE_SLOT_RENDER","text":"

Accepts a Vector to modify render offset

Alternatively accepts false to cancel rendering

Shadows

Canceling this callback will not stop rendering of entity shadows. This is being investigated, but in the meantime call SetShadowSize(0) on the entity in MC_POST_UPDATE.

ID Name Function Args Optional Args Return Type 1089 MC_PRE_SLOT_RENDER (EntitySlot Slot, Vector Offset) SlotVariant Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_render","title":"MC_POST_SLOT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1090 MC_POST_SLOT_RENDER (EntitySlot Slot, Vector Offset) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spawn","title":"MC_PRE_GRID_ENTITY_SPAWN","text":"

This is called when a GridEntity is spawned outside of Room initialization.

Accepts false to cancel spawning the grid, a table of {Type, Variant, Vardata, SpawnSeed} to modify it, or a GridEntityDesc to override it entirely.

Warning

Desc will in most cases be nil. The exceptions to this are the poops spawned by Mole npcs, grids spawned by TurnGold, or lua-made spawns called with the new SpawnGridEntity(int GridIndex, GridEntityDesc Descriptor) override.

ID Name Function Args Optional Args Return Type 1100 MC_PRE_GRID_ENTITY_SPAWN (GridEntityType Type, int Variant, int VarData, int GridIdx, int SpawnSeed, GridEntityDesc Desc GridEntityType Type) boolean, table, or GridEntityDesc"},{"location":"enums/ModCallbacks.html#mc_pre_room_grid_entity_spawn","title":"MC_PRE_ROOM_GRID_ENTITY_SPAWN","text":"

This is called during Room initiization when GridEntities from the layout are being spawned.

Accepts false to cancel spawning the grid or a table of {Type, Variant, Vardata, SpawnSeed} to modify it.

Warning

This does not fire for random decorations spawned by the game! Use MC_PRE_GRID_ENTITY_SPAWN for these.

ID Name Function Args Optional Args Return Type 1192 MC_PRE_ROOM_GRID_ENTITY_SPAWN (GridEntityType Type, int Variant, int VarData, int GridIdx, int SpawnSeed) GridEntityType Type boolean or table"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spawn","title":"MC_POST_GRID_ENTITY_SPAWN","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1101 MC_POST_GRID_ENTITY_SPAWN GridEntity Grid GridEntityType Type void"},{"location":"enums/ModCallbacks.html#mc_pre_room_trigger_clear","title":"MC_PRE_ROOM_TRIGGER_CLEAR","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1068 MC_PRE_ROOM_TRIGGER_CLEAR (boolean PlaySound) - void"},{"location":"enums/ModCallbacks.html#mc_pre_player_trigger_room_clear","title":"MC_PRE_PLAYER_TRIGGER_ROOM_CLEAR","text":"

Accepts false to cancel trigger effects.

ID Name Function Args Optional Args Return Type 1069 MC_PRE_PLAYER_TRIGGER_ROOM_CLEAR (EntityPlayer Player) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_player_get_active_max_charge","title":"MC_PLAYER_GET_ACTIVE_MAX_CHARGE","text":"

Accepts an integer to change chargebar for the active item.

ID Name Function Args Optional Args Return Type 1072 MC_PLAYER_GET_ACTIVE_MAX_CHARGE (CollectibleType Collectible, EntityPlayer Player, int VarData) CollectibleType int"},{"location":"enums/ModCallbacks.html#mc_player_get_active_min_usable_charge","title":"MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE","text":"

Accepts an integer to change the minimum charge to use the active item. If the item currently has the minimum amount of charge, it'll also show the white outline.

ID Name Function Args Optional Args Return Type 1073 MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE (ActiveSlot Slot) CollectibleType int"},{"location":"enums/ModCallbacks.html#mc_pre_player_use_bomb","title":"MC_PRE_PLAYER_USE_BOMB","text":"

Return false to stop the player from using a bomb.

ID Name Function Args Optional Args Return Type 1020 MC_PRE_PLAYER_USE_BOMB (EntityPlayer Player) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_player_use_bomb","title":"MC_POST_PLAYER_USE_BOMB","text":"ID Name Function Args Optional Args Return Type 1021 MC_POST_PLAYER_USE_BOMB (EntityPlayer Player, EntityBomb Bomb) PlayerVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_player_take_dmg","title":"MC_PRE_PLAYER_TAKE_DMG","text":"

Runs earlier than MC_ENTITY_TAKE_DMG, and even if the player is considered invincible or has Holy Mantles.

Only accepts returning false to cancel the damage. Good for giving the player invincibility that takes precedence over other damage negation effects, such as Holy Mantle.

ID Name Function Args Optional Args Return Type 1008 MC_PRE_PLAYER_TAKE_DMG (EntityPlayer Player, float Damage, DamageFlags DamageFlags, EntityRef Source, int DamageCountdown) PlayerVariant boolean"},{"location":"enums/ModCallbacks.html#mc_pre_replace_spritesheet","title":"MC_PRE_REPLACE_SPRITESHEET","text":"

Accepts a table of parameters: {int LayerID, string PNGFilename}

ID Name Function Args Optional Args Return Type 1116 MC_PRE_REPLACE_SPRITESHEET (int LayerID, string PNGFilename) string ANM2Filename table"},{"location":"enums/ModCallbacks.html#mc_post_replace_spritesheet","title":"MC_POST_REPLACE_SPRITESHEET","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1117 MC_POST_REPLACE_SPRITESHEET (int LayerID, string PNGFilename) string ANM2Filename void"},{"location":"enums/ModCallbacks.html#mc_player_get_heart_limit","title":"MC_PLAYER_GET_HEART_LIMIT","text":"

Accepts an override integer for heart limit.

-

You can set the limit to any arbitrary amount but the game can only render up to 4 lines of hearts in the HUD. However, even if they're not visible, the hearts still work properly.

ID Name Function Args Optional Args Return Type 1074 MC_PLAYER_GET_HEART_LIMIT (EntityPlayer Player, int HeartLimit, boolean IsKeeper) PlayerType int"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_stage_penalty","title":"MC_PRE_PLANETARIUM_APPLY_STAGE_PENALTY","text":"

This callback is run at the start of planetarium calculation. Before running calculation, the game first checks if the current floor is valid to spawn a planetarium. If the current floor is invalid, all further calculation (and thus, all further callbacks) will be canceled.

By default, planetariums cannot spawn past Depths II (Womb II with Telescope Lens).

This callback can be used, for example, to add custom planetarium spawn rules on custom floors, or to add new items like Telescope Lens which can augment the rules.

Accepts a boolean. Return false to bypass the planetarium stage penalty.

ID Name Function Args Optional Args Return Type 1110 MC_PRE_PLANETARIUM_APPLY_STAGE_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_planetarium_penalty","title":"MC_PRE_PLANETARIUM_APPLY_PLANETARIUM_PENALTY","text":"

After ensuring the stage is valid, the game then checks if a planetarium has been entered before. If so, the chance will be locked at 1% (10% with Telescope Lens).

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a boolean. Return false to bypass the planetarium enter penalty.

ID Name Function Args Optional Args Return Type 1111 MC_PRE_PLANETARIUM_APPLY_PLANETARIUM_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_treasure_penalty","title":"MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY","text":"

After ensuring planetariums haven't been entered before, the game then checks how many treasure rooms have been entered. If the amount of treasure rooms entered is greater than or equal to the current stage number, the chance will be locked at 1% (10% with Telescope Lens).

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a boolean. Return false to bypass the planetarium treasure room penalty entirely, meaning the game will act as if no treasure rooms have been entered.

Alternatively accepts an int to modify how many treasure rooms the game will believe has been entered.

ID Name Function Args Optional Args Return Type 1112 MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY (int TreasureRoomsVisited) - boolean or int"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_items","title":"MC_PRE_PLANETARIUM_APPLY_ITEMS","text":"

After checking the amount of treasure rooms entered, the game applies flat item chances. This is where Crystal Ball, Magic 8 Ball and Sausage's chances get added, as well as Telescope Lens's additional 15% chance.

If you're looking to add an item like Telescope Lens which modifies the base chance, have a look at MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS instead.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1113 MC_PRE_PLANETARIUM_APPLY_ITEMS (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_pre_planetarium_apply_telescope_lens","title":"MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS","text":"

Finally, after checking all of the above, Telescope Lens adds an additional 9% chance to the base chance, bringing the base generation chance to 10%.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1114 MC_PRE_PLANETARIUM_APPLY_TELESCOPE_LENS (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_planetarium_calculate","title":"MC_POST_PLANETARIUM_CALCULATE","text":"

This will override all previous calculation values, ultimately dictating the planetarium chance.

Accepts a float to modify the chance.

ID Name Function Args Optional Args Return Type 1115 MC_POST_PLANETARIUM_CALCULATE (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_slot_init","title":"MC_POST_SLOT_INIT","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1121 MC_POST_SLOT_INIT (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_post_slot_update","title":"MC_POST_SLOT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1122 MC_POST_SLOT_UPDATE (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_collision","title":"MC_PRE_SLOT_COLLISION","text":"

Just like the collision callbacks in the vanilla API, the Low value is true if the entity collided with the collider first, and false if the opposite is true.

Return true to ignore collision, false to collide but not execute internal code.

Also accepts returning a table, with any combination of the following fields:

  • Collide: Set to true to force the entities to physically collide (push each other away), unless the \"Collider\" ignores the collision. Set to false to ignore the physical collision without necessarily skipping on-collision effects.
  • SkipCollisionEffects: Set to true to skip the on-collision code of this entity. Does not affect the physical collision. Won't skip the on-collision code of the \"Collider\".
ID Name Function Args Optional Args Return Type 1240 MC_PRE_SLOT_COLLISION (EntitySlot, Entity Collider, boolean Low) SlotVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_collision","title":"MC_POST_SLOT_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1241 MC_POST_SLOT_COLLISION (EntitySlot, Entity Collider, boolean Low SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_create_explosion_drops","title":"MC_PRE_SLOT_CREATE_EXPLOSION_DROPS","text":"

Return false to stop explosions from dropping the standard consumables. This is useful, for example, to allow custom slots to drop their own loot on explosion.

ID Name Function Args Optional Args Return Type 1123 MC_PRE_SLOT_CREATE_EXPLOSION_DROPS (EntitySlot) SlotVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_slot_create_explosion_drops","title":"MC_POST_SLOT_CREATE_EXPLOSION_DROPS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1124 MC_POST_SLOT_CREATE_EXPLOSION_DROPS (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_slot_set_prize_collectible","title":"MC_PRE_SLOT_SET_PRIZE_COLLECTIBLE","text":"

Used by Shell Game and Hell Game.

Accepts a CollectibleType to override what the game will pay out with.

ID Name Function Args Optional Args Return Type 1125 MC_PRE_SLOT_SET_PRIZE_COLLECTIBLE (EntitySlot) SlotVariant CollectibleType"},{"location":"enums/ModCallbacks.html#mc_post_slot_set_prize_collectible","title":"MC_POST_SLOT_SET_PRIZE_COLLECTIBLE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1126 MC_POST_SLOT_SET_PRIZE_COLLECTIBLE (EntitySlot) SlotVariant void"},{"location":"enums/ModCallbacks.html#mc_post_player_collision","title":"MC_POST_PLAYER_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1231 MC_POST_PLAYER_COLLISION (EntityPlayer Player, Entity Collider, boolean Low PlayerVariant void"},{"location":"enums/ModCallbacks.html#mc_post_tear_collision","title":"MC_POST_TEAR_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1233 MC_POST_TEAR_COLLISION (EntityTear Tear, Entity Collider, boolean Low TearVariant void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_collision","title":"MC_POST_FAMILIAR_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1235 MC_POST_FAMILIAR_COLLISION (EntityFamiliar Familiar, Entity Collider, boolean Low FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_bomb_collision","title":"MC_POST_BOMB_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1237 MC_POST_BOMB_COLLISION (EntityBomb Bomb, Entity Collider, boolean Low BombVariant void"},{"location":"enums/ModCallbacks.html#mc_post_pickup_collision","title":"MC_POST_PICKUP_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1239 MC_POST_PICKUP_COLLISION (EntityPickup Pickup, Entity Collider, boolean Low PickupVariant void"},{"location":"enums/ModCallbacks.html#mc_post_knife_collision","title":"MC_POST_KNIFE_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1243 MC_POST_KNIFE_COLLISION (EntityKnife Knife, Entity Collider, boolean Low KnifeSubType void"},{"location":"enums/ModCallbacks.html#mc_post_projectile_collision","title":"MC_POST_PROJECTILE_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1245 MC_POST_PROJECTILE_COLLISION (EntityProjectile Projectile, Entity Collider, boolean Low ProjectileVariant void"},{"location":"enums/ModCallbacks.html#mc_post_npc_collision","title":"MC_POST_NPC_COLLISION","text":"

Runs after the on-collision code of this entity, assuming it wasn't skipped.

ID Name Function Args Optional Args Return Type 1247 MC_POST_NPC_COLLISION (EntityNPC NPC, Entity Collider, boolean Low EntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_laser_collision","title":"MC_PRE_LASER_COLLISION","text":"

Runs right before a laser hits an entity. Return true to ignore the collision.

ID Name Function Args Optional Args Return Type 1248 MC_PRE_LASER_COLLISION (EntityLaser Laser, Entity Collider) LaserVariant boolean"},{"location":"enums/ModCallbacks.html#mc_post_laser_collision","title":"MC_POST_LASER_COLLISION","text":"

Runs after a laser hits an entity.

ID Name Function Args Optional Args Return Type 1249 MC_POST_LASER_COLLISION (EntityLaser Laser, Entity Collider) LaserVariant void"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_items","title":"MC_PRE_DEVIL_APPLY_ITEMS","text":"

This callback is run when the game starts to tally up traditional items for devil deal calculation. This is called before the stage penalty.

Most items that affect devil deal chance perform their changes here.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1130 MC_PRE_DEVIL_APPLY_ITEMS () - float"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_stage_penalty","title":"MC_PRE_DEVIL_APPLY_STAGE_PENALTY","text":"

Next, the game calculates stage penalty. If a deal spawned anywhere on the previous two floors, the game decays the resulting chance by either 50% or 25% depending on how many deals have been taken.

Important to note that even though the game displays a value of ~66% or ~33% for the 50% and 25% values, respectively, this is because devil chance is not clamped to a value between 0 and 1, and \"100%\" without items generally means a value of ~133%.

Accepts a boolean. Return false to bypass the stage penalty.

ID Name Function Args Optional Args Return Type 1131 MC_PRE_DEVIL_APPLY_STAGE_PENALTY () - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_devil_apply_special_items","title":"MC_PRE_DEVIL_APPLY_SPECIAL_ITEMS","text":"

Next, the game applies \"special\" items which bypass the stage penalty like Goat Head and Eucharist.

Accepts a float to modify the chance in this step of the calculation.

ID Name Function Args Optional Args Return Type 1132 MC_PRE_DEVIL_APPLY_SPECIAL_ITEMS () - float"},{"location":"enums/ModCallbacks.html#mc_post_devil_calculate","title":"MC_POST_DEVIL_CALCULATE","text":"

This will override all previous calculation values, ultimately dictating the devil chance.

Accepts a float to modify the chance.

ID Name Function Args Optional Args Return Type 1133 MC_POST_DEVIL_CALCULATE (float Chance) - float"},{"location":"enums/ModCallbacks.html#mc_post_item_overlay_update","title":"MC_POST_ITEM_OVERLAY_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1075 MC_POST_ITEM_OVERLAY_UPDATE GiantBook void"},{"location":"enums/ModCallbacks.html#mc_pre_item_overlay_show","title":"MC_PRE_ITEM_OVERLAY_SHOW","text":"

Accepts an integer to change GiantBook

Alternatively accepts true to cancel item overlay show

ID Name Function Args Optional Args Return Type 1076 MC_PRE_ITEM_OVERLAY_SHOW ( GiantBook GiantBookID, int Delay, EntityPlayer Player) GiantBook GiantBook or boolean"},{"location":"enums/ModCallbacks.html#mc_post_player_new_room_temp_effects","title":"MC_POST_PLAYER_NEW_ROOM_TEMP_EFFECTS","text":"ID Name Function Args Optional Args Return Type 1077 MC_POST_PLAYER_NEW_ROOM_TEMP_EFFECTS (EntityPlayer Player) PlayerType -"},{"location":"enums/ModCallbacks.html#mc_post_player_new_level","title":"MC_POST_PLAYER_NEW_LEVEL","text":"ID Name Function Args Optional Args Return Type 1078 MC_POST_PLAYER_NEW_LEVEL (EntityPlayer Player) PlayerType -"},{"location":"enums/ModCallbacks.html#mc_post_playerhud_render_active_item","title":"MC_POST_PLAYERHUD_RENDER_ACTIVE_ITEM","text":"ID Name Function Args Optional Args Return Type 1079 MC_POST_PLAYERHUD_RENDER_ACTIVE_ITEM (EntityPlayer Player, ActiveSlot Slot, Vector Offset, float Alpha, float Scale) - -"},{"location":"enums/ModCallbacks.html#mc_pre_playerhud_render_hearts","title":"MC_PRE_PLAYERHUD_RENDER_HEARTS","text":"

Return true to cancel hearts HUD rendering.

ID Name Function Args Optional Args Return Type 1118 MC_PRE_PLAYERHUD_RENDER_HEARTS (Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) - boolean"},{"location":"enums/ModCallbacks.html#mc_post_playerhud_render_hearts","title":"MC_POST_PLAYERHUD_RENDER_HEARTS","text":"ID Name Function Args Optional Args Return Type 1091 MC_POST_PLAYERHUD_RENDER_HEARTS (Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) - -"},{"location":"enums/ModCallbacks.html#mc_pre_get_lighting_alpha","title":"MC_PRE_GET_LIGHTING_ALPHA","text":"

Accepts a float to modify the lighting alpha. Generally this is between 0 and 1 but you can technically go higher than this.

ID Name Function Args Optional Args Return Type 1150 MC_PRE_GET_LIGHTING_ALPHA (float OriginalAlpha) - float"},{"location":"enums/ModCallbacks.html#mc_pre_render_grid_lighting","title":"MC_PRE_RENDER_GRID_LIGHTING","text":"

Accepts an override Vector for Offset.

Alternatively accepts false to stop the rendering.

ID Name Function Args Optional Args Return Type 1151 MC_PRE_RENDER_GRID_LIGHTING (GridEntity GridEntity, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_render_entity_lighting","title":"MC_PRE_RENDER_ENTITY_LIGHTING","text":"

Accepts an override Vector for Offset.

Alternatively accepts false to stop the rendering.

ID Name Function Args Optional Args Return Type 1152 MC_PRE_RENDER_ENTITY_LIGHTING (Entity Entity, Vector Offset) EntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_pre_player_apply_innate_collectible_num","title":"MC_PRE_PLAYER_APPLY_INNATE_COLLECTIBLE_NUM","text":"ID Name Function Args Optional Args Return Type 1092 MC_PRE_PLAYER_APPLY_INNATE_COLLECTIBLE_NUM int ModCount, EntityPlayer Player, CollectibleType Type, boolean OnlyCountTrueItems) - int"},{"location":"enums/ModCallbacks.html#mc_pre_player_has_collectible","title":"MC_PRE_PLAYER_HAS_COLLECTIBLE","text":"

Return a boolean to indicate whether a player should be counted as having an item or not.

Bug

This callback doesn't work right now since it cause massive lag issues!

ID Name Function Args Optional Args Return Type 1093 MC_PRE_PLAYER_HAS_COLLECTIBLE (EntityPlayer Player, CollectibleType Type, boolean OnlyCountTrueItems) CollectibleType boolean"},{"location":"enums/ModCallbacks.html#mc_pre_music_play_jingle","title":"MC_PRE_MUSIC_PLAY_JINGLE","text":"

Accepts a Music to change the track

Alternatively accepts false to cancel the track

ID Name Function Args Optional Args Return Type 1094 MC_PRE_MUSIC_PLAY_JINGLE (Music MusicID) Music Music or boolean"},{"location":"enums/ModCallbacks.html#mc_post_trigger_collectible_removed","title":"MC_POST_TRIGGER_COLLECTIBLE_REMOVED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1095 MC_POST_TRIGGER_COLLECTIBLE_REMOVED (EntityPlayer Player, CollectibleType Type) CollectibleType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_trinket_added","title":"MC_POST_TRIGGER_TRINKET_ADDED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1096 MC_POST_TRIGGER_TRINKET_ADDED (EntityPlayer Player, TrinketType Type, boolean FirstTimePickingUp) TrinketType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_trinket_removed","title":"MC_POST_TRIGGER_TRINKET_REMOVED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1097 MC_POST_TRIGGER_TRINKET_REMOVED (EntityPlayer Player, TrinketType Type) TrinketType void"},{"location":"enums/ModCallbacks.html#mc_post_trigger_weapon_fired","title":"MC_POST_TRIGGER_WEAPON_FIRED","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1098 MC_POST_TRIGGER_WEAPON_FIRED (Vector FireDirection, int FireAmount, Entity Owner) WeaponType void"},{"location":"enums/ModCallbacks.html#mc_post_nightmare_scene_render","title":"MC_POST_NIGHTMARE_SCENE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1102 MC_POST_NIGHTMARE_SCENE_RENDER - void"},{"location":"enums/ModCallbacks.html#mc_post_nightmare_scene_show","title":"MC_POST_NIGHTMARE_SCENE_SHOW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1103 MC_POST_NIGHTMARE_SCENE_SHOW ( boolean Unknown) - void"},{"location":"enums/ModCallbacks.html#mc_post_weapon_fire","title":"MC_POST_WEAPON_FIRE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1105 MC_POST_WEAPON_FIRE (Weapon Weapon, Vector FireDirection, boolean IsShooting, boolean IsInterpolated) WeaponType void"},{"location":"enums/ModCallbacks.html#mc_console_autocomplete","title":"MC_CONSOLE_AUTOCOMPLETE","text":"

This is called whenever a function with the CUSTOM AutocompleteType enum is being entered into the console. Called every time the console input changes.

Accepts a table. The table can hold both string values, which will just add the string as a parameter in autocomplete for the command, and a table of two strings which will add the first string as the parameter, and second as a description. Description can be used in autocomplete as well, however pressing TAB will properly autocomplete using the ID, not description (Think the giveitem command, as an example- c1 would be The Sad Onion's \"parameter\" and The Sad Onion would be the \"description\", and both work. Pressing TAB will turn the command into give c1.)

REPENTOGON handles only showing options relevant for the given input- simply return a table of options, and REPENTOGON will take care of the rest.

ID Name Function Args Optional Args Return Type 1120 MC_CONSOLE_AUTOCOMPLETE (string Command, string Params) string Command table"},{"location":"enums/ModCallbacks.html#mc_player_init_pre_level_init_stats","title":"MC_PLAYER_INIT_PRE_LEVEL_INIT_STATS","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1127 MC_PLAYER_INIT_PRE_LEVEL_INIT_STATS (EntityPlayer Player) PlayerType void"},{"location":"enums/ModCallbacks.html#mc_post_saveslot_load","title":"MC_POST_SAVESLOT_LOAD","text":"

This is called wheenver a saveslot is loaded by the game.

This is the callback you should use to handle savedata loads, ideally, from normal Mod::LoadData to Repentogon Marks/Achievement checks, since it's the callback that triggers when those are loaded.

The first parameter is the slot you should care about, the 2nd parameter (isslotselected) indicates if the slot that is being loaded has actually been selected from the save menu screen (you can limit your save handling to when this is true if you want to get fancy), and the 3rd parameter(rawslot) is the actual saveslot the game uses (not the one the api uses since it can be 0!).

Warning

This callback is called many times before a run is started, either from changing saveslots naturally or because the game doesnt give a damn, so code accounting for that, clearing previous data when necessary. The 3rd param is actually only useful to check for the 0 slot state, which is the one the game defaults to before the actual slot is loaded by the player. When on this state, the moddata and the gamedata WONT BE IN SYNC (moddata is slot 1, while vanilla game data is 3)

ID Name Function Args Optional Args Return Type 1470 MC_POST_SAVESLOT_LOAD ( int saveslot, boolean isslotselected, int rawslot )"},{"location":"enums/ModCallbacks.html#mc_pre_new_room","title":"MC_PRE_NEW_ROOM","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1200 MC_PRE_NEW_ROOM ( Room Room, RoomDescriptor Descriptor ) - -"},{"location":"enums/ModCallbacks.html#mc_pre_mega_satan_ending","title":"MC_PRE_MEGA_SATAN_ENDING","text":"

Called right before Mega Satan forcibly ends the game.

  • Accepts true to suppress the ending, guaranteeing a portal to the Void while retaining the completion mark for this character.
  • false or nil will have no effect. I might look into making false guarantee an ending?
ID Name Function Args Optional Args Return Type 1201 MC_PRE_MEGA_SATAN_ENDING - - boolean"},{"location":"enums/ModCallbacks.html#mc_post_mods_loaded","title":"MC_POST_MODS_LOADED","text":"

Called after all Lua scripts have been loaded. Ideal for running code that is expected to run after all mods are initialized, but without the need for load order idiocy!

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1210 MC_POST_MODS_LOADED - - void"},{"location":"enums/ModCallbacks.html#mc_post_item_overlay_show","title":"MC_POST_ITEM_OVERLAY_SHOW","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1134 MC_POST_ITEM_OVERLAY_SHOW (GiantBook GiantBookID, int Delay, EntityPlayer Player) GiantBook void"},{"location":"enums/ModCallbacks.html#mc_pre_level_place_room","title":"MC_PRE_LEVEL_PLACE_ROOM","text":"

Return a room config to replace the room that will be placed

Warning

The new room shape must be the same, and the new available door slots must be compatible with the original room doors.

ID Name Function Args Optional Args Return Type 1137 MC_PRE_LEVEL_PLACE_ROOM (LevelGeneratorRoom Slot, RoomConfigRoom RoomConfig, int Seed) - RoomConfigRoom Config"},{"location":"enums/ModCallbacks.html#mc_post_level_layout_generated","title":"MC_POST_LEVEL_LAYOUT_GENERATED","text":"ID Name Function Args Optional Args Return Type 1099 MC_POST_LEVEL_LAYOUT_GENERATED (LevelGenerator LevelGenerator) - -"},{"location":"enums/ModCallbacks.html#mc_post_player_get_multi_shot_params","title":"MC_POST_PLAYER_GET_MULTI_SHOT_PARAMS","text":"

Return a MultiShotParams object to change the properties of the players shooting behavior in regards to the MultiShotParams object properties.

ID Name Function Args Optional Args Return Type 1251 MC_POST_PLAYER_GET_MULTI_SHOT_PARAMS (EntityPlayer Player) PlayerType MultiShotParams"},{"location":"enums/ModCallbacks.html#mc_pre_m_morph_active","title":"MC_PRE_M_MORPH_ACTIVE","text":"

This callback triggers when an active gets rerolled by 'M (trinket id 138) and allows for overriding its behavior.

  • Accepts a CollectibleType to override the rerolled item id or false to prevent the active from rerolling entirely.
ID Name Function Args Optional Args Return Type 1190 MC_PRE_M_MORPH_ACTIVE (EntityPlayer Player, CollectibleType Collectible) - CollectibleType"},{"location":"enums/ModCallbacks.html#mc_pre_npc_split","title":"MC_PRE_NPC_SPLIT","text":"

Called when the game is about to decide whether or not an EntityNPC can be split, ie the Meat Cleaver effect.

Return true to prevent the split, false to allow it even if blacklisted, or nil to continue default behavior.

ID Name Function Args Optional Args Return Type 1191 MC_PRE_NPC_SPLIT (EntityNPC NPC, boolean IsBlacklisted) (EntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_projectile","title":"MC_POST_FAMILIAR_FIRE_PROJECTILE","text":"

Called when a familiar fires a tear.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1252 MC_POST_FAMILIAR_FIRE_PROJECTILE (EntityTear Tear) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_fire_bomb","title":"MC_POST_FIRE_BOMB","text":"

Called when the player fires a Dr. Fetus bomb.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1253 MC_POST_FIRE_BOMB (EntityBomb Bomb) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_bone_club","title":"MC_POST_FIRE_BONE_CLUB","text":"

Called when the player fired The Forgotten's bone club.

This is only called when the club is initially spawned, not when swung or charged and shot.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1254 MC_POST_FIRE_BONE_CLUB (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_brimstone","title":"MC_POST_FIRE_BRIMSTONE","text":"

Called when the player fires a brimstone laser.

This is also called for delayed brimstone.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1255 MC_POST_FIRE_BRIMSTONE (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_brimstone_ball","title":"MC_POST_FIRE_BRIMSTONE_BALL","text":"

Called when the player fires a brimstone ball.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1256 MC_POST_FIRE_BRIMSTONE_BALL (EntityEffect Effect) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_knife","title":"MC_POST_FIRE_KNIFE","text":"

Called when the player fires the knife from Mom's Knife.

This is only called when the club is initially spawned, not when charged and shot.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1257 MC_POST_FIRE_KNIFE (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_sword","title":"MC_POST_FIRE_SWORD","text":"

Called when the player swings the sword from Spirit Sword.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1258 MC_POST_FIRE_SWORD (EntityKnife Knife) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_tech_laser","title":"MC_POST_FIRE_TECH_LASER","text":"

Called when the player fires a Tech laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1259 MC_POST_FIRE_TECH_LASER (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_fire_tech_x_laser","title":"MC_POST_FIRE_TECH_X_LASER","text":"

Called when the player fires a Tech X laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1260 MC_POST_FIRE_TECH_X_LASER (EntityLaser Laser) - void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_brimstone","title":"MC_POST_FAMILIAR_FIRE_BRIMSTONE","text":"

Called when a familiar fires a brimstone laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1261 MC_POST_FAMILIAR_FIRE_BRIMSTONE (EntityLaser Laser) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_post_familiar_fire_tech_laser","title":"MC_POST_FAMILIAR_FIRE_TECH_LASER","text":"

Called when a familiar fires a Tech laser.

Returning any value will have no effect on later callback executions.

Value Name Function Args Optional Args Return Type 1262 MC_POST_FAMILIAR_FIRE_TECH_LASER (EntityLaser Laser) FamiliarVariant void"},{"location":"enums/ModCallbacks.html#mc_is_persistent_room_entity","title":"MC_IS_PERSISTENT_ROOM_ENTITY","text":"

Returning true allows entity to respawn.

Value Name Function Args Optional Args Return Type 1263 MC_IS_PERSISTENT_ROOM_ENTITY (EntityType Type, int Variant) - boolean"},{"location":"enums/ModCallbacks.html#mc_pre_playerhud_trinket_render","title":"MC_PRE_PLAYERHUD_TRINKET_RENDER","text":"

Returning true allows entity to respawn.

Value Name Function Args Optional Args Return Type 1264 MC_PRE_PLAYERHUD_TRINKET_RENDER (int Slot, Vector Position, float Scale, EntityPlayer Player ) int Slot table or boolean

Accepts returning a table, with any combination of the following fields:

  • Position - Alters trinket position.
  • Scale - Alters trinket scale.

Alternative accepts true, which cancels trinket rendering.

"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_decoration_update","title":"MC_PRE_GRID_ENTITY_DECORATION_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1400 MC_PRE_GRID_ENTITY_DECORATION_UPDATE (GridEntityDecoration Decoration) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_decoration_update","title":"MC_POST_GRID_ENTITY_DECORATION_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1401 MC_POST_GRID_ENTITY_DECORATION_UPDATE (GridEntityDecoration Decoration) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_door_update","title":"MC_PRE_GRID_ENTITY_DOOR_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1402 MC_PRE_GRID_ENTITY_DOOR_UPDATE (GridEntityDoor Door) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_door_update","title":"MC_POST_GRID_ENTITY_DOOR_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1403 MC_POST_GRID_ENTITY_DOOR_UPDATE (GridEntityDoor Door) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_fire_update","title":"MC_PRE_GRID_ENTITY_FIRE_UPDATE","text":"

Accepts false to cancel the update.

Warning

Fire grid entities are largely unused, and in most cases you'll want to target the EntityNPC fireplaces.

ID Name Function Args Optional Args Return Type 1404 MC_PRE_GRID_ENTITY_FIRE_UPDATE (GridEntityFire Fire) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_fire_update","title":"MC_POST_GRID_ENTITY_FIRE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1405 MC_POST_GRID_ENTITY_FIRE_UPDATE (GridEntityFire Fire) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_gravity_update","title":"MC_PRE_GRID_ENTITY_GRAVITY_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1406 MC_PRE_GRID_ENTITY_GRAVITY_UPDATE (GridEntityGravity Gravity) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_gravity_update","title":"MC_POST_GRID_ENTITY_GRAVITY_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1407 MC_POST_GRID_ENTITY_GRAVITY_UPDATE (GridEntityGravity Gravity) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_lock_update","title":"MC_PRE_GRID_ENTITY_LOCK_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1408 MC_PRE_GRID_ENTITY_LOCK_UPDATE (GridEntityLock Lock) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_lock_update","title":"MC_POST_GRID_ENTITY_LOCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1409 MC_POST_GRID_ENTITY_LOCK_UPDATE (GridEntityLock Lock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pit_update","title":"MC_PRE_GRID_ENTITY_PIT_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1410 MC_PRE_GRID_ENTITY_PIT_UPDATE (GridEntityPit Pit) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pit_update","title":"MC_POST_GRID_ENTITY_PIT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1411 MC_POST_GRID_ENTITY_PIT_UPDATE (GridEntityPit Pit) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_poop_update","title":"MC_PRE_GRID_ENTITY_POOP_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1412 MC_PRE_GRID_ENTITY_POOP_UPDATE (GridEntityPoop Poop) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_poop_update","title":"MC_POST_GRID_ENTITY_POOP_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1413 MC_POST_GRID_ENTITY_POOP_UPDATE (GridEntityPoop Poop) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pressureplate_update","title":"MC_PRE_GRID_ENTITY_PRESSUREPLATE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1414 MC_PRE_GRID_ENTITY_PRESSUREPLATE_UPDATE (GridEntityPressurePlate PressurePlate) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pressureplate_update","title":"MC_POST_GRID_ENTITY_PRESSUREPLATE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1415 MC_POST_GRID_ENTITY_PRESSUREPLATE_UPDATE (GridEntityPressurePlate PressurePlate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_rock_update","title":"MC_PRE_GRID_ENTITY_ROCK_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1416 MC_PRE_GRID_ENTITY_ROCK_UPDATE (GridEntityRock Rock) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_rock_update","title":"MC_POST_GRID_ENTITY_ROCK_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1417 MC_POST_GRID_ENTITY_ROCK_UPDATE (GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spikes_update","title":"MC_PRE_GRID_ENTITY_SPIKES_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1418 MC_PRE_GRID_ENTITY_SPIKES_UPDATE (GridEntitySpikes Spikes) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spikes_update","title":"MC_POST_GRID_ENTITY_SPIKES_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1419 MC_POST_GRID_ENTITY_SPIKES_UPDATE (GridEntitySpikes Spikes) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_staircase_update","title":"MC_PRE_GRID_ENTITY_STAIRCASE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1420 MC_PRE_GRID_ENTITY_STAIRCASE_UPDATE (GridEntityStairs Staircase) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_staircase_update","title":"MC_POST_GRID_ENTITY_STAIRCASE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1421 MC_POST_GRID_ENTITY_STAIRCASE_UPDATE (GridEntityStairs Staircase) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_statue_update","title":"MC_PRE_GRID_ENTITY_STATUE_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1422 MC_PRE_GRID_ENTITY_STATUE_UPDATE (GridEntityStatue Statue) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_statue_update","title":"MC_POST_GRID_ENTITY_STATUE_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1423 MC_POST_GRID_ENTITY_STATUE_UPDATE (GridEntityStatue Statue) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_teleporter_update","title":"MC_PRE_GRID_ENTITY_TELEPORTER_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1424 MC_PRE_GRID_ENTITY_TELEPORTER_UPDATE (GridEntityTeleporter Teleporter) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_teleporter_update","title":"MC_POST_GRID_ENTITY_TELEPORTER_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1425 MC_POST_GRID_ENTITY_TELEPORTER_UPDATE (GridEntityTeleporter Teleporter) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_trapdoor_update","title":"MC_PRE_GRID_ENTITY_TRAPDOOR_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1426 MC_PRE_GRID_ENTITY_TRAPDOOR_UPDATE (GridEntityTrapDoor TrapDoor) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_trapdoor_update","title":"MC_POST_GRID_ENTITY_TRAPDOOR_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1427 MC_POST_GRID_ENTITY_TRAPDOOR_UPDATE (GridEntityTrapDoor TrapDoor) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_web_update","title":"MC_PRE_GRID_ENTITY_WEB_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1428 MC_PRE_GRID_ENTITY_WEB_UPDATE (GridEntityWeb Web) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_web_update","title":"MC_POST_GRID_ENTITY_WEB_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1429 MC_POST_GRID_ENTITY_WEB_UPDATE (GridEntityWeb Web) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_tnt_update","title":"MC_PRE_GRID_ENTITY_TNT_UPDATE","text":"

Accepts false to cancel the update.

ID Name Function Args Optional Args Return Type 1430 MC_PRE_GRID_ENTITY_TNT_UPDATE (GridEntityTNT TNT) GridEntityType boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_tnt_update","title":"MC_POST_GRID_ENTITY_TNT_UPDATE","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1431 MC_POST_GRID_ENTITY_TNT_UPDATE (GridEntityTNT TNT) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_spikes_render","title":"MC_PRE_GRID_ENTITY_SPIKES_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1432 MC_PRE_GRID_ENTITY_SPIKES_RENDER (GridEntitySpikes Grid, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_spikes_render","title":"MC_POST_GRID_ENTITY_SPIKES_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1433 MC_POST_GRID_ENTITY_SPIKES_RENDER (GridEntitySpikes Grid) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_web_render","title":"MC_PRE_GRID_ENTITY_WEB_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1434 MC_PRE_GRID_ENTITY_WEB_RENDER (GridEntityWeb Web, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_web_render","title":"MC_POST_GRID_ENTITY_WEB_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1435 MC_POST_GRID_ENTITY_WEB_RENDER (GridEntityWeb Web) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_tnt_render","title":"MC_PRE_GRID_ENTITY_TNT_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1436 MC_PRE_GRID_ENTITY_TNT_RENDER (GridEntityTNT TNT, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_tnt_render","title":"MC_POST_GRID_ENTITY_TNT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1437 MC_POST_GRID_ENTITY_TNT_RENDER (GridEntityTNT TNT) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_trapdoor_render","title":"MC_PRE_GRID_ENTITY_TRAPDOOR_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1438 MC_PRE_GRID_ENTITY_TRAPDOOR_RENDER (GridEntityTrapDoor TrapDoor, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_trapdoor_render","title":"MC_POST_GRID_ENTITY_TRAPDOOR_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1439 MC_POST_GRID_ENTITY_TRAPDOOR_RENDER (GridEntityTrapDoor TrapDoor) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_staircase_render","title":"MC_PRE_GRID_ENTITY_STAIRCASE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1440 MC_PRE_GRID_ENTITY_STAIRCASE_RENDER (GridEntityStairs Staircase, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_staircase_render","title":"MC_POST_GRID_ENTITY_STAIRCASE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1441 MC_POST_GRID_ENTITY_STAIRCASE_RENDER (GridEntityStairs Staircase) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_decoration_render","title":"MC_PRE_GRID_ENTITY_DECORATION_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1444 MC_PRE_GRID_ENTITY_DECORATION_RENDER (GridEntityDecoration Decoration, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_decoration_render","title":"MC_POST_GRID_ENTITY_DECORATION_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1445 MC_POST_GRID_ENTITY_DECORATION_RENDER (GridEntityDecoration Decoration) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_door_render","title":"MC_PRE_GRID_ENTITY_DOOR_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1446 MC_PRE_GRID_ENTITY_DOOR_RENDER (GridEntityDoor Door, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_door_render","title":"MC_POST_GRID_ENTITY_DOOR_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1447 MC_POST_GRID_ENTITY_DOOR_RENDER (GridEntityDoor Door) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_fire_render","title":"MC_PRE_GRID_ENTITY_FIRE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

Warning

Fire grid entities are largely unused, and in most cases you'll want to target the EntityNPC fireplaces.

ID Name Function Args Optional Args Return Type 1448 MC_PRE_GRID_ENTITY_FIRE_RENDER (GridEntityFire Fire, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_fire_render","title":"MC_POST_GRID_ENTITY_FIRE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1449 MC_POST_GRID_ENTITY_FIRE_RENDER (GridEntityFire Fire) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_lock_render","title":"MC_PRE_GRID_ENTITY_LOCK_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1450 MC_PRE_GRID_ENTITY_LOCK_RENDER (GridEntityLock Lock, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_lock_render","title":"MC_POST_GRID_ENTITY_LOCK_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1451 MC_POST_GRID_ENTITY_LOCK_RENDER (GridEntityLock Lock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_teleporter_render","title":"MC_PRE_GRID_ENTITY_TELEPORTER_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1452 MC_PRE_GRID_ENTITY_TELEPORTER_RENDER (GridEntityTeleporter Teleporter, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_teleporter_render","title":"MC_POST_GRID_ENTITY_TELEPORTER_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1453 MC_POST_GRID_ENTITY_TELEPORTER_RENDER (GridEntityTeleporter Teleporter) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pit_render","title":"MC_PRE_GRID_ENTITY_PIT_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1454 MC_PRE_GRID_ENTITY_PIT_RENDER (GridEntityPit Pit, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pit_render","title":"MC_POST_GRID_ENTITY_PIT_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1455 MC_POST_GRID_ENTITY_PIT_RENDER (GridEntityPit Pit) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_poop_render","title":"MC_PRE_GRID_ENTITY_POOP_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

Warning

This callback does not include the EntityNPC poops used by Tainted ???.

ID Name Function Args Optional Args Return Type 1456 MC_PRE_GRID_ENTITY_POOP_RENDER (GridEntityPoop Poop, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_poop_render","title":"MC_POST_GRID_ENTITY_POOP_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1457 MC_POST_GRID_ENTITY_POOP_RENDER (GridEntityPoop Poop) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_rock_render","title":"MC_PRE_GRID_ENTITY_ROCK_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1458 MC_PRE_GRID_ENTITY_ROCK_RENDER (GridEntityRock Rock, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_rock_render","title":"MC_POST_GRID_ENTITY_ROCK_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1459 MC_POST_GRID_ENTITY_ROCK_RENDER (GridEntityRock Rock) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_pressureplate_render","title":"MC_PRE_GRID_ENTITY_PRESSUREPLATE_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1460 MC_PRE_GRID_ENTITY_PRESSUREPLATE_RENDER (GridEntityPressurePlate PressurePlate, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_pressureplate_render","title":"MC_POST_GRID_ENTITY_PRESSUREPLATE_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1461 MC_POST_GRID_ENTITY_PRESSUREPLATE_RENDER (GridEntityPressurePlate PressurePlate) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_grid_entity_wall_render","title":"MC_PRE_GRID_ENTITY_WALL_RENDER","text":"

Accepts a Vector to modify render offset or false to cancel rendering.

ID Name Function Args Optional Args Return Type 1462 MC_PRE_GRID_ENTITY_WALL_RENDER (GridEntityWall Wall, Vector Offset) GridEntityType Vector or boolean"},{"location":"enums/ModCallbacks.html#mc_post_grid_entity_wall_render","title":"MC_POST_GRID_ENTITY_WALL_RENDER","text":"

Accepts no return parameters.

ID Name Function Args Optional Args Return Type 1463 MC_POST_GRID_ENTITY_WALL_RENDER (GridEntityWall Wall) GridEntityType void"},{"location":"enums/ModCallbacks.html#mc_pre_level_select","title":"MC_PRE_LEVEL_SELECT","text":"

This callback is fired when the game selects which level (also known as stage) to load, usually when the player enters a trapdoor. The callback accepts two parameters:

  • Level: the level selected by the game, as defined in the LevelStage enumeration.
  • Type: the type of the level selected by the game, as defined in the StageType enumeration.

This callback can return either nothing or a table.

  • Nothing: let the game continue with the level stage / stage type pair it selected;
  • Table: must contain two fields (anonymous). The first field is the desired level stage, second field is the desired stage type.

If you return a table, Repentogon will check that the values fall in the allowed ranges for the level stage and the stage type.

Value ranges

Remember that the range of level types is not the same between normal / hard on one side and greed / greedier on the other.

Also remember that since Repentance the stage type value 3 is deprecated.

ID Name Function Args Optional Args Return Type 1104 MC_PRE_LEVEL_SELECT (LevelStage Level, StageType Type) - void"},{"location":"enums/MouseButton.html","title":"Enum \"MouseButton\"","text":"Value Enumerator Comment 0 LEFT 1 RIGHT 2 SCROLLWHEEL 3 BACK Located on the side of some mice 4 FORWARD Located on the side of some mice","tags":["Enum"]},{"location":"enums/NullPickupSubType.html","title":"Enum \"NullPickupSubType\"","text":"Value Enumerator Comment 0 ANY 1 NO_COLLECTIBLE_CHEST 2 NO_COLLECTIBLE 3 NO_COLLECTIBLE_CHEST_COIN 3 GREED_MODE_ANY 4 NO_COLLECTIBLE_TRINKET_CHEST","tags":["Enum"]},{"location":"enums/PauseMenuStates.html","title":"Enum \"PauseMenuStates\"","text":"Value Enumerator Comment 0 CLOSED 1 OPEN 2 OPTIONS","tags":["Enum"]},{"location":"enums/PedestalType.html","title":"Enum \"PedestalType\"","text":"Value Enumerator Comment 0 DEFAULT 1 FORTUNE_TELLING_MACHINE 2 BLOOD_DONATION_MACHINE 3 SLOT_MACHINE 4 GOLDEN_CHEST 5 RED_CHEST 6 STONE_CHEST 7 SPIKED_CHEST 8 ETERNAL_CHEST 9 MOMS_DRESSING_TABLE 10 CHEST 11 MOMS_CHEST 12 OLD_CHEST 13 WOODEN_CHEST 14 MEGA_CHEST 15 CONFESSIONAL 16 GOLDEN_CHEST_COIN_SLOT 17 ETERNAL_CHEST_COIN_SLOT 18 OLD_CHEST_COIN_SLOT 19 MEGA_CHEST_COIN_SLOT","tags":["Enum"]},{"location":"enums/PillCardSlot.html","title":"Enum \"PillCardSlot\"","text":"Value Enumerator Comment 0 PRIMARY 1 SECONDARY 2 TERTIARY Offset by 2 of: Pocket Item, Dice Bag Item, Pillcard (Otherwise unused) 3 QUATERNARY Offset by Pocket Item and Dice Bag Item and Pillcard (Otherwise unused)","tags":["Enum"]},{"location":"enums/PlayerVariant.html","title":"Enum \"PlayerVariant\"","text":"Value Enumerator Comment 0 PLAYER 1 FOUND_SOUL 1 CO_OP_BABY","tags":["Enum"]},{"location":"enums/PocketItemType.html","title":"Enum \"PocketItemType\"","text":"Value Enumerator Comment 0 PILL 1 CARD 2 ACTIVE_ITEM","tags":["Enum"]},{"location":"enums/PressurePlateVariant.html","title":"Enum \"PressurePlateVariant\"","text":"Value Enumerator Comment 0 ROOM_CLEAR 1 REWARD 2 GREED_MODE 3 MINES_PUZZLE 3 RAIL_PLATE 9 KILL_SWITCH 10 EVENT_GROUP_0 10 EVENT_0 11 EVENT_GROUP_1 11 EVENT_1 12 EVENT_GROUP_2 12 EVENT_2 13 EVENT_GROUP_3 13 EVENT_3","tags":["Enum"]},{"location":"enums/ProceduralEffectActionType.html","title":"Enum \"ProceduralEffectActionType\"","text":"Value Enumerator Comment 0 USE_ACTIVE_ITEM 1 ADD_TEMPRORY_EFFECT 2 CONVERT_ENTITIES 3 AREA_DAMAGE 4 SPAWN_ENTITY 5 FART","tags":["Enum"]},{"location":"enums/ProceduralEffectConditionType.html","title":"Enum \"ProceduralEffectConditionType\"","text":"Value Enumerator Comment 0 ACTIVE 1 TEAR_FIRE 2 ENEMY_HIT 3 ENEMY_KILL 4 DAMAGE_TAKEN 5 ROOM_CLEAR 6 ENTITY_SPAWN 7 PICKUP_COLLECTED 8 CHAIN trigger if previous ProceduralEffect is triggered (or dropped by rate).","tags":["Enum"]},{"location":"enums/ProjectileMode.html","title":"Enum \"ProjectileMode\"","text":"Value Enumerator Comment 0 SINGLE 1 SPREAD_TWO 2 SPREAD_THREE 3 SPREAD_THREE_NO_INHERITANCE 4 SPREAD_FOUR 5 SPREAD_FIVE 6 PLUS 7 CROSS 8 CIRCLE_EIGHT 9 CIRCLE_CUSTOM","tags":["Enum"]},{"location":"enums/PurityState.html","title":"Enum \"PurityState\"","text":"Value Enumerator Comment 0 RED 1 BLUE 2 YELLOW 3 ORANGE","tags":["Enum"]},{"location":"enums/RetractingSpikesVariant.html","title":"Enum \"RetractingSpikesVariant\"","text":"Value Enumerator Comment 0 NORMAL 1 DOWN_1 2 DOWN_2 3 DOWN_3 4 DOWN_4 5 DOWN_5 6 UP_1 7 UP_2 8 UP_3 9 UP_4 10 UP_5","tags":["Enum"]},{"location":"enums/RoomSubType.html","title":"Enum \"RoomSubType\"","text":"Value Enumerator Comment 0 NULL 0 SHOP_LEVEL_1 1 SHOP_LEVEL_2 2 SHOP_LEVEL_3 3 SHOP_LEVEL_4 4 SHOP_LEVEL_5 10 SHOP_RARE_GOOD 11 SHOP_RARE_BAD 100 SHOP_KEEPER_LEVEL_1 101 SHOP_KEEPER_LEVEL_2 102 SHOP_KEEPER_LEVEL_3 103 SHOP_KEEPER_LEVEL_4 104 SHOP_KEEPER_LEVEL_5 110 SHOP_KEEPER_RARE_GOOD 111 SHOP_KEEPER_RARE_BAD 1 TREASURE_NORMAL 1 TREASURE_OPTIONS 2 TREASURE_PAY_TO_PLAY 3 TREASURE_PAY_TO_PLAY_OPTIONS 34 TREASURE_KNIFE_PIECE 0 MINIBOSS_SLOTH 1 MINIBOSS_LUST 2 MINIBOSS_WRATH 3 MINIBOSS_GLUTTONY 4 MINIBOSS_GREED 5 MINIBOSS_ENVY 6 MINIBOSS_PRIDE 7 MINIBOSS_SUPER_SLOTH 8 MINIBOSS_SUPER_LUST 9 MINIBOSS_SUPER_WRATH 10 MINIBOSS_SUPER_GLUTTONY 11 MINIBOSS_SUPER_GREED 12 MINIBOSS_SUPER_ENVY 13 MINIBOSS_SUPER_PRIDE 14 MINIBOSS_ULTRA_PRIDE 15 MINIBOSS_KRAMPUS 0 CHALLENGE_NORMAL 1 CHALLENGE_BOSS 10 CHALLENGE_WAVE 11 CHALLENGE_WAVE_BOSS 12 CHALLENGE_WAVE_GIDEON 0 LIBRARY_LEVEL_1 1 LIBRARY_LEVEL_2 2 LIBRARY_LEVEL_3 3 LIBRARY_LEVEL_4 4 LIBRARY_LEVEL_5 0 CRAWLSPACE_NORMAL 1 CRAWLSPACE_GIDEON 2 CRAWLSPACE_ROTGUT 2 CRAWLSPACE_GUS 3 CRAWLSPACE_ROTGUT_2 3 CRAWLSPACE_ROTGUT_HEART 4 CRAWLSPACE_BEAST 1 SECRET_EXIT_DOWNPOUR 2 SECRET_EXIT_MINES 3 SECRET_EXIT_MAUSOLEUM 1 DOWNPOUR_WHITE_FIRE 34 DOWNPOUR_MIRROR 1 MINES_YELLOW_BUTTON 10 MINES_MINESHAFT_ENTRANCE 11 MINESHAFT_LOBBY 20 MINESHAFT_KNIFE_PIECE 30 MINESHAFT_ROOM 31 MINESHAFT_ROOM_BACKWARDS 0 ASCENT_EXIT 1 ASCENT_BASEMENT 4 ASCENT_CAVES 7 ASCENT_DEPTHS 27 ASCENT_DOWNPOUR 29 ASCENT_MINES 31 ASCENT_MAUSOLEUM 0 HOME_ISAACS_BEDROOM 1 HOME_HALLWAY 2 HOME_MOMS_BEDROOM 3 HOME_LIVING_ROOM 10 HOME_CLOSET_PICKUPS 11 HOME_CLOSET_TAINTED 33 DEATH_CERTIFICATE_ENTRANCE 34 DEATH_CERTIFICATE_NORMAL 0 ARCADE_NORMAL 1 ARCADE_CAIN 0 CURSE_NORMAL 1 CURSE_VOODOO_HEAD 0 DEVIL_NORMAL 1 DEVIL_NUMBER_MAGNET 0 ANGEL_NORMAL 1 ANGEL_STAIRWAY 0 ISAACS_BEDROOM_NORMAL 99 ISAACS_BEDROOM_GENESIS 0 DEPTHS_NORMAL 1 DEPTHS_FOOL_ROOM 1 DEPTHS_MARKED_SKULL","tags":["Enum"]},{"location":"enums/ShaderType.html","title":"Enum \"Renderer.ShaderType\"","text":"Value Enumerator Comment 0 SHADER_COLOR_OFFSET 1 SHADER_PIXELATION 2 SHADER_BLOOM 3 SHADER_COLOR_CORRECTION 4 SHADER_HQ4X 5 SHADER_SHOCKWAVE 6 SHADER_OLDTV 7 SHADER_WATER 8 SHADER_HALLUCINATION 9 SHADER_COLOR_MOD 10 SHADER_COLOR_OFFSET_CHAMPION 11 SHADER_WATER_V2 12 SHADER_BACKGROUND 13 SHADER_WATER_OVERLAY 14 SHADER_UNK 15 SHADER_COLOR_OFFSET_DOGMA 16 SHADER_COLOR_OFFSET_GOLD 17 SHADER_DIZZY 18 SHADER_HEAT_WAVE 19 SHADER_MIRROR","tags":["Enum"]},{"location":"enums/SlotVariant.html","title":"Enum \"SlotVariant\"","text":"Value Enumerator Comment 1 SLOT_MACHINE 2 BLOOD_DONATION_MACHINE 2 TEMPERANCE_MACHINE 3 FORTUNE_TELLING_MACHINE 4 BEGGAR 5 DEVIL_BEGGAR 6 SHELL_GAME 7 KEY_MASTER 8 DONATION_MACHINE 9 BOMB_BUM 10 SHOP_RESTOCK_MACHINE 11 GREED_DONATION_MACHINE 12 MOMS_DRESSING_TABLE 13 BATTERY_BUM 14 HOME_CLOSET_PLAYER 15 HELL_GAME 16 CRANE_GAME 17 CONFESSIONAL 18 ROTTEN_BEGGAR","tags":["Enum"]},{"location":"enums/SpecialQuest.html","title":"Enum \"SpecialQuest\"","text":"Value Enumerator Comment -1 DISABLED 0 DEFAULT 1 MIRROR 2 MINESHAFT","tags":["Enum"]},{"location":"enums/StbGridType.html","title":"Enum \"StbGridType\"","text":"Value Enumerator Comment 0 DECORATION 1000 ROCK 1001 BOMB_ROCK 1002 ALT_ROCK 1003 MARKED_ROCK 1003 TINTED_ROCK 1008 ALT_ROCK_MARKED 1008 MARKED_SKULL 1009 EVENT_ROCK 1010 SPIKE_ROCK 1011 FOOLS_GOLD_ROCK 1300 TNT 1490 RED_POOP 1494 RAINBOW_POOP 1495 CHUNKY_POOP 1495 CORN_POOP 1496 GOLDEN_POOP 1497 BLACK_POOP 1498 HOLY_POOP 1498 WHITE_POOP 1499 GIANT_POOP 1500 POOP 1501 CHARMING_POOP 1900 BLOCK 1901 PILLAR 1901 TALL_BLOCK 1930 SPIKES 1931 RETRACTING_SPIKES 1940 COBWEB 1999 INVISIBLE_BLOCK 3000 PIT 3002 BUTTON_RAIL 3002 EVENT_RAIL 3009 EVENT_PIT 4000 KEY_BLOCK 4000 LOCK 4500 PRESSURE_PLATE 4500 BUTTON 5000 DEVIL_STATUE 5001 ANGEL_STATUE 6000 RAIL 6001 RAIL_PIT 6100 TELEPORTER 9000 TRAP_DOOR 9000 LEVEL_EXIT 9100 CRAWLSPACE 9100 STAIRCASE 10000 GRAVITY","tags":["Enum"]},{"location":"enums/StbPoopSubType.html","title":"Enum \"StbPoopSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 NON_REPLACEABLE","tags":["Enum"]},{"location":"enums/StbRailVariant.html","title":"Enum \"StbRailVariant\"","text":"Value Enumerator Comment 0 HORIZONTAL 1 VERTICAL 2 DOWN_TO_RIGHT 3 DOWN_TO_LEFT 4 UP_TO_RIGHT 5 UP_TO_LEFT 6 CROSSROAD 6 JUNCTION 7 END_LEFT 8 END_RIGHT 9 END_UP 10 END_DOWN 16 HORIZONTAL_CART_LEFT 32 HORIZONTAL_CART_RIGHT 17 VERTICAL_CART_UP 33 VERTICAL_CART_DOWN 80 MINESHAFT_HORIZONTAL_1 96 MINESHAFT_HORIZONTAL_2 112 MINESHAFT_HORIZONTAL_3 81 MINESHAFT_VERTICAL_1 97 MINESHAFT_VERTICAL_2 113 MINESHAFT_VERTICAL_3 82 MINESHAFT_DOWN_TO_RIGHT_1 98 MINESHAFT_DOWN_TO_RIGHT_2 83 MINESHAFT_DOWN_TO_LEFT_1 99 MINESHAFT_DOWN_TO_LEFT_2 84 MINESHAFT_UP_TO_RIGHT_1 100 MINESHAFT_UP_TO_RIGHT_2 85 MINESHAFT_UP_TO_LEFT_1 101 MINESHAFT_UP_TO_LEFT_2","tags":["Enum"]},{"location":"enums/StbRockSubType.html","title":"Enum \"StbRockSubType\"","text":"Value Enumerator Comment 0 NORMAL 1 NON_REPLACEABLE","tags":["Enum"]},{"location":"enums/StbTeleporterSubType.html","title":"Enum \"StbTeleporterSubType\"","text":"Value Enumerator Comment 0 ACTIVE 1 INNACTIVE","tags":["Enum"]},{"location":"enums/StbType.html","title":"Enum \"StbType\"","text":"Value Enumerator Comment 0 SPECIAL_ROOMS 1 BASEMENT 2 CELLAR 3 BURNING_BASEMENT 4 CAVES 5 CATACOMBS 6 FLOODED_CAVES 7 DEPTHS 8 NECROPOLIS 9 DANK_DEPTHS 10 WOMB 11 UTERO 12 SCARRED_WOMB 13 BLUE_WOMB 14 SHEOL 15 CATHEDRAL 16 DARK_ROOM 17 CHEST 26 THE_VOID 26 VOID 27 DOWNPOUR 28 DROSS 29 MINES 30 ASHPIT 31 MAUSOLEUM 32 GEHENNA 33 CORPSE 34 MORTIS 35 HOME 36 ASCENT","tags":["Enum"]},{"location":"enums/TaintedMarksGroup.html","title":"Enum \"TaintedMarksGroup\"","text":"Value Enumerator Comment 0 BOTH 1 SOULSTONE 2 POLAROID_NEGATIVE","tags":["Enum"]},{"location":"enums/TeleporterVariant.html","title":"Enum \"TeleporterVariant\"","text":"Value Enumerator Comment 0 SQUARE 1 MOON 2 RHOMBUS 2 DIAMOND 3 M 3 HAGALAZ 4 PENTAGRAM 5 CROSS 6 TRIANGLE","tags":["Enum"]},{"location":"enums/WeaponModifier.html","title":"Enum \"WeaponModifier\"","text":"Bitset Calculator Value Enumerator Comment 1 << 0 CHOCOLATE_MILK 1 << 1 CURSED_EYE 1 << 2 BRIMSTONE 1 << 3 MONSTROS_LUNG 1 << 4 LUDOVICO_TECHNIQUE 1 << 5 ANTI_GRAVITY 1 << 6 TRACTOR_BEAM 1 << 7 SOY_MILK 1 << 7 ALMOND_MILK 1 << 8 NEPTUNUS 1 << 9 AZAZELS_SNEEZE 1 << 11 C_SECTION 1 << 30 FAMILIAR 1 << 31 BONE","tags":["Enum"]},{"location":"enums/WispSubType.html","title":"Enum \"WispSubType\"","text":"Value Enumerator Comment 65536 SPECIAL_FLAG 65536 NOTCHED_AXE_COAL 0 | SPECIAL_FLAG 65537 NOTCHED_AXE_IRON 1 | SPECIAL_FLAG 65538 NOTCHED_AXE_GOLD etc 65539 NOTCHED_AXE_DIAMON 65540 NOTCHED_AXE_REDSTONE 65541 JAR_OF_FLIES_1 65542 JAR_OF_FLIES_2 65543 JAR_OF_FLIES_3 65544 JAR_OF_FLIES_4 65545 JAR_OF_FLIES_5 65546 FRIENDLY_BALL_NORMAL 65547 FRIENDLY_BALL_EXPLOSIVE 65548 FRIENDLY_BALL_HOMING 65549 FRIENDLY_BALL_BRIMSTONE 65550 DELIRIOUS_MONSTRO 65551 DELIRIOUS_DUKE 65552 DELIRIOUS_LOKI 65553 DELIRIOUS_HAUNT 65554 LEMEGETON_VIRTUE","tags":["Enum"]},{"location":"enums/XMLNode.html","title":"Enum \"XMLNode\"","text":"Value Enumerator Comment 0 MOD 1 ENTITY 2 PLAYER 3 ITEM 4 TRINKET 5 PILL 6 CARD 7 MUSIC 8 SOUND 9 CHALLENGE 10 ITEMPOOL 11 NIGHTMARE 12 COSTUME 13 NULLCOSTUME 14 WISP 15 WISPCOLOR 16 CURSE 17 LOCUST 18 LOCUSTCOLOR 19 BOMBCOSTUME 20 CRAFTINGRECIPE 21 BOSSPOOL 22 BOSSPORTRAIT 23 CUTSCENE 24 STAGE 25 BACKDROP 26 ACHIEVEMENT 27 GIANTBOOK 28 BOSSRUSHWAVE 29 PLAYERFORM 30 NULLITEM","tags":["Enum"]},{"location":"examples/Beams.html","title":"Beams Example","text":"

Beams are used internally for rendering cords, such as Gello's umbilical cord. Note that this only handles rendering and not physics.

Beams are best demonstrated by looking at the Ball and Chain enemies found in Gehenna, which have a chain that dynamically moves and stretches depending on how far away the spiked ball is from where it is chained.

Beams are comprised of any number of Points.

"},{"location":"examples/Beams.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

A laser Beam of death incinerating enemies.

Example
local mod = RegisterMod(\"Repentogon Beam Example\", 1)\n\n-- Some constants.\nlocal DAMAGE_MULTIPLIER = 0.01\nlocal ITEM_ID = Isaac.GetItemIdByName(\"Life-Drain Gem\")\n\n-- First make a sprite.\nlocal sprite = Sprite()\nsprite:Load(\"gfx/chain_beam.anm2\", true)\nsprite:Play(\"Idle\", true)\n\n-- Handles the beam and damaging of the closest enemy to the player.\nfunction mod:HandleLifeSteam(player)\n    local data = player:GetData()\n\n    -- Check if the player has our item, first.\n    if not player:HasCollectible(ITEM_ID) then\n        return\n    end\n\n    -- Get the beam stored in player:GetData(), or create one if it doesn't exist.\n    local beam = data.LifeStealBeam\n    if not beam then\n        -- Create the beam. We don't need to use the overlay here.\n        data.LifeStealBeam = Beam(sprite, \"chain\", false, false)\n        beam = data.LifeStealBeam\n    end\n\n    -- Get the closest enemy\n    local closestDistance, closestEnemy\n    for _, enemy in ipairs(Isaac.GetRoomEntities()) do\n        if enemy:IsActiveEnemy() and enemy:IsVulnerableEnemy() then\n            local distanceToPlayer = enemy.Position:Distance(player.Position)\n            if not closestDistance or closestDistance > distanceToPlayer then\n                closestEnemy = enemy:ToNPC()\n                closestDistance = distanceToPlayer\n            end\n        end\n    end\n\n    -- If there's no enemy in the room, end the function early.\n    if not closestEnemy then\n        return\n    end\n\n    -- Deal damage every frame.\n    closestEnemy:TakeDamage(player.Damage * DAMAGE_MULTIPLIER, 0, EntityRef(player), 0)\n\n    -- Render the beam. The position is in screen coordinates.\n    -- The second argument, SpritesheetCoordinate, is what the Y position of the spritesheet is by the time this Point is reached.\n    -- So for example, two points of 0 and 64 SpritesheetCoordinate will render the sprite starting from y0 to 64.\n    -- An additional Point with a SpritesheetCoordinate of 0 will draw it in reverse from y64 to y0.\n    -- Width is an optional third argument that is a multiplier used to determine the width of the Beam.\n    beam:Add(Isaac.WorldToScreen(player.Position), 0)\n    beam:Add(Isaac.WorldToScreen(closestEnemy.Position), 64) -- 64 is the height of the spritesheet.\n\n    -- Render the beam. By default, this will clear all points.\n    beam:Render()\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PLAYER_RENDER, mod.HandleLifeSteam)\n
"},{"location":"examples/Capsules.html","title":"Capsules Example","text":"

Capsules are used by the game for collision detection. All entities have a collision capsule whose shape is defined by their XML markup. Additionally, you can use a null layer frame's size and position in a sprite's animation to generate a null capsule.

Null layers are added in the sprite's .anm2 file by setting the type to \"Null\" when adding a layer. The size and relative position of the null layer is dependant on the position and scale of the frame.

You can use Entity:GetNullCapsule() to generate a capsule of the current frame in a specified null layer.

"},{"location":"examples/Capsules.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

An example of a capsule hitbox using a large lead pipe.

Example
local exampleMod = RegisterMod(\"Repentogon Null Capsule Example\", 1)\nlocal sfx = SFXManager()\n\n-- Setup some constants.\nlocal PIPE_ITEM_ID = Isaac.GetItemIdByName(\"Swinging Pipe\")\nlocal PIPE_EFFECT_ID = Isaac.GetEntityVariantByName(\"Pipe Swing\")\nlocal DAMAGE_MULTIPLIER = 2.5\n\n---@param player EntityPlayer\nfunction exampleMod:ActivatePipeItem(_, _, player, flags)\n    -- Don't run a second time for Car Battery, because it would be strange for an item like this.\n    if flags & UseFlag.USE_CARBATTERY == UseFlag.USE_CARBATTERY then\n        return\n    end\n\n    -- Spawn the pipe effect. We will be checking for things to damage in the update callback.\n    local effect = Isaac.Spawn(EntityType.ENTITY_EFFECT, PIPE_EFFECT_ID, 0, player.Position, Vector.Zero, player):ToEffect()\n    effect:FollowParent(player)\n\n    -- Sound effects.\n    sfx:Play(SoundEffect.SOUND_SWORD_SPIN)\nend\n\n-- Connect the callback, only for our item.\nexampleMod:AddCallback(ModCallbacks.MC_USE_ITEM, exampleMod.ActivatePipeItem, PIPE_ITEM_ID)\n\n-- Now, let's handle capsules.\n-- Capsules are our hitboxes.\n---@param pipe EntityEffect\nfunction exampleMod:PipeEffectUpdate(pipe)\n    local sprite = pipe:GetSprite()\n    local player = pipe.Parent:ToPlayer()\n    local data = pipe:GetData()\n\n    -- We are going to use this table as a way to make sure enemies are only hurt once in a swing.\n    -- This line will either set the hit blacklist to itself, or create one if it doesn't exist.\n    data.HitBlacklist = data.HitBlacklist or {}\n\n    -- Handle removing the pipe when the spin is done.\n    if sprite:IsFinished(\"Spin\") then\n        pipe:Remove()\n        return\n    end\n\n    -- We're doing a for loop before because the effect is based off of Spirit Sword's anm2.\n    -- Spirit Sword's anm2 has two hitboxes with the same name with a different number at the ending, so we use a for loop to avoid repeating code.\n    for i = 1, 2 do\n        -- Get the \"null capsule\", which is the hitbox defined by the null layer in the anm2.\n        local capsule = pipe:GetNullCapsule(\"Hit\" .. i)\n\n        -- Search for all enemies within the capsule.\n        for _, enemy in ipairs(Isaac.FindInCapsule(capsule, EntityPartition.ENEMY)) do\n            -- Make sure it can be hurt.\n            if enemy:IsVulnerableEnemy()\n            and enemy:IsActiveEnemy()\n            and not data.HitBlacklist[GetPtrHash(enemy)] then\n                -- Now hurt it.\n                enemy:TakeDamage(player.Damage * DAMAGE_MULTIPLIER, 0, EntityRef(player), 0)\n\n                -- Add it to the blacklist, so it can't be hurt again.\n                data.HitBlacklist[GetPtrHash(enemy)] = true\n\n                -- Do some fancy effects, while we're at it.\n                enemy:BloodExplode()\n                enemy:MakeBloodPoof(enemy.Position, nil, 0.5)\n                sfx:Play(SoundEffect.SOUND_DEATH_BURST_LARGE)\n            end\n        end\n    end\nend\n\n-- Connect the callback, only for our effect.\nexampleMod:AddCallback(ModCallbacks.MC_POST_EFFECT_UPDATE, exampleMod.PipeEffectUpdate, PIPE_EFFECT_ID)\n
"},{"location":"examples/WeightedOutcomes.html","title":"Weighted Outcomes Example","text":"

The WeightedOutcomePicker class allows choosing a random outcome from a weighted list using an RNG object.

A weighted chance system is commonly used by games to determine loot tables and other things where some items in a list of possible outcomes should have a lower chance than others. An outcome's chance to be chosen is determined by its weight divided by the sum of the weight of all outcomes.

The weight of each outcome don't have to add up to 100. The following code snippet adds up to each outcome having a 50% chance to chosen. 50 (weight) divided by sum of the weight of all outcomes (100) is 0.5 (50%).

local weightedOutcomePicker = WeightedOutcomePicker()\n\n-- Each outcome has a 50% chance to be chosen. (50 / 100)\nweightedOutcomePicker:AddOutcomeWeight(10, 50)\nweightedOutcomePicker:AddOutcomeWeight(20, 50)\n

Meanwhile, this code snippet has each outcome having a 33% chance to be chosen. 50 (weight) divided by sum of the weight of all outcomes (150) is 0.33 (33%).

local weightedOutcomePicker = WeightedOutcomePicker()\n\n-- Each outcome has a 33% chance to be chosen. (50 / 150)\nweightedOutcomePicker:AddOutcomeWeight(10, 50)\nweightedOutcomePicker:AddOutcomeWeight(20, 50)\nweightedOutcomePicker:AddOutcomeWeight(30, 50)\n

The follow example mod adds a new chest variant that only gives blue items, and uses a WeightedOutcomePicker filled with collectible types to make stronger items more rare.

"},{"location":"examples/WeightedOutcomes.html#code","title":"Code","text":"

You can download the full mod and its assets by clicking here.

Video Demonstration

A blue chest giving blue items.

Example
local mod = RegisterMod(\"Repentogon Custom Chest Example\", 1)\nlocal sfx = SFXManager()\n\nlocal BLUE_CHEST_SUBTYPE = Isaac.GetEntitySubTypeByName(\"Blue Chest\")\n\n-- First, let's create our WeightedOutcomePicker.\n-- This allows us to assign weights to a number outcome, and randomly chooses an outcome based on the total weight.\n-- To be specific, it's (itemWeight / sumOfItemWeights).\n-- We will be making a WeightedOutcomePicker for the items in which the chest can give.\nlocal itemOutcomes = WeightedOutcomePicker()\n\n-- Just add a few blue items. You don't HAVE to make the weights add up to 100, they can add up to anything, but it's easier to understand this way.\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_CONVERTER, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_ISAACS_TEARS, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLUE_BOX, 10) -- Pandora's Box\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_TELEPORT, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_D12, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_CUBE_BABY, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_PISCES, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLUE_MAP, 10)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_BLANKET, 5)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_EVIL_CHARM, 5)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_FATE, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_RELIC, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_GLOWING_HOUR_GLASS, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_PARASITOID, 1)\nitemOutcomes:AddOutcomeWeight(CollectibleType.COLLECTIBLE_VENUS, 1)\n\n-- Creates a pedestal that looks like our chest.\nfunction mod:CreateChestPedestal(location, rng, isCoinChest)\n    -- Get an outcome, aka a collectible type.\n    local collectibleId = itemOutcomes:PickOutcome(rng)\n\n    -- Spawn a pedestal with that item, and change\n    local itemPedestal = Isaac.Spawn(EntityType.ENTITY_PICKUP, PickupVariant.PICKUP_COLLECTIBLE, collectibleId, location, Vector.Zero, nil):ToPickup()\n\n    -- Replace the item pedestal's altar spritesheet with our own.\n    local sprite = itemPedestal:GetSprite()\n    sprite:ReplaceSpritesheet(5, \"gfx/items/blue_chest_altar.png\", true)\n\n    -- Remove the poof effect from the pedestal spawning.\n    itemPedestal:ClearEntityFlags(EntityFlag.FLAG_APPEAR)\n\n    -- Change the sprite. In the anm2, 5 is the frame with the opened golden chest, and 16 is the frame with the coin version.\n    -- Our altar spritesheet replaces those two sprites, so we will use those frames.\n    if isCoinChest then\n        itemPedestal:SetAlternatePedestal(16)\n    else\n        itemPedestal:SetAlternatePedestal(4)\n    end\n\n    --! To be clear, leaving and entering the room again or leaving and continuing the run will cause the pedestal to turn into a normal golden chest pedestal.\n    --! This can be fixed by using save data to track what pedestals are blue chest pedestals.\n    --! That is outside the scope of this example mod, but keep this in mind.\nend\n\n-- Handle giving an item.\nfunction mod:HandleGivingLoot(chest, collider)\n    local player = collider:ToPlayer()\n    local sprite = chest:GetSprite()\n\n    -- If a player didn't touch the chest, return (collider:ToPlayer() returns nil if it's not a player).\n    -- Also return if it's not our chest.\n    if not player or chest.SubType ~= BLUE_CHEST_SUBTYPE then\n        return\n    end\n\n    -- Make sure it's not already being opened.\n    if not sprite:IsPlaying(\"Open\")  then\n        -- Check if we should open the chest, and remove either a coin or a key if so.\n        local shouldOpen = false\n        local someoneHasPayToPlay = PlayerManager.AnyoneHasCollectible(CollectibleType.COLLECTIBLE_PAY_TO_PLAY)\n        if someoneHasPayToPlay and player:GetNumCoins() > 0 then\n            player:AddCoins(-1)\n            shouldOpen = true\n        elseif player:HasGoldenKey() or player:GetNumKeys() > 0 then\n            player:AddKeys(-1)\n            shouldOpen = true\n        end\n\n        -- If we are opening the chest, make an RNG object based on the drop seed of the chest and run the pedestal creation code.\n        if shouldOpen then\n            local rng = RNG()\n            rng:SetSeed(chest.DropSeed)\n\n            -- Spawn our pedestal.\n            mod:CreateChestPedestal(chest.Position, rng, someoneHasPayToPlay)\n\n            -- Remove the opened chest.\n            -- Wait 4 frames to do this so that there isn't a brief period where there's no visible sprite.\n            -- We can delay the function by a frame by using a timer.\n            Isaac.CreateTimer(function ()\n                chest:Remove()\n            end, 4, 1, false)\n\n            -- Play the animation so that this doesn't happen again.\n            sprite:Play(\"Open\")\n\n            -- Play the sound.\n            sfx:Play(SoundEffect.SOUND_CHEST_OPEN)\n        end\n    end\n\n    -- Cancel internal code of the normal chest and just allow collision.\n    return {\n        Collide = true,\n        SkipCollisionEffects = true,\n    }\nend\n\nmod:AddCallback(ModCallbacks.MC_PRE_PICKUP_COLLISION, mod.HandleGivingLoot, PickupVariant.PICKUP_CHEST)\n\n-- Handle general update logic.\nfunction mod:HandleBlueChestUpdate(chest)\n    local sprite = chest:GetSprite()\n\n    -- End the callback early if it's not our chest.\n    if chest.SubType ~= BLUE_CHEST_SUBTYPE then\n        return\n    end\n\n    -- Play sound.\n    if sprite:IsEventTriggered(\"DropSound\") then\n        sfx:Play(SoundEffect.SOUND_CHEST_DROP)\n    end\n\n    -- Handle switching animations.\n    if sprite:IsFinished(\"Appear\") then\n        sprite:Play(\"Idle\", true)\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_UPDATE, mod.HandleBlueChestUpdate, PickupVariant.PICKUP_CHEST)\n\n-- Handle the chest using the pay-to-play sprite.\nfunction mod:HandlePayToPlay(chest)\n    if chest.SubType == BLUE_CHEST_SUBTYPE and PlayerManager.AnyoneHasCollectible(CollectibleType.COLLECTIBLE_PAY_TO_PLAY) then\n        local sprite = chest:GetSprite()\n        sprite:ReplaceSpritesheet(0, \"gfx/items/pick ups/blue_chest_coinslot.png\", true)\n    end\nend\n\nmod:AddCallback(ModCallbacks.MC_POST_PICKUP_INIT, mod.HandlePayToPlay, PickupVariant.PICKUP_CHEST)\n
"},{"location":"menus/BestiaryMenu.html","title":"Global Class \"BestiaryMenu\"","text":"Info

You can get this class by using the BestiaryMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = BestiaryMenu.GetBestiaryMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getbestiarymenusprite","title":"GetBestiaryMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getbestiarymenusprite","title":"Sprite GetBestiaryMenuSprite ( )","text":"

Paper sprite and all other decoration.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getdeathscreensprite","title":"GetDeathScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getdeathscreensprite","title":"Sprite GetDeathScreenSprite ( )","text":"

Selectable elements that show the DeathScreen sprite of the enemies.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getenemysprite","title":"GetEnemySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#sprite-getenemysprite","title":"Sprite GetEnemySprite ( )","text":"

Used for the animated enemy preview.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getselectedpage","title":"GetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getselectedpage","title":"int GetSelectedPage ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getlastenemypageid","title":"GetLastEnemyPageID ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getlastenemypageid","title":"int GetLastEnemyPageID ( )","text":"

Gets the id of the last page enemies are displayed. Pages afterwards are reserved for bosses.

","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnumbosspages","title":"GetNumBossPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnumbosspages","title":"int GetNumBossPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnummonsterpages","title":"GetNumMonsterPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnummonsterpages","title":"int GetNumMonsterPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getnumpages","title":"GetNumPages ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getnumpages","title":"int GetNumPages ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#setselectedpage","title":"SetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#void-setselectedpage-int-page","title":"void SetSelectedPage ( int Page )","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/BestiaryMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html","title":"Global Class \"ChallengeMenu\"","text":"Info

You can get this class by using the ChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#getselectedchallengeid","title":"GetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#int-getselectedchallengeid","title":"int GetSelectedChallengeID ( )","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#setselectedchallengeid","title":"SetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/ChallengeMenu.html#void-setselectedchallengeid-int-challengeid","title":"void SetSelectedChallengeID ( int ChallengeID )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html","title":"Global Class \"CharacterMenu\"","text":"Info

You can get this class by using the CharacterMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CharacterMenu.GetBGSprite()\n
","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getbigcharpagesprite","title":"GetBigCharPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getbigcharpagesprite","title":"Sprite GetBigCharPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getbgsprite","title":"GetBGSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getbgsprite","title":"Sprite GetBGSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterportraitsprite","title":"GetCharacterPortraitSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getcharacterportraitsprite","title":"Sprite GetCharacterPortraitSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterwheeldepth","title":"GetCharacterWheelDepth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getcharacterwheeldepth","title":"float GetCharacterWheelDepth ( )","text":"

Returns the depth of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getcharacterwheelwidth","title":"GetCharacterWheelWidth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getcharacterwheelwidth","title":"float GetCharacterWheelWidth ( )","text":"

Returns the width of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficulty","title":"GetDifficulty ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getdifficulty","title":"int GetDifficulty ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficultypagesprite","title":"GetDifficultyPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getdifficultypagesprite","title":"Sprite GetDifficultyPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getdifficultyoverlaysprite","title":"GetDifficultyOverlaySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getdifficultyoverlaysprite","title":"Sprite GetDifficultyOverlaySprite ( )","text":"

The blood stain when selecting Hard mode / Greedier

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#geteastereggpagesprite","title":"GetEastereggPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-geteastereggpagesprite","title":"Sprite GetEastereggPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getischaracterunlocked","title":"GetIsCharacterUnlocked ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#boolean-getischaracterunlocked","title":"boolean GetIsCharacterUnlocked ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getgreeddecosprite","title":"GetGreedDecoSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getgreeddecosprite","title":"Sprite GetGreedDecoSprite ( )","text":"

Displayed when greedmode is selected

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getnumcharacters","title":"GetNumCharacters ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getnumcharacters","title":"int GetNumCharacters ( )","text":"

Number of characters in the wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getpageswapwidgetsprite","title":"GetPageSwapWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getpageswapwidgetsprite","title":"Sprite GetPageSwapWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getscrollspeed","title":"GetScrollSpeed ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#float-getscrollspeed","title":"float GetScrollSpeed ( )","text":"

Returns the speed of the animation playing when rotating the character selection wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedentrysprite","title":"GetSeedEntrySprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedentrysprite","title":"Sprite GetSeedEntrySprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedpagesprite","title":"GetSeedPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedpagesprite","title":"Sprite GetSeedPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getseedunlockpagesprite","title":"GetSeedUnlockPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getseedunlockpagesprite","title":"Sprite GetSeedUnlockPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getselectedcharactermenu","title":"GetSelectedCharacterMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getselectedcharactermenu","title":"int GetSelectedCharacterMenu ( )","text":"

0 for Normal, 1 for Tainted

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getselectedcharacterid","title":"GetSelectedCharacterID ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#int-getselectedcharacterid","title":"int GetSelectedCharacterID ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#gettaintedbgdecosprite","title":"GetTaintedBGDecoSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-gettaintedbgdecosprite","title":"Sprite GetTaintedBGDecoSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#getwinstreakpagesprite","title":"GetWinStreakPageSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#sprite-getwinstreakpagesprite","title":"Sprite GetWinStreakPageSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setcharacterwheeldepth","title":"SetCharacterWheelDepth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setcharacterwheeldepth-float-value","title":"void SetCharacterWheelDepth ( float Value )","text":"

Set the depth of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setcharacterwheelwidth","title":"SetCharacterWheelWidth ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setcharacterwheelwidth-float-value","title":"void SetCharacterWheelWidth ( float Value )","text":"

Set the width of the character selection wheel object.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setdifficulty","title":"SetDifficulty ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setdifficulty-difficulty-difficulty","title":"void SetDifficulty ( Difficulty Difficulty )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setischaracterunlocked","title":"SetIsCharacterUnlocked ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setischaracterunlocked-boolean-isunlocked","title":"void SetIsCharacterUnlocked ( boolean IsUnlocked )","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setscrollspeed","title":"SetScrollSpeed ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setscrollspeed-float-speed","title":"void SetScrollSpeed ( float Speed )","text":"

Set the speed of the animation playing when rotating the character selection wheel.

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setselectedcharactermenu","title":"SetSelectedCharacterMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setselectedcharactermenu-int-menu","title":"void SetSelectedCharacterMenu ( int Menu )","text":"

0 for Normal, 1 for Tainted

","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#setselectedcharacterid","title":"SetSelectedCharacterID ()","text":"","tags":["Global","Class"]},{"location":"menus/CharacterMenu.html#void-setselectedcharacterid-int-characterid","title":"void SetSelectedCharacterID ( int CharacterID )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html","title":"Global Class \"CollectionMenu\"","text":"Info

You can get this class by using the CollectionMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CollectionMenu.GetDeathScreenSprite()\n
","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getcollectionmenusprite","title":"GetCollectionMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#sprite-getcollectionmenusprite","title":"Sprite GetCollectionMenuSprite ( )","text":"

Paper sprite and all other decoration.

","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getdeathscreensprite","title":"GetDeathScreenSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#sprite-getdeathscreensprite","title":"Sprite GetDeathScreenSprite ( )","text":"

Selectable elements that show the DeathScreen sprite of the items.

","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getselectedpage","title":"GetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#int-getselectedpage","title":"int GetSelectedPage ( )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#setselectedpage","title":"SetSelectedPage ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#void-setselectedpage-int-page","title":"void SetSelectedPage ( int Page )","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CollectionMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html","title":"Global Class \"ControllerSelectMenu\"","text":"Info

You can get this class by using the ControllerSelectMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ControllerSelectMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ControllerSelectMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html","title":"Global Class \"CustomChallengeMenu\"","text":"Info

You can get this class by using the CustomChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CustomChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#getselectedchallengeid","title":"GetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#int-getselectedchallengeid","title":"int GetSelectedChallengeID ( )","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#setselectedchallengeid","title":"SetSelectedChallengeID ()","text":"","tags":["Global","Class"]},{"location":"menus/CustomChallengeMenu.html#void-setselectedchallengeid-int-challengeid","title":"void SetSelectedChallengeID ( int ChallengeID )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html","title":"Global Class \"CutscenesMenu\"","text":"Info

You can get this class by using the CutscenesMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = CutscenesMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/CutscenesMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html","title":"Global Class \"DailyChallengeMenu\"","text":"Info

You can get this class by using the DailyChallengeMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = DailyChallengeMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getleaderboardsprite","title":"GetLeaderboardSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getleaderboardsprite","title":"Sprite GetLeaderboardSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getleaderboardscoremenusprite","title":"GetLeaderboardScoreMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#sprite-getleaderboardscoremenusprite","title":"Sprite GetLeaderboardScoreMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimelefthours","title":"GetTimeLeftHours ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimelefthours","title":"int GetTimeLeftHours ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimeleftminutes","title":"GetTimeLeftMinutes ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimeleftminutes","title":"int GetTimeLeftMinutes ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#gettimeleftseconds","title":"GetTimeLeftSeconds ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#int-gettimeleftseconds","title":"int GetTimeLeftSeconds ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#isleaderboardvisible","title":"IsLeaderboardVisible ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#boolean-isleaderboardvisible","title":"boolean IsLeaderboardVisible ( )","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/DailyChallengeMenu.html#void-setselectedelement-int-elementid","title":"void SetSelectedElement ( int ElementID )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html","title":"Global Class \"KeyConfigMenu\"","text":"Info

You can get this class by using the KeyConfigMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = KeyConfigMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getselectedcolumn","title":"GetSelectedColumn ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#int-getselectedcolumn","title":"int GetSelectedColumn ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#setselectedcolumn","title":"SetSelectedColumn ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#void-setselectedcolumn-int-column","title":"void SetSelectedColumn ( int Column )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#iseditactive","title":"IsEditActive ()","text":"","tags":["Global","Class"]},{"location":"menus/KeyConfigMenu.html#boolean-iseditactive","title":"boolean IsEditActive ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html","title":"Global Class \"MainMenu\"","text":"Info

You can get this class by using the MainMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = MainMenu.GetGameMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/MainMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getcontinuewidgetsprite","title":"GetContinueWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#sprite-getcontinuewidgetsprite","title":"Sprite GetContinueWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getgamemenusprite","title":"GetGameMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#sprite-getgamemenusprite","title":"Sprite GetGameMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/MainMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html","title":"Global Class \"MenuManager\"","text":"Info

You can get this class by using the MenuManager global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = MenuManager.GetBackWidgetSprite()\n
","tags":["Global","Class"]},{"location":"menus/MenuManager.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getactivemenu","title":"GetActiveMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#mainmenutype-getactivemenu","title":"MainMenuType GetActiveMenu ( )","text":"

Returns the MainMenuType of the currently active (visible) section of the main menu.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getbackwidgetsprite","title":"GetBackWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getbackwidgetsprite","title":"Sprite GetBackWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getcolormodifierlerpamount","title":"GetColorModifierLerpAmount ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-getcolormodifierlerpamount","title":"ColorModifier GetColorModifierLerpAmount ( )","text":"Info

This is formatted as the absolute rate of change (ie, all values are positive).

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getcurrentcolormodifier","title":"GetCurrentColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-getcurrentcolormodifier","title":"ColorModifier GetCurrentColorModifier ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getselectwidgetsprite","title":"GetSelectWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getselectwidgetsprite","title":"Sprite GetSelectWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getshadowsprite","title":"GetShadowSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#sprite-getshadowsprite","title":"Sprite GetShadowSprite ( )","text":"

Shadow decoration that looks like isaacs head.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#gettargetcolormodifier","title":"GetTargetColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#colormodifier-gettargetcolormodifier","title":"ColorModifier GetTargetColorModifier ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#getviewposition","title":"GetViewPosition ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#vector-getviewposition","title":"Vector GetViewPosition ( )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setactivemenu","title":"SetActiveMenu ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#int-setactivemenu-mainmenutype-menu","title":"int SetActiveMenu (MainMenuType Menu )","text":"

Changes the active menu on the main menu to match the input menutype.

","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setcolormodifier","title":"SetColorModifier ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#void-setcolormodifier-colormodifier-colormodifier-boolean-lerp-true-float-rate-0015","title":"void SetColorModifier ( ColorModifier ColorModifier, boolean Lerp = true, float Rate = 0.015 )","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#setviewposition","title":"SetViewPosition ()","text":"","tags":["Global","Class"]},{"location":"menus/MenuManager.html#void-setviewposition-vector-position","title":"void SetViewPosition ( Vector Position )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html","title":"Global Class \"ModsMenu\"","text":"Info

You can get this class by using the ModsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = ModsMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#waslistedited","title":"WasListEdited ()","text":"","tags":["Global","Class"]},{"location":"menus/ModsMenu.html#boolean-waslistedited","title":"boolean WasListEdited ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html","title":"Global Class \"OptionsMenu\"","text":"Info

You can get this class by using the OptionsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = OptionsMenu.GetGammaWidgetSprite()\n
","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getgammawidgetsprite","title":"GetGammaWidgetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#sprite-getgammawidgetsprite","title":"Sprite GetGammaWidgetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getoptionsmenusprite","title":"GetOptionsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#sprite-getoptionsmenusprite","title":"Sprite GetOptionsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/OptionsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html","title":"Global Class \"SaveMenu\"","text":"Info

You can get this class by using the SaveMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = SaveMenu.GetSaveSelectMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsaveselectionmenusprite","title":"GetSaveSelectionMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsaveselectmenusprite","title":"Sprite GetSaveSelectMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getdeletebuttonsprite","title":"GetDeleteButtonSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getdeletebuttonsprite","title":"Sprite GetDeleteButtonSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getdeletepopupsprite","title":"GetDeletePopupSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getdeletepopupsprite","title":"Sprite GetDeletePopupSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave1drawingsprite","title":"GetSave1DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave1drawingsprite","title":"Sprite GetSave1DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave2drawingsprite","title":"GetSave2DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave2drawingsprite","title":"Sprite GetSave2DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getsave3drawingsprite","title":"GetSave3DrawingSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#sprite-getsave3drawingsprite","title":"Sprite GetSave3DrawingSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#isdeleteactive","title":"IsDeleteActive ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#boolean-isdeleteactive","title":"boolean IsDeleteActive ( )","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SaveMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html","title":"Global Class \"SpecialSeedsMenu\"","text":"Info

You can get this class by using the SpecialSeedsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = SpecialSeedsMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#getselectedelement","title":"GetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#int-getselectedelement","title":"int GetSelectedElement ( )","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#setselectedelement","title":"SetSelectedElement ()","text":"","tags":["Global","Class"]},{"location":"menus/SpecialSeedsMenu.html#void-setselectedelement-int-element","title":"void SetSelectedElement ( int Element )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html","title":"Global Class \"StatsMenu\"","text":"Info

You can get this class by using the StatsMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = StatsMenu.GetSecretsMenuSprite()\n
","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenusprite","title":"GetSecretsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenusprite","title":"Sprite GetSecretsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenucursorleftsprite","title":"GetSecretsMenuCursorLeftSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenucursorleftsprite","title":"Sprite GetSecretsMenuCursorLeftSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenucursorrightsprite","title":"GetSecretsMenuCursorRightSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenucursorrightsprite","title":"Sprite GetSecretsMenuCursorRightSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite1","title":"GetSecretsMenuMiniSprite1 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite1","title":"Sprite GetSecretsMenuMiniSprite1 ( )","text":"

Used for left scroll transition animation.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite2","title":"GetSecretsMenuMiniSprite2 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite2","title":"Sprite GetSecretsMenuMiniSprite2 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite3","title":"GetSecretsMenuMiniSprite3 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite3","title":"Sprite GetSecretsMenuMiniSprite3 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite4","title":"GetSecretsMenuMiniSprite4 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite4","title":"Sprite GetSecretsMenuMiniSprite4 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite5","title":"GetSecretsMenuMiniSprite5 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite5","title":"Sprite GetSecretsMenuMiniSprite5 ( )","text":"

Center mini paper. Used to display currently highlighted achievement.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite6","title":"GetSecretsMenuMiniSprite6 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite6","title":"Sprite GetSecretsMenuMiniSprite6 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite7","title":"GetSecretsMenuMiniSprite7 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite7","title":"Sprite GetSecretsMenuMiniSprite7 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite8","title":"GetSecretsMenuMiniSprite8 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite8","title":"Sprite GetSecretsMenuMiniSprite8 ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getsecretsmenuminisprite9","title":"GetSecretsMenuMiniSprite9 ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getsecretsmenuminisprite9","title":"Sprite GetSecretsMenuMiniSprite9 ( )","text":"

Used for right scroll transition animation.

","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#getstatsmenusprite","title":"GetStatsMenuSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#sprite-getstatsmenusprite","title":"Sprite GetStatsMenuSprite ( )","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#issecretsmenuvisible","title":"IsSecretsMenuVisible ()","text":"","tags":["Global","Class"]},{"location":"menus/StatsMenu.html#boolean-issecretsmenuvisible","title":"boolean IsSecretsMenuVisible ( )","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html","title":"Global Class \"TitleMenu\"","text":"Info

You can get this class by using the TitleMenu global table.

Note that to call these functions, you must use a . (period) instead of a : (colon)!

Example Code
local sprite = TitleMenu.GetSprite()\n
","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#functions","title":"Functions","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#getsprite","title":"GetSprite ()","text":"","tags":["Global","Class"]},{"location":"menus/TitleMenu.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Global","Class"]},{"location":"renderer/Beam.html","title":"Class \"Beam\"","text":"

An example mod using the Beam class can be found here.

This class provides more streamlined access to the BeamRenderer used internally for rendering cords, ie Evis, Gello, Vis Fatty, etc. Note that this is a low-level class that strictly handles rendering. We hope to later provide an extension of this class capable of handling the physics calculations and automatic point adjustment required for cords, but this is a complex system that will require a non-trivial amount of effort to implement.

","tags":["Class"]},{"location":"renderer/Beam.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam","title":"Beam ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam-beam-sprite-sprite-int-layer-boolean-useoverlay-boolean-unkbool","title":"Beam Beam ( Sprite Sprite, int Layer, boolean UseOverlay, boolean UnkBool )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#beam-beam-sprite-sprite-string-layername-boolean-useoverlay-boolean-unkbool","title":"Beam Beam ( Sprite Sprite, string LayerName, boolean UseOverlay, boolean UnkBool )","text":"Warning

The Sprite used in the Beam must be in the same \"scope\" as the Beam. For example, a global Sprite and local Beam works, but local Sprite and global Beam won't. They can also both be global/local or in the same table.

Example Code

Here is an example of how you would use this class:

local spritesheetHeight = 64\n\nlocal sprite = Sprite()\nsprite:Load(\"gfx/1000.193_anima chain.anm2\", true)\nsprite:Play(\"Idle\", false)\n\nlocal layer = sprite:GetLayer(\"chain\")\nlayer:SetWrapSMode(1)\nlayer:SetWrapTMode(0)\n\nlocal chain = Beam(sprite, \"chain\", false, false)\n\nmod:AddCallback(ModCallbacks.MC_PRE_PLAYER_RENDER, function(_, player)\n    local origin = Isaac.WorldToScreen(Game():GetRoom():GetCenterPos())\n    local target = Isaac.WorldToScreen(player.Position)\n    local coord = target:Distance(origin)\n    chain:Add(origin,0)\n    chain:Add(target,coord)\n    chain:Render()\nend)\n
","tags":["Class"]},{"location":"renderer/Beam.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Beam.html#add","title":"Add ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-add-vector-position-float-spritesheetcoordinate-float-width-10","title":"void Add ( Vector Position, float SpritesheetCoordinate, float Width = 1.0 )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-add-point-point","title":"void Add ( Point Point )","text":"

Adds a point to the beam. Points are stored in order of adding.

Info

SpritesheetCoordinate is, to our current understanding, the Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of 0 and 64 SpritesheetCoordinate will render the spritesheet starting from y 0 to y 64, while an additional third point of 0 will draw it in reverse from y 64 to y 0. Width acts as a multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points.

","tags":["Class"]},{"location":"renderer/Beam.html#getlayer","title":"GetLayer ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#int-getlayer","title":"int GetLayer ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getpoints","title":"GetPoints ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#point-getpoints","title":"Point[] GetPoints ( )","text":"

Returns a table of the Points currently stored.

","tags":["Class"]},{"location":"renderer/Beam.html#getsprite","title":"GetSprite ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#sprite-getsprite","title":"Sprite GetSprite ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getunkbool","title":"GetUnkBool ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#boolean-getunkbool","title":"boolean GetUnkBool ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#getuseoverlay","title":"GetUseOverlay ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#boolean-getuseoverlay","title":"boolean GetUseOverlay ( )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#render","title":"Render ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-render-boolean-clearpoints-true","title":"void Render ( boolean ClearPoints = true )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setlayer","title":"SetLayer ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setlayer-int-layerid","title":"void SetLayer ( int LayerID )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setlayer-string-layername","title":"void SetLayer ( string LayerName )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setpoints","title":"SetPoints ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setpoints-point-points","title":"void SetPoints ( Point[] Points )","text":"

Sets the Points used by this.

","tags":["Class"]},{"location":"renderer/Beam.html#setsprite","title":"SetSprite ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite","title":"void SetSprite ( Sprite Sprite )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite-string-layername-bool-useoverlay","title":"void SetSprite ( Sprite Sprite, string LayerName, bool UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setsprite-sprite-sprite-int-layerid-bool-useoverlay","title":"void SetSprite ( Sprite Sprite, int LayerID, bool UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setunkbool","title":"SetUnkBool ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setunkbool-boolean-unkbool","title":"void SetUnkBool ( boolean UnkBool )","text":"","tags":["Class"]},{"location":"renderer/Beam.html#setuseoverlay","title":"SetUseOverlay ()","text":"","tags":["Class"]},{"location":"renderer/Beam.html#void-setuseoverlay-boolean-useoverlay","title":"void SetUseOverlay ( boolean UseOverlay )","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html","title":"Class \"BlendMode\"","text":"Info

You can get this class by using the following functions:

  • LayerState:GetBlendMode()
Example Code
local blendMode = Sprite():GetLayer(0):GetBlendMode()\n
Warning

Largely undocumented. The Flag variables are likely OpenGL enums, but they are currently unknown.

","tags":["Class"]},{"location":"renderer/BlendMode.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#setmode","title":"SetMode ()","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#void-setmode-int-mode","title":"void SetMode ( int mode )","text":"

Ranges from 0-2. Invalid modes are ignored. The game generally uses 1, but uses 2 for multiplicative blending.

Info

TODO: The game manually sets blend modes other than what's provided here. Document and add to this function.

","tags":["Class"]},{"location":"renderer/BlendMode.html#variables","title":"Variables","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag1","title":"Flag1","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag1","title":"int Flag1","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag2","title":"Flag2","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag2","title":"int Flag2","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag3","title":"Flag3","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag3","title":"int Flag3","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#flag4","title":"Flag4","text":"","tags":["Class"]},{"location":"renderer/BlendMode.html#int-flag4","title":"int Flag4","text":"","tags":["Class"]},{"location":"renderer/CustomRendering.html","title":"Introduction","text":"

Custom rendering is a feature in Repentogon that gives you an extremely fine grained control over what gets rendered by the game in any given frame. In particular, it allows you to run custom shaders when the game renders individual objects, instead of being limited to running a shader on the entire scene once it has been computed.

"},{"location":"renderer/CustomRendering.html#on-rendering","title":"On rendering","text":"

This section presents how the render system of the game works. It is not crucial to understand it, but it can give some insight in case you get stuck on how to achieve something with the tools at your disposal in Repentogon.

On the PC version of Repentance, the game uses OpenGL for rendering. I will assume that you have a passing knowledge of OpenGL in this tutorial. If you wish to get familiar with it, this website has a very easy to follow tutorial on the topic.

Render operations on the C++ side are much more complicated than what the Lua side might suggest. For instance, to draw a sprite playing a certain animation at a certain frame, one would simply create the sprite, bind an ANM2 to it, configure the animation and frame, and call Render. On the C++ side, this results in multiple render operations. More precisely, there will be one render operation for every visible animation layer at the given frame. So an ANM2 with an animation that uses two layers will result in two render operations on the C++ side.

Render operations are not performed on the fly; they are queued. The game uses an array that stores the description of every render operation (what is the source texture, where to render it etc.), and the KAGE::Graphics::Manager::apply_frame_images function iterates over this array and apply the render operations in the order in which they were queued.

Render operations are extremely inconsistent. For instance, in order to render six gapers in a room, the game will queue six different operations. On the other hand, to render ten bullets fired by a single enemy, the game will queue a single render operation. The data at your disposal in Lua therefore needs to be interpreted relative to the context that is associated with it. See the table TODO at TODO for a breakdown.

The game uses the glDrawElements function to draw a set of vertices. The mode parameter is always set to GL_TRIANGLES. Isaac is a sprite-based game, and as such the game draws rectangles, i.e. two triangles.

C++ devs note

Most developers would perform a call to glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ...) prior to calling glDrawElements in order to tell the function where to find the indices of the vertices in the vertex buffer. In Isaac no such call is made, and the elements array is always given as the data parameter of the call to glDrawElements.

Additionnally, the game does not use a vertex array and computes both the vertex array and the elements array on the fly when render operations are performed. As a result, you won't find call to glBindVertexArray in the source of the game.

Calls to glDrawElements abound across rendering, with the game performing dozens of them in order to render a single frame. This is due to the fact that render operations are dequeued and performed one after the other.

The MC_PRE_OPENGL_RENDER callback is fired prior to every call to glDrawElements.

C++ devs note

To be extremely precise, the execution of the callback happens immediately before the call to glDrawElements: the C++ stack already holds all the parameters of the function.

"},{"location":"renderer/CustomRendering.html#custom-rendering","title":"Custom rendering","text":"

In order to perform custom rendering, you need to attach a function to MC_PRE_OPENGL_RENDER callback. This function is called with the following parameters :

  • The vertex buffer that contains the vertices that are going to be sent to the vertex shader. This is an instance of the NativeVertexBuffer class.
  • The elements array indicating in which order the vertices will be drawn. This is an instance of the ElementsArray class.
  • The ID of the shader that will be executed. This is a value from the Renderer.Shaders enumeration.
  • TODO The context of the render operation. In other words, what is being drawn.

There are two ways to work in this callback. The first is limited modifications to the input. The second is completely custom rendering.

"},{"location":"renderer/CustomRendering.html#modifications-of-the-input-of-mc_pre_opengl_render","title":"Modifications of the input of MC_PRE_OPENGL_RENDER","text":"

To indicate to the Repentogon runtime that you want to perform this kind of rendering, return a value from the Renderer.Shaders enumeration, or nil.

Modification here is limited to editing the content of the vertices in the vertex buffer, the indices in the elements array and the currently bound shader. It is not possible to add or remove vertices, nor is it possible to add or remove elements. Furthermore, if the bound shader is changed, then the new shader must be compatible with the previous one, i.e they must have exactly the same structure.

In order to modify the content of the vertex buffer, you can use the GetVertex method of the NativeVertexBuffer class. It will return a representation of the i-th vertex (indexed from 0). This representation can be manipulated like a Lua table, where the keys are the attributes of an input vertex in the currently bound vertex shader. For instance, if the vertex shader has the following structure:

attribute vec3 Position;\nattribute vec4 Color;\n

Then you have access to the Position and Color keys on the Vertex object returned by GetVertex. You can then edit these values as you see fit. Example:

mod:AddCallback(ModCallbacks.MC_PRE_OPENGL_RENDER, function(_, buffer, elements, shader, ctx)\n    local vertex = buffer:GetVertex(0)\n    vertex.Position.x = vertex.Position.x + 1\nend)\n

In order to modify the content of the elements array, you can use the [] operator on the object, and give the index you want to access. You may use the # operator to get the maximum valid index you can use.

In order to change the currently bound shader, return either:

  • A value of the Renderer.Shaders enumeration.
  • An object of type Shader obtained by a call to Renderer.Shader()
Rationale of the design

Due to the way the game manages the vertex buffer and the elements array on his side, adding / removing vertices at will would require copying the entire content of these buffers into new ones. As such, I (Sylmir) decided to consciously limit what can be done with this rendering mode.

"},{"location":"renderer/CustomRendering.html#completely-custom-rendering","title":"Completely custom rendering","text":"

In order to use completely custom rendering, one must return a Pipeline object in the MC_PRE_OPENGL_RENDER callback.

In order to create a Pipeline, use the Renderer.Pipeline() function.

A Pipeline object acts as a container for a sequence of render passes on a single input. In other words, the purpose of the Pipeline is to allow you to alter an existing render operation. If you want to render an arbitrary sprite, then first create this sprite, use Render() on it, and then change its rendering in this callback. Do not use the callback as a way to render anything.

To understand the idea of \"sequence of render passes\", consider the following code:

mod.EdgeDetectionShader = <create shader>\nmod.BloomShader = <create shader>\n\nmod:AddCallback(ModCallbacks.MC_PRE_OPENGL_RENDER, function(_, vertexBuffer, elements, shader, ctx)\n    local pipeline = Renderer.Pipeline()\n    local edgeBuffer = pipeline:NewPass(#vertexBuffer, elements, mod.EdgeDetectionShader)\n    <copy content of vertexBuffer into edgeBuffer>\n    local bloomBuffer = pipeline:NewPass(4, <define elements array>, mod.BloomShader)\n    <bind the uniforms in the two shaders>\n    return pipeline\nend)\n

In the function attached to the callback, we create new Pipeline and register two render passes in it, using the NewPass method (read more). The first pass will use an edge detection shader. The second pass will work on the output of the first pass and further apply a bloom shader on this result. We have a pipeline consisting of two sequential passes.

The NewPass function creates a new pass in a pipeline. You need three elements to define a pass: how many vertices will be defined, the elements array, and the shader program that will be used to perform the rendering. The function then returns a VertexBuffer object containing the specified number of vertices.

"},{"location":"renderer/CustomRendering.html#creating-a-shader","title":"Creating a shader","text":"

In order to create a shader, you need to use the Renderer.Shader function. This function takes three parameters: the path to the vertex shader file, the path to the fragment shader file, and a descriptor (VertexDescriptor).

To create a VertexDescriptor, use the Renderer.VertexDescriptor() function.

A VertexDescriptor acts as a representation of the vertex shader's attributes. For example, consider the following vertex shader.

attribute vec3 Position;\nattribute vec4 Color;\nvarying vec4 ColorOut;\n\nuniform mat4 Transform;\n\nvoid main() {\n    ColorOut = Color;\n    gl_Position = Transform * vec4(Position, 1);\n}\n

This vertex shader has two attributes, Position of type vec3 and Color of type vec4. Uniforms do not count as attributes.

Modern OpenGL

If you write your shaders in a reasonnably recent version of the GLSL language, the attribute keyword is either deprecated or outright removed, and you use the in keyword instead.

A VertexDescriptor for this vertex shader is a Lua representation of these attributes. The purpose of this descriptor is to let Lua structure the Vertex objects in a VertexBuffer in a way that mirrors the attributes of the vertex shader.

To define the attributes of a VertexDescriptor use the AddAttribute method. This method takes as parameters the name of the attribute (a string) as well as the type of the attribute (a value from the Renderer.GLSLType enumeration). To keep with the previous example, here is how one would define the descriptor of the previous vertex shader, and create a shader object:

local descriptor = Renderer.VertexDescriptor()\ndescriptor:AddAttribute(\"Position\", Renderer.GLSLType.VEC3)\ndescriptor:AddAttribute(\"Color\", Renderer.GLSLType.VEC4)\nlocal shader = Renderer.Shader(\"shaders/vertex.vs\", \"shaders/fragment.fs\", descriptor)\n
Copies and references

When a VertexDescriptor is used to create a shader, its content are copied inside the C++ representation of the shader, and not stored by reference. As a consequence, further modifications of the descriptor will not be reflected in the shader. Furthermore, this avoids an issue where losing all references to the descriptor on the Lua side could accidentally cause a memory corruption on the C++ side.

Rationale of the copy

The description of a shader is not supposed to change as the program runs. Therefore I think it makes no sense to store a reference to the descriptor. Furthermore, this avoids confusion when accidental modifications to the descriptor result in black squares being rendered.

"},{"location":"renderer/CustomRendering.html#creating-an-elements-array","title":"Creating an elements array","text":"

In order to create an elements array, use the Renderer.NewElements() functions. This function takes as parameters the number of vertices that will be rendered.

You can then use the [] operator with a number as parameter to access the element at a given index. Using a number outside the range defined in NewElements results in an error.

The code below shows an example on how to define an elements array that can be used to render a rectangle.

local elements = Renderer.NewElements(6)\nelements[0] = 0\nelements[1] = 1\nelements[2] = 2\nelements[3] = 2\nelements[4] = 1\nelements[5] = 3\n
"},{"location":"renderer/CustomRendering.html#defining-the-vertices","title":"Defining the vertices","text":"

Before the call to Pipeline:NewPass() returns, the runtime ensures that the values defined in the elements array are consistent with the number of requested vertices in the vertex buffer.

The call returns a VertexBuffer object, on which you can use the GetVertex() method to get access to the i-th vertex (0-based) as a Vertex. This Vertex contains attributes named and typed after the content of the VertexDescriptor object. Keeping with our above example:

local buffer = pipeline:NewPass(...)\nlocal vertex = buffer:GetVertex(0)\nvertex.Position = Renderer.Vec3(1, 0, 0)\nvertex.Color = Renderer.Vec4(0.2, 0.3, 0.4, 0.5)\n
"},{"location":"renderer/CustomRendering.html#binding-uniforms","title":"Binding uniforms","text":"

The final step in custom rendering is to bind values to the uniforms of shaders.

In order to bind a uniform in a shader, use the appropriate Bind* function on a Shader object. All these functions take as parameter the name of the uniform to bind and the value to bind to it.

Due to the way OpenGL works, every time a value is bound to a uniform further modifications of the variable holding this value have no effect on the uniform's value.

The uniform you'll probably need in almost any situation is the projection matrix, that converts coordinates from view space (the coordinates returned by the WorldToScreen() function) into clip space (the screen on which rendering is being done). This matrix can be accessed by using the Renderer.ProjectionMatrix() function.

mod.EdgeDetectionShader:BindMat4(\"Transform\", Renderer.ProjectionMatrix())\n
"},{"location":"renderer/CustomRendering.html#successive-passes-and-the-view-space","title":"Successive passes and the view space","text":"

One of the difficulties in writing multiple successive passes is to consider what the vertices of the all passes from the second onwards are. In particular, what are the coordinates (and in which space they are) of the vertices.

In the vanilla API, if multiple mods define custom shaders, they are executed in a sequence. Each time, the input vertices are positionned at the boundaries of the view space, in such a way that transforming them through the projection matrix results in the boundaries of clip space.

In the custom render system, you are free to use whatever method you feel is the most suited to what you want to achieve.

And there you go, you're free to do whatever you want with rendering now. Have fun.

"},{"location":"renderer/DestinationQuad.html","title":"Class \"DestinationQuad\"","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#destinationquad","title":"DestinationQuad ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#destinationquad-destinationquad-vector-topleft-vector-topright-vector-bottomleft-vector-bottomright","title":"DestinationQuad DestinationQuad ( Vector TopLeft, Vector TopRight, Vector BottomLeft, Vector BottomRight )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#getbottomleft","title":"GetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-getbottomleft","title":"Vector GetBottomLeft ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#getbottomright","title":"GetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-getbottomright","title":"Vector GetBottomRight ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#gettopleft","title":"GetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-gettopleft","title":"Vector GetTopLeft ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#gettopright","title":"GetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#vector-gettopright","title":"Vector GetTopRight ( )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#setbottomleft","title":"SetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-setbottomleft-vector-vector","title":"void SetBottomLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#setbottomright","title":"SetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-setbottomright-vector-vector","title":"void SetBottomRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#settopleft","title":"SetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-settopleft-vector-vector","title":"void SetTopLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#settopright","title":"SetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/DestinationQuad.html#void-settopright-vector-vector","title":"void SetTopRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html","title":"Class \"GLSLValue\"","text":"

Helper Classes to store GL data.

Those meta classes are: - GLFloatMT - GLVec2MT - GLVec3MT - GLVec4MT - GLMat2MT - GLMat3MT - GLMat4MT

","tags":["Class"]},{"location":"renderer/GLSLValue.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#__index","title":"__index ()","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#float-__index","title":"float __index ( )","text":"

meta function to access data in a given table key.

","tags":["Class"]},{"location":"renderer/GLSLValue.html#__newindex","title":"__newindex ()","text":"","tags":["Class"]},{"location":"renderer/GLSLValue.html#void-__newindex-float-value","title":"void __newindex ( float value )","text":"

meta function to write data in a given table key.

","tags":["Class"]},{"location":"renderer/Image.html","title":"Class \"Image\"","text":"Info

You can get this class by using the following function:

  • Renderer:LoadImage()
","tags":["Class"]},{"location":"renderer/Pipeline.html","title":"Class \"Pipeline\"","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#newpass","title":"NewPass ()","text":"","tags":["Class"]},{"location":"renderer/Pipeline.html#vertexbuffer-newpass-int-nbvertices-shader-shader-int-nbelements","title":"VertexBuffer NewPass ( int nbVertices, Shader shader, int nbElements )","text":"","tags":["Class"]},{"location":"renderer/Point.html","title":"Class \"Point\"","text":"

Used for Beam.

","tags":["Class"]},{"location":"renderer/Point.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/Point.html#beam","title":"Beam ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#point-point-vector-position-float-spritesheetcoordinate-float-width-10","title":"Point Point ( Vector Position, float SpritesheetCoordinate, float Width = 1.0 )","text":"Info

SpritesheetCoordinate is, to our current understanding, the Y position of the spritesheet that should be drawn by the time this Point is reached. For example, two points of 0 and 64 SpritesheetCoordinate will render the spritesheet starting from y 0 to y 64, while an additional third point of 0 will draw it in reverse from y 64 to y 0. Width acts as a multiplier for how wide the beam should be. A non-zero value will scale the spritesheet width accordingly. This is interpolated between points.

","tags":["Class"]},{"location":"renderer/Point.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Point.html#getspritesheetcoordinate","title":"GetSpritesheetCoordinate ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#float-getspritesheetcoordinate","title":"float GetSpritesheetCoordinate ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#getwidth","title":"GetWidth ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#float-getwidth","title":"float GetWidth ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#getposition","title":"GetPosition ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#vector-getposition","title":"Vector GetPosition ( )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setspritesheetcoordinate","title":"SetSpritesheetCoordinate ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setspritesheetcoordinate-float-height","title":"void SetSpritesheetCoordinate ( float Height )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setwidth","title":"SetWidth ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setwidth-float-width","title":"void SetWidth ( float Width )","text":"","tags":["Class"]},{"location":"renderer/Point.html#setposition","title":"SetPosition ()","text":"","tags":["Class"]},{"location":"renderer/Point.html#void-setposition-vector-position","title":"void SetPosition ( Vector Position )","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html","title":"Class \"RenderSet\"","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#slicesingle","title":"SliceSingle ()","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#void-slicesingle-vertexbuffer-vertexbuffer-shader-shader-int-nelements-int-first-int-second-1","title":"void SliceSingle ( VertexBuffer vertexBuffer, Shader shader, int nElements, int first, int second = -1 )","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#slicepipeline","title":"SlicePipeline ()","text":"","tags":["Class"]},{"location":"renderer/RenderSet.html#void-slicepipeline-string-filepath","title":"void SlicePipeline ( string filePath )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html","title":"Class \"Renderer\"","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#loadimage","title":"LoadImage ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#image-loadimage-string-filepath","title":"Image LoadImage ( string filePath )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#pipeline","title":"Pipeline ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#pipeline-pipeline","title":"Pipeline Pipeline ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#projectionmatrix","title":"ProjectionMatrix ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glmat4-projectionmatrix","title":"GLMat4 ProjectionMatrix ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#renderset","title":"RenderSet ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#void-renderset","title":"void RenderSet ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#shader","title":"Shader ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#shader-shader-string-vertexshader-string-fragmentshader-vertexdescriptor-vertexdescriptor","title":"Shader Shader ( string vertexShader, string fragmentShader, VertexDescriptor vertexDescriptor )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#starttransformation","title":"StartTransformation ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#transformer-starttransformation","title":"Transformer StartTransformation ( )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec2","title":"Vec2 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec2-vec2-float-x-0-float-y-0","title":"GLVec2 Vec2 ( float x = 0, float y = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec3","title":"Vec3 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec3-vec3-float-x-0-float-y-0-float-z-0","title":"GLVec3 Vec3 ( float x = 0 float y = 0, float z = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vec4","title":"Vec4 ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#glvec4-vec4-float-x-0-float-y-0-float-z-0-float-w-0","title":"GLVec4 Vec4 ( float x = 0 float y = 0, float z = 0, float w = 0 )","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vertexdescriptor","title":"VertexDescriptor ()","text":"","tags":["Class"]},{"location":"renderer/Renderer.html#vertexdescriptor-vertexdescriptor","title":"VertexDescriptor VertexDescriptor ( )","text":"","tags":["Class"]},{"location":"renderer/Shader.html","title":"Class \"Shader\"","text":"","tags":["Class"]},{"location":"renderer/Shader.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindfloat","title":"BindFloat ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindfloat-string-name-glfloat-value","title":"void BindFloat ( string name, GLFloat value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec2","title":"BindVec2 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec2-string-name-glvec2-value","title":"void BindVec2 ( string name, GLVec2 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec3","title":"BindVec3 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec3-string-name-glvec3-value","title":"void BindVec3 ( string name, GLVec3 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindvec4","title":"BindVec4 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindvec4-string-name-glvec4-value","title":"void BindVec4 ( string name, GLVec4 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat2","title":"BindMat2 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat2-string-name-glmat2-value","title":"void BindMat2 ( string name, GLMat2 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat3","title":"BindMat3 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat3-string-name-glmat3-value","title":"void BindMat3 ( string name, GLMat3 value )","text":"","tags":["Class"]},{"location":"renderer/Shader.html#bindmat4","title":"BindMat4 ()","text":"","tags":["Class"]},{"location":"renderer/Shader.html#void-bindmat4-string-name-glmat4-value","title":"void BindMat4 ( string name, GLMat4 value )","text":"","tags":["Class"]},{"location":"renderer/Shape.html","title":"Class \"Shape\"","text":"Info

You can get this class by using the following functions:

  • DebugRenderer:Get()
  • Entity:GetDebugShape()
","tags":["Class"]},{"location":"renderer/Shape.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Shape.html#gettimeout","title":"GetTimeout ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#int-gettimeout","title":"int GetTimeout ( )","text":"","tags":["Class"]},{"location":"renderer/Shape.html#settimeout","title":"SetTimeout ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#void-settimeout-int-timeout","title":"void SetTimeout ( int Timeout )","text":"","tags":["Class"]},{"location":"renderer/Shape.html#capsule","title":"Capsule ()","text":"","tags":["Class"]},{"location":"renderer/Shape.html#void-capsule-capsule-capsule","title":"void Capsule (Capsule Capsule )","text":"

Assign a capsule collider to the shape.

","tags":["Class"]},{"location":"renderer/SourceQuad.html","title":"Class \"SourceQuad\"","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#constructors","title":"Constructors","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#sourcequad","title":"SourceQuad ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#sourcequad-sourcequad-vector-topleft-vector-topright-vector-bottomleft-vector-bottomright","title":"SourceQuad SourceQuad ( Vector TopLeft, Vector TopRight, Vector BottomLeft, Vector BottomRight )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#getbottomleft","title":"GetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-getbottomleft","title":"Vector GetBottomLeft ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#getbottomright","title":"GetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-getbottomright","title":"Vector GetBottomRight ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#gettopleft","title":"GetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-gettopleft","title":"Vector GetTopLeft ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#gettopright","title":"GetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#vector-gettopright","title":"Vector GetTopRight ( )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#setbottomleft","title":"SetBottomLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-setbottomleft-vector-vector","title":"void SetBottomLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#setbottomright","title":"SetBottomRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-setbottomright-vector-vector","title":"void SetBottomRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#settopleft","title":"SetTopLeft ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-settopleft-vector-vector","title":"void SetTopLeft ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#settopright","title":"SetTopRight ()","text":"","tags":["Class"]},{"location":"renderer/SourceQuad.html#void-settopright-vector-vector","title":"void SetTopRight ( Vector Vector )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html","title":"Class \"Transformer\"","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#apply","title":"Apply ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-apply","title":"void Apply ( )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#isvalid","title":"IsValid ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#boolean-isvalid","title":"boolean IsValid ( )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#render","title":"Render ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-render-image-image-sourcequad-source-destinationquad-dest-color-modifier","title":"void Render ( Image image, SourceQuad source, DestinationQuad dest, Color modifier )","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#renderex","title":"RenderEx ()","text":"","tags":["Class"]},{"location":"renderer/Transformer.html#void-renderex-image-image-sourcequad-source-destinationquad-dest-color-modifier1-color-modifier2-color-modifier3-color-modifier4","title":"void RenderEx ( Image image, SourceQuad source, DestinationQuad dest, Color modifier1, Color modifier2, Color modifier3, Color modifier4 )","text":"","tags":["Class"]},{"location":"renderer/Vertex.html","title":"Class \"Vertex\"","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#dump","title":"Dump ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#table-dump","title":"table Dump ( )","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#__index","title":"__index ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#float-__index","title":"float __index ( )","text":"

meta function to access data in a given table key.

","tags":["Class"]},{"location":"renderer/Vertex.html#__newindex","title":"__newindex ()","text":"","tags":["Class"]},{"location":"renderer/Vertex.html#void-__newindex-float-value","title":"void __newindex ( float value )","text":"

meta function to write data in a given table key.

","tags":["Class"]},{"location":"renderer/VertexBuffer.html","title":"Class \"VertexBuffer\"","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#getelements","title":"GetElements ()","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#table-getelements","title":"table GetElements ( )","text":"

List of Elements

","tags":["Class"]},{"location":"renderer/VertexBuffer.html#getvertex","title":"GetVertex ()","text":"","tags":["Class"]},{"location":"renderer/VertexBuffer.html#vertex-getvertex-int-vertexid","title":"Vertex GetVertex ( int vertexId )","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html","title":"Class \"VertexDescriptor\"","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#functions","title":"Functions","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#addattribute","title":"AddAttribute ()","text":"","tags":["Class"]},{"location":"renderer/VertexDescriptor.html#void-addattribute-glsltype-type-string-name","title":"void AddAttribute ( GLSLType type, string name )","text":"","tags":["Class"]},{"location":"snippets/EntityClassDiagram_NewFunkyMode.html","title":"EntityClassDiagram NewFunkyMode","text":"
    classDiagram\n    class Entity:::diagramCurrentPage\n    class EntityBomb\n    class EntityEffect\n    class EntityFamiliar\n    class EntityKnife\n    class EntityLaser\n    class EntityNPC\n    class EntityPickup\n    class EntityPlayer\n    class EntityProjectile\n    class EntitySlot\n    class EntityTear\n    Entity <|-- EntityBomb\n    Entity <|-- EntityEffect\n    Entity <|-- EntityFamiliar\n    Entity <|-- EntityKnife\n    Entity <|-- EntityLaser\n    Entity <|-- EntityNPC\n    Entity <|-- EntityPickup\n    Entity <|-- EntityPlayer\n    Entity <|-- EntityProjectile\n    Entity <|-- EntitySlot\n    Entity <|-- EntityTear\n    link Entity \"https://wofsauge.github.io/IsaacDocs/rep/Entity.html\" \"Go to page for 'Entity' class\"\n    link EntityBomb \"https://wofsauge.github.io/IsaacDocs/rep/EntityBomb.html\" \"Go to page for 'EntityBomb' class\"\n    link EntityEffect \"https://wofsauge.github.io/IsaacDocs/rep/EntityEffect.html\" \"Go to page for 'EntityEffect' class\"\n    link EntityFamiliar \"https://wofsauge.github.io/IsaacDocs/rep/EntityFamiliar.html\" \"Go to page for 'EntityFamiliar' class\"\n    link EntityKnife \"https://wofsauge.github.io/IsaacDocs/rep/EntityKnife.html\" \"Go to page for 'EntityKnife' class\"\n    link EntityLaser \"EntityLaser.html\" \"Go to page for 'EntityLaser' class\"\n    link EntityNPC \"EntityNPC.html\" \"Go to page for 'EntityNPC' class\"\n    link EntityPickup \"EntityPickup.html\" \"Go to page for 'EntityPickup' class\"\n    link EntityPlayer \"EntityPlayer.html\" \"Go to page for 'EntityPlayer' class\"\n    link EntityProjectile \"https://wofsauge.github.io/IsaacDocs/rep/EntityProjectile.html\" \"Go to page for 'EntityProjectile' class\"\n    link EntitySlot \"EntitySlot.html\" \"Go to page for 'EntitySlot' class\"\n    link EntityTear \"https://wofsauge.github.io/IsaacDocs/rep/EntityTear.html\" \"Go to page for 'EntityTear' class\"
"},{"location":"xml/achievements.html","title":"File \"achievements.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new achievements.

With REPENTOGON, you have the ability to add new achievements in an organic way, they should work just as vanilla achievements do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of an achievement in lua, you can use Isaac.GetAchievementIdByName, you can unlock modded achievements using the PersistentGameData.TryUnlock function. When modded achievements are unlocked, they will play the animation as normal and they will interact with vanilla achievements if several are unlocked at once. REPENTOGON also tracks modded achievements and saves them internally, so you dont need to handle them on your side. Take in mind that you can lock achievements by using the \"Lock\" console command.

The following custom attributes can be defined for achievements in the achievements xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, text is used instead) gfxback string path of the png sprite to use as a background paper for the achievement More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/ambush.html","title":"File \"ambush.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new boss rush waves!

With REPENTOGON, you have the ability to add new boss rush waves in an organic way, they should work just as vanilla boss rush waves do with the same xml structure. Take in mind that the only thing thats read by the game on this xml is bossrush waves, the challenge room stuff was deprecated in repentance and is no longer relevant (so dont bother adding those).

More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/challenges.html","title":"File \"challenges.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new challenges.

With REPENTOGON, some attributes have specially mod support capatibilites added to them, see below:

Variable-Name Possible Values Description unlockachievement string Sets the achievement(preferably a modded one using the name of the achievement) to unlock when the challenge is completed startingitems string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values startingitems2 string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values startingtrinkets string This now supports modded trinkets by using the names of the trinkets instead of the ids. Same format as in vanilla, a comma separated list of values playertype string This now supports modded characters by using the names of the items instead of the ids More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/costumes.html","title":"File \"costumes2.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new costumes.

With REPENTOGON, the \"id\" attribute of a costume with type=\"none\" can now be used to assign that costume to a character or a \"null\" item/effect from the same mod.

Variable-Name Possible Values Description id int Assign the same \"id\" to a type=\"none\" costume and a corresponding \"null\" item in items.xml to have that \"null\" item automatically apply the costume, similarly to what could already be done for typical item costumes. See the page for items.xml for more information on \"null items\".Setting the \"id\" of a type=\"none\" costume and the \"modcostume\" attribute of a character in players.xml to the same number will permanantly apply that costume to that character, like the hair costumes of vanilla characters.Note that the id used must be at least 1. This id is not the one that will be used in-game, and is only for associating the costume with other things defined in a mod's xmls. name string used as a general way to identify xml nodes (when this is not present, the filename of the anm2path attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/cutscenes.html","title":"File \"cutscenes.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new cutscenes.

With REPENTOGON, you have the ability to add new cutscenes in an organic way, they should work just as vanilla cutscenes do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of a cutscene in lua, you can use Isaac.GetCutsceneIdByName, you can also play modded cutscenes from the console command \"cutscene\" to test them out.

The following custom attributes can be defined for cutscenes in the cutscenes xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, the filename of the gfx attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/entities.html","title":"File \"entities2.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new entities.

Variable-Name Possible Values Description customtags string Space-separated list of strings. See \"CustomTags\" section below.","tags":["File"]},{"location":"xml/entities.html#customtags","title":"CustomTags","text":"

Repentogon adds a new customtags attribute that can contain a space-separated list of strings that can then be checked in-game. Mods can freely add arbitrary string tags to this attribute in the XML and check if they were added to an entity in-game. This makes it easier for mods to add common entity behaviour/traits similar to the existing EntityTags without needing to individually list each entity in lua code, and mods can also use customtags from other mods in their own XMLs for easier mod compatability.

Capitalization does not matter and is ignored entirely when adding or checking for customtags.

Example XML:

customtags=\"yourcustomtag familiarignorebffs familiarblockprojectiles\"\n

customtags can be checked in-game using the EntityConfig:

Example Code:

local entConfig = EntityConfig.GetEntity(entType, entVar, entSub)\n\n-- Returns true if the entity has the tag string specified.\n-- Capitalization does not matter.\nif entConfig:HasCustomTag(\"yourcustomtag\") then\n  -- ...\nend\n\n-- Returns a table containing all customtags specified for this entity.\n-- Tags are provided in all lowercase.\nlocal customTags = entConfig:GetCustomTags()\n

Repentogon itself adds some tags that can be used to apply certain behaviours to custom familiars with no required lua code at all:

customtag Effects familiarignorebffs The BFFS item will no longer affect this familiar. familiarcantakedamage Familiars with baseHP above 0 will be able to take damage and die, such as from enemy contact, lasers or explosions. Note that they will only take damage from projectiles if they also have the \"familiarblockprojectiles\" tag. familiarblockprojectiles The familiar automatically destroys enemy projectiles on contact. More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/giantbook.html","title":"File \"giantbook.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new giantbook animations.

With REPENTOGON, you have the ability to add new giantbook animations in an organic way, they should work just as vanilla giantbook animations do with the same xml structure. Take in mind that, in the same way as other content xmls, ids are automatically assigned and shouldnt be specified. If you do specify an id for a xml node, it will be ignored. To get the Id of a Giant Book animation in lua, you can use Isaac.GetGiantBookIdByName, you can then play modded giant book animations using the ItemOverlay.Show function.

The following custom attributes can be defined for giantbook in the giantbook xml.

Variable-Name Possible Values Description name string used for the GetXByName functions (when this is not present, the filename of the gfx attribute is used instead) More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/items.html","title":"File \"items.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new items.

","tags":["File"]},{"location":"xml/items.html#null-items","title":"\"Null\" Items","text":"

With REPENTOGON, you can now define custom \"null\" items. \"Null\" items are not typical items that can be spawned or visually seen in-game. They are typically used by the game to handle various costumes, buffs and effects (both temporary and persistent).

For example, touching the white fire in downpour/dross actually grants a null item effect to you that applies the costume/flight/effects (NullItemID.ID_LOST_CURSE) and removes itself when exiting the mirror dimension. Obtaining a transformation adds a null item effect to the player that grants the actual costume/effects of the transformation (such as NullItemID.ID_GUPPY) which may remove itself if the transformation's requirements are lost.

Null items can be very useful for implementing temporary or persistent effects that can be freely added or removed.

Variable-Name Possible Values Description id int Assign the same \"id\" to a null item and a corresponding costume with type=\"none\" costume in costumes2.xml to have the null item automatically apply that costume, similarly to what could already be done for typical item costumes.Note that the id used must be at least 1. This id is not the one that will be used in-game, and is only for associating the null item with a costume. cache string Can be used to specify stats that should be re-evaluated when the effect of the null item is added or removed, same as regular items.Possible values : [firedelay, damage, speed, range, tearcolor, tearflag, color, size. shotspeed, all, luck, flying, weapon, familiars] persistent bool By default null item effects only last for the current room. Set persistent to true to have the effect persist between rooms. cooldown int If set, defines how long the effect of the null item lasts, in update frames (30 frames ~= 1 second). After this duration, the effect removes itself.

Null item examples:

<!-- Null item whose effect stays on the player permanantly, unless removed. -->\n<null id=\"1\" name=\"my null item 1\" persistent=\"true\" />\n\n<!-- Null item that triggers a damage & tears cache evaluation when added or removed. Only lasts for the current room. -->\n<null id=\"2\" name=\"my null item 2\" cache=\"damage firedelay\" />\n\n<!-- Null item whose effect lasts for 10 seconds, then removes itself. -->\n<null id=\"3\" name=\"my null item 3\" cooldown=\"300\" persistent=\"true\" />\n

You can use Isaac.GetNullItemIdByName(\"my null item\") to get the in-game ID of your null item.

Additionally, you can use the functions in the TemporaryEffects class to add, remove, count, or check the current cooldown of null item effects on the player.

More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"xml/overview.html","title":"XML-File Documentations","text":"

REPENTOGON changes how some xmls are able to be loaded, from enabling content adding on xmls where it was not originally possible to adding new parameters with new attached functionality, on this section you'll be able to find the xmls that feature these sort of changes.

XML variables introduced in REPENTOGON are not case sensitive, so naming conventions like camelCase are allowed.

"},{"location":"xml/players.html","title":"File \"players.xml\"","text":"

Resource-Folder: Using this file in a resource folder of a mod will replace the original file.

Content-Folder: Using this file in a content folder will add new characters.

With REPENTOGON, the vanilla HP variables can be omitted and fully replaced by our more advanced variables.

Variable-Name Possible Values Description items string This now supports modded items by using the names of the items instead of the ids. Same format as in vanilla, a comma separated list of values heartcontainers int The amount of empty heart containers the character should start with. 1 unit = 1/2 a heart redhearts int The amount of red hearts the character should start with. 1 unit = 1/2 a heart soulhearts int The amount of soul hearts the character should start with. 1 unit = 1/2 a heart blackhearts int The amount of black hearts the character should start with. These do not replace soul hearts and are applied after soul hearts. 1 unit = 1/2 a heart goldenhearts int The amount of golden hearts the character should start with. 1 unit = 1 golden heart bonehearts int The amount of empty bone hearts the character should start with. 1 unit = 1 bone heart eternalheart int If a character should start with an eternal heart. 1 = yes brokenhearts int The amount of broken hearts the character should start with. 1 unit = 1 broken heart rottenhearts int The amount of rotten hearts the character should start with. 1 unit = 1 rotten heart healthtype int The health type the player should start with. The int corresponds to the HealthType enum. healthlimit int A maximum amount of HP the character should be able to have. 1 unit = 1/2 heart speedmodifier float An inherent offset to the speed stat the character should start with. Base this offset off of Isaac's stats. firedelaymodifier float An inherent offset to the fire delay stat the character should start with. Base this offset off of Isaac's stats. damagemodifier float An inherent offset to the damage stat the character should start with. Base this offset off of Isaac's stats. rangemodifier float An inherent offset to the range stat the character should start with. Base this offset off of Isaac's stats. shotspeedmodifier float An inherent offset to the shot speed stat the character should start with. Base this offset off of Isaac's stats. luckmodifier float An inherent offset to the luck stat the character should start with. Base this offset off of Isaac's stats. gigabombs int The amount of giga bombs the character should start with. These do not replace normal bombs. completionparent string Used for characters that have shared completion marks with a preexistent character, like Dark Judas and Judas. The name of the parent character should be used for this attribute nomarks bool if it has any value other than 'false', it will hide the completion marks for the given character achievement int or string This is now respected on modded characters. For mods, it's best to define this as the name of the achievement (for example, achievement='You unlocked \"Tainted Golem\"'). Characters with this tag should have a second frame in their characterportraits(alt).anm2 which should be the \"locked\" picture for the character. In addition, all stat/item layers on the main menu will be hidden and the Unlocked By layer will be visible. See the achievements XML section for more info. modcostume int Set this to match the \"id\" attribute of a costume with type=\"none\" defined in the same mod (in costumes2.xml) to have that costume permanantly applied to the character (including during the mineshaft chase sequence). You cannot set both this and the \"costume\" attribute for vanilla costumes at the same time. More Info

For more information about this xml, check the original docs entry here.

","tags":["File"]},{"location":"blog/archive/2023.html","title":"2023","text":""},{"location":"tags.html","title":"Tags","text":""},{"location":"tags.html#class","title":"Class","text":"
  • Ambush
  • AnimationData
  • AnimationFrame
  • AnimationLayer
  • Backdrop
  • Camera
  • Capsule
  • ChallengeParam
  • Color
  • ColorModifier
  • ColorParams
  • Console
  • CostumeSpriteDesc
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntitiesSaveState
  • EntitiesSaveStateVector
  • Entity
  • EntityBomb
  • EntityConfig
  • EntityConfigEntity
  • EntityConfigPlayer
  • EntityDelirium
  • EntityEffect
  • EntityFamiliar
  • EntityKnife
  • EntityLaser
  • EntityNPC
  • EntityPickup
  • EntityPlayer
  • EntityProjectile
  • EntitySlot
  • EntityTear
  • FXParams
  • Font
  • Game
  • GridEntitiesSaveStateVector
  • GridEntity
  • GridEntityDecoration
  • GridEntityDoor
  • GridEntityFire
  • GridEntityGravity
  • GridEntityPressurePlate
  • GridEntityRock
  • GridEntityStairs
  • GridEntityStatue
  • GridEntityTeleporter
  • GridEntityTrapDoor
  • GridEntityWall
  • GridEntityWeb
  • HUD
  • History
  • HistoryItem
  • ImGui
  • Isaac
  • ItemConfig
  • ItemConfig - PillEffect
  • ItemOverlay
  • ItemPool
  • LayerState
  • Level
  • LevelGenerator
  • LevelGeneratorEntry
  • LevelGeneratorRoom
  • Minimap
  • MultiShotParams
  • MusicManager
  • NightmareScene
  • NullFrame
  • Options
  • PersistentGameData
  • PlayerHUD
  • PlayerHUDHeart
  • PlayerManager
  • PocketItem
  • ProceduralEffect
  • ProceduralItem
  • ProceduralItemManager
  • ProjectileParams
  • RNG
  • RailManager
  • Room
  • RoomConfigHolder
  • RoomConfigRoom
  • RoomDescriptor
  • RoomTransition
  • ScoreSheet
  • Sprite
  • StageTransition
  • Vector
  • Weapon
  • WeightedOutcomePicker
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
  • Beam
  • BlendMode
  • DestinationQuad
  • Class \"GLSLValue\"
  • Image
  • Class \"Pipeline\"
  • Point
  • Class \"RenderSet\"
  • Class \"Renderer\"
  • Class \"Shader\"
  • Shape
  • SourceQuad
  • Class \"Transformer\"
  • Class \"Vertex\"
  • Class \"VertexBuffer\"
  • Class \"VertexDescriptor\"
"},{"location":"tags.html#enum","title":"Enum","text":"
  • Achievement
  • AnimRenderFlags
  • AnnouncerVoiceMode
  • AutocompleteType
  • BagOfCraftingPickup
  • BombCostumeLayer
  • BossType
  • CameraStyle
  • CompletionType
  • ConsoleFont
  • DebugFlag
  • DialogButtons
  • DialogIcons
  • DialogReturn
  • Dimension
  • DipSubType
  • Ending
  • EntityPoopVariant
  • EntityTag
  • EventCounter
  • ExtraHudStyle
  • FadeoutTarget
  • FollowerPriority
  • GLSLType
  • Giantbook
  • GibFlag
  • GridPoopVariant
  • HealthType
  • ImGuiCallback
  • ImGuiColor
  • ImGuiData
  • ImGuiElement
  • ImGuiNotificationType
  • ItemAnim
  • KnifeSubType
  • KnifeVariant
  • Language
  • LineCheckMode
  • MainMenuType
  • MouseButton
  • NullPickupSubType
  • PauseMenuStates
  • PedestalType
  • PillCardSlot
  • PlayerVariant
  • PocketItemType
  • PressurePlateVariant
  • ProceduralEffectActionType
  • ProceduralEffectConditionType
  • ProjectileMode
  • PurityState
  • RetractingSpikesVariant
  • RoomSubType
  • ShaderType
  • SlotVariant
  • SpecialQuest
  • StbGridType
  • StbPoopSubType
  • StbRailVariant
  • StbRockSubType
  • StbTeleporterSubType
  • StbType
  • TaintedMarksGroup
  • TeleporterVariant
  • WeaponModifier
  • WispSubType
  • XMLNode
"},{"location":"tags.html#file","title":"File","text":"
  • achievements.xml
  • ambush.xml
  • challenges.xml
  • costumes.xml
  • cutscenes.xml
  • entities2.xml
  • giantbook.xml
  • items.xml
  • players.xml
"},{"location":"tags.html#global","title":"Global","text":"
  • Ambush
  • Console
  • DailyChallenge
  • Debug
  • DebugRenderer
  • EntityConfig
  • Isaac
  • ItemOverlay
  • Minimap
  • NightmareScene
  • PlayerManager
  • ProceduralItemManager
  • ProjectileParams
  • RoomTransition
  • ScoreSheet
  • StageTransition
  • XMLData
  • BestiaryMenu
  • ChallengeMenu
  • CharacterMenu
  • CollectionMenu
  • ControllerSelectMenu
  • CustomChallengeMenu
  • CutscenesMenu
  • DailyChallengeMenu
  • KeyConfigMenu
  • MainMenu
  • MenuManager
  • ModsMenu
  • OptionsMenu
  • SaveMenu
  • SpecialSeedsMenu
  • StatsMenu
  • TitleMenu
"}]} \ No newline at end of file diff --git a/sitemap.xml.gz b/sitemap.xml.gz index d880640ef13405a7e206ba36c7cb36a9d18e9689..fd22c14f6846d9d19cfe5529c367c718b499a4c2 100644 GIT binary patch delta 15 WcmZ3=x0H`fzMF$%-ldIf^6UU5Lj-gH delta 15 WcmZ3=x0H`fzMF$%Y2ijTd3FFJhy)q{