Table of Contents

Delivery Location Registry

S1API.Map.DeliveryLocation surfaces customer drop-off points with friendly lookups. Instances are registered when ScheduleOne.Economy.DeliveryLocation.Awake executes and cleared during scene unload by the lifecycle cleaner. The recommended way to access a location is through the typed identifier helpers in S1API.Map.DeliveryLocations so you can browse the namespace for valid targets.

DeliveryLocation Model

Key properties exposed by each entry:

  • Name: Display name used by the game.
  • Description: UI-friendly description string.
  • GUID: Persistent identifier generated by the base game.
  • CustomerStandPoint: Transform where customers stand during deliveries.
  • TeleportPoint: Optional transform used for teleporting the player nearby.

Lookup Helpers

// Enumerate all registered delivery points
foreach (var location in DeliveryLocation.GetAll())
{
    MelonLogger.Msg($"DeliveryLocation: {location.Name} ({location.GUID})");
}

// Find a delivery location by it's typed identifier
var northApts = DeliveryLocation.Get<BasketballCourt>();

Typed identifiers annotated with [DeliveryLocations.DeliveryLocationName("...")] are the preferred access pattern. Browsing S1API.Map.DeliveryLocations shows the full catalogue of drop-off points available in the base game.

[DeliveryLocationName("Basketball court")]
public sealed class BasketballCourt : IDeliveryLocationIdentifier { }