Overview
This page provides a complete reference for all components and ScriptableObjects in the World Activity System. Use this as your API documentation when building activities and events.
WorldActivityManager
MonoBehaviourCentral singleton that manages all activities, events, and player state.
Properties
| Property | Type | Description |
|---|---|---|
| playerReference | GameObject | Player object for proximity checks (auto-finds by tag if null) |
| schedulerEnabled | bool | Enable/disable automatic event scheduling |
| debugMode | bool | Enable verbose console logging |
| autoRegisterActivities | bool | Automatically find all activity assets on start |
| discoveryCheckInterval | float | Seconds between proximity checks (default: 0.5) |
| enableAnchorCulling | bool | Opt-in proximity/frustum culling for anchors on large worlds (default: off) |
| anchorCullingDistance | float | Max distance for anchor evaluation when culling is enabled (default: 100) |
| cullOutsideCameraFrustum | bool | Also skip anchors outside the culling camera's frustum (default: off) |
| cullingCamera | Camera | Camera used for frustum culling checks |
| requireAuthority | bool | Optional multiplayer authority guard via IWorldActivityAuthority (default: off) |
Public Methods
| Method | Description |
|---|---|
| RegisterActivity(activity) | Add a spatial or temporal activity to tracking |
| UnregisterActivity(activity) | Remove activity from tracking |
| DiscoverActivity(activity) | Mark spatial activity as discovered |
| CompleteActivity(activity) | Mark activity as completed |
| IsDiscovered(activity) | Check if activity has been discovered |
| IsCompleted(activity) | Check if activity has been completed |
| GetDiscoveredActivities() | Get list of all discovered activities |
| TriggerTemporalEvent(activity) | Manually trigger a temporal event |
SpatialActivity
ScriptableObjectDefines a discoverable activity at a fixed location.
Create: Right-click in Project → Create → World Activity System → Spatial Activity
Properties
| Property | Type | Description |
|---|---|---|
| displayName | string | Name shown in UI and debug tools |
| description | string | Detailed description of the activity |
| icon | Sprite | Icon for map markers and UI |
| category | ActivityCategory | Classification (Shrine, Dungeon, etc.) |
| discoveryRange | float | Distance at which player can discover |
| autoDiscover | bool | Discover automatically on proximity |
| oneTimeOnly | bool | Can only be completed once |
| prerequisites | Conditions | GC2 conditions required for discovery |
| onDiscovered | Instructions | GC2 instructions on discovery |
| onCompleted | Instructions | GC2 instructions on completion |
Activity Categories
TemporalActivity
ScriptableObjectDefines a time-based or conditional event that can be automated.
Create: Right-click in Project → Create → World Activity System → Temporal Activity
Properties
| Property | Type | Description |
|---|---|---|
| displayName | string | Name shown in scheduler debug |
| description | string | Event description |
| triggerType | TriggerType | How event is triggered |
| interval | float | Seconds between triggers (Interval type) |
| timeOfDay | TimeOfDay | Dawn/Noon/Dusk/Midnight (TimeOfDay type) |
| conditions | Conditions | GC2 conditions (Conditional type) |
| eventDuration | float | How long event stays active (0 = instant) |
| eventPriority | float | Priority 0.0-1.0 (higher = more important) |
| cooldown | float | Seconds before event can trigger again |
| incompatibleEvents | List | Events that cannot run simultaneously |
| onActivate | Instructions | GC2 instructions when event starts |
| onDeactivate | Instructions | GC2 instructions when event ends |
Trigger Types
EventScheduler
Internal ComponentManages automatic triggering of temporal activities. Configured via WorldActivityManager.
Configuration Properties
| Property | Type | Description |
|---|---|---|
| enabled | bool | Master enable/disable for scheduler |
| evaluationInterval | float | Seconds between condition checks |
| dawnTime | float | Hour for Dawn events (default: 6.0) |
| noonTime | float | Hour for Noon events (default: 12.0) |
| duskTime | float | Hour for Dusk events (default: 18.0) |
| midnightTime | float | Hour for Midnight events (default: 0.0) |
| cacheEnabled | bool | Enable prerequisite caching (recommended) |
| cacheDuration | float | Seconds before cache expires |
| weightedSelectionMode | WeightedSelectionMode | Roulette (default) or Highest — used by the Weighted trigger type |
SpatialActivityAnchor
MonoBehaviourScene component that places a SpatialActivity at a specific location.
Properties
| Property | Type | Description |
|---|---|---|
| activity | SpatialActivity | Reference to the activity asset |
| overrideRange | bool | Use custom discovery range |
| customRange | float | Custom discovery range (if override enabled) |
| showGizmo | bool | Show range sphere in Scene view |
| gizmoColor | Color | Color of the range gizmo |
Events
As of 1.1.0, World Activity System ships its first-ever Game Creator 2 Event node, alongside its Instructions and Conditions. Current GC2 surface: 20 Instructions, 8 Conditions, 1 Event.
| Event | Path | Filters |
|---|---|---|
| On Presence Changed | World Activity System/NPC/On Presence Changed | Any NPC, a GameObject property target, and Any / Became Present / Became Absent |
World Activity System/NPC/NPC Is Present) and the Instruction Open Journal (World Activity System/UI/Open Journal).