Modding changes in Repentance+
Author(s): benevolusTags:
Work in progress!
This article is a work in progress! Some sections may be incomplete or need revising.
With the addition of the Repentance+ DLC, there have been a few updates to the modding API compared to Repentance. This article will list all of the additions and changes that have been made in the process.
Entity⚓︎
The following functions now have an additional argument: IgnoreBosses. When set to true, the status effect will ignore the boss status effect cooldown that normally prevents bosses from gaining more status effects:
- Entity:AddBurn
- Entity:AddCharmed
- Entity:AddFear
- Entity:AddFreeze
- Entity:AddMidasFreeze
- Entity:AddPoison
- Entity:AddShrink
- Entity:AddSlowing
There is one new addition to the Entity class:
- Entity:KillWithSource is identical to Entity:Kill, but you can define an EntityRef as a source.
EntityPlayer⚓︎
- EntityPlayer:AddCollectible has an additional argument:
ItemPoolType. This allows you to manually define what item pool the item came from.
Font⚓︎
- Three new fonts were added under
gfx/font/teammeatex/:teammeatex10,teammeatex12, andteammeatex16.
Below is an example render of each size of font, first rendered with their regular version, followed by their EX version:

- A new override to the Font:DrawString function has been added that allows you to pass different sizes similarly to Font:DrawStringScaled as well as a brand new game object named FontRenderSettings, allowing more precise control over how the font is rendered.
Below are 5 different examples of text being rendered in different locations under different font settings:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | |

Game⚓︎
- Game:Fadein has two new arguments:
ShowIconandKColor.ShowIconappears to be non-functional.KColorwill change the color of the screen as it fades back into the view of the game.
Demonstration using Game():Fadein(0.025, true, KColor(0.5, 0.5, 0.5, 1)):

- Game:Fadeout has one new argument:
KColor. It will change the color of the screen that it will fade out into.
Demonstration using Game():Fadeout(0.025, 2, KColor(0.5, 0.5, 0.5, 1)):

GridEntity⚓︎
- GridEntity:DestroyWithSource is identical to GridEntity:Destroy, but you can define an EntityRef as a source.
- GridEntity:HurtWithSource is identical to GridEntity:Hurt, but you can define an EntityRef as a source.
HUD⚓︎
A new argument has been added to both overrides of HUD:ShowItemText: ClearStack. In Repentance+, HUD item text now stacks, showing one HUD text below the last one if it's still on screen. The argument is true by default, which will resort to the behaviour of Repentance HUD text of removing all existing HUD text on screen before displaying the new one.
Example:
Repeating the following function 3 times will only show it once:
1 | |

Doing the same thing again, but passing ClearStack as false, will show all three messages:
1 | |

ItemPool⚓︎
ItemPool:GetCollectible has an additional argument: BackupPoolType. Accepts an ItemPoolType such that if the regular pool in PoolType is empty and DefaultItem is set to CollectibleType.COLLECTIBLE_NULL, it will draw from BackupPoolType instead of ItemPoolType.POOL_TREASURE.
Not available with REPENTOGON
This addition was added in a later update to Repentance+ after v1.9.7.12, so it is not available to REPENTOGON users.
Example:
After draining the library pool, this would normally return a treasure room item:
1 | |
However, defining BackupPoolType with ItemPoolType.POOL_DEVIL will return an item from the devil item pool instead:
1 | |
Room⚓︎
- Room:DamageGridWithSource is identical to Room:DamageGrid, but you can define an EntityRef as a source.
- Room:DestroyGridWithSource is identical to Room:DestroyGrid, but you can define an EntityRef as a source.
- Room:MamaMegaExplosion's
Positionargument is now optional, placed atVector.Zeroby default. It also has an additional optional argument to pass an EntityPlayer as the source of the explosion.
Sprite⚓︎
- Sprite:ReplaceSpritesheet now returns a
booleaninstead ofnil. It will returntrueif the spritesheet at the given layer id was successfully replaced and if the new spritesheet is not the same as the old one, otherwise returnsfalse. It does not confirm whether the new spritesheet actually exists or not, so a non-existent spritesheet can still returntrue.
Options⚓︎
- One new variable: Options.JacobEsauControls.
0for "Classic" controls,1for "Better" controls.
Enums⚓︎
The following new enums have been added:
- DrawStringAlignment: For use in
FontRenderSettings
The following enums have been updated with new entries:
- BackdropType: New additions are
DEATHMATCHandLIL_PORTAL.NUM_BACKDROPShas been updated to reflect this. - ButtonAction: Many pre-existing enumerations have been switched around with new values. New additions are
ACTION_JOINMULTIPLAYER,ACTION_MENUX, andACTION_EMOTES. - EffectVariant:
BULLET_POOF_STATICandUMBILICAL_CORD_HELPERwere added, but were existing Repentance entities previously without enumerations. New additions areMEGA_BEAN_EXPLOSION,SPAWN_PENTAGRAM, andPLAYER_CREEP_YELLOW. - GameStateFlag: New additions are
STATE_MEGA_SATAN_DOOR_OPENED,STATE_URIEL_KILLED,STATE_GABRIEL_KILLED, andSTATE_MOTHER_HEART_DOOR_OPENED.NUM_STATE_FLAGShas been updated to reflect this. - GridRooms: New additions are
ROOM_DEATHMATCH_IDXandROOM_LIL_PORTAL_IDX.NUM_OFF_GRID_ROOMShas been updated to reflect this. - Music: The one new addition is
MUSIC_DEATHMATCH.NUM_MUSIChas been updated to reflect this. - RoomType: The one new addition is
ROOM_DEATHMATCH.NUM_ROOMTYPEShas been updated to reflect this. - SoundEffect: Has a large quantity of new sound effects.