To start off, you need to set up your modding environment. This guide will help you install the necessary tools and get started with modding Schedule I.

Prerequisites

  • A copy of Schedule I installed via Steam.
  • Familiarity with basic programming concepts and C#.
  • A code editor or IDE (e.g., Visual Studio, Visual Studio Code, Rider).
  • Basic understanding of Unity and MelonLoader.

Install .NET SDK 6.0 or later. You can use newer versions, like 10.0, allowing you to use the latest C# features.

Setting up your development environment

Install a Code Editor or IDE

Setting up your project

Templates

  • MelonLoader Mod Template - Official MelonLoader template for Visual Studio.
  • S1 Mono+IL2CPP C# Project Template - Clean template with conditional compilation for Mono and IL2CPP. Includes AssetBundleUtils for loading asset bundles. By weedeej.
  • Yet Another MelonMod Template with batteries included - Template featuring cross-backend (IL2CPP and Mono) compatibility, easy build and test process, automatic loading of testing mods, packaging scripts, and more. By k073l.
  • S1API Template - A template project for creating Schedule One mods using S1API, supporting both Mono and IL2CPP builds with a cross-compatibility option. S1API provides common game abstractions so you can build a single assembly that works across Mono and IL2CPP, reducing reverse-engineering and setup overhead. By ifBars.

Manual Setup

If you prefer to set up your project manually, follow these steps:

  1. Create a new C# Class Library project in your IDE. Be sure to target:

    • For Mono: .NETStandard 2.1
    • For IL2CPP: .NET 6.0
  2. Include references to files you’ll need:

    • MelonLoader.dll (from MelonLoader/net35 or MelonLoader/net6 folder in your game directory, depending on your target backend)
    • UnityEngine.dll (from <game dir>/Schedule I_Data/Managed or MelonLoader\Il2CppAssemblies\ for IL2CPP)
    • Assembly-CSharp.dll (from <game dir>/Schedule I_Data/Managed or MelonLoader\Il2CppAssemblies\ for IL2CPP)
    • other references as needed
  3. If you are using Mono, you can also add a NuGet package - BepInEx Publicizer. Then, when you include Assembly-CSharp.dll in your project, add this reference to publicize the types in that assembly:

<Reference Include="Assembly-CSharp" Publicize="true">
    <Private>false</Private>
    <HintPath><game dir>\Schedule I_Data\Managed\Assembly-CSharp.dll</HintPath>
</Reference>

Further information can be found in Creating Your First Mod guide.

Additional Resources

Last updated 16 Nov 2025, 19:44 +0100 . history