The Binding of Isaac: Rebirth

The Binding of Isaac: Rebirth

[AB+ | Rep] Beggars Purgatory
 This topic has been pinned, so it's probably important
Wofsauge  [developer] 26 Jul, 2020 @ 8:04am
Feature Documentation & Modding API
How to add a new challenge
To create your own expansion challenge, you need to fulfill the following things:
  • Your mod needs to load after Beggars Purgatory (BP). Change your mods name if needed
  • You register your mod into the BP Challengelist, by adding a new table entry to the "BP.modRooms" table. The table key is used as the name of the challenge. The content of the new entry must then be a table that contains the roomids of your created rooms.
    Example:
    BP.modRooms["Debug rooms"] = {2500,2501,2502}
  • All rooms created need to have exactly on entry (aka. Back Door / trapdoor) and at least one exit (Next door / Trapdoor)
  • All new rooms need to be inside the "01.basement.stb" file and need unique IDs. The mod itself uses room ids between 1770 and 1850. Keep your ids high enough to not interfer with other mods or the Vanilla room ids
  • !IMPORTANT! Set the weight of any room you create to 0, so it cant be spawned in the main game!
  • Try to keep the RNG factor of your rooms as low as possible, to reduce unfair behaviour and uncompleteable rooms
Last edited by Wofsauge; 26 Jul, 2020 @ 2:56pm
< >
Showing 1-1 of 1 comments
Wofsauge  [developer] 26 Jul, 2020 @ 2:54pm 
--------------------- Features & Tips ---------------------
General
  • Every room needs to be cleared without taking any damage
  • Pickups spawned after the room is initialized will be removed automatically. You can prevent that by adding the dataattribute
    entity:GetData()["BP_ignore_remove"]=true
    to a spawned pickup directly at its initialisation.
  • Make sure your obstacles dont play the "Appear" animation when spawned to reduce cheesability of your rooms. you can disable appear animations by clearing the EntityFlags:
    entity:ClearEntityFlags(EntityFlag.FLAG_APPEAR)

Beggars
  • Every Effect is represented by a beggar and only affects the room the beggar is in (also makes designing rooms easier)
  • Any evil beggar can be destroyed using explosions. This will deactivate its effect for the current room.
  • You can add info bums into rooms. They display tips taken from the "BP.informationTexts" table. Add tips, by adding a table of strings to it. The Key of the table entry is used to match the room id with the tips. if the table of strings contains a table of strings, it will display them back to back like its used in the Treasurehunt hint display.
    Example:
    BP.informationTexts[MyRoomId]={"Cool tip",{"Another cool tip","Split into two display cycles"}}

Rooms
  • Rooms can have infinite exits but only 1 entry point
  • The name of a room is is displayed ingame.
  • The Difficulty of the room is used to indicate its difficulty. 0 = White (HUB), 1 = Green (Easy), 5 = Yellow (Medium), 10 = Red (Hard), 15 = Purple (Ultra)
  • ...

Entity / Effect Spawner
  • Entity Spawners (id: 780) can spawn any entity you want. The Spawnbehaviour is defined by their variant and Subtype.
  • The Variant of the spawner is used to define the spawning behaviour, which is defined in the table "BP.spawnerTable". The Variant points at the entry in said table, which itself is a table of attributes in the format:
    [variant]=[entityType, entityVar,entitySubType,delay,lifetime,size]
  • The Subtype of the spawner is used as a delay shift value in frames. This can be used to create multiple instances of a spawner that spawn at different times, but share the same general spawning behaviour
Last edited by Wofsauge; 26 Jul, 2020 @ 3:02pm
< >
Showing 1-1 of 1 comments
Per page: 1530 50