-
Notifications
You must be signed in to change notification settings - Fork 18
/
changelog.txt
992 lines (991 loc) · 52.8 KB
/
changelog.txt
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
v1.0.x -
Additions:
* Camera:
- Update(bool Interpolated = false)
* EntityPickup:
- GetMegaChest[Left/Right]Collectible
- Returns the other EntityPickup for a Mega Chest
* EntityPlayer:
- [Get/Set]ActionHoldDrop - how long player holds action drop button.
- [Get/Set]ForgottenSwapFormCooldown
* EntityFamiliar:
- IsLilDelirium
- SetLilDelirium
* Level:
- Added overloads for CanPlaceRoom(AtDoor) and FindValidRoomPlacementLocations that accept a RoomShape and DoorMask instead of a RoomConfigRoom.
* 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, EntityPickup bed)
Triggers if Bed target (bed.Target) is set to player and "SleepFillHP" item overlay sprite's event is triggered, and before the hearts addition is applied.
Return true to cancel vanilla behavior.
- MC_POST_TRIGGER_BED_SLEEP_EFFECT(EntityPlayer player, EntityPickup bed)
- 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
* New Enums:
- DoorMask
* Room:
- GetWallColor()
* Isaac:
- GetDoorMaskForRoomShape: Returns a DoorMask representing all DoorSlots that are allowed for the given RoomShape.
* Added content and resources support for stringtable.sta, allowing for custom translation strings and categories. This also allows adding custom fortunes.
* 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.
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.
* 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.
/newline/
Modified:
* EntityFamiliar:
- GetPathFinder -> GetPathfinder
* 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.
* 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
* Vanilla daily run leaderboard will now mark the submitted run entry with a transparent color if the run was cheated.
Fixes:
* 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)
* Misc:
- Modded characters locked behind achievements no longer appear in the local co-op wheel.
/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/
/versionseparator/
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/