v1.1.1a -
* Fixed inconsistent syncing of game options (options.ini) between vanilla and REPENTOGON for some users.
    - These options were intended to fully sync between vanilla and REPENTOGON. Being able to have different settings (such as the Mods Enabled setting) was a bug, but...
    - Options Syncing can now be disabled in the Imgui Console's REPENTOGON Options menu (added toggles for "Sync Vanilla Game Options" & "Sync Mods Enabled Option")
/newline/
/versionseparator/
v1.1.1 -
Added:
* Mods can now load assets from resources-repentogon and content-repentogon folders for compatibility. Takes priority over -dlc3 folders (e.g resources-repentogon > resources-dlc3 > resources).
* Game:
	- IsStartingFromState
		Returns a boolean whether the game starts from a continued state or not. Always returns false after MC_POST_GAME_STARTED execution.
* EntityBomb
	- Get/SetFallSpeed
		Formerly mislabeled as Get/SetHeight
	- Get/SetFallAcceleration
		Formerly mislabeled as Get/SetFallingSpeed
* EntityTear
	- SetInitSound(SoundEffect sound)
* MenuSave
	- SetSlotSpritesheet(int slot, string pngfilename)
		Overrides the spritesheet used for a save file drawing. MC_POST_SAVESLOT_LOAD is a good place to use this.
* ModCallbacks:
	- Added "RemoveFromPlayerForm" and "Wisp" args to MC_POST_TRIGGER_COLLECTIBLE_REMOVED.
* Enums:
	- SlotState
	- BloodClotSubtype
	- RoomDisplayFlags
/newline/
Fixes:
* Isaac:
	- Restored deprecated Isaac.ClearBossHazards for compatibility, but Room:ClearBossHazards should be used instead.
	- Fixed possible crashes involving ClearChallenge and MarkChallengeAsNotDone.
* Vector:
	- Lerp now returns a reference to the modified vector like it now does in vanilla.
* RoomDescriptor:
	- Fixed GetNeighboringRooms returning a number instead of a table.
* Room:
	- SetItemPool no longer crashes or errors on POOL_NULL
* ScoreSheet:
	- Fixed crash related to AddFinishedStage
* ModCallbacks:
	- Fixed broken color userdata in MC_POST_ENTITY_SET_COLOR
* XMLData:
	- Fixed GetEntryByOrder results for XMLNode.NULLCOSTUME
	- Fixed crashes on invalid node types
* Dear ImGui Console Menus:
	- Game Options: Music Volume slider now immediately updates the volume of the currently-playing music.
	- Save Management: "Import from Repentance" no longer "fails" if a file doesn't exist.
* Fixed possible crash on the secrets menu.
* Fixed the custom challenges menu resetting when any console command is executed.
* Fixed the game potentially getting stuck trying to generate an ascent floor if a modded boss room has certain door layouts (again)
/newline/
/versionseparator/
v1.1.0 -
* Welcome to REPENTOGON+ !
/newline/
Additions:
* GridEntityLock
	- TryUnlock(EntityPlayer player, bool force)
* Camera:
	- Update(bool Interpolated = false)
	- SetClampEnabled(bool clamped)
	- IsClampEnabled
* ChallengeParam:
	- IsBeastPath
* Game:
	- ChainLightning(Vector Position, float BaseDamage = 3.5, TearFlags TearFlags = TearFlags.TEAR_NORMAL, Entity Spanwer = nil)
* GridEntity:
	- [Get/Set/Reset]WaterClipFlags
* Entity:
	- [Get/Set/Reset]WaterClipFlags
	- CanDevolve
* EntityDesc:
	- EntityDesc(EntityType Type = 0, int Variant = 0, int Subtype = 0, ChampionColor ChampionId = -1, float Health = 0.0, float MaxHealth = 0.0, boolean PlayerControlled = false)
	- [Get/Set]Type
	- [Get/Set]Variant
	- [Get/Set]Subtype
	- [Get/Set]ChampionId
	- [Get/Set]Health
	- [Get/Set]MaxHealth
	- [Is/Set]PlayerControlled
* EntityPickup:
	- GetMegaChest[Left/Right]Collectible
		Returns the other EntityPickup for a Mega Chest
	- HasFlipData
		Returns true if pickup is collectible and has Flip save state.
	- GetFlipCollectible
		Returns CollectibleType if flip save state exists, nil otherwise.
	- InitFlipState(CollectibleType = CollectibleType.COLLECTIBLE_NULL, SetupCollectibleGraphics = true)
	- ReloadGraphics(boolean IgnoreBlind)
	- SetupCollectibleGraphics(Sprite Sprite, integer Layer, CollectibleType Collectible, boolean Blind, integer Seed = Random(), boolean LoadGraphics)
		Static method. Used to replace layer's spritesheet of the sprite object with collectible sprite. Seed is used for April Fools challenge to choose random collectible.
* EntityPlayer:
	- [Get/Set]ActionHoldDrop - how long player holds action drop button.
	- [Get/Set]BlinkLockTime - how long player's head will play fired frame sprite
	- GetBodySprite
		Temporary copy of body player sprite while null animation is active.
	- SetD8DamageModifier
	- SetD8FireDelayModifier
	- SetD8RangeModifier
	- SetD8SpeedModifier
	- [Get/Set]ForgottenSwapFormCooldown
	- [Get/Set]ItemStateCooldown
	- [Get/Set]MaggyHealthDrainCooldown
	- [Get/Set]MawOfTheVoidCharge
	- [Get/Set]MontezumaRevengeCharge
	- [Get/Set]PlanCKillCountdown
	- [Get/Set]PotatoPeelerUses
		Used to increment Cube of Meat familiar form
	- [Get/Set]RockBottomMoveSpeed
	- [Get/Set]RockBottomMaxFireDelay
	- [Get/Set]RockBottomDamage
	- [Get/Set]RockBottomTearRange
	- [Get/Set]RockBottomShotSpeed
	- [Get/Set]RockBottomLuck
	- [Get/Set]RevelationCharge
	- GetPlayerHUD
	- [Get/Set]SuplexState
	- [Get/Set]SuplexAimCountdown
	- [Get/Set]SuplexTargetPosition
	- [Get/Set]SuplexLandPosition
	- CreateAfterimage
	- [Add/Get]CandyHeartBonus
	- [Add/Get]SoulLocketBonus
	- GetTearsCap
	- GetStatMultiplier
	- GetSmeltedTrinketDesc
	- [Get/Set]CharmOfTheVampireKills
	- IsPostLevelInitFinished
	- HasForcedCamoEffect
	- SetForceCamoEffect
	- HasCamoEffect
	- PlayItemNullAnimation
		Returns true if animation was set successfully, false otherwise. Useful for item state/hold items.
* EntityFamiliar:
	- IsLilDelirium
	- SetLilDelirium
	- GetRandomWisp
	- GetActiveWeaponEntity
	- GetActiveWeaponNumFired
* EntityTear:
	- GetHitList
	- ClearHitList
	- FireSplitTear
* EntityLaser:
	- FireSplitTear
* EntityKnife:
	- FireSplitTear
	- GetHitboxParentKnife
	- SetHitboxParentKnife
* EntitySlot:
	- GetPrizeSprite
* EntityNPC:
	- ApplyTearflagEffects
* EntityConfigEntity:
	- GetDevolvedEntity
* Level:
	- Added overloads for CanPlaceRoom(AtDoor) and FindValidRoomPlacementLocations that accept a RoomShape and DoorMask instead of a RoomConfigRoom.
	- GetGenerationRNG
* PlayerManager:
	- GetRandomCollectibleOwner
	- GetRandomTrinketOwner
* Isaac:
	- GetButtonsSprite
	- GetAllowedDoorsMaskForRoomShape: Returns a DoorMask representing all DoorSlots that are allowed for the given RoomShape.
	- UnClearChallenge(challenge id): sets the target challenge id as not cleared. Not recommended with vanilla ones, it should still work tho!
	- SpawnBoss(Type,Variant,SubType,Position,Velocity,Spawner,Seed = ?) Spawns an NPC forcing it to be a Boss, giving it a boss bar and boss-lile qualities.
	- GetNanoTime(): Returns a high-resolution timestamp in nanoseconds.
	- RenderCollectionItem(CollectibleType Collectible, Vector Position, Vector Scale = Vector.One, Color Color = Color.Default)
	- ReworkCollectible(Collectible): marks the collectible as reworked, making the game not execute the item's original logic.
	- ReworkBirthright(PlayerType): marks the birthright as reworked, making the game not execute the item's original logic.
	- ReworkTrinket(Trinket): marks the trinket as reworked, making the game not execute the trinket's original logic.
* ItemPool:
	- AddCollectible
	- AddTemporaryCollectible
	- RemoveTemporaryCollectible
* ItemConfig_Item:
	- Add/RemoveCustomTag
	- Add/RemoveCustomCacheTag
* HUD:
	- GetStackedStreakSprite
	- GetPlayerStreakSprite
* Minimap:
	- Refresh
* PlayerHUD:
	- GetIndex
	- GetLayout
* ProceduralEffect
	- Fix fartScale.
	- GetScore
	- GetTriggerChanceScale
* Room:
	- ClearBossHazards(boolean IgnoreNPCs = true, EntityNPC Entity = nil)
	- TriggerOutput(RoomEventOutput GroupIdx)
	- GetWallColor()
* RoomConfig:
	- AddRooms
* RoomConfigSet:
	- AddRooms
* RoomDescriptor:
	- [Get/Set]TaintedKeeperCoinSpawns
		Prevent coin spawn from killed enemies on room reenter when counter reaches 10.
* ScoreSheet:
	- GetBeastBonus
	- GetDeliriumBonus
	- GetMotherBonus
* Seeds:
	- SetStageSeed(LevelStage, Seed)
* FXLayers:
	- AddPoopFx(ColorMod Color)
* Weapon:
	- GetMainEntity
		Returns active entity used by weapon (Brimstone - EntityLaser, Mom's Knife -  EntityKnife and etc.)
* MenuManager:
	- IsActive: returns true when MenuManager is ready to be used a.k.a if you can use the menuman functions (normally, if you are at the main menu)
* CharacterMenu
	- GetPlayerTypeFromCharacterMenuID(int CharacterMenuID, bool Tainted)
		Tainted boolean defaults to current menu if unspecified.
	- GetCharacterMenuIDFromPlayerType(int PlayerType)
		Note that the normal/tainted versions of a character have the same CharacterMenuID.
	- GetSelectedCharacterPlayerType()
		Returns the PlayerType for the character currently selected in the menu.
* Players.xml
	- Added support for modded/text trinkets on the "trinket" param (I forgot trinkets existed tbh, lol)
	- Added "hideachievement" attribute, which hides the character from the character select menu until the corresponding achievement is obtained
		(Doesn't do anything for tainted characters, since whether or not they appear on the menu is entirely dependant on the non-tainted character)
	- Added "hurtsound" attribute, which overrides the player's damage sound.
	- Added "deathsound" attribute, which overrides the player's death sound.
* Items.xml
	- Added "activegfx" attribute, which sets separate active item image for rendering in active slot.
* ModCallbacks:
	- MC_PRE_PLAYER_POCKET_ITEMS_SWAP(EntityPlayer player)
		Triggers when the player swaps their pocket items using the action drop button (even if they are empty).
		Return true to cancel pocket item swap.
	- MC_PRE_TRIGGER_BED_SLEEP_EFFECT(EntityPlayer player)
		Triggers if "SleepFillHP" item overlay sprite's event is triggered, and before the hearts addition is applied.
		Return true to cancel vanilla behavior.
	- MC_PRE_BED_SLEEP(EntityPlayer player, EntityPickup bed)
		Triggers on bed collision and before playing sleep sequence.
		Return true to cancel vanilla behavior.
	- MC_PRE_ENTITY_SET_COLOR(Entity entity, int duration, int priority, bool fadeOut, bool share)
		Fires when Entity:SetColor is called
		Takes an EntityType as its optional argument. 
		Return a color to override the color. The overridden color is passed into MC_POST_ENTITY_SET_COLOR.
		Return false to cancel the color change. Prevents MC_POST_ENTITY_SET_COLOR from firing.
		This only fires for `Entity:SetColor` and does not fire when changing the entity's color directly.
	- MC_POST_ENTITY_SET_COLOR(Entity entity, int duration, int priority, bool fadeOut, bool share)
		Fires after an entity's color is changed via Entity:SetColor
		This only fires for `Entity:SetColor` and does not fire when changing the entity's color directly.
	- MC_POST_PLAYER_TRIGGER_ROOM_CLEAR
		Previously missing counterpart to MC_PRE_PLAYER_TRIGGER_ROOM_CLEAR
	- MC_GET_STATUS_EFFECT_TARGET(Entity entity)
		Fires when an Entity is about to recieve a status effect
		Takes EntityType as its optional argument.
		Return an Entity to apply the status effect to it instead (good for multi-segment enemies).
	- MC_PRE/POST_STATUS_EFFECT_APPLY(StatusEffect statusID, Entity entity, EntityRef source, integer duration)
		Triggers before/after applying a status effect
		Takes the new StatusEffect enum as its optional argument
		Return false on the PRE callback to cancel adding the status effect
	- MC_PLAYER_HEALTH_TYPE_CHANGE
		Runs when a player's health type changes, but before automatic health conversion
	- MC_POST_ROOM_RENDER_ENTITIES
		Runs after all entities & grid entities in the room have been rendered, but BEFORE effects like overlays, shockwaves, and the mirror world effect are applied.
		Rendering done on this callback is also preserved in room transition animations.
	- MC_POST_START_AMBUSH_WAVE(boolean BossAmbush)
		Fires at the start of challenge/boss rush room wave
	- MC_POST_START_GREED_WAVE
		(add description later)
	- MC_EVALUATE_MULTI_SHOT_PARAMS(EntityPlayer, MultiShotParams, WeaponType)
		Optional param: PlayerType
		Replacement for the legacy MC_POST_PLAYER_GET_MULTI_SHOT_PARAMS that passes along a mutable MultiShotParams and allows all mods to modify it.
	- MC_EVALUATE_STAT(EntityPlayer, EvaluateStatStage stat, float currentValue)
		Optional param: EvaluateStatStage
		Used to modify intermediate values of player stat calculations.
		Currently supported: EvaluateStatStage.TEARS_UP, EvaluateStatStage.FLAT_TEARS, EvaluateStatStage.DAMAGE_UP, EvaluateStatStage.FLAT_DAMAGE
		NOTE: Unless you need to perform complicated conditions/calculations, it is strongly suggested that you use the new XML item stats features instead of this callback!
	- MC_EVALUATE_TEAR_HIT_PARAMS(EntityPlayer, TearParams, WeaponType, float DamageScale, integer TearDisplacement, Entity Source)
		Optional param: PlayerType
		Used to modify mutable TearParams object.
	- MC_PRE/POST_APPLY_TEARFLAG_EFFECTS(EntityNPC entity, Vector position, TearFlags, Entity source, float damage)
		Optional param: EntityType of the source, if any
		Called when TearFlags effects are applied to an npc. The source could be basically anything (tear, laser, knife, nil, etc)
	- MC_POST_FIRE_SPLIT_TEAR(EntityTear tear, Entity source, SplitTearType|string)
		Optional param: SplitTearType|string
		Fires for stuff like cricket's body, parasite, etc
	- MC_POST_ROOM_SAVE_STATE(Room, RoomDescriptor)
		Fires after the room saves all entities and grid entities.
	- MC_PRE_ROOM_RESTORE_STATE(Room, RoomDescriptor)
		Fires before the room respawns all saved entities.
	- MC_POST_SWAP_ROOMS(RoomDescriptor, RoomDescriptor)
		Fires after two rooms have been swapped, due to Curse of the Maze.
	- MC_POST_BACKWARDS_ROOM_SAVE(LevelStage, RoomDescriptor, string)
		Fires after a room has been saved; to then be restored when generating the Ascent.
		The string key (e.g. "boss_0", "treasure_0") identifies which slot the room was saved into.
	- MC_POST_BACKWARDS_ROOM_RESTORE(LevelStage, RoomDescriptor, string)
		Fires when generating the Ascent layout and one of the previously saved room is restored.
		The string key (e.g. "boss_0", "treasure_0") identifies which slot the room was saved into.
	- MC_PRE_ADD_TRINKET(player, TrinketType, firstTime)
		Return false to cancel, or a different TrinketType to change the trinket being added.
	- MC_TRY_ADD_TO_BAG_OF_CRAFTING(player, pickup, BagOfCraftingPickup[])
		Optional param: PickupVariant
		Return false to prevent, or return a table of BagOfCraftingPickups to modify what gets added.
		Note: Prefer to use the new `bagofcrafting` attribute in entities2.xml where possible.
	- MC_POST_ADD_TO_BAG_OF_CRAFTING(player, pickup)
		Optional param: PickupVariant
		Only runs when the pickup was successfully "added" to the bag.
	- MC_POST_ITEM_OVERLAY_RENDER
	- MC_PRE_OPEN_CHEST(EntityPickup, EntityPlayer?)
		Optional param: PickupVariant
		Fires before a chest is opened. Return false to prevent it from opening.
	- MC_POST_OPEN_CHEST(EntityPickup, EntityPlayer?)
		Optional param: PickupVariant
		Fires after a chest opened.
	- MC_POST_DISCHARGE_ACTIVE_ITEM(CollectibleType, boolean CollectibleRemoved, EntityPlayer, ActiveSlot)
	- MC_POST_ROOM_TRIGGER_CLEAR(boolean Silent)
	- MC_POST_PLAYER_DROP_TRINKET(TrinketType, Vector DropPosition, EntityPlayer, boolean IsGolden, boolean ReplaceTick)
		Optional param : TrinketType
		Fires after player dropped trinket.
	- MC_POST_PLAYER_ADD_EFFECT(EntityPlayer, ItemConfigItem, boolean addCostume, int count)
		Optional param: ItemConfigItem
	- MC_POST_ROOM_ADD_EFFECT(ItemConfigItem)
		Optional param: ItemConfigItem
* New Enums:
	- DoorMask
	- WaterClipFlag
	- PlayerHUDLayout
	- RoomEventOutput
	- CustomCacheTag
	- EvaluateStatStage
	- SplitTearType
	- UseActiveItemResultFlag
* Options:
	- AimLockEnabled
	- AscentVoiceOver
	- BossHPOnBottom
	- Brightness
	- Contrast
	- Exposure
	- OnlineChatEnabled (read-only)
	- OnlineChatFilterEnabled (read-only)
	- OnlineColorSet (read-only)
	- OnlineHUD (read-only)
	- OnlineInputDelay (read-only)
	- OnlinePlayerOpacity (read-only)
	- OnlinePlayerVolume (read-only)
	- PreventModUpdates (now read-only)
	- StreamerMode (read-only)
	- TouchMode
	- WindowHeight
	- WindowPosX
	- WindowPosY
	- WindowWidth
* Added the following attributes for entities2.xml:
	* bagofcrafting="..." - Allows specifying BagOfCraftingPickup results for bagging custom pickups
		bagofcrafting="blackheart" - adds a black heart to the bag
		bagofcrafting="penny bomb key" - adds a penny, bomb and key to the bag (up to 8 at once is supported)
		bagofcrafting="none" - prevents the pickup from adding anything to the bag (may be useful for custom subtypes)
	* meleecollide="true" - Allows the custom pickup to trigger collision with the player when hit by a bone club or similar melee weapon
	* boomerang="true" - Allows the custom pickup to be grabbed by Boomerang / Jaw Bone
* Added the following customtag for items.xml:
	* "noexpansionpack" - Prevents the active item (with 1 or 2 max charges) from being picked by Expansion Pack trinket.
* Added the following customcache for items.xml:
	* "healthtype" - Re-evaluate the player's HealthType
	* "tearscap" - Re-evaluate the player's maximum tears-per-second before flat modifiers and multipliers. Triggers a CACHE_FIREDELAY eval when changed.
	* "statmultiplier" - Re-evaluate the multiplier on the player's stats gained from items (the same one used for Cracked Crown and Tainted Bethany). Triggers standard cache evals for the relevant stats when changed.
* Stats can now be assigned to collectibles, trinkets and nulls in items.xml! These stat modifications will behave identically to those from most vanilla items that modify those stats.
	- For example:
		tears="0.7" will behave like Sad Onion
		flattears="0.5" will behave like Pisces
		damage="1" will behave like Pentagram
		flatdamage="2" will behave like Curved Horn
	- Supported: tears, flattears, tearsmult, damage, flatdamage, damagemult, shotspeed, speed, range, luck
	- Prepend "effect" to assign the stat change to the corresponding TemporaryEffect instead (ie: effecttears="0.7") (this is particularly relevant for active items)
	- The corresponding "cache" values are automatically added to the item, so you don't need to specify those as well.
* Add new Vanilla Tweaks option "Disable exit prompt", which disables prompt pop-up when you try to exit the game from title menu.
* Custom curse icons can now be applied to custom curses
	- Custom graphics can be defined in mapitemicons.anm2, placed in modName/content/gfx folder, with one frame per curse entry on animation curses, otherwise all icons from the mod will be empty by default
	- Recommended settings for curse frame is 16x16 and centered around the origin (position set to 0, 0, pivot to 8, 8)
Fixes:
* Fixed an issue with luamod autocomplete not displaying all the available options
* Fixed an issue where modded items' crafting quality was set to 0 if not explicitly defined in the XML.
* Fixed Isaac.SetIcon sometimes failing after being called too many times.
* Players can no longer get stuck with buggy heart containers when changed to soul/bone heart health types (they get converted by default).
* Fixed player:Revive reviving The Forgotten with a bugged half soul heart that cannot be removed.
* Fixed a possible error when a lua error occurs during a custom callback that uses a table as its callback ID.
* Entity:
	- Fixed GetPredictedTargetPosition returning unusable data.
* EntityPlayer:
	- SetBagOfCraftingSlot / SetBagOfCraftingContent now automatically recalculate the crafting output & shift bag contents if empty spaces are added in the middle.
	- Fixed SetFootprintColor crashing
	- Fixed an issue where SetMegaBlastDuration was not updating the laser duration if it existed
	- Fixed FriendBallEnemy accessor/setter
* ItemConfig_Costume:
	- Fixed SkinColor attribute (now provides a valid int and can be modified)
* Level:
	- TryPlaceRoom & related functions no longer consider a room placement valid if the only neighbor would be a secret room and "AllowSpecialNeighbors" is false.
	- TryPlaceRoom(AtDoor) no longer automatically unlocks the door to the new room if placed adjacent to the player's current room.
* RoomTransition:
	- Fixed StartBossIntro crash on call if room index for room transition is invalid.
* ModCallbacks:
	- Fixed returning false on MC_PRE_PLAYER_ADD_CARD/PILL not preventing the card/pill being added as intended.
	- Fixed the float DamageAmount attribute in MC(_POST)_GRID_HURT_DAMAGE
	- Fixed MC_POST_ENTITY_TAKE_DMG sometimes providing 0 for players
	- Fixed MC_PRE/POST_GRID_ENTITY_TELEPORTER_RENDER not running
	- Fixed the position passed by MC_PRE/POST_PLAYERHUD_RENDER_HEARTS for co-op Esaus in REP+
* XMLData:
	- Fixed an issue where entry names starting with numbers were not properly resolved for parameters
	- Fixed an isue with ModData not displaying the extra REPENTOGON attributes (enabled/fulldirectory/etc)
	- Fixed an issue with indev or pirated mods with repeated ids not showing up in luamod or in XMLData
* ImGui:
	- Fixed RemoveElement not working on elements created with AddInputColor.
	- Fixed Render callbacks of window elements being executed even if the window is not visible
	- Fixed ImGui closing unexpectedly when pressing enter and the console window is not enabled
	- Fixed ImGui.ImGuiToWorld() and ImGui.WorldToImGui() calls not taking the position arguments as intended
* Pathfinder:
	- Many methods that did not work properly have been fixed
	- Use Entity[Familiar/NPC]:GetPathfinder to access these fixes
	- (EntityNPC.Pathfinder has been left unaffected for existing mod compatibility)
* GridEntity
	- Fixed HurtDamage crashing
* Console
	- Fixed a crash with RegisterMacro if no parameters were passed into it.
* Misc:
	- Modded characters locked behind achievements no longer appear in the local co-op wheel.
Modified:
* EntityFamiliar:
	- GetPathFinder -> GetPathfinder
	- bool, table TryAimAtMarkedTarget(Vector AimDirection = nil, Direction Direction = Direction.NO_DIRECTION, Vector TargetPos = nil)
		Return true if player's mark from Marked or Eye of the Occult/Gello target exists, false otherwise.
		Return a table containing the changed AimDirection, Direction, and TargetPos.
		The legacy function signature has been kept and should now properly return the changed TargetPos.
* EntityPlayer:
	- DropCollectible now returns the spawned pedestal if one was spawned, as intended 
	- SwapForgottenForm returns boolean, depending if Forgotten/Soul form was switched or not.
	- GetSmeltedTrinkets now accepts an optional table parameter, a list of trinket IDs, to use as a filter for better performance
	- TryAddToBagOfCrafting now returns a boolean (true if something was added to the bag)
	- UseActiveItem now returns a bitmask (UseActiveItemResultFlag.DISCHARGE and/or UseActiveItemResultFlag.REMOVE, or 0)
	- Player no longer leaves a pee/blood puddle when entering a new room when the health type is set to HealthType.LOST/NO_HEALTH
* EntityNPC:
	- boolean ReplaceSpritesheet
* Level:
	- TryPlaceRoom(AtDoor) no longer plays the key unlock sound if a room is created that connects to the player's current room.
* ImGui:
	- Adding an element with the same id as an existing one will now replace the existing element instead of throwing an error.
	- If an error is caused by a callback, imgui will now properly throw an error
* ModCallbacks:
	- MC_POST_PLAYER_TRIGGER_EFFECT_REMOVED(EntityPlayer Player, int Count)
		Added Count argument (how many instances of this effect were removed)
		Can now use ItemConfigItem as an optional param.
	- MC_POST_ROOM_TRIGGER_EFFECT_REMOVED
		Can now use ItemConfigItem as an optional param.
	- MC_PRE_MOD_UNLOAD(Mod, bool ShuttingDown)
		Added boolean argument that identifies if it is running due to game shutdown
		Now runs earlier during shutdown, so code is less likely to crash
	- MC_POST_CURSE_EVAL
		Returning a value will now pass the modified curse mask along to the next callback instead of ending the callback early.
	- MC_PRE_ADD_COLLECTIBLE
		Returning a value to modify the collectible being added will now pass that ID along to other callbacks instead of stopping.
	- MC_PRE_PLAYERHUD_RENDER_ACTIVE_ITEM
		Added CropOffset field (Vector, defines rectangle area of the active item image that will rendered in active slot)
	- MC_POST_PLAYER_NEW_LEVEL
		Added PostLevelInitFinished argument
	- MC_GET_PILL_EFFECT
		Added EntityPlayer argument
	- MC_POST_ENTITY_KILL
		Added EntityRef argument (which entity killed this one)
* reloadshaders command will now reload custom anm2 shaders
* Daily goal path icon will now be displayed on Mega Satan daily runs.
* Fixed "luareset" command executing scripts from not loaded mods
/newline/
/versionseparator/
v1.0.12.e -
Fixes:
* Macs and old systems should now be compatible with REPENTOGON (we no longer use OGL 3)
/newline/
/versionseparator/
v1.0.12.d -
Fixes:
* Fix unsupported versions not running the repentogon update (which could make them be stuck and be forced to manually update in the future)
/newline/
/versionseparator/
v1.0.12.c -
Fixes:
* Fix loss of items in Mom's chase when playing coop or 2 player chaarcters like J&E
/newline/
/versionseparator/
v1.0.12.b -
Fixes:
* Fix various regressions involving status effects introduced by 1.0.12
/newline/
/versionseparator/
v1.0.12.a -
* The changelogs menu has been revamped. Use the left and right arrow keys to look between versions.
Additions:
* Ambush:
	- [Get/Set]MaxBossChallengeWaves()
	- Allows changing the number of waves in a boss challenge room
Fixes:
* Boss challenge rooms wave count no longer accidentally tied to normal challenge room wave count (ie, now two instead of three)
/newline/
/versionseparator/
v1.0.12 -
Additions:
* Add new Vanilla Tweaks option "Console Autofill Limit", which determines the number of autocomplete items that are displayed in the debug console.
* Level:
	- CanPlaceRoom(RoomConfigRoom, int GridIndex, int Dimension = -1, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false, bool AllowNoNeighbors = false)
		Returns true if the room would be able to fit at this location.
	- TryPlaceRoom(RoomConfigRoom, int GridIndex, int Dimension = -1, int Seed = 0, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false, bool AllowNoNeighbors = false)
		Will only place the room if it can fit and all doors can be successfully connected to neighboring rooms.
		If successful, returns the new RoomDescriptor, returns nil otherwise.
		If a seed of nil or 0 is provided, a seed will be auto-generated based on the location, room shape, and level seed.
		Boolean params are additional safeties that can be enabled or disabled:
			AllowMultipleDoors - Set to false to only allow successful placement if the room would only have one door (for placing special rooms).
			AllowSpecialNeighbors - Set to true to allow connections to existing special rooms (note secret rooms are always allowed, but boss rooms are never allowed).
			AllowNoNeighbors - Set to true to allow placing the room out in the void with no neighbors.
	- CanPlaceRoomAtDoor(RoomConfigRoom, RoomDescriptor, DoorSlot, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
		Returns true if the room could be successfully placed connected to the specified DoorSlot of an existing room.
	- TryPlaceRoomAtDoor(RoomConfigRoom, RoomDescriptor, DoorSlot, int Seed = 0, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
		Attempts to place the room connected to an existing room via the specified DoorSlot.
	- FindValidRoomPlacementLocations(RoomConfigRoom, int Dimension = -1, bool AllowMultipleDoors = true, bool AllowSpecialNeighbors = false)
		Returns a table of level GridIndexes that would be valid locations to place the given room.
	- GetNeighboringRooms(int GridIndex, RoomShape, int Dimension = -1)
		Returns a table map of DoorSlot->RoomDescriptor. Don't use ipairs!
		Can be used to determine the neighbors of a room before even placing it.
		Note that this does not give you any signal of if a room would actually fit, or if the neighbors would even allow a connection.
* StatsMenu:
	- SetSelectedElement(int element)
	- GetSelectedElement() - int
* Room:
	- GetLRoom[Area/Tile]Desc() now return a usable class
	- GetGridIndexByTile() now accepts a table of int[2]
* LRoomAreaDesc:
	- Describes the corners of an L-room shape (as divided horizontally into two rectangles), in worldspace
	- Vector Get[High/Low][TopLeft/BottomRight]()
* LRoomTileDesc:
	- Describes the corners of an L-room shape (as divided horizontally into two rectangles), in grid coordinates
	- int[2] Get[High/Low][TopLeft/BottomRight]()
	- int[2] GetRandomTile(Seed)
	- Can use Room:GetGridIndexByTile() to retrieve grid idx at these coordinates
* RoomDescriptor:
	- GetDimension() - int
	- GetNeighboringRooms()
		Returns a table map of DoorSlot->RoomDescriptor. Don't use ipairs!
* ItemConfigCard:
	- Added weight and hidden parameter to cards, both can be specified in pocketitems.xml
	- Added the ability to specify a custom "availability condition" to evaluate when the game checks if a card is available.
	- Hidden
	- InitialWeight
	- Weight - can be modified
	- GetAvailabilityCondition()
	- SetAvailabilityCondition(function)
	- ClearAvailabilityCondition()
* Sprite:
	- SetOverlayLayerFrame(int Layer, int Frame) - SetLayerFrame for overlays
	- GetLayerFrameData(int Layer) - Returns the current AnimationFrame for the given layer.
	- GetOverlayLayerFrameData(int Layer) - Same as above for the overlay animation.
* AnimationFrame:
	- GetStartFrame()
	- GetEndFrame()
* Point:
	- [Get/Set]Color() - Allows setting a color per-Point; colors are lerped between points
	- [Get/Set]IsWorldSpace() - Automatically converts this Point's position from worldspace to screenspace when rendering
* ModCallbacks:
	- MC_PRE_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
	Called before the Glowing Hourglass state is saved/loaded
* PersistentGameData:
	- AddBestiaryKill(EntityType, Variant = 0)
	- AddBossKilled(BossType)
	- IsBossKilled(BossType)
* EntityPlayer:
	- GetMaxCoins() - int
	- GetMaxKeys() - int
	- GetMaxBombs() - int
* EntitySlot:
	- GetPrizeCollectible() - int
* New "customcache" tags (for items.xml and MC_EVALUATE_CUSTOM_CACHE):
	- "maxcoins"
	- "maxkeys"
	- "maxbombs"
/newline/
Modified:
* Beam:
	- Beams now have an inherent Sprite object, no longer prone to losing its Sprite reference
	- Changes made to the Sprite provided in the constructor will not be reflected in the Beam, and vis-versa
	- Wrap[S/T]Mode are automatically set to proper values for the spritesheet to loop vertically
* ModCallbacks:
	- MC_POST_PICKUP_SELECTION
		Additionally passes "RequestedVariant", "RequestedSubType" and "RNG".
		A third bool argument can be included in the return table to specify wether or not you want to let the callback continue execution after the update to Variant and SubType.
* "Hush AI Fixes" patch will no longer be applied during daily runs.
* Deal rooms with variants above 99 will now also generate in Red Rooms
* Hold SHIFT of the DROP key to scroll faster through the main menu changelog
/newline/
Fixes:
	- Fixed a vanilla bug that caused wisps from destroyed Mystery Gift/Eden's Soul wisps to spawn even after a run restart.
	- Fixed HUD:GetCoopMenuSprite() returning invalid data
	- Fixed EntityPlayer:AddActiveCharge() incorrectly allowing overcharge when adding charge to all slots at the same time (with -1 given as the slot)
/newline/
/versionseparator/
v1.0.11c -
Additions:
* CharacterMenu:
	- [Get/Set]ActiveStatus()
	- CharacterMenuStatus enum
/newline/
Fixes:
	- Fixed vanilla game crash caused by Hornfel trying to enter new door after losing minecart.
	- Fixed SetRail index checks
/newline/
/versionseparator/
v1.0.11b -
Bug fixes:
	- Fixed a crash that could occur randomly when using custom item pools
/newline/
/versionseparator/
v1.0.11a -
Bug fixes:
	- Fixed a division by zero that occured when shuffling an empty item pool
/newline/
/versionseparator/
v1.0.11 -
Additions:
* Itempools:
	- Added support for new custom itempools through itempools.xml on the content folder
	- Isaac.GetPoolIdByName(poolName) - returns the id of a given custom pool. Returns -1 if the pool is not found.
	- Room:SetItemPool(ItemPoolType PoolType) - Sets the pool to use when the game needs to generate random collectibles in the current room.
	- Room:GetItemPool(int Seed, boolean Raw) - Retrieves the pooltype the game would use to generate random collectibles in the current room.
	- ItemPool:GetNumItemPools() - Retrieves the total number of itempools in the game, including custom itempools.
* GenericPrompt:
	- GenericPrompt constructor
	- Initialize(boolean SmallPrompt = false)
	- Show()
	- IsActive()
	- Update(boolean ProcessInput)
	- Render()
	- SetText(string Text1 = "", string Text2 = "", string Text3 = "", string Text4 = "", string Text5 = "")
	- GetSprite()
	- GetCurrentSelection() - (0 - No, 1 - Yes)
	- GetSubmittedSelection() - (0 - None, 1 - Yes, 2 - No)
* ModCallbacks:
	- POST versions of MC_PRE_PLAYER_ADD/REMOVE_COSTUME
	- MC_POST_FORCE_PILL_EFFECT
	- MC_EVALUATE_CUSTOM_CACHE(Player, CustomCacheTag, float value)
		Cache-style evaluation for custom player attributes.
		Return a number to modify the value. Modified values are passed to the next callback.
		CustomCacheTags must always be all lowercase.
		Optional param: CustomCacheTag
	- MC_EVALUATE_FAMILIAR_MULTIPLIER(Familiar, float mult, Player)
		Called when a familiar's cached multiplier needs to be re-evaluated.
		Return a number to modify the multiplier. Modified values are passed to the next callback.
		Optional param: FamiliarVariant
* EntityPlayer:
	- GetMovingBoxContents()
	- GetTearDisplacement() - Returns the player's TearDisplacement value, used to check what eye the player is shooting from. 1 means that the last shot was from the right eye, -1 means the opposite.
	- AddCustomCacheTag(string OR {string, string, ...}, bool evaluateItemsNow) - Add CustomCacheTag(s) to be evaluated next time EvaluateItems runs (which is right now, if the optional boolean is passed).
	- GetCustomCacheValue(string CustomCacheTag) - Returns the current cached value for the specified CustomCacheTag. Will return 0 by default if the provided tag has not been evaluated.
* EntityFamiliar:
	- GetMultiplier() - Returns the "multiplier" for the familiar, from effects such as BFFs or Hive Mind. Typically used to multiply things such as familiar damage.
	- InvalidateCachedMultiplier() - Makes it so that the next time GetMultiplier is called, MC_EVALUATE_FAMILIAR_MULTIPLIER is triggered to recalculate/allow modifying the multiplier.
* EntityNPC:
	- SetFlyingOverride(bool) - Sets an override to the return value of IsFlying, which is normally based on EntityGridCollisionClass. Can be used to make grounded enemies ignore creep, or flying enemies get hit by creep.
	- ClearFlyingOverride() - Removes any value set by SetFlyingOverride.
	- TrySplit(float DefaultDamage, EntityRef Source, DoScreenEffects = true)
	- ReplaceSpritesheet(int LayedId, string PngFilename, bool LoadGraphics = false) - Appends _champion/stage suffix to PngFilename if possible.
* EntityLaser:
	- RecalculateSamplesNextUpdate() - Requests the laser's shape to be fully recalculated next time it updates. Can be used to force the laser to instantly change its MaxDistance/Radius instead of transitioning to it. No effect for OneHit or non-sample lasers.
	- IsMultidimensionalTouched()
	- [Is/Set]PrismTouched()
* EntityTear:
	- [Is/Set]MultidimensionalTouched()
	- [Is/Set]PrismTouched()
* EntityBomb:
	- [Is/Set]PrismTouched()
* EntityKnife:
	- [Is/Set]MultidimensionalTouched()
	- [Is/Set]PrismTouched()
* EntityPickup:
	- TriggerTheresOptionsPickup() - Removes pickups with the same option group (OptionsPickupIndex) as the target pickup.
* LayerState:
	- GetFlip[X/Y](), SetFlip[X/Y]()
* Game:
	- GetGenericPrompt()
* Level:
	- GetMyosotisPickups() - returns the pickups that will be transferred to the next floor by the myosotis trinket effect
* ItemConfigItem:
	- HasCustomCacheTag
	- GetCustomCacheTags
* Added support for a "customcache" attribute in items.xml
	- Formatted as a space-separated list of string tags, same as other similar attributes.
	- Capitalization is ignored - tags are converted to all lowercase.
	- Whenever an item/trinket/effect is added or removed, triggers MC_EVALUATE_CUSTOM_CACHE on the player for each tag specified for that item.
	- MC_EVALUATE_CUSTOM_CACHE will evaluate a number value (starts at 0 by default) which can be retrieved afterwards with player:GetCustomCacheValue(tag)
	- Every tag that exists on at least one item in items.xml will also be triggered by CacheFlag.CACHE_ALL
	- REPENTOGON adds one custom cache tag (so far): "familiarmultiplier". Note that this one does not trigger MC_EVALUATE_CUSTOM_CACHE, instead triggering MC_EVALUATE_FAMILIAR_MULTIPLIER for each familiar.
/newline/
Fixes:
	- Fixed the game getting permanantly stuck trying to generate an ascent floor if a modded boss room has certain door layouts
	- Fix a vanilla bug that caused Hush's laser attack to ignore a room's slowdown state and always chase the player at full speed
	- Fix ???/Blue Womb rooms generating in The Void even when not using Better Void Generation
	- Fix Void Portal rooms potentially not being generated in The Void
	- Fix room weights not correctly being reset when reseeding in The Void
	- Temporarily disable modified RoomDescriptor.OverrideData handling to prevent potential cases of it not being properly replaced
	- Fix Isaac's Heart being immune to lasers
/newline/
/versionseparator/
v1.0.10c -
Additions:
* RoomDescriptor:
	InitSeeds(RNG)
* ModCallbacks:
	- MC_PRE_PLAYER_ADD_COSTUME(ItemConfigItem, Player, ItemStateOnly)
		Called before the costume is added to the player. Return ItemConfigItem to replace the costume or true to cancel adding it entirely.
	- MC_PRE_PLAYER_REMOVE_COSTUME(ItemConfigItem, Player)
		Called before the costume is removed from the player. Return true to cancel the removal.
/newline/
* Fixes:
	- Fixed a severe issue with Isaac.PlayCutscene() causing potential corruption when called for custom cutscene.
	- EntityPlayer:SetImmaculateConceptionState(i) now automatically clamps to valid values only [0,14] to avoid crashes.
	- Fixed binder for EntityPlayer:DropCollectibleByHistoryIndex which caused crashes on call.
	- Fixed an issue in ItemPool:GetCollectible that prevented passing ItemPoolType.POOL_NULL.
/newline/
Modified:
* RoomConfigHolder:
	- GetRoomByStageTypeAndVariant(StbType, Type, Variant, Mode = -1)
* Re-enabled "Extra debug render for FindInRadius" option.
/newline/
/versionseparator/
v1.0.10b -
Modified:
* MusicManager:
	PlayJingle(Music ID, int Duration)
* Fixes:
	- Disabled the new Debug find in radius feature until further notice, since it causes issues on some vanilla calls (Ex: Evil Eye)
* Room:TrySpawnBlueWombTime now checks Game TimeCounter instead of FrameCount, consistent with TrySpawnBossRushDoor and likely the intended behavior
/newline/
/versionseparator/
v1.0.10a -
Additions:
* EntityPlayer:
	- SetBlackHeart(int BlackHeart)
	- GetCambionFamiliarFlags()
	- SetCambionFamiliarFlags(CambionFamiliarFlag flags)
* ModCallbacks:
	- MC_PRE_FORTUNE_DISPLAY
		Called before a fortune paper is displayed.
	- MC_PRE_ITEM_TEXT_DISPLAY (title, subtitle, isSticky, isCurseDisplay)
		Called before an item text is displayed (such as with picking up an item, Poke Go, stage title, etc.)
	- PRE_GET_RANDOM_ROOM_INDEX(int RoomIndex, bool IAmErrorRoom, integer Seed)
		Return integer to overwrite target room index.
	- MC_POST_GLOWING_HOURGLASS_SAVE/LOAD (int Slot)
		Called after the Glowing Hourglass state is saved/loaded
	- MC_PRE/POST_PLAYER_ADD_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
		Called before/after a card/pill gets added to the player's inventory.
		On PRE: Return a different ID to change the card/pill added, or false to cancel adding it entirely.
	- MC_POST_PLAYER_REMOVE_CARD/PILL (EntityPlayer, Card/PillColor, PillCardSlot)
		Called after a card/pill gets removed from the player's inventory by any means (dropped, direct removal, use, etc).
	- MC_PRE/POST_PLAYER_COLLECT_CARD (EntityPlayer, EntityPickup)
		Called before/after a player picks up a card/pill off the ground.
		On PRE: Return false to prevent the card/pill from being picked up.
	- MC_POST_PLAYER_DROP_CARD/PILL (EntityPlayer, EntityPickup, PillCardSlot)
		Called after a player drops a card/pill onto the ground from their inventory.
	- MC_PRE_PLAYER_GIVE_BIRTH_CAMBION/IMMACULATE (EntityPlayer, CambionFamiliarFlag)
		Return false to cancel the familiar being added.
* EntityLaser:
	- GetDamageMultiplier()
	- SetDamageMultiplier(float Mult)
* EntityKnife:
	- GetIsSwinging()
	- SetIsSwinging(bool)
	- GetIsSpinAttack()
	- SetIsSpinAttack(bool)
* EntityFamiliar:
	- GetItemConfig()
* PlayerHUDHeart:
	- IsEternalHeartOverlayVisible()
	- IsFadingHeart()
* PlayerManager:
	- RemoveCoPlayer(Entity_Player)
* DailyChallengeMenu:
	- Get/SetState
* Enums:
	- CambionFamiliarFlag
* Added a new option "Extra debug render for FindInRadius". While the DebugFlag.HITSPHERES flag is enabled, debug spheres will be rendered for FindInRadius/QueryRadius calls.
* RoomDescriptor.OverrideData is no longer forcibly changed by RoomDescriptor.FLAG_SURPRISE_MINIBOSS
/newline/
Modified:
* Isaac:
	PlayCutscene(CutsceneID, ClearGameState = false)
* Game:
	SetDizzyAmount(TargetIntensity, CurrentIntensity) - Providing CurrentIntensity is now optional
* EntityNPC:
	ShootMaggotProjectile(Position, Target, FallingSpeed = -8.0, YOffset = -24.0)
* EntityPlayer:
	Fixed vanilla crash when AddNullCostume is given an invalid id; along with other potential crashes in AddCostume
* Callbacks:
	- MC_PRE_PLAYERHUD_TRINKET_RENDER
		Fixed returning true to cancel rendering.
	- MC_PLAYER_GET_ACTIVE_MAX_CHARGE / MC_PLAYER_GET_ACTIVE_MIN_USABLE_CHARGE
		Will no longer run for empty active item slots.
		Now provide the current charge value as an argument.
		Returning a value no longer stops the callback, and changes the charge value passed to the next callback.
		If the final result of the callback is <0, the result is treated as 0.
* The game no longer prematurely ends the daily run if there was console input, instead blocking it
/newline/
Fixes:
* Game():GetDizzyAmount() now returns the intended value, instead of 0
* Fixed MC_PRE_PLANETARIUM_APPLY_TREASURE_PENALTY not providing the current number of treasure rooms visited.
* Fixed binders for EntityNPC: ThrowMaggot, ShootMaggotProjectile functions.
/newline/
/versionseparator/
v1.0.9d -
Fixes:
* Fixed a bug with the autoupdater
/newline/
/versionseparator/
v1.0.9c -
Fixes:
* Fixed a bug in 1.0.9b where all cutscenes were being replaced by the intro cutscene if any mods were enabled.
/newline/
/versionseparator/
v1.0.9b -
Additions:
* Camera:
	- IsPosVisible(position: Vector) : bool
* Game:
	- RecordPlayerCompletion(CompletionType)
* ModCallbacks:
	- MC_POST_COMPLETION_EVENT
		POST version of MC_PRE_COMPLETION_EVENT. Called when a player completes something that would award a mark (end bosses, tainted unlocks)
* Add new Vanilla Tweaks option "Mars Double Tap Window", which determines the number of frames where a repeated movement input is counted as a double tap for activating Mars's charge
* Updater now runs asynchronously, meaning that you should no longer encounter the "white screen" issue.
* Improved mods' startup speed once again!
* Minor fix for a file map.
* "clearcache" command now reloads the file map.
* Fixed a regression that resulted in a severe slowdown for certain commands' autocomplete prompts. This fix has also made file map noticeably faster :D
* Bumbino, Ultra Greed, and familiars like Bum Friend will now trigger MC_PICKUP_GET_COIN_VALUE when collecting coins, and will default to treating modded coin subtypes as worth 1 penny instead of huge values.
/newline/
/versionseparator/
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.
/newline/
* 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)
/newline/
/versionseparator/
v1.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
/newline/
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
	- HasChanceRevive - Returns true if a "?" would be displayed on the player's extra life count (ie, Guppy's Collar)
* 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
	- MC_TRIGGER_PLAYER_DEATH_POST_CHECK_REVIVES (EntityPlayer) - Akin to MC_PRE_TRIGGER_PLAYER_DEATH, but runs right after the game is done checking for vanilla revives.
* 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 the following customtags for items.xml:
	* "nometronome" - Prevents the item from being picked by Metronome
	* "revive" - Each copy of the collectible/trinket/null effect held counts as an extra life (on the HUD, etc) and prevents the game from deleting the run save upon death, making reviving the player safe. You must still remove the item and actually revive the player yourself.
	* "reviveeffect" - Same as "revive", but applies to the corresponding TemporaryEffect of the collectible/trinket (you'd probably want to set their effects to be persistent). There is no difference between "revive" and "reviveeffect" for null items.
	* "chancerevive" - If item is counted as an extra life, displays a "?" next to the extra life count, like Guppy's Collar.
	* "hiddenrevive" - If item is counted as an extra life, this prevents it from being counted on the hud. Overrides "chancerevive".
* 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

/newline/
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 but unreproducable instance of a trapdoor deal room variant being generated outside of floor 8
	* Fixed incorrect declaration for ItemConfig::GetTaggedItems
	* Fixed Gamma scale on the visual settings imgui menu
/newline/
/versionseparator/
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/
/versionseparator/
v1.0.8b -
Fixes:
* Fixed the MC_PLAYER_GET_HEALTH_TYPE callback causing the last heart to render underneath the first one.
/newline/
/versionseparator/
v1.0.8a -
Fixes:
* Fixed issues with EntityPlayer:GetSmeltedTrinkets() and EntityPlayer:GetFootprintColor()
/newline/
/versionseparator/
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
/newline/
/versionseparator/
v1.0.7c -
Additions:
* Options.StatHUDPlanetarum
Fixes:
* Fixed a bug where sounds were duplicated if MC_POST_SFX_PLAY was in use
/newline/
/versionseparator/
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
/newline/
/versionseparator/
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
/newline/
/versionseparator/
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).
* FxLayers:
	- Added content support for fxlayers.xml
* XMLData :
	- XMLData.GetEntryByOrder: gets entries in the order they appear on the xmls.
	- Added XMLData for FxLayers, FxParams and FxRays
* 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
/newline/
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
/newline/
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
/newline/
/versionseparator/
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)
/newline/
/versionseparator/
v1.0.6a -
Additions:
* Minimap :
	- GetState
	- GetHoldTime
	- GetItemIconsSprite
	- GetIconsSprite
	- [Get/Set]ShakeDuration
	- [Get/Set]ShakeOffset
/newline/
Fixes:
* Fixed an issue that made it so custom completion marks and achievements are not properly loaded locked or unlocked on a session(big oof, I know).
/newline/
/versionseparator/
v1.0.6 -
Additions:
* Weapon :
	- SetModifiers
* Added a MeetsVersion(targetversionstring) function to the REPENTOGON global
* Added support for content on bosscolors.xml
* Added EntityNPC:GetBossColorIdx() returns the bosscoloridx or -1 if its not a bosscolor.
* Added Isaac.GetBossColorIdxByName() returns the bosscoloridx or -1 if its not a bosscolor name (you have to give them a unique name for this to work).
* Added Chinese translation text, thanks @502y
* Added support for the pocketActive param in players.xml(I forgor)
* Added MC_PRE_PICKUP_VOIDED(EntityPickup Pickup, boolean IsBlackRune), MC_PRE_PICKUP_VOIDED_ABYSS(EntityPickup Pickup) and MC_PRE_PICKUP_COMPOSTED(EntityPickup Pickup) callbacks, returning false cancels the pickup getting consumed.
* Modded characters can now donate to the greed donation machine with the vanilla jam percentages
* Entity:
	- CopyStatusEffects has been modified to better suit actual use cases
	- SetColor has been removed, will now always copy ColorParams
	- Now only copies missing status effects onto the target entity, use Overwrite argument for old behavior
* EntityPlayer:
	- Get/SetGnawedLeafTimer
	- ClearQueueItem
* Level:
	- Started work on Level:Get/SetForceSpecialQuest
		- Allows forcing the Mirror or Mineshaft quest to be enabled or disabled
		- Not currently complete; will require some bulk patches
* Room :
	- SetLavaIntensity
	- [Get/Set]RainIntensity
	- [Get/Set]LightningIntensity
	- DoLightningStrike
	- GetNumRainSpawners
* Game :
	- ShowGenericLeaderboard
* HUD:
	- [Get/Set]BossHPBarFill
	- GetCardsPillsSprite
	- GetCoopMenuSprite
	- GetCraftingSprite
	- GetFortuneSprite
	- GetHeartsSprite
	- GetInventorySprite
	- GetPoopSpellSprite
	- GetStreakSprite
* ScoreSheet :
	- AddFinishedStage
* ModsMenu:
	- Added barebones search functionality to filter mods
	- Added the ability to undo pending changes and avoid a restart if you messed up
	- Changed the order in which mods are displayed, mods are now paired by their enabled status.
* PauseMenu:
	- Added a PauseMenu Global that holds all its related stuff
	- Added a GetMyStuffSprite that returns the sprite used for the MyStuff items
	- Added a GetSelectedElement/SetSelectedElement similar to the one seen in other menus
	- Added GetState/SetState
* MusicManager:
	- Get/SetCurrentPitch
* Unlocks
	- Added support for unlockable items using the xml achievement attribute
	- Added support for unlockable trinkets using the xml achievement attribute
	- Added support for unlockable cards using the xml achievement attribute
	- Added support for unlockable pilleffects using the xml achievement attribute?
* Secrets Screen
	- This screen will now display modded achievements
	- Made it so the achievement attribute 'hidden' hides achievements from this menu
* XMLData :
	- Added GetModById since the normal GetEntryById wont give the expected result when you want to use actual mod ids
	- Added GetBossColorByTypeVarSub(t,v,s) that gives you the boss color that will be used on a certain typevarsub combo
* ImGui:
	- Pressing enter in an empty console input will now close the console and imgui, to mimic the behavior of the vanilla console
	- Fixed notifications being behind the menu bar
	- Fixed debug console loosing focus when other windows are present
	- Fixed ImGui not appearing in OBS's Game Capture mode, Discord streaming, and possibly more
	- Fixed the first console autocomplete entry not being selectable with the keyboard
/newline/
Modified:
* PlayerManager :
	- FirstCollectibleOwner(CollectibleType Collectible, boolean LazSharedGlobalTag = true)
	- FirstTrinketOwner(TrinketType Trinket, RNG RNG = nil, boolean LazSharedGlobalTag = true)
* OptionsMenu :
	- Its functions can now be called ingame and point to the pause menu options submenu when appropiate
* PRE/POST_PLAYERHUD_RENDER_HEARTS callback now passes EntityPlayer (Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown, EntityPlayer Player)
* Rename "MC_HUD_POST_UPDATE" into "MC_POST_HUD_UPDATE" for consistency
* MC_GET_SHOP_ITEM_PRICE now provides a price argument
/newline/
Fixes:
* Fixed relative ids being displayed as actual ids on xmldata tables.
* Fixed SetCompletionMarks functions when launching the game from the room editor or BR.
* Fix GridEntity:ToFire/ToTNT/ToWall functions
* Fixed binder for Entity:ComputeStatusEffectDuration
* Fixed pause menu modded marks rendering over the controller disconected popup
* Fixed DamageFlag.DAMAGE_RED_HEARTS / .DAMAGE_NO_PENALTIES / .DAMAGE_FAKE not working when adding them via MC_ENTITY_TAKE_DMG's return table.
* Fixed an issue on xmldata that created extra ghost entries on some nodetypes when asking for stuff that isnt there
* Fixed an issue with the stats sprite for the pause menu callbacks where it ended up holding garbage data
* Fixed some broken EventCounter enums
* Fixed PRE/POST_ENTITY_THROW EntityPlayer argument being pushed as optional parameter
* Fixed crash when calling Game():MoveToRandomRoom() with seed 0
/newline/
/versionseparator/
v1.0.5a -
Fixes:
* Hot-Fixed a crash that happened when no mods were enabled in 1.0.5
/newline/
/versionseparator/
v1.0.5 -
Additions:
* Added Challenge completion tracking to the mod challenges menu
* Added localization code support
* Added settings to change unifont rendering size
* Add Update callbacks for GridEntityTNT
* Add Render callbacks for GridEntityLock and GridEntityTeleporter
* LayerState:
	- Get/SetWrapSMode
	- Get/SetWrapTMode
	- these play some currently unknown role in allowing sprites to wrap around, and is required for Beam sprites
* Beam and Point have recieved some reworks in preparation for a future cord reimplementation
	- 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.
	- Point no longer has a Color object for the time being to save some space. It should hopefully return later, pending finding a good way to optimize it.
* Added PRE_PLAYERHUD_RENDER_HEARTS(Vector Offset(?), Sprite HeartsSprite, Vector Position, float Unknown) callback, returning true cancels hearts HUD rendering
* Added support for custom items in the items attr on players.xml by using their name instead of id.
* Added support for modded startitems,playertype and starttrinkets in challenges.xml.
* Added support for custom achievements in the achievement attribute for items.xml(cant lock items yet tho...)
* Added MC_POST_HUD_RENDER callback (good for rendering on top of the HUD)
* Added WeightedOutcomePicker:RemoveOutcome(int Value) and WeightedOutcomePicker:GetOutcomes()
* Added Entity Get/Set methods related to status effects countdown
* Added challenges.xml param unlocksachievement attribute, which tells which achievement is unlocked on the modded challenge completion.
* Added MC_POST_PRE_CHALLENGE_DONE to do stuff when a challenge is completed, on POST, or prevent its completion on PRE.
* Added the challenge functions Isaac.GetModChallengeClearCount, Isaac.ClearChallenge, Isaac.MarkChallengeAsNotDone and Isaac.IsChallengeDone.
* Changed the PRESS E FOR CHALLENGES MENU note, on the challenges menu, to follow you around and not be left at the top.
* Entity:ForceCollide() now works for EntityLasers
* ModsMenu.GetSelectedElement() and ModsMenu.SetSelectedElement() now start at 1 to be more intuitive
* ModsMenu.SetSelectedElement() clamps values below and above the amount of mods the player has
* The mods menu can now be scrubbed through! Left/Right will scroll three mods at a time. Page Up/PageDown on keyboard and Left/Right Trigger on controller will scroll ten mods at a time.
* Added WeightedOutcomePicker:AddOutcomeFloat(), WeightedOutcomePicker:Clear() and WeightedOutcomePicker:GetNumOutcomes()
/newline/
Fixes:
* Fix Repentogon Resources not being loaded when mods are off
* Fix GridEntity render callbacks being massively broken
* Fix PRE_GRID_ENTITY_SPAWN not accepting a table
* Fix potential crash with SpawnGridEntity(GridEntityDesc)
	- main_ex.lua typechecking on this is temporarily disabled
	- Will silently fail if returning an invalid type to prevent crashes
* Fix Entity:AddWeakness duration being incorrect
* Fix Beam:Add(Point) override
* Fix nomarks players.xml attribute
* Fix GetAchievementIdByName not working until Slot selection
* Fix XmlData.GetByName and GetById returning the input instead of nil when not finding anything
* Fix several XMLData Achievement SourceId clownery when mods set ids for their achievements
* Fix XMLData GetNumEntries being inconsistent
* Fix binder for Familiar:UpdateDirtColor
* Fix FlatPatch spam in repentogon.log by reworking Quick Room Clear patch
* Fix GridEntityDoor vanilla variables PreviousState/PreviousVaraint returning unusable userdata instead of integer
* Fix Weapon:SetFireDelay() not working
* Fix ModsMenu.SetSelectedElement() only having a cosmetic effect
/newline/
/versionseparator/
v1.0.4 -
Additions:
* The error dialog now automatically gets dismissed the next time ImGui is opened
* Imgui.IsVisible()
* Added function overload for Isaac.GetLocalizedString(), which accepts LanguageCode string as paramater
* Added Scale param for POST_PLAYERHUD_RENDER_ACTIVE_ITEM callback
* Added Entity:GetDamageCountdown() and Entity:SetDamageCountdown()
/newline/
Fixes:
* Fixed Eden's damage, range, and shot speed stats not properly changing
* The console reimplementation is now more faithful to the original, which fixes some cases where the output color was wrong
* Pickup:GetCollectibleCycle() length now limited by CycleCollectibleCount
* Fixed binder for Player:AddBoneOrbital
* Renamed Player method AddLeprocy -> AddLeprosy
* Fixed binder for PlayerHUD:RenderActiveItem
* Fixed a bug where POST_ITEM_OVERLAY_UPDATE callback passed unusable userdata instead of Giantbook ID
* Fixed PRE_ITEM_OVERLAY_SHOW callback not playing custom giantbook animation, when you replace vanilla one
* Fixed PRE_PLANETARIUM_APPLY_X_PENALTY softlocking the game
* Enabled mods/debug console disable access to enter daily run as before
/newline/
/versionseparator/
v1.0.3 -
Additions:
* ColorParams
	- Used to store the color and parameters passed by Entity:SetColor (Priority, Duration, Fadeout, Shared)
* Entity:CopyStatusEffects() now copies the Color over to the target Entity, including the proper duration and other parameters
	- This can be toggled with the CopyColor argument, default true
* Isaac.IsInGame
* EntityPickup :
	- GetCollectibleCycle
	- RemoveCollectibleCycle
* Capsule :
	- Capsule constructor
* MenuManager :
	- GetViewPosition
	- SetViewPosition
* The luamod command now supports autocomplete
* Dear ImGui console now has a back button to allow controllers & Steam Deck to exit
* dsound.dll will log when it's been unloaded to help debug cases of REPENTOGON not loading
* Improved constructors for Sprite and Font classes
* Added documentation for the MC_PRE_LEVEL_SELECT callback
* Added gfxback property to custom achievements xml
/newline/
Fixes:
* Fix a crash with weapon-copying familiars and Spirit Sword
* Fixed a possible crash when GetNullFrame is called on a Sprite that is not yet fully loaded
* Fixed MC_POST_ENTITY_TAKE_DMG triggering when the player touches the white fireplace in downpour/dross
* Fix Card Against Humanity only ever spawning regular poops
* Fix crawlspace floors (and possibly other unnoticed cases) not rendering
* Fix Entity:CopyStatusEffects(Entity, Entity) doing nothing
* Fix potential issue with XMLData.GetNumEntries
* Improve paramater validation for MC_PRE_LEVEL_SELECT to prevent possible crashes
* Modify vanilla function Game():GetPlayer to prevent possible crashes
* Changelog can now be safely closed using the "menu back" button e.g. Esc
* Fixed AnimationData:IsLoopingAnimation returning boolean, instead of integer
* Fixed a custom cutscene issue that played the Intro on cases where it shouldnt
/newline/
/versionseparator/
v1.0.2 -
Additions:
* Added Pickup:GetAlternatePedestal()
* REPENTOGON'S logfile (repentogon.log) now shows timestamps
/newline/
Fixes:
* Fixed a crash when time is set to 0 in the performance logger
* Fixed Dingle always spawning a red poop
* Fixed achievements not firing in Steam
/newline/
/versionseparator/
v1.0.1 -
Fixed the updater erroneously asking to update, sorry :(
/versionseparator/
