This is a work in progress Archipelago randomizer mod for Death's Door.
Important
This is in an early alpha stage! You may experience errors that disrupt play. Please report these errors in Issues here or in the Death's Door future-game-design thread on the Archipelago Discord (see Contributing below).
- Install BepInEx 5.4.22 or later 5.x versions
- Do not use BepInEx 6.x, as it's in pre-release stage and may not work properly or be compatible.
- Unzip the BepInEx folder into the root of your game's installation directory (i.e. there should be a BepInEx folder in the same folder as your DeathsDoor.exe)
- Run the game once to generate the BepInEx plugins folder, then quit before performing the next step
- Install these mods into your Death's Door BepInEx plugins folder (inside the BepInEx folder) by unzipping the folder from the release. Note that each mod should be in its own folder within the plugins folder.
- Archipelago Randomizer (required)
- Alternative Game Modes (required)
- Item Changer (required)
- MagicUI (required)
- AddUIToOptionsMenu (required)
- RecentItemsDisplay (recommended, but not required)
- ReturnToSpawn (recommended, but not required)
- Run the game. You should see at least two additional options (
DeathlinkandFast Items) in your options menu, which will confirm that the mods have loaded correctly.
- Install the mods as instructed above.
- Generate and host a world using the Death's Door apworld as instructed in the Death's Door apworld README.
- After selecting Start on the Title Screen and selecting a new save file, you'll be able to navigate left and right on the "Start" button to choose "Archipelago." Select "Archipelago".
- Enter in the connection details for your generated world and slot. If you generated a solo world with the default template, your Player Name is Player1.
- If you entered in your details correctly and your room is currently open, then you will load into game.
- As you play, you should see item notifications pop up in the bottom right of your screen as you send and receive items. Items you pick up for yourself will have slightly more delay because we wait to notify you until you have received it.
- If playing over multiple sessions, you can resume your save by clicking Start or Archipelago on your existing save, and updating your connection information if the port changes.
- Deathlink (Title Screen Options Menu)
- If Deathlink is on, you will send a Deathlink out when you die in game and die when you receive a deathlink from another game with Deathlink turned on.
- Fast Items (Title Screen and In-Game Options Menus)
- If Fast Items is on, then you will receive items as fast as the game will allow and notifications will be queued for viewing. If Fast Items is off, the items themselves will be queued for receipt.
- Skip Cutscenes (Title Screen Options Menus)
- If Skip Cutscenes is on when a file is started, most skippable cutscenes will be skipped. If Skip Cutscenes is off, then only a limited number of cutscenes that can block progress will be skipped.
If you're interested in helping out, join the discussion in the Archipelago Discord server.
We talk about the development of this in the Death's Door thread in the future-game-design forum!
- .NET Framework 4.7.2 or later
- BepInEx 5.4.22 or later 5.x versions
- Do not use BepInEx 6.x, as it's in pre-release stage and may not work properly or be compatible.
- Visual Studio 2022
- Clone this repository.
- Install these mods into your Death's Door plugins folder:
- Alternative Game Modes (required)
- Item Changer (required)
- MagicUI (required)
- AddUIToOptionsMenu (required)
- RecentItemsDisplay (recommended, but not required)
- ReturnToSpawn (recommended, but not required)
- Create a new file at the project's root named
config.targetsand add the following code:Replace<?xml version="1.0" encoding="utf-8"?> <Project> <PropertyGroup> <PluginsPath>Path\To\Your\Death's\Door\Plugins\Directory</PluginsPath> </PropertyGroup> </Project>
Path\To\Your\Death's\Door\Plugins\Directory. This will usually be atGame directory]\BepInEx\plugins, unless you changed the default location. - Navigate to the project's root directory in a terminal and run
dotnet restoreto install packages. - Build the project.
- Follow the C# coding conventions except for the following:
- Use 4 space tabs for indentation.
- This should be set up for you in the
.editorconfigfile.
- This should be set up for you in the
- Never use implicit typing (var) for variables.
- This should be set up for you in the
.editorconfigfile.
- This should be set up for you in the
- Use 4 space tabs for indentation.
- If you add a new mod dependency, do the following:
- Include it in
Plugin'sBepInDepndencyattributes. - Edit the
.csprojto add it as a reference, but use dynamic pathing for it using thePluginsPathcustom MSBuild variable.- This ensures the mod is included in the project for anyone who builds it, regardless of difference in paths.
- Example:
<HintPath>$(PluginsPath)/ItemChanger/ItemChanger.dll</HintPath>
- Include it in
Thanks to dpinela for their work on the Multiworld Randomizer and for some of the dependencies this mod uses: Alternative Game Modes, Item Changer, and MagicUI!
Thanks to lunix33 for starting this project with their work on the first attempt at an APWorld side of things!
Thanks to BadMagic for their work on Hollow Knight's Archipelago client, which was used as a reference for the MSBuild properties of this project, and for the original version of MagicUI!
Thanks to Silent and Scipio Wright for their work on Tunic's Archipelago client, which was used as a reference for some of the Archipelago integration!