GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • S1API

This view

  • Original page
  • New address

GeezerVison is showing ifbars.github.io — Creating Custom Items | S1API Documentation

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
  • Create native grid and surface furniture directly from a mod-provided model
  • 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
  • Custom Furniture - Composing native placeable furniture from a model or embedded GLB

Equippables

  • Equippable Items - Basic equippables, viewmodels, use callbacks, and custom equippable behaviors
  • Avatar Equippable Prefabs - Creating and registering third-person avatar prefabs from AssetBundles
  • Creating Custom Clothing Items - Clothing-specific item setup

API Reference

  • Builder API Reference - Builder methods, advanced notes, and item-specific best practices
  • S1API.Items - Detailed API documentation

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

  • Start here: Item Registration & Basics
  • Then: Equippable Items if the item can be held or used
  • For placeable models: Custom Furniture
  • As needed: Runtime Additives, Item Icons, Avatar Equippable Prefabs

Related Systems

  • Stations - Chemistry station recipe registration and other item-adjacent systems
  • Products & Properties - Product definitions and property systems
  • Save System - Persisting item-related state

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
Edit this page
You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.