Table of Contents

Creating Custom Items

S1API provides a comprehensive item system for Schedule One, including standard storable items, additives, equippables, icons, and third-person avatar prefabs.

Overview

The Items system allows you to:

  • Create standard StorableItemDefinition instances with the Creator API or Builder API
  • Register runtime additives with custom effects
  • Attach equippable behavior and viewmodels to items
  • Add icons from embedded resources or AssetBundles
  • Register custom AvatarEquippable prefabs for third-person presentation

Note: All items in Schedule One are storable items (StorableItemDefinition). The base ItemDefinition class is not used directly for custom items.

Documentation Structure

The Items system is documented across multiple focused pages:

Core Concepts

  • Item Registration & Basics - Registration timing, Creator API, Builder API, categories, and common setup tips
  • Runtime Additives - Creating additive definitions and allowing them on grow containers
  • Item Icons - Loading item icons from embedded resources and AssetBundles

Equippables

API Reference

Quick Start

Items should usually be registered after the Main scene loads so the game's registry is initialized correctly:

using MelonLoader;
using S1API.Items;

public class MyMod : MelonMod
{
    private bool _itemsInitialized = false;

    public override void OnSceneWasLoaded(int buildIndex, string sceneName)
    {
        if (sceneName == "Main" && !_itemsInitialized)
        {
            InitializeItems();
            _itemsInitialized = true;
        }
    }

    private void InitializeItems()
    {
        var myTool = ItemCreator.CreateItem(
            id: "my_custom_tool",
            name: "Custom Tool",
            description: "A special tool for crafting",
            category: ItemCategory.Tools,
            stackLimit: 5,
            basePurchasePrice: 25f,
            resellMultiplier: 0.3f
        );

        MelonLogger.Msg($"Created item: {myTool.Name}");
    }
}

What To Read First

Next Steps

  1. Register a simple item: Item Registration & Basics
  2. Make it holdable or usable: Equippable Items
  3. Add presentation polish: Item Icons or Avatar Equippable Prefabs