The Binding of Isaac: Rebirth – Custom Challenges Guide (Updated for Repentance)

The Binding of Isaac: Rebirth – Custom Challenges Guide 1 -
The Binding of Isaac: Rebirth – Custom Challenges Guide 1 -
How to create custom challenges in the Binding of Isaac. No coding knowledge needed!



Hello all. This is a guide for making custom challenges that iterates on Techpriest’s wonderful custom challenge guide. I used his as a jumping off point for this guide, but seeing as he is not updating it anymore and it is out of date, I have decided to carry the torch of custom challenge guides for the Binding of Isaac, because I think they are really fun. I would also like to say that I have very little modding or coding experience. I will read the comments to this guide and answer what I can, but my knowledge is limited and I may be unable to answer certain questions. Also my guide will be focused on Windows OS because Repentance is not on Mac. Much of the information with this guide was assembled through trial and error, and there may be inaccuracies. I would greatly appreciate any of these pointed out, and I will correct them. 



  • Binding of Isaac Repentence 
  • A text editor. I recommend Notepad++ because it’s free and perfectly suited to our purposes. 
  • Extremely basic computer knowledge (If I can do it you can too).


Step 1: Creating a Mod Folder

Your custom challenge will be located in a mod folder within the Binding of Isaac mods folder. To find this, simply right click on the game in your steam library, click properties, and then click “browse game files.” From here, go into the folder called mods. If you have any mods from the workshop installed, you should see them here. From here, we need to create a folder that will store our custom challenges. It can be called anything you like. It doesn’t really matter what it is called if you are not uploading your challenges to the workshop, but if you are you should title it something that indicates what type of challenge(s) are in it. Inside of your newly created mod folder, we will create another folder called “content.” Now within this folder, we will create a text document called “challenges” which we will save as an XML (eXtensible Markup Language) file. Inside this file we’ll need to do a few things to set it up. Our first line in our file should say: 
<challenges version=”1″> 
Then have a space for a second line, and our third (and final) line will say: 
In between these two lines, we can make as many individual challenges as we want. Begin each challenge on a new line, and write <challenge first. Close each challenge with a /> at the end after we have written all of our challenge parameters. 

Step 2: Creating Your First Challenge

Creating a challenge is surprisingly simple when it comes to how much code (don’t worry! you don’t need to have any prior experience, but you are coding!) you have to write. Challenge parameters are composed of several values that indicate which character you will play as, what items, trinkets, pills, cards, etc. you will start with and more. Each parameter will have a section in this guide that lists the relevant values with an explanation on what the parameter does. When I say “values” I mean either a number that is connected to a collectible’s ID (such as 1,2,3 etc.) or a Boolean operation which is to say a string that says either “true” or “false.” If this sounds overwhelming don’t worry. It’s actually very simple. 
There are a few required parameters for every challenge. I’ll list them in the order that they appear in this screenshot, but the order of parameters in the challenge does not matter. – 
playertype is the parameter that sets which character you play as. A fill list is available later on in this guide. It is formatted like this: playertype=”0″ 
name is the name of the challenge. It is a string, which means you just write whatever you want the challenge to be called in quotations marks. The name of the challenge in this screenshot is Trick Rage. 
id is the unique ID associated with the challenge. For our purposes, we won’t really use this for anything. This just needs to be a number that is unique to a given challenge. You can just start at 1 for your first challenge and go up from there. It is formatted like this: id=”1″ 
endstage sets what boss needs to be defeated to beat the challenge. This is probably the most complicated parameter because certain bosses require the use of an additional parameter. Here are the possible endstage values: 
Mom = 6 
Mom’s Heart/It Lives = 8 
Isaac and Satan = 10 Note: an additional parameter is used to set whether or not the challenge has you defeat Isaac or Satan. It is a Boolean parameter where “true” sets it to Isaac and “false sets it to the lamb. It is called altpath so to set it for Isaac you would write endstage=”10″ altpath=”true” 
??? and The Lamb = 11 This uses the same altpath parameter as the previous endstage, with “true” being for ??? and “false” being for the lamb. 
Mother = 8 Note: an additional parameter is used to distinguish Mother from Mom’s Heart, which has the same value. To make Mother the end goal, write endstage=”8″ secretpath=”true” This will make it so that Isaac automatically is able to enter all of the secret doors, but will still have to manually collect the knife pieces. Note that certain challenges may be unable to collect the second knife piece, and softlocks can be avoided by having Isaac start with the knife piece. 
Mega Satan: To make the last challenge mega Satan first choose whether you want the player to be in the chest or dark room for the mega satan fight using the altpath and endstage parameters we just discussed. Then write megasatan=”true” This will have Isaac automatically start with the two key pieces, which still retain their influence over Angel/Devil chances. 
These are actually the only required parameters for a challenge to function! But your challenge isn’t going to be very interesting just with these. Here are a two important parameters almost every challenge will contain. 
startingitems: This parameter, shockingly enough, dictates which items your character will start with. Each item in the game has an associated ID, which can be found on or the fan gamepedia wiki. I’d recommend the gamepedia over platinumgod because it also has the IDs of other useful things like trinkets, pills, and cards (more on them later). Commas separate lists so they will look something like this: startingitems=”1,2,3,4″ 
roomfilter: This parameter will disallow certain types of rooms from spawning. Note that you can’t filter every room as no valid rooms will exist and your game will crash. Commas separate lists here again and the rooms have the following IDs: 
1 = Normal 
2 = Shop 
3 = Error 
4 = Treasure Room 
5 = Boss 
6 = Miniboss 
7 = Secret Room 
8 = Super Secret Room 
9 = Arcade 
1. = Curse Room 
1. = Arena 
1. = Library 
1. = Sacrifice Room 
1. = Devil Room 
1. = Angel Room 
1. = Boss Arena 
1. = Boss Rush 
1. = Clean Bedroom 
1. = Dirty Bedroom 
2. = Vault 
2. = Dice Room 
2. = Black Market 
2. = Greedexit (?) Likely has no effect 
2. = Planetarium (untested) 
2. = Teleporter (?) Likely has no effect 
2. = Teleporterexit (?) Likely has no effect 
2. = Secretexit (?) Likely has no effect 
2. = Blue (Can only be entered normally with blue key) 
2. = Ultra Secret (untested) 
So if you want to stop treasure rooms and angel rooms from spawning, you would write roomfilter=”4,15″ 
With this knowledge, you can create challenges with a name and ID that have you play as a specific character, with specific starting items, a specific goal, and specific rooms filtered out. Already there is a lot you can do with this knowledge. However, there is still a lot more you can do while still not needing to know anything about coding or looking through game files. The next section will be a detailed list of other challenge parameters and how to use them. 

Full attribute list and values

In this section I will list the values for parameters I didn’t already discuss earlier. I won’t list Items and Trinkets here because of how many there are, but their IDs are readily available on the gamepedia wiki and on 
0 = Isaac (default) 
1 = Magdalene 
2 = Cain 
3 = Judas 
4 = ??? (Blue Baby) 
5 = Eve 
6 = Samson 
7 = Azazel 
8 = Lazarus 
9 = Eden 
1. = The Lost 
1. = Lazarus II 
1. = Black Judas 
1. = Lilith 
1. = Keeper 
1. = Apollyon 
1. = The Forgotten 
1. = The Soul (Note: 16 and 17 are effectively the same character. Choosing a value of 17 will have the player start as the soul rather than the forgotten, but the rest of their mechanics are identical) 
1. = Bethany 
1. = Jacob and Esau 
2. = Tainted Isaac 
2. = Tainted Magdalene 
2. = Tainted Cain 
2. = Tainted Judas 
2. = Tainted ??? (Blue Baby) 
2. = Tainted Eve 
2. = Tainted Samson 
2. = Tainted Azazel 
2. = Tainted Lazarus 
3. = Tainted Eden 
3. = Tainted Lost 
3. = Tainted Lilith 
3. = Tainted Keeper 
3. = Tainted Apollyon 
3. = Tainted Forgotten 
3. = Tainted Bethany 
3. = Tainted Jacob 
startingtrinkets sets what trinkets you start with. It is formatted like this: startingtrinkets=”1,2,3,4″ with comas separating. Note that you can only start with one trinket unless you have an item that lets you hold 2, in which case you can start with 2. Other trinkets will NOT spawn into the game. The value for the numbers can be found on the Binding of Isaac Wiki or For example, Swallowed Penny’s ID is 1. 
startingpill sets what pills you start with. It is formatted like this: startingpill=”1,2,3,4″ with comas separating. Note that you can only start with one pill unless you have an item that lets you hold 2, in which case you can start with 2. Other pills will NOT spawn into the game. This attribute is mutually exclusive with startingcard. The values for pills are as follows: 
-1 = No pill (default). 
0 = Bad Gas 
1 = Bad Trip 
2 = Balls of Steel 
3 = Bombs are Key 
4 = Explosive Diarrhea 
5 = Full Health 
6 = Health Down 
7 = Health Up 
8 = I found Pills 
9 = Puberty 
1. = Pretty Fly 
1. = Range Down 
1. = Range Up 
1. = Speed Down 
1. = Speed Up 
1. = Tears Down 
1. = Tears Up 
1. = Luck Down 
1. = Luck Up 
1. = Telepills 
2. = 48 Hour Energy! 
2. = Hematemesis 
2. = Paralysis 
2. = I can see forever! 
2. = Pheromones 
2. = Amnesia 
2. = Lemon Party 
2. = R U A Wizard? 
2. = Percs! 
2. = Addicted! 
3. = Re-Lax 
3. = ??? 
3. = One makes you larger 
3. = One makes you small 
3. = Infested! 
3. = Infested? 
3. = Power Pill! 
3. = Retro Vision! 
3. = Friends Till The End! 
3. = X-Lax 
4. = Something’s wrong… 
4. = I’m Drowsy… 
4. = I’m Excited!!! 
4. = Gulp! 
4. = Horf! 
4. = Feels like I’m walking on sunshine! 
4. = Vurp! 
4. = Shot Speed Up 
4. = Shot Speed Down 
4. = Experimental Pill 
It seems as though the effect IDs for golden and horse pills are currently unknown. 
startingcard sets what cards you start with. It is formatted like this: startingcard=”1,2,3,4′ with comas separating. Note that you can only start with one card unless you have an item that lets you hold 2, in which case you can start with 2. Other cards will NOT spawn into the game. This attribute is mutually exclusive with startingpill. For Example, The Magician’s value is 3. Note that any q-slot item that is not a pill (such as runes and soul stones) falls under this category. The values for cards are as follows: 
-1 = Random 
0 = No card (default) 
1 = The Fool 
2 = The Magician 
3 = The High Priestess 
4 = The Empress 
5 = The Emperor 
6 = The Hierophant 
7 = The Lovers 
8 = The Chariot 
9 = Justice 
1. = The Hermit 
1. = Wheel of Fortune 
1. = Strength 
1. = The Hanged Man 
1. = Death 
1. = Temperance 
1. = The Devil 
1. = The Tower 
1. = The Stars 
1. = The Moon 
2. = The Sun 
2. = Judgement 
2. = The World 
2. = 2 of Clubs 
2. = 2 of Diamonds 
2. = 2 of Spades 
2. = 2 of Hearts 
2. = Ace of Clubs 
2. = Ace of Diamonds 
2. = Ace of Spades 
3. = Ace of Hearts 
3. = Joker 
3. = Hagalaz 
3. = Jera 
3. = Ehwaz 
3. = Dagaz 
3. = Ansuz 
3. = Perthro 
3. = Berkano 
3. = Algiz 
4. = Blank Rune 
4. = Black Rune 
4. = Chaos Card 
4. = Credit Card 
4. = Rules Card 
4. = A Card Against Humanity 
4. = Suicide King 
4. = Get Out Of Jail Free Card 
4. = ? Card 
4. = Dice Shard 
5. = Emergency Contact 
5. = Holy Card 
5. = Huge Growth 
5. = Ancient Recall 
5. = Era Walk 
5. = Rune Shard 
5. = The Fool? 
5. = The Magician? 
5. = The High Priestess? 
5. = The Empress? 
6. = The Emperor? 
6. = The Hierophant? 
6. = The Lovers? 
6. = The Chariot? 
6. = Justice? 
6. = The Hermit? 
6. = Wheel of Fortune? 
6. = Strength? 
6. = The Hanged Man? 
6. = Death? 
7. = Temperance? 
7. = The Devil? 
7. = The Tower? 
7. = The Stars? 
7. = The Moon? 
7. = The Sun? 
7. = Judgement? 
7. = The World? 
7. = Cracked Key 
7. = Queen of Hearts 
8. = Wild Card 
8. = Soul of Isaac 
8. = Soul of Magdalene 
8. = Soul of Cain 
8. = Soul of Judas 
8. = Soul of ??? (Blue Baby) 
8. = Soul of Eve 
8. = Soul of Samson 
8. = Soul of Azazel 
8. = Soul of Lazarus 
9. = Soul of Eden 
9. = Soul of the Lost 
9. = Soul of Lilith 
9. = Soul of the Keeper 
9. = Soul of Apollyon 
9. = Soul of the Forgotten 
9. = Soul of Bethany 
9. = Soul of Jacob and Esau 
cursefilter: this parameter will disallow certain curses from spawning. Each curse has an associated value which stacks additively. This means that you will have one number for this parameter even if you use multiple curses. For example, to filter curse of Darkness and Labyrinth, the value would be 3. The values are as follows: 
1 = Darkness 
2 = Labyrinth 
4 = Lost 
8 = Unknown 
1. = Cursed 
3. = Maze 
6. = Blind 
getcurse: this is basically the opposite of curse filter. This value will cause curse(es) to spawn on every floor. It has the same values and rules as cursefilter, so to force darkness and labyrinth on every floor, the number would be 3. 
achievements: this parameter will force certain achievements to be unlocked before players can play your challenge. The IDs are found in the game files, so if you’re using this parameter your knowledge likely surpasses my own. 
canshoot: very important parameter that enables the blindfold. It’s Boolean, so to enable it write canshoot=”false” Interestingly enough cannot remove Lilith’s blindfold. 
redhp. Add more red hp hearts. 2 = 1 container. 
maxhp. Add more health containers. 2 = 1 container. 
soulhp. Add more soul hearts. 2 = 1 container. 
blackhp. Add more black hearts. 2 = 1 container. 
coins. Add coins. Value is identical to amount of coins added. 
maxdamage. Limits maximum damage. Cannot be lower than 100. 
adddamage. Add more damage. 
minfirerate. Minimal fire rate. 
minshotspeed. Minimal shoot speed. 
bigrange. Used only in PONG challenge. Makes range ridiculously high. 
difficulty. Sets the difficulty. Valid values are: 
0 = Normal. (default) 
1 = Hard. 
A note on Jacob and Esau: 
Jacob and Esau are fully custom-challenge friendly, which is great because they allow for a lot of thematic challanges. To make a parameter effect Esau simply add a 2 to the end of it i.e. startingitems2=”1,2,3,4″ The parameters mentioned earlier only effect Jacob (so DON’T put startingitems1=) to have them apply to him. 

Step 3: Publication (If You Want)

Now that you know a lot about challenges and have made some of your own, you might want to publish them to the workshop. Well, you’re in luck because you’re 90% of the way there already because of what we set up in step 1! 
Before you publish your challenge, make sure you have beaten it without cheating once or twice to avoid angry comments. This is also necessary because you need to play with your mod at least once to generate a metadata.xml file, which we need for the workshop. 
Now we go to Isaac’s folder, which we already know how to find from step one. Then go to the tools folder instead of the mods folder. From here, start up the ModUploader.exe. Now you drag the metadata.xml folder that can be found inside your specific mod folder (it should be the only other file in it besides our content/challenges files. From here, you can edit the description to your liking and include change notes. Under the tags, check the challenges box, then click upload mod. Then you’re done! 

Closing Thoughts

By now, I hope you have created your first challenge and maybe even uploaded it to the workshop so your friends and the broader Isaac community can play it. It’s not that hard, is it? Still, as with anything related to modding, I’m sure you have questions and unknowns. I’ll answer what I can, but as I said earlier, I’m not a coder. So here are a few pieces of advice from a fellow non-coder: 

  • Syntax matters, like, a lot. If your game is crashing on launch after you have edited your challenge file, make sure every challenge has a at the end of it /> and that each parameter is spelled and formatted correctly, with strings, values, and Boolean oppositions in quotation marks following a = after the desired parameter with no spaces between anything. 
  • The easiest way to learn is to see what others are doing. Download a challenge pack from the workshop and view their challenges.xml file to see how they have set things up. I will also upload my own challenge pack to the workshop and link it below, so you can see how I have formatted things.

Link to my challenge pack on the workshop: 
Happy modding! 

This is all about The Binding of Isaac: Rebirth – Custom Challenges Guide (Updated for Repentance); I hope you enjoy reading the Guide! If you feel like we should add more information or we forget/mistake, please let us know via commenting below, and thanks! See you soon!

Be the first to comment

Leave a Reply

Your email address will not be published.