Binding of Isaac: Rebirth Wiki
Advertisement

Introduction

  • 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 C:/Users/Your Username/Documents/My Games/Binding of Isaac Afterbirth+ 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). 0 0 = Normal Mode

1 = Hard Mode

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

false = No change

(in 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 (in Repentance)Collectible Knife Piece 1 iconKnife Piece 1 and (in Repentance)Collectible Knife Piece 2 iconKnife 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 iconIsaac 0
Character Magdalene iconMagdalene 1
Character Cain iconCain 2
Character Judas iconJudas 3
Character ??? (Character) icon??? 4
Character Eve iconEve 5
Character Samson iconSamson 6
Character Azazel iconAzazel 7
Character Lazarus iconLazarus 8
Character Eden iconEden 9
Character The Lost iconThe Lost 10
Character Lazarus Risen iconLazarus Risen 11
Character Dark Judas iconDark Judas 12
(except in Rebirth) Character Lilith iconLilith 13
(except in Rebirth) Character Keeper iconKeeper 14
(in Afterbirth † and Repentance) Character Apollyon iconApollyon 15
(in Afterbirth † and Repentance) Character The Forgotten iconThe Forgotten 16
(in Afterbirth † and Repentance) Character The Soul (Character) iconThe Soul 17
(in Repentance) Character Bethany iconBethany 18
(in Repentance) Character Jacob iconJacob 19
(in Repentance) Character Esau iconEsau 20
(in Repentance) Character Tainted Isaac iconTainted Isaac 21
(in Repentance) Character Tainted Magdalene iconTainted Magdalene 22
(in Repentance) Character Tainted Cain iconTainted Cain 23
(in Repentance) Character Tainted Judas iconTainted Judas 24
(in Repentance) Character Tainted ??? iconTainted ??? 25
(in Repentance) Character Tainted Eve iconTainted Eve 26
(in Repentance) Character Tainted Samson iconTainted Samson 27
(in Repentance) Character Tainted Azazel iconTainted Azazel 28
(in Repentance) Character Tainted Lazarus iconTainted Lazarus 29
(in Repentance) Character Tainted Eden iconTainted Eden 30
(in Repentance) Character Tainted Lost iconTainted Lost 31
(in Repentance) Character Tainted Lilith iconTainted Lilith 32
(in Repentance) Character Tainted Keeper iconTainted Keeper 33
(in Repentance) Character Tainted Apollyon iconTainted Apollyon 34
(in Repentance) Character Tainted Forgotten iconTainted Forgotten 35
(in Repentance) Character Tainted Bethany iconTainted Bethany 36
(in Repentance) Character Tainted Jacob iconTainted Jacob 37
(in Repentance) Character Dead Tainted Lazarus iconDead Tainted Lazarus 38
(in Repentance) Character Tainted Jacob iconTainted Jacob 2 39
(in Repentance) Character Tainted Soul iconTainted 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.

Stages endstage ID Chapter
BasementBasement CellarCellar

(except in Rebirth) (except in Rebirth)Burning BasementBurning Basement

(in Repentance) (in Repentance)DownpourDownpour

(in Repentance) (in Repentance)DrossDross

1 / 2 Chapter 1
CavesCaves CatacombsCatacombs

(except in Rebirth) (except in Rebirth)Flooded CavesFlooded Caves

(in Repentance) (in Repentance)MinesMines

(in Repentance) (in Repentance)AshpitAshpit

3 / 4 Chapter 2
DepthsDepths NecropolisNecropolis

(except in Rebirth) (except in Rebirth)Dank DepthsDank Depths

(in Repentance) (in Repentance)MausoleumMausoleum

(in Repentance) (in Repentance)GehennaGehenna

5 / 6 Chapter 3
WombWomb UteroUtero

(except in Rebirth) (except in Rebirth)Scarred WombScarred Womb

(in Repentance) (in Repentance)CorpseCorpse

7 / 8 Chapter 4
(except in Rebirth) (except in Rebirth)?????? 9 Chapter 4.5
CathedralCathedral SheolSheol 10 Chapter 5
ChestChest Dark RoomDark Room 11 Chapter 6
(in Afterbirth † and Repentance) (in Afterbirth † and Repentance)The VoidThe Void 12 Endgame
(in Repentance) (in 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) 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.


Advertisement