Custom Challenges

From The Binding of Isaac: Rebirth Wiki
Jump to navigation Jump to search

Custom Challenges are player-made challenges that can be accessed by pressing TAB in the in-game Challenges menu.

These challenges can be defined in a challenges.xml file placed in a mod's content folder. An example of such a folder is steamapps/common/The Binding of Isaac Rebirth/mods/YOUR MOD/content.

General Format

  • The challenges.xml file uses <challenge> elements placed in a root <challenges> element.
  • Here's a general template that can be used in order to create custom challenges:
<challenges version="1">
    <challenge name="My Custom Challenge" />
</challenges>
  • Multiple <challenge> elements can be added, each one a new line.
  • Each challenge is defined by using a set of attributes between the <challenge> tags that control the game's mechanics, such as starting items, trinkets, cards, pills, end stage, amount of heart containers, curses, rooms that will be spawned, etc.

Attributes

  • This is the full set of attributes that can be used to define the custom challenge rules.
Attribute Value type Explanation Default value Possible Values
name string The name that's going to show in the Custom Challenges menu. n/a Arbitrary unique string.
id integer Unique challenge ID.
This is used if you want to apply special behavior to the challenge using a mod, i.e. via Lua scripts.
The ID must be a unique number that's not used by any other default or custom challenge.
0 Arbitrary unique integer (i.e. whole number).
startingitems integer list Item ids that the player will receive in the beginning.
Each id must be separated with a comma (no spaces).
n/a See Items for all item IDs.
startingtrinkets integer list Trinket ids that the player will receive in the beginning.
Each ID must be separated with a comma (no spaces).
n/a See Trinkets for all trinket IDs.
startingpill integer Effect ID of the pill that the player will receive in the beginning. -1 See Pills for all IDs.

-1 means no pill.

startingcard integer ID of the card that the player will receive in the beginning.
This can also be a rune or other card-like pickup.
0 See Cards and Runes for all IDs.

0 means no card/rune.

-1 can be used for a random tarot card.

playertype integer ID of the character that will be used in the challenge. 0 See the Characters list below for all IDs.

0 means Isaac.

endstage integer The final stage of the challenge. This is where the trophy will spawn.
The trophy will also spawn on any next floor in case the player manages to continue.
0 See the End Stage list below.
roomfilter integer list List of room IDs (separated by commas) not to be generated. n/a See the Room Filters list below for all IDs.

roomfilter="4" means no Treasure Rooms. roomfilter="4,2" means no Shops or Treasure Rooms.

cursefilter integer Bitmask for curses that won't appear in the challenge. 0 Either a single curse number, or a number which combines all banned curses.

See Curses list below for details.

getcurse integer Bitmask for curses that will be forced all the time. 0 Either a single curse number, or a number which combines all forced curses.

See Curses list below for details.

achievements integer list List of achievement IDs required in order to play the challenge.

Each ID must be separated with a comma (no spaces).

n/a IDs correspond to the in-game secret numbers, listed in the Achievements table
altpath boolean Alternative floor for light/dark path (Isaac/Satan). false true = go to The Chest
false = go to The Dark Room
canshoot boolean If set to false the player will be blindfolded and unable to shoot. true true = Player can shoot tears
false = Player cannot shoot, and must rely on familiars, melee weapons, or other destructive items.
redhp integer Fills a specified amount of red heart containers.
This does not add new containers.
Uses half hearts as a measure so 1 full heart container is equal to 2.

This number can be negative.

0 An integer between -24 (12 empty heart containers) and 24 (12 full heart containers).

E.g., to make a character who starts with 3 empty red hearts, use -6.

maxhp integer Adds a specified amount of red heart containers.
Uses half hearts as a measure so 1 full heart container is equal to 2.
0 Between 0 (no red hearts) and 24 (12 red hearts)
soulhp integer Adds a specified amount of soul hearts.
Uses half hearts as a measure so 1 full heart container is equal to 2.
0 Between 0 (no soul hearts) and 24 (12 soul hearts)
blackhp integer Adds a specified amount of black hearts.
Uses half hearts as a measure so 1 full heart container is equal to 2.
0 Between 0 (no black hearts) and 24 (12 black hearts)
coins integer Adds a specified amount of coins. 0 Between 0 and 99, or up to 999 if the player starts with Deep Pockets (ID: 416)
maxdamage boolean Setting this to true will fix the player's damage to 100, preventing any damage-modifying items from affecting it. false true = Cap max damage at 100

false = No cap

adddamage float Modifies the player's damage by a specified amount. 0.0 Any floating point number (i.e., a decimal number, such as 1.5 or 2.0)
minfirerate float Fixes the player's tear delay to a specified amount, preventing any tear-delay-modifying items from affecting it 0.0 Any floating point number (i.e., a decimal number, such as 1.5 or 2.0)
minshotspeed boolean Setting this to true will fix the player's shot speed to 1, preventing any shot-speed-modifying items from affecting it. false true = Cap max shot speed at 1

false = No cap

bigrange boolean If set to true, adds +10 range to the player. false true = Add +10 range

false = No change

difficulty integer Game difficulty (0 = normal; 1 = hard; 2 = greed; 3 = greedier). 0 0 = Normal Mode

1 = Hard Mode 2 = Greed Mode 3 = Greedier Mode

megasatan boolean If set to true, the challenge will to go to Mega Satan.
This will also give Collectible Key Piece 1 icon.pngKey Piece 1 and Collectible Key Piece 2 icon.pngKey Piece 2 required to open the door.
false true = Player must defeat Mega Satan. The end stage must be set to 11 (Dark Room or Chest), with endstage="11"

false = No change

(in Repentance and Repentance+) secretpath boolean If set to true, the challenge will be forced to use the Repentance alt path.
The player will still be required to manually collect Collectible Knife Piece 1 icon.pngKnife Piece 1 and Collectible Knife Piece 2 icon.pngKnife Piece 2.
false true = Player must defeat Mother. The end stage must be set to 8 (Corpse), with endstage="8"

false = No change

Characters (playertype)

A list of character IDs, for use with the playertype attribute.

Character playertype ID
Character Isaac icon.pngIsaac 0
Character Magdalene icon.pngMagdalene 1
Character Cain icon.pngCain 2
Character Judas icon.pngJudas 3
Character ??? (Character) icon.png??? 4
Character Eve icon.pngEve 5
Character Samson icon.pngSamson 6
Character Azazel icon.pngAzazel 7
Character Lazarus icon.pngLazarus 8
Character Eden icon.pngEden 9
Character The Lost icon.pngThe Lost 10
Character Lazarus Risen icon.pngLazarus Risen 11
Character Dark Judas icon.pngDark Judas 12
(except in Rebirth) Character Lilith icon.pngLilith 13
(except in Rebirth) Character Keeper icon.pngKeeper 14
(except in Rebirth and Afterbirth) Character Apollyon icon.pngApollyon 15
(except in Rebirth and Afterbirth) Character The Forgotten icon.pngThe Forgotten 16
(except in Rebirth and Afterbirth) Character The Soul (Character) icon.pngThe Soul 17
(in Repentance and Repentance+) Character Bethany icon.pngBethany 18
(in Repentance and Repentance+) Character Jacob icon.pngJacob 19
(in Repentance and Repentance+) Character Esau icon.pngEsau 20
(in Repentance and Repentance+) Character Tainted Isaac icon.pngTainted Isaac 21
(in Repentance and Repentance+) Character Tainted Magdalene icon.pngTainted Magdalene 22
(in Repentance and Repentance+) Character Tainted Cain icon.pngTainted Cain 23
(in Repentance and Repentance+) Character Tainted Judas icon.pngTainted Judas 24
(in Repentance and Repentance+) Character Tainted ??? icon.pngTainted ??? 25
(in Repentance and Repentance+) Character Tainted Eve icon.pngTainted Eve 26
(in Repentance and Repentance+) Character Tainted Samson icon.pngTainted Samson 27
(in Repentance and Repentance+) Character Tainted Azazel icon.pngTainted Azazel 28
(in Repentance and Repentance+) Character Tainted Lazarus icon.pngTainted Lazarus 29
(in Repentance and Repentance+) Character Tainted Eden icon.pngTainted Eden 30
(in Repentance and Repentance+) Character Tainted Lost icon.pngTainted Lost 31
(in Repentance and Repentance+) Character Tainted Lilith icon.pngTainted Lilith 32
(in Repentance and Repentance+) Character Tainted Keeper icon.pngTainted Keeper 33
(in Repentance and Repentance+) Character Tainted Apollyon icon.pngTainted Apollyon 34
(in Repentance and Repentance+) Character Tainted Forgotten icon.pngTainted Forgotten 35
(in Repentance and Repentance+) Character Tainted Bethany icon.pngTainted Bethany 36
(in Repentance and Repentance+) Character Tainted Jacob icon.pngTainted Jacob 37
(in Repentance and Repentance+) Character Dead Tainted Lazarus icon.pngDead Tainted Lazarus 38
(in Repentance and Repentance+) Character Tainted Jacob icon.pngTainted Jacob 2 39
(in Repentance and Repentance+) Character Tainted Soul icon.pngTainted Soul 40

End Stage (endstage)

A list of stage IDs, which correspond to various chapters, for use with the endstage attribute.

This attribute sets the final stage of the challenge. This is where the trophy will spawn, after the floor boss is defeated. The trophy will also spawn on any next floor in case the player manages to continue.

  • Setting the end stage to Chapter 9 (???) will prevent the trapdoor and light beam from spawning after defeating It Lives, but unless the player has a Strange key or the timer is under 30 minutes, the door to the Hush floor will not open, softlocking the run.
    • Additionally, after defeating Hush, the portal to the void will not open.
Stages endstage ID Chapter
BasementBasement
CellarCellar
(except in Rebirth)Burning BasementBurning Basement
(in Repentance and Repentance+)DownpourDownpour
(in Repentance and Repentance+)DrossDross
1 / 2 Chapter 1
CavesCaves
CatacombsCatacombs
(except in Rebirth)Flooded CavesFlooded Caves
(in Repentance and Repentance+)MinesMines
(in Repentance and Repentance+)AshpitAshpit
3 / 4 Chapter 2
DepthsDepths
NecropolisNecropolis
(except in Rebirth)Dank DepthsDank Depths
(in Repentance and Repentance+)MausoleumMausoleum
(in Repentance and Repentance+)GehennaGehenna
5 / 6 Chapter 3
WombWomb
UteroUtero
(except in Rebirth)Scarred WombScarred Womb
(in Repentance and Repentance+)CorpseCorpse
7 / 8 Chapter 4
(except in Rebirth)?????? 9 Chapter 4.5
CathedralCathedral
SheolSheol
10 Chapter 5
ChestChest
Dark RoomDark Room
11 Chapter 6
(except in Rebirth and Afterbirth)The VoidThe Void 12 Endgame
(in Repentance and Repentance+)HomeHome 13 Endgame

Room Filters (roomfilter)

A list of room IDs, for use with the roomfilter attribute.

This attribute sets a list of rooms IDs, separated by commas, which should not be generated.

For example, to disable both Treasure Rooms and Shops, use roomfilter="2,4"

Room ID
Normal 1
Shop 2
I AM ERROR 3
Treasure 4
Boss 5
Miniboss 6
Secret Room 7
Super Secret Room 8
Arcade 9
Curse 10
Challenge (Normal) 11
Library 12
Sacrifice 13
Devil Room 14
Angel Room 15
Boss Challenge 16
Boss Rush 17
Clean Bedroom 18
Dirty Bedroom 19
Vault 20
Dice Room 21
Black Market 22
Greed Mode Exit 23
Planetarium 24
Teleporter 25
Teleporter Exit 26
Secret Exit 27
Blue 28
Ultra Secret 29

Curses (cursefilter & getcurse)

A list of curse bitmasks, for use with the cursefilter and getcurse attributes.

Unlike other attributes which accept a comma-separated list, the two curse attributes accept a single number, which is the combined total of all applicable curses.

For example, to apply Curse of the Labyrinth (2) and Curse of the Maze (32), the attribute value would be 34 (which is 32 + 2).

Curse Bitmask
Curse of Darkness 1
Curse of the Labyrinth 2
Curse of the Lost 4
Curse of the Unknown 8
Curse of the Cursed 16
Curse of the Maze 32
Curse of the Blind 64
(in Repentance and Repentance+) Curse of the Giant 128

Bugs

Bug Bug! Using "roomfilter" to prevent Treasure Rooms from spawning will still make a Treasure Room spawn in Downpour/Dross 2. This is due of the fact that a Treasure Room must be generated in the mirrored world in order to spawn Knife Piece 1.
Bug Bug! Using the "canshoot" attribute in combination with "secretpath" can lead to a softlock in the Knife Piece 2 area because the player will not be able to shoot along with not having any items from the challenge itself. Often times room layouts will contain a poop that needs to be broken in order to open up a path.
Bug Bug! Angel Rooms can still appear while holding the Book of Virtues, even if they've been disabled with "roomfilter".