The Binding of Isaac: Rebirth

The Binding of Isaac: Rebirth

[BETA] REPENTOGON: Isaac Script Extender
Showing 1-10 of 19 entries
< 1  2 >
Update: Nov 27, 2024 @ 9:08am

Added warning message about current incompatibility with Repentance+ DLC

Update: Oct 20, 2024 @ 11:49am

Update: Sep 29, 2024 @ 3:09pm

bump to 1.0.12a

Update: Aug 8, 2024 @ 1:19pm

bump to v1.0.11b

Update: Jul 21, 2024 @ 2:53pm

bump to v1.0.10c

Update: May 22, 2024 @ 7:20am

bump to v1.0.9d

Update: May 14, 2024 @ 9:36am

v1.0.9a -
Additions:

Game:
ClearErasedEnemies(): void
GetShopVisits(): int
AddShopVisits(count: int): void
EntitySlot:
GetShellGameAnimationIndex() : int
SetShellGameAnimationIndex(index: int) : void
GetTriggerTimerNum() : int
SetTriggerTimerNum(num: int) : void

Sorry about the startup line in 1.0.9, half of it was a lie, now it's not! This update enables "file map" functionality, speeding up file lookup, positively affecting the startup time. It shouldn't cause any issue, but if it does don't hesitate to report issues, in the meantime you can disable it in REPENTOGON's options window.

Bug fixes
Fixed a bug that caused the giveitem command to crash when the object to
give was reduced to a single letter
Fix "goto [s/x]." command autocomplete
Fixed incorrect type set for Slot->_timeout (int -> short)


1.0.9

Modified:

Callbacks:
MC_PRE_PLAYERHUD_TRINKET_RENDER: now provides [Vector] CropOffset parameter and accepts CropOffset vector in the return table.
EntityPlayer:
AddInnateCollectible() now uses a system separate from item wisps, still doesn't save on game exit though!
Change to HasCollectible and GetCollectibleNum:
new optional boolean (IgnoreSpoof), ignores collectible block when set to true
Game:
ShowGenericLeaderboard no longer fades to main menu
PersistentGameData:
TryUnlock now accepts an optional boolean to prevent popping up with the achievement paper for modded achievements

Additions:

Game:
SetDizzyAmount(amount, intensity)
GetDizzyAmount()
PlayerManager:
AnyPlayerTypeHasTrinket(PlayerType, TrinketType, IgnoreModifiers = false)
AnyPlayerTypeHasCollectible(PlayerType, CollectibleType, IgnoreModifiers = false)
Lootlist:
constructor
PushEntry(Type, Variant, SubType, Seed = Random(), RNG = nil)
GetEntries
LootListEntry:
[Get]Type/Variant/SubType/Seed/RNG
EntityPlayer:
Get/SetBombPlaceDelay
Get/SetBloodLustCounter
GetSpoofedCollectiblesList
New functionality for blocking items:
BlockCollectible(int itemID)
UnblockCollectible(int itemID)
IsCollectibleBlocked(int itemID)
HasGoldenTrinket
Get/SetHallowedGroundCountdown
EntityTear:
GetTearHaloSprite
GetTearEffectSprite
GetDeadEyeSprite
ResetSpriteScale(bool Force) - New optional "force" boolean, when set to true forces the tear to re-evaluate which scale animation it should be playing
EntityPickup:
GetLootList(ShouldAdvance = false)
GetPickupGhost
UpdatePickupGhosts
EntityNPC:
GetFireplaceLoot
GetShopkeeperLoot
EntityFamiliar:
[Get/Set]MoveDelayNum
ItemConfigItem:
HasCustomTag
GetCustomTags
Input:
GetDeviceNameByIdx
Isaac:
Get/SetDwmWindowAttribute (for use with new DwmWindowAttributes enum)
Get/SetWindowTitle (appends text to our title as to avoid confusion)
SetIcon(int/string,bool) (takes a 0/1 int or a path to .ico file, bool bypasses the 16x16 resolution cap)
Game
SetBloom
Console:
Added a popup error when a script ran by luamod errors, highlighting the last error thrown, to prevent it from being instantly buried
Isaac:
StartNewGame(int playertype, int challenge, int difficulty, int seed), allows starting the game from within the main menu
MenuManager:
SetInputMask(int mask) for use with the new ButtonActionBitwise enum, selectively allows/disallows the game's menu read certain inputs, useful for custom menus
GetInputMask()
MinimapState Enum:
Used for Minimap.SetState() and Minimap.GetState().
RoomConfig:
RoomConfig:GetStage(StbType)
RoomConfigStage
Get/Set DisplayName, Suffix, PlayerSpot, BossSpot, Music, Backdrop
GetRoomSet(Mode)
RoomConfigSet:
Acts like other ArrayProxy classes, but for RoomConfigRoom
__len and Get method, Size const variable
Level
Set/GetGreedWavesClearedWithoutRedHeartDamage: you read that right, finally, the highly requested function is here!
Cutscenes
Support for custom music for the music attribute on cutscenes.xml
NightmareScene
GetPlayerExtraPortraitSprite
RoomTransition
GetPlayerExtraPortraitSprite
Sprite
SetCustomShader(string Path) - Overrides only the default ColorOffset shader. Path starts at .../resources/ and expects to find both a .vs and .fs file. For example: SetCustomShader("shaders/my_shader")
ClearCustomShader()
HasCustomShader(string Path) - Returns true if the specified shader is currently set. If no string is provided, returns true if any custom shader is applied.
SetCustomChampionShader(string Path) - Same as SetCustomShader but for overriding ColorOffset_Champion instead.
ClearCustomChampionShader()
HasCustomChampionShader(string Path)
LayerState
SetCustomShader(string Path) - Same as sprite:SetCustomShader() but only for a single layer.
ClearCustomShader()
HasCustomShader(string Path)
SetCustomChampionShader(string Path)
ClearCustomChampionShader()
HasCustomChampionShader(string Path)
Callbacks:
MC_PRE_PICKUP_GET_LOOT_LIST callback (Pickup, bool ShouldAdvance) - Return LootList to change loot content
MC_PRE_PICKUP_UPDATE_GHOST_PICKUPS (Pickup) - Return true to apply pickup ghost to your pickup entitiy, false to cancel it
MC_POST_PLAYER_TRIGGER_EFFECT_REMOVED (Player, ItemConfigItem)
MC_POST_ROOM_TRIGGER_EFFECT_REMOVED (ItemConfigItem)
MC_PRE_X_GRID_COLLISION and MC_X_GRID_COLLISION (EntityX, int gridIndex, GridEntity or nil) - PLAYER/TEAR/FAMILIAR/BOMB/PICKUP/PROJECTILE/NPC, Return true on PRE to ignore collision.
MC_PRE_PLAYERHUD_RENDER_ACTIVE_ITEM(EntityPlayer, ActiveSlot, Vector offset, float alpha, float scale, Vector chargeBarOffset) - Return true to cancel rendering
MC_PRE_PLAYER_REVIVE(EntityPlayer) - Return false to prevent the player from reviving
MC_POST_PLAYER_REVIVE(EntityPlayer)
MC_POST_PROJECTILE/TEAR_DEATH (EntityProjectile/EntityTear)
MC_POST_BOSS_INTRO_SHOW (int BossID1,int BossID2)
MC_POST_ROOM_TRANSITION_UPDATE ()
MC_POST_ROOM_TRANSITION_RENDER ()
MC_PRE_X_UPDATE (EntityX) - PLAYER/TEAR/FAMILIAR/BOMB/PICKUP/KNIFE/PROJECTILE/LASER/EFFECT/SLOT, return true to skip internal code, same as MC_PRE_NPC_UPDATE
All stages now have a spritesheet suffix (formatted _[stage name, no spaces], ex _burningbasement)
Added the "noshake" attribute to the players.xml which can "disable" the player portrait shaking animation in the nightmare scene/boss intro
Added support for a "customtags" attribute in items.xml - a space-separated list of tags that can be checked with ItemConfigItem:HasCustomTag() or ItemConfigItem:GetCustomTags()
Added custom tag "nometronome" to items.xml to prevent items from being picked by Metronome
Improved startup time! (for both REPENTOGON and the game itself)
Buffed Trisagion
Added a new option in "Vanilla tweaks" section called "Fast lasers", it tracks the game's lag and (if present) reduces the number of samples used by lasers to ensure better performance

Fixes:
* Fixed Isaac.CreateTimer crashing the game when setting the delay argument to 0
* Fixed bonehearts not displaying correctly when set through players.xml
* Fixed console custom commands starting with "help" not triggering while being eaten away by repentogon's help cmd
* Fixed a crash that could occur if Isaac exited the Berserk! state without any remaining health with Spirit Shackles ready
* Fix Downpour/Dross rooms generated in The Void not having any water
* Potentially fixed reported

Update: Mar 27, 2024 @ 5:15pm

v1.0.8c -
Fixes:
* Fixed adding a callback function with an optional param to a vanilla callback that does not support optional params leading to that function never being called, where it used to previously.
* Fixed the result of Isaac.GetCallbacks() no longer having a metatable.
/newline/
v1.0.8b -
Fixes:
* Fixed the MC_PLAYER_GET_HEALTH_TYPE callback causing the last heart to render underneath the first one.
/newline/
v1.0.8a -
Fixes:
* Fixed issues with EntityPlayer:GetSmeltedTrinkets() and EntityPlayer:GetFootprintColor()
/newline/
v1.0.8 -
Additions:
* New general callback improvements to address some performance issues on some scenarios
* Deal rooms can now generate variants above 100
* Add new BlendTypes CONSTANT, OVERLAY
* EntityPlayer:
- SetHeadDirection(Direction, Time, Force)
- Get/SetHeadDirectionLockTime
* Game:
- SetDonationMod[Angel/Greed]
* ItemPool:
- GetBibleUpgrades(ItemPoolType)
* Player:
- Added Player:AddNullItemEffect and Player:AddCollectibleEffect, both with the same params (int type,bool costume, int cooldown=defaultcd, bool additive=true)
* Room:
- GetBossVictoryJingle
- SaveState
* RoomDescriptor.BossDeathSeed
Fixes:
* Fixes a crash on MC_PRE_LEVEL_SELECT when a callback returned null
* Fixed a crash that could happen when you ran stage and achievement-related commands with bad syntax (missing a space)
* Fixed an issue with some Bethany challenges where you are supposed to start without book of virtues, starting with book of virtues
* Planetarium chance stat HUD is now initialized properly on save/continue
* Planetarium chance will now always return 0.0 if a planetarium room cannot spawn in the run (i.e. if a challenge doesn't spawn treasure rooms, the game is greed mode, or if planetariums aren't unlocked)
* Fix previously incorrect BlendType enums (ADDITIVE -> CONSTANT, MULTIPLICATIVE -> ADDITIVE)
* Fix ItemPool:GetPillColor not checking all identified effects
* Fix potential buffer overflow in ItemPool:UnidentifyPill
* Fix the console crashing when running a command from history in some cases

Update: Mar 13, 2024 @ 9:29pm

Updated to v1.0.7b.

v1.0.7b -
Additions:
* Add an option to show Planetarium spawn chance in the stat HUD
* BlendMode's variables are now RGBSourceFactor, RGBDestinationFactor, AlphaSourceFactor, AlphaDestinationFactor (previous names will still work for now)
* Added BlendFactor and BlendType enums for BlendMode
Fixes:
* Fix regression caused by Godhead + Tear Detonator fix that prevented the aura from damaging enemies
* Fixed console wonkies involving input text edge detection and scaling
* Fixed Game:ShowGenericLeaderboard method to throw back to main menu even if leaderboards are no longer displayed after new run/continue

v1.0.7a -
Fixes:
* Fixed an issue where a change in the build process resulted in the changelog being saved in UTF-16 LE format, breaking the changelog and several other REPENTOGON menu features

v1.0.7 -
Additions:
* Backdrops:
- Custom Backdrop support! with contents/backdrops.xml!
- Custom attribute reftype to specify the base backdrop for the custom ones
- Isaac.GetBackdropIdByName (self-explanatory make sure to give your backdrops a name!)
- MC_PRE/POST_BACKDROP_CHANGE callback accepting callbacktype as a return value on pre and recieving callbacktype as a param
* Stages:
- Isaac.SetCurrentFloorMusic(musicid): changes the default music for the current floor(will reset after you leave the floor).
- Isaac.SetCurrentFloorBackdrop(backdropid): changes the default backdrop for the current floor(will reset after you leave the floor).
- Isaac.SetCurrentFloorName(string): changes the stage name for the current floor(will reset after you leave the floor).
- Isaac.GetCurrentStageConfigId(): returns the stagesid from the stages xml for the current floor.
* Challenges:
- Added the "hidden" attribute to the challenges.xml that can hide modded challenges from the menu when it's anything but "false".
- Added support for the "achievements" attribute for modded challenges, so modded challenges can now be locked. This param also supports using modded achievements.
- Added a new "lockeddesc" attribute, so you can a custom message to be displayed when your challenge is locked (default is "LOCKED :("). Pretty useful for unlock hints.
* Familiar :
- RemoveFromPlayer
- CanBlockProjectiles
- CanBeDamagedByProjectiles
- CanBeDamagedByEnemies
- CanBeDamagedByLasers
* EntityNPC :
- GetDarkRedChampionRegenTimer
* EntityBomb:
- GetRocketAngle / SetRocketAngle
- GetRocketSpeed / SetRocketSpeed
* EntityPlayer:
- GetUrnSouls
* EntitiesSaveStateVector:
- Clear
* Minimap :
- SetState
- SetHoldTime
* EntityConfig:
- Added EntityConfig.GetBaby(i) and EntityConfig.GetMaxBabyID(), as well as the corresponding EntityConfigBaby class (its co-op babies).
* XMLData :
- XMLData.GetEntryByOrder: gets entries in the order they appear on the xmls.
* Callbacks :
- MC_POST_NPC_DARK_RED_CHAMPION_REGEN: Called right after a dark red champion regenerates out of goo form
- MC_POST_ACHIEVEMENT_UNLOCK: Called after an achievement is unlocked, has the achievement id as its param
- MC_PRE/POST_MINIMAP_UPDATE: Called right before or right after the minimap is updated
- MC_PRE/POST_MINIMAP_RENDER: Called right before or right after the minimap is rendered
- MC_PRE/POST_PLAYER_ADD_HEARTS(EntityPlayer Player, int Amount, AddHealthType AddHealthType, bool OptionalArg): Called when hearts are added to the player, allows changing the added amount of hearts.
- MC_POST_RENDER_PLAYER_HEAD/BODY we had the pre but not the post. Same args as the pre, but with the updated vector if its changed on pre
- MC_POST_PLAYERHUD_ACTIVE_ITEM now has an additional "ChargeBarOffset" arg (the screen position where the charge bar would be rendered)
* ImGui :
- Now supports multiline input. Use CTRL + Enter for a newline, useful for pasting Lua scripts or making fortunes
- Now has a horizontal scrollbar when needed for console input
- Console history reimplementation is now more accurate, properly removing duplicate entries from history when a command is executed from history

Modified:
* Entity :
- GetCollisionCapsule offset vector argument is now optional (Vector.Zero)
* Pickup :
- Pickup:IsBlind method now checks natural blind effect (also added "CheckForcedBlindOnly" optional argument)
* Changed the destination goal sprites from the daily menu to match the style of the other paper sprites

Fixes:
* Fixed a vanilla game crash that happens with detonator+godhead which has been around for years
* Fixed issue that preventing the root attributes on repentogon-supported xmls(achievements,giantbook,backdrops) from working properly
* Fixed an issue that prevented custom parsed attributes from working on xmls with hugeass comments at the beginning of the file
* Fixed an issue where the console would behave sporadically when closed with numpad enter
* Fixed MC_POST_SFX_PLAY not firing properly when there was no PRE added.
* Fixed Achievement Reversed Hierophant enum naming (deprecated ones left for compatibility)
* Fixed a bug where adding modded follower familiars could sometimes freeze the game (especially while using MC_GET_FOLLOWER_PRIORITY).
* Fixed EntityNPC:GetBossColorIdx() not matching the values of the function in vanilla
* Callbacks re-implemented by REPENTOGON (such as MC_ENTITY_TAKE_DMG) now use their original callback IDs rather than a new one (fixes cases where the original ID was used directly, instead of the enum).
* MC_POST_PLAYERHUD_ACTIVE_ITEM's "Offet" arg now accounts for Book of Virtues & Judas' Birthright
* MC_POST_PLAYERHUD_ACTIVE_ITEM's "Scale" arg is now correctly halved for the secondary (schoolbag) slot
* Removed ImGui's automatic window resizing as it caused more issues than it solved
* Set a larger padding for ImGui to instruct it to always keep at least (100, 100) pixels of debug windows visible

Update: Feb 13, 2024 @ 11:47am

v1.0.6b -
Fixes:
* Fixed an issue that caused gamepad to be calling undo mods when going down on the mods menu
* Fixed an issue that made search and undo mods not work if you didnt restart your machine for 24 days (blame microsoft)