Skip to content

DooDesch-Mods/ScheduleOne-InkorporatedExample

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Inkorporated Example

🛟 Need help or found a bug? Get support at support.doodesch.de.

A working, copy-me example for Inkorporated - the custom-tattoo framework for Schedule I. It shows the two ways to add tattoos to the in-game tattoo shop, side by side:

Folder Route Needs code? Best for
pack/ A drop-in content pack (manifest.json + PNGs) No Shipping a set of tattoos as a standalone mod
code-mod/ A MelonLoader mod using the Inkorporated.API Yes (C#) Generating/registering tattoos at runtime, NPCs, dynamic packs

Full docs: the Inkorporated Wiki.

Requirements (for both routes)

Route 1 - the content pack (no code)

Copy pack/ into …/Schedule I/UserData/Inkorporated/Packs/ (rename the folder to your pack's name) and launch. "Example Heart" (Chest) and "Example Star" (Left Arm) show up in the tattoo shop. See pack/README.txt for the manifest fields. That folder, zipped, is a complete Thunderstore content mod - just declare DooDesch-Inkorporated as a dependency.

Route 2 - the code mod (the API)

code-mod/ is a minimal MelonLoader mod. The whole integration is one call in Core.cs:

using Inkorporated;            // API
using Inkorporated.Model;      // TattooPlacement

// In OnInitializeMelon (register early - before the tattoo shop UI is built).
// The PNG is embedded in this DLL, so one call loads + registers it (no boilerplate):
API.RegisterTattooFromResource("ring_face", "Example Ring (API)", TattooPlacement.Face, "InkExample.Assets.ring_face.png", source: "InkExample");

// other ways to register:
API.RegisterTattooFromFile("my_id", "My Tattoo", TattooPlacement.Chest, pngPath, source: "InkExample");   // a PNG on disk
API.RegisterTattoo("my_id", "My Tattoo", TattooPlacement.Chest, myTexture2D, source: "InkExample");        // a Texture2D you built

TattooPlacement is Chest | LeftArm | RightArm | Face. source namespaces your ids. Because tattoos register through the game's Resources.Load, the same registered path can also be applied to an S1API NPC (WithBodyLayer/WithFaceLayer) - see the commented snippet in Core.cs.

Building the code mod

It references DLLs straight from a normal modded install - no private build libs:

cd code-mod
dotnet build -c Release /p:GameDir="D:\path\to\Schedule I"

(Defaults GameDir to the usual Steam path; override as above. Install S1API + Inkorporated first so Mods/ has their DLLs.) The build copies InkExample.dll into your Mods/ folder.

License

MIT - see LICENSE.md. The example tattoo PNGs are CC0 / public domain (own work); reuse freely.

About

Example + template for the Inkorporated tattoo framework (Schedule I): a no-code pack and a code mod using the API.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages