S1API Module Overview
S1API provides 28+ major modules covering all aspects of Schedule One modding. This page provides a quick reference to help you find the right tools for your project.
Core Systems
Entities & NPCs
Namespace: S1API.Entities
Create custom NPCs with behaviors, schedules, dialogue, and AI.
Key Classes:
NPC- Base class for custom NPCsNPCPrefabBuilder- Configure NPC prefabsNPCSchedule- Daily routine systemNPCCustomer- Customer behaviorDealer- Dealer functionality
Documentation: Custom NPCs | Dealer System | Scheduling System | Location-Based Actions
Quests
Namespace: S1API.Quests
Build custom quest systems with objectives and tracking.
Key Classes:
Quest- Base quest classQuestManager- Quest registryQuestEntry- Quest objectives
Documentation: Quests System
Items
Namespace: S1API.Items
Define custom items, equippables, and inventory management.
Key Classes:
ItemCreator- Factory for creating itemsItemDefinition- Item definition wrapperStorableItemDefinition- Stackable itemsEquippable- Equippable itemsAvatarEquippableRegistry- Third-person item display
Documentation: Items
Stations
Namespace: S1API.Stations
Register station-related content at runtime (currently Chemistry Station recipes).
Key Classes:
ChemistryStationRecipeBuilder- Build Chemistry Station recipesChemistryStationRecipes- Recipe registry
Documentation: Stations
Products & Properties
Namespace: S1API.Products, S1API.Properties
Create sellable products (drugs, goods) with custom properties.
Key Classes:
ProductDefinition- Product wrapperWeedDefinition,CocaineDefinition,MethDefinition- Specific drugsProperty- Product property tokens such asMunchies,Energizing, andCyclopeanProductPropertyWrapper- Runtime property access
Documentation: Products & Properties
Phone Apps
Namespace: S1API.PhoneApp
Build fully-featured phone applications with custom UI.
Key Classes:
PhoneApp- Base phone app classPhoneAppButtonHandler- Button handling
Documentation: Phone Apps
TV Apps
Namespace: S1API.TVApp
Build custom TV applications with full-screen UI displayed on in-game TVs.
Key Classes:
TVApp- Base TV app class
Documentation: TV Apps
Phone Calls
Namespace: S1API.PhoneCalls
Script multi-stage phone conversations.
Key Classes:
PhoneCallDefinition- Call definitionCallManager- Call queue managementCallerDefinition- Caller identityCallStageEntry- Call stages
Documentation: Phone Calls
World & Interaction
Map & Buildings
Namespace: S1API.Map
Access and manage world locations, buildings, and parking lots.
Key Classes:
Building- Building wrapper with deferred resolutionParkingLotRegistry- Parking lot managementDeliveryLocation- Delivery points
Documentation: Building Registry | Delivery Location Registry
Vehicles
Namespace: S1API.Vehicles
Vehicle spawning and management.
Key Classes:
LandVehicle- Land vehicle wrapperVehicleRegistry- Vehicle registrationVehicleColor- Color configurationParkingAlignment- Parking helpers
Documentation: In development
Dialogues
Namespace: S1API.Dialogues
Custom dialogue systems with branching conversations.
Key Classes:
DialogueInjection- Dialogue injectionDialogueInjector- Injection systemDialogueChoiceListener- Choice handling
Documentation: Dialogue System
Schedules
Namespace: S1API.Entities.Schedule
Daily routine systems for NPCs with time-based actions.
Key Classes:
NPCSchedule- Schedule managementNPCScheduleBuilder- Build schedulesWalkToSpec,StayInBuildingSpec- Action specs
Documentation: Scheduling System
Economy & Gameplay
Economy
Namespace: S1API.Economy
Contracts, dealers, and customer systems.
Key Classes:
Contract- Contract wrapperContractInfo/ContractInfoBuilder- Contract configurationCustomerStandard- Quality standardsDealerType- Dealer types
Documentation: Dealer System | Customer Behavior
Money
Namespace: S1API.Money
Currency management utilities.
Key Classes:
CashDefinition- Cash item- Money management helpers
Documentation: In development
Growing
Namespace: S1API.Growing
Custom plants and seed definitions.
Key Classes:
SeedDefinition/SeedInstance- Seed systemSeedCreator- Seed factoryPlantInstance- Growing plants
Documentation: In development
Dead Drops
Namespace: S1API.DeadDrops
Covert delivery location management.
Key Classes:
DeadDropManager- Dead drop managementDeadDropInstance- Individual drops
Documentation: In development
Cartel
Namespace: S1API.Cartel
Track and respond to cartel relationship status.
Key Classes:
Cartel- Cartel singletonCartelStatus- Status enum (Unknown, Truced, Hostile, Defeated)
Documentation: Cartel System
Law Enforcement
Namespace: S1API.Law
Control checkpoints, police dispatch, wanted levels, and law enforcement intensity.
Key Classes:
CheckpointManager- Road checkpoint controlCheckpointInfo- Checkpoint state informationLawController- Law enforcement intensity and automatic activitiesLawManager- Police dispatch and wanted levelsPursuitLevel- Wanted level severityPlayerCrimeData- Player crime tracking
Documentation: Law Enforcement
Leveling
Namespace: S1API.Leveling
Player progression and rank management with XP accessors, unlockables, and rank-up events.
Key Classes:
LevelManager- XP/rank access plus OnXPChanged/OnRankUp eventsFullRank- Rank + tier helper structUnlockable- Rank-locked UI entriesRank- Rank enumeration
Documentation: Leveling
Utilities
Saveables
Namespace: S1API.Saveables
Automatic JSON-based save/load system.
Key Classes:
Saveable- Base saveable classSaveableField- Attribute for marking fieldsSaveableLoadOrder- Load order control for saveables
Documentation: Save System
Asset Bundles
Namespace: S1API.AssetBundles
Cross-runtime asset loading (Mono/IL2CPP).
Key Classes:
WrappedAssetBundle- AssetBundle wrapperWrappedAssetBundleRequest- Async loading
Documentation: See Avatar Equippable Prefabs for AssetBundle usage
UI Factory
Namespace: S1API.UI
Rapid Unity UI creation with consistent styling.
Key Classes:
UIFactory- UI creation methodsButtonUtils- Button helpersImageUtils- Image loading
Documentation: UI
Logging
Namespace: S1API.Logging
Standardized logging for mods.
Key Classes:
Log- Logger wrapper
Usage:
private static readonly Log Logger = new Log("MyMod");
Logger.Msg("Hello from my mod!");
Logger.Error("Something went wrong!");
Console Commands
Namespace: S1API.Console
Register custom debug commands.
Key Classes:
BaseConsoleCommand- Base command classConsoleHelper- Console utilitiesCustomConsoleRegistry- Command registry
Documentation: In development
Input Management
Namespace: S1API.Input
Cross-runtime input handling.
Key Classes:
Controls- Input wrapper- Input state management
Documentation: In development
GameTime
Namespace: S1API.GameTime
Manage in-game time and date.
Key Classes:
TimeManager- Time managementGameDateTime- Date/time representationDay- Day of week enum
Documentation: In development
Avatar
Namespace: S1API.Avatar
Player avatar and seating systems.
Key Classes:
Avatar- Player avatar wrapperAvatarSettings- Avatar configurationSeat- Seating system
Documentation: Seating Registry
Storages
Namespace: S1API.Storages
Manage storage containers (fridges, safes, etc.).
Key Classes:
StorageInstance- Storage wrapper
Documentation: In development
Messaging
Namespace: S1API.Messaging
In-game messaging and responses.
Key Classes:
Response- Response wrapper
Documentation: In development
Utils
Namespace: S1API.Utils
Reflection and cross-runtime utilities.
Key Classes:
ReflectionUtils- Reflection helpersCrossType- Type utilitiesArrayExtensions- Array helpers
Internal Systems
S1API.Internal
Purpose: Core infrastructure - patches, lifecycle, abstractions
Do not use directly - these are internal implementation details that support the public API.
Quick Reference by Task
"I want to create..."
| Task | Module | Documentation |
|---|---|---|
| Custom NPC | S1API.Entities |
Custom NPCs |
| Dealer NPC | S1API.Entities + S1API.Economy |
Dealer System |
| Customer NPC | S1API.Entities |
Customer Behavior |
| Quest | S1API.Quests |
Quests System |
| Item | S1API.Items |
Items |
| Phone App | S1API.PhoneApp |
Phone Apps |
| TV App | S1API.TVApp |
TV Apps |
| Phone Call | S1API.PhoneCalls |
Phone Calls |
| Custom Product | S1API.Products |
Products & Properties |
| UI Element | S1API.UI |
UI |
"I want to work with..."
| Feature | Module | Documentation |
|---|---|---|
| Schedules & Movement | S1API.Entities.Schedule |
Scheduling System |
| Dialogue Trees | S1API.Dialogues |
Dialogue System |
| Appearance | S1API.Entities.Appearances |
Appearance Customization |
| Relationships | S1API.Entities |
Relationship Management |
| Buildings & Locations | S1API.Map |
Building Registry |
| Save/Load Data | S1API.Saveables |
Save System |
| Cartel Status | S1API.Cartel |
Cartel System |
Getting Started
- New to S1API? Start with Installation, then Quickstart
- Want to understand runtime support? Read Cross-Compatibility
- Want to create NPCs? Read Custom NPCs
- Building a phone app? See Phone Apps
- Need to save data? Check Save System
Example Mods
Learn by example:
- S1API NPC Examples - Complete custom NPC implementations with schedules, dialogue, customers, dealers, and UI integration
- More-NPCs - Additional custom NPC examples from a real mod
- S1NotesApp - Phone app example with save data and quest integration
- HelloWorldTVApp - Minimal TV app example
Need Help?
- Browse the documentation sidebar for detailed guides
- Check the example mods for real-world usage
- Visit GitHub Issues for support