Glossary

Key terms used throughout the Spark documentation.

Assembly Definition (asmdef): A Unity file that defines a compile unit. Spark uses assembly definitions to isolate plugins so they compile independently.

Command: A data object representing a request to perform an action (give item, deal damage, accept quest). Commands are executed through the network provider and processed by command handlers.

Command Handler: A class that processes a specific command type. Contains validation logic, state changes, and event publishing.

Database Entry: A ScriptableObject that stores game configuration data (items, quests, abilities, etc.). All entries inherit from SparkDatabaseEntry.

Entity: A GameObject in the scene with a SparkEntity component. Entities have unique IDs and are tracked by SparkEntityRegistry.

Entity ID: A unique string identifier for a SparkEntity. Can be Local (auto-generated), Static (designer-assigned), or Networked (server-assigned).

Event: A notification that something happened in the game. Events are published through SparkEventBus and received by subscribed handlers.

Event Bus: The SparkEventBus static class that manages event publishing and subscription.

Extension: A mechanism for one plugin to add data fields to another plugin's database entries without modifying the original entry class.

Extension Data: A ScriptableObject (SparkDatabaseExtensionData) that holds extra fields for a database entry, linked by target ID.

Interactable: Any object implementing IInteractable that the player can target and interact with.

Nested Data: A serializable class (SparkDatabaseEntryNestedData) used for complex sub-objects within database entries.

Network Provider: An implementation of INetworkProvider that routes commands. LocalNetworkProvider handles single-player; custom providers handle multiplayer.

Playable: A pre-configured action (animation, sound, transform change, etc.) that plays during gameplay, defined as a database entry.

Plugin: A self-contained system that adds a feature set to Spark. Plugins register with the service locator and communicate through events and commands.

Plugin Manifest: A ScriptableObject that defines a plugin's metadata and its tabs in the Spark Editor.

Plugin Settings: A ScriptableObject (PluginSettingsBase) that stores global configuration for a plugin.

Requirement: A condition that must be met before an action can occur. Requirements are checked at runtime.

Rule: A combination of conditions (checks) and actions (effects). When all checks pass, all effects execute.

Service Locator: The Spark static class that manages plugin registration and retrieval.

Spark Editor: The custom Unity editor window for managing all Spark database entries and plugin settings.

SparkDatabaseRegistry: Static registry that caches all database entries for O(1) lookups by ID or type.

SparkEntity: MonoBehaviour component that provides entity identification and cached component access.

SparkEntityRegistry: Static registry that tracks all active SparkEntity instances for O(1) lookups.

SparkEventBus: Static event bus with priority-based publish/subscribe for inter-plugin communication.

SparkExtensionRegistry: Static registry that caches all extension data for O(1) lookups by type and target ID.

Trigger: An action that executes when a condition is met. Triggers are configurable through the Spark Editor.

Last updated

Was this helpful?