Mod Created by JKLeckr
A mod for Cuphead!
Archipelago World: Archipelago Cuphead
This mod is designed to work with Archipelago, but it also adds extra features to the game as well. Parts can be enabled or disabled in the config.
This mod is currently in the development phase and it is very very incomplete, so do not expect to make it out alive if you use it. Caveat Emptor!
Note: The install process is WIP, so it is not the most user-friendly. Also, during this stage of development there are no binary builds other than previews. See "Building."
- A copy of Cuphead
- BepInEx 5.x
-
Extract BepInEx 5.x x64 for your OS into the Cuphead installation folder.
-
Place the contents of the extracted CupheadArchipelagoMod folder into the BepInEx/plugins folder.
-
Launch game.
- There are no binary builds of CupheadArchipelago for macOS. You can build from source, but you are on your own.
- If you are on Linux using Wine/Proton, use the Windows build of BepInEx.
Note: These instructions assume you know what you are doing with building projects and terminals and stuff.
- A copy of Cuphead
- .NET SDK 8 or greater. You need the
dotnet
program in your path. - c-wspp websocket-sharp. Note that it must be the windows version (even on Wine/Proton). If you are running the macOS version, you have to build this yourself.
Extract BepInEx 5.x x64 for your OS (PC or mac) into the Cuphead installation folder. (Note from the install instructions above)
git clone https://github.com/JKLeckr/CupheadArchipelagoMod.git -b main
(Replace main
with dev
if you want more cutting edge but definately more broken changes included)
Note the ref
folder in the project directory you just clone.
-
Copy the following dll files from
Cuphead_Data/Managed
in the game directory to theref
folder mentioned before:Assembly-CSharp.dll
UnityEngine.dll
UnityEngine.UI.dll
-
Copy the dll files from the extracted
c-wspp-websocket-sharp_windows-clang64
to theref
folder.
In the directory, on the terminal:
dotnet build
The built DLL's are in bin/Debug/net35
.
In the game directory:
-
In the
BepInEx/plugins
folder, create aCupheadArchipelago
folder. -
Copy the following newly built DLL's to the newly created folder:
Newtonsoft.Json.dll
Archipelago.MultiClient.Net.dll
CupheadArchipelago.dll
websocket-sharp.dll
c-wspp.dll
(orc-wspp.dylib
if on macOS)
-
Launch Game.
Note: This is the temporary method while the mod is WIP. For now, just deal with this until the legit way is added.
- Make sure the game isn't running.
- Go to the Cuphead saves folder (on Windows it should be in
%AppData%
). - Open the apdata save file for the save slot you want to use.
- In the beginning of the file:
- Set
"enabled":"true"
- Set
"address":"URL"
whereURL
is the URL to connect to Archipelago excluding the port. - Set
"port":PORT
wherePORT
is the port of the Archipelago server. (Note: no quotes aroundPORT
) - Set
"player":"PLAYER"
wherePLAYER
is your player slot name. - Set
"password":"PASSWD"
wherePASSWD
is the server password.
- Set
- Save the file and launch the game.
- Pick the save slot you set up Archipelago with. (Note it says "AP" in the corner of the save file if it's enabled.)
- Have fun, and watch out for bugs!
The config files are in the game directory's BepInEx/config
folder. The mod config file is called com.JKLeckr.CupheadArchipelago.cfg
. It might be useful for debugging to add more verbose logging flags in the config.
If you want to see what is going on behind the scenes (useful for diagnosing problems), you should check the logs.
The logs are located in the BepInEx
folder in the game directory.
By default, the BepInEx console is disabled.
These are notable config files and their settings for logging:
-
BepInEx.cfg
- Under
[Logging.Console]
, setEnabled
totrue
to see the logging console window. Useful for seeing what's going on in real time. The log file might update regularly too, but it isn't as real time. - Under
[Logging]
, settingUnityLogListening
totrue
helps with logging what Cuphead itself is logging.
- Under
-
com.JKLeckr.CupheadArchipelago.cfg
- Adding
Network
toLogging
will show more verbose network action logging. Transpiler
andDebug
are too verbose to be useful for most people currently. Logging is pretty verbose, even withoutDebug
currently while the mod is in heavy development.
- Adding