diff --git a/README.md b/README.md index 40e1ecc0..0794a448 100644 --- a/README.md +++ b/README.md @@ -25,6 +25,10 @@ It can currently create and modify: Additionally, a number of quality-of-life patches from the community are included with each release. +## Getting Started: Installation +--- +To begin, we'll go over how to install BepInEx, the framework all Inscryption mods use. This is a necessary step to playing modded Inscryption, so be sure to follow this carefully. + ### Installing with a Mod Manager 1. Download and install [Thunderstore Mod Manager](https://www.overwolf.com/app/Thunderstore-Thunderstore_Mod_Manager), [Gale](https://thunderstore.io/c/inscryption/p/Kesomannen/GaleModManager/) or [r2modman](https://thunderstore.io/c/inscryption/p/ebkr/r2modman/). 2. Click the **Install with Mod Manager** button on the top of [BepInEx's](https://thunderstore.io/package/download/BepInEx/BepInExPack_Inscryption/5.4.1902/) page. @@ -44,6 +48,24 @@ If you have issues with ModmManagers head to one of these discords; 6. Install [Inscryption API](https://inscryption.thunderstore.io/package/API_dev/API/) and extract the contents into a folder. 7. Move the contents of the 'plugins' folder into 'BepInEx/plugins' and the contents of the 'monomod' folder into the 'BepInEx/monomod' folder. 8. Run the game again. If everything runs correctly, a message will appear in the console telling you that the API was loaded. +9. For any additional mods create a new subfolder, it can be called anything and extract the zips archive into it and if there is a BepInEx folder within the zip instead drop the contents of that folder into the BepInEx root for the modding instance. EX; +``` +BepInEx // These go within the BepInEx root folder +|-- config +|-- patchers +|-- plugins +|-- monomod +|-- core +plugins // Files within go into the created plugin subfolder that was created for the mod +|-- Art +|-- Scripts +|-- MyMod.dll +manifest.json --| +README.md |-- These can be ignored but if you want to keep them put them in the plugin subfolder +CHANGELOG.md |-- +icon.png --| +``` +10. Run the game once more and everything should be correct and working. ### Installing on the Steam Deck 1. Download [r2modman](https://thunderstore.io/c/inscryption/p/ebkr/r2modman/) on the Steam Deck’s Desktop Mode and open it from its download using its `AppImage` file. @@ -57,13 +79,74 @@ If you have issues with ModmManagers head to one of these discords; ### Mac & Linux 1. Follow the steps here first: -2. Next do steps 4-8 of the Manual Installation +2. Next do steps 4-10 of the Manual Installation 3. Your game should be setup for inscryption modding now If you have any issues with Mac/Linux, Steam Deck, or Manual head over to the discord for this game: * **Inscryption Modding Discord:** [Here](https://discord.gg/ZQPvfKEpwM) +## Getting Started: Modding +--- +Modding Inscryption requires a knowledge of coding in C#, and in many cases an understanding of how to patch the game using HarmonyPatch. + +If you're unfamiliar with any of this, or just want to create cards and sigils, you can use [JSONLoader](https://inscryption.thunderstore.io/package/MADH95Mods/JSONCardLoader/). + +### Modding with JSONLoader + JSONLoader is a versatile mode that provides a more beginner-friendly way of creating new cards and abilities for Inscryption using JSON syntax, which is much simpler than C#. + +JSONLoader's documentation can be found [here](https://github.com/MADH95/JSONLoader). + +A video tutorial covering how to use JSONLoader in a basic form can be found [here](https://www.youtube.com/watch?v=grTSkpI4U7g). + +### Modding with C# +To begin modding with C#, you will need to create a new C# project using a code editor. +We recommend and assume you're using Microsoft's Visual Studio. + +Your project's target framework needs to be `netstandard2.0`. + +Once your project's created, go to `Project > Manage NuGet Packages`. +Click the dropdown menu for 'Package source' and check that 'BepInEx' and 'nuget' is there. + +If BepInEx or nuget aren't an available source, we need to add them. +To add a new package source, click on the gear icon next to the package source selector, then click the large green plus-sign. + +To add BepInEx, change the name to 'BepInEx' and the source link to 'https://nuget.bepinex.dev/v3/index.json'. +To add nuget, change the name to 'nuget' and the source link to 'https://nuget.windows10ce.com/nuget/v3/index.json'. + +Change the package source to 'All' then click 'Browse'. +We want to install the following packages (**Make sure the version numbers match!**): +- BepInEx.Analyzers v1.0.8 +- BepInEx.Core v5.4.19 +- HarmonyX v2.9.0 +- Inscryption.GameLibs v1.9.0-r.0 +- UnityEngine.Modules v2019.4.24 + +You will also need to add the API as a reference. +There are a couple ways to do this, detailed below; whichever way you choose to do this, you'll also need to need to reference `InscryptionAPI.dll`, which should be in your BepInEx plugins folder; copy this path for future use. + +To do so, go to your 'BepInEx/plugins' folder and copy the folder path. +Then, navigate to `Project > Add Project Reference` and click 'Browse'. +Copy the folder path and add 'InscryptionAPI.dll' as a reference. +You can do this for other mods' .dll files if you want to reference them as a mod dependency (a separate mod that your mod relies on to work). + +An alternative method to adding the API (and other mods) as a reference is to use NuGet packages by adding 'https://nuget.bepinex.dev/v3/index.json' as a package source, and then adding 'API_dev-API' as a reference. + +With all this, you are now ready to begin creating your mod! +Some resources are provided below for you to use, including an example mod to look at for examples. +Otherwise, continue reading this wiki. + +### Modding Resources +[Inscryption Modding Discord](https://discord.gg/QrJEF5Denm) + +[BepInEx documentation](https://docs.bepinex.dev/) + +[Harmony patching article](https://harmony.pardeike.net/articles/patching.html) + +[Example Mod using C#](https://github.com/debugman18/InscryptionExampleMod) + +[Vanilla and Modded Enumerations](https://github.com/SaxbyMod/SabyModEnums) + An example mod utilising this plugin can be found [here](https://github.com/debugman18/InscryptionExampleMod), and the modding wiki and documentation can be found [here](https://inscryptionmodding.github.io/InscryptionAPI/wiki/index.html). diff --git a/docs/wiki/getting_started.md b/docs/wiki/getting_started.md index 77aa9c99..4d08e674 100644 --- a/docs/wiki/getting_started.md +++ b/docs/wiki/getting_started.md @@ -21,6 +21,24 @@ If you have issues with ModmManagers head to one of these discords; 6. Install [Inscryption API](https://inscryption.thunderstore.io/package/API_dev/API/) and extract the contents into a folder. 7. Move the contents of the 'plugins' folder into 'BepInEx/plugins' and the contents of the 'monomod' folder into the 'BepInEx/monomod' folder. 8. Run the game again. If everything runs correctly, a message will appear in the console telling you that the API was loaded. +9. For any additional mods create a new subfolder, it can be called anything and extract the zips archive into it and if there is a BepInEx folder within the zip instead drop the contents of that folder into the BepInEx root for the modding instance. EX; +``` +BepInEx // These go within the BepInEx root folder +|-- config +|-- patchers +|-- plugins +|-- monomod +|-- core +plugins // Files within go into the created plugin subfolder that was created for the mod +|-- Art +|-- Scripts +|-- MyMod.dll +manifest.json --| +README.md |-- These can be ignored but if you want to keep them put them in the plugin subfolder +CHANGELOG.md |-- +icon.png --| +``` +10. Run the game once more and everything should be correct and working. ### Installing on the Steam Deck 1. Download [r2modman](https://thunderstore.io/c/inscryption/p/ebkr/r2modman/) on the Steam Deck’s Desktop Mode and open it from its download using its `AppImage` file. @@ -34,7 +52,7 @@ If you have issues with ModmManagers head to one of these discords; ### Mac & Linux 1. Follow the steps here first: -2. Next do steps 4-8 of the Manual Installation +2. Next do steps 4-10 of the Manual Installation 3. Your game should be setup for inscryption modding now If you have any issues with Mac/Linux, Steam Deck, or Manual head over to the discord for this game: