Skip to main content

Schedule 1 Modding Wiki

Your complete guide to modding Schedule 1

Quick Start Guide

This wiki will teach you how to mod Schedule 1 from start to finish. You'll learn:

  1. Install the Prerequisites

    How to install MelonLoader and other essential tools

  2. Set Up Your Development Environment

    How to configure Visual Studio and project templates for modding

  3. Explore and Understand the Game Code

    How to use AssetRipper and dnSpy to inspect and understand the game's internals

  4. Create Your First Mod

    Step-by-step guidance to build, test, and refine your own mod

Go to the Wiki →
SimpleFastLoad.cs
#if Mono
using ScheduleOne.Persistence;
#else
using Il2CppScheduleOne.Persistence;
#endif
using MelonLoader;

[assembly: MelonInfo(typeof(FastLoad.SimpleFastLoad), "SimpleFastLoad", "1.0.0", "Bars")]
[assembly: MelonGame("TVGS", "Schedule I")]

namespace FastLoad
{
public class SimpleFastLoad : MelonMod
{
private MelonPreferences_Category _category;
private MelonPreferences_Entry<int> _saveSlotEntry;

public override void OnLateInitializeMelon()
{
_category = MelonPreferences.CreateCategory("SimpleFastLoad");
_saveSlotEntry = _category.CreateEntry<int>("SaveSlot", 1, "Save slot number to use for new saves");

var slotIndex = _saveSlotEntry.Value;
if (slotIndex is < 1 or > 5 || LoadManager.SaveGames[slotIndex - 1] == null) return;
LoadManager.Instance.StartGame(LoadManager.SaveGames[slotIndex - 1]);
}
}
}

What Can You Mod?

🎮

Gameplay

Modify game mechanics, add new features, or change the difficulty

🖼️

Visuals

Replace textures, import models, and create custom visuals

🎵

Audio

Add custom sounds and music to enhance the atmosphere

🔧

Utilities

Create tools that enhance the player experience and add QOL features

Real-World Example

Here's a glimpse at a real Schedule 1 mod that customizes item appearances and UI elements.

Snail Mucus Mod Highlights

Custom Item Appearance

Replaces game models with custom textures and materials

UI Customization

Modifies in-game UI elements with custom icons and text

Cross-Branch Compatibility

Works on both il2cpp and mono branches with conditional compilation

User Preferences

Provides customization options through MelonPreferences

#if Mono
using ScheduleOne.Equipping;
#else
using Il2CppScheduleOne.Equipping;
#endif
using UnityEngine;
using HarmonyLib;

namespace SnailMucus.Patches
{
public static class EquippableViewmodelPatches
{
[HarmonyPatch]
public static class EquippableViewmodelGenericPatch
{
// ...
public static void Postfix(object __instance, object __0)
{
if (!IsSnailMucusItem(item)) return;

// Apply custom model and textures
ApplyCustomAppearance(gameObject);
}
}

private static void ApplyCustomAppearance(GameObject gameObject)
{
var renderers = gameObject.GetComponentsInChildren<Renderer>();
foreach (var renderer in renderers)
{
renderer.material = GetOrCreateCachedMaterial();
}
}
}
}