Stable Release

Gorgeous Events

Documentation

A powerful, state-machine driven event management framework for Unreal Engine 5. Gorgeous Events provides sophisticated event lifecycle management, construction pipelines, voiding, sub-events, and class spaces — tightly integrated with the Gorgeous Things ecosystem.

7 Pages
3 Modules
8 Features

Quick Links

Documentation Sections

Modules

GorgeousEventsRuntime Runtime

State machine events, construction system, voiding, sub-events, actions

GorgeousEventsEditor Editor

Editor-specific event tools

GorgeousEventsEditorUtilities Editor

Factory classes, custom asset type actions

Key Features

🔄 State Machine Events — full lifecycle: Invalid → Triggered → Initialized → Started → Processing → Finished
🏗️ Construction System — two-phase: Construction Handle → Assignment Mapper → Build Event
⏸️ Voiding System — automatic dependency management with pause/resume
Event Actions — reusable behavior components with independent lifecycle
🔗 Sub Events — hierarchical parent-child relationships with dependency tracking
📂 Class Space — shared ancestor context with variable inheritance
🔒 Event State Controls — locking, freezing, and voiding for precise control
📊 Statistics & Profiling — per-event CPU time, memory delta, CSV/JSON export

Frequently Asked Questions

How do events differ from regular Actors or Objects?
Events provide a built-in state machine lifecycle, automatic dependency management through voiding, and integration with the Gorgeous Things ecosystem including Object Variables.
What is the event lifecycle?
Events flow through states: Invalid → Triggered → Initialized → Started → Processing → Finished (or Canceled). Each state transition calls overridable methods for custom logic.
Why use the Construction system instead of creating events directly?
The Construction system provides deferred instantiation, pre-configuration via Assignment Mappers, and cleaner separation between setup and execution phases.
What is the Voiding system?
Voiding is automatic dependency management. When an event tries to complete but has unresolved dependencies (locks, frozen state), it enters a Voided state and automatically completes when all conditions resolve.
What's the difference between freezing, locking, and voiding?
Freezing is a user-controlled pause that stops event ticking. Locking prevents completion. Voiding is system-controlled waiting for dependencies. Both freezing and locking cause voiding if completion is attempted.
Can events persist across level loads?
Events inherit from UGorgeousObjectVariable which supports persistence. Configure persistence settings as needed.
Can sub-events have their own sub-events?
Yes, the hierarchy can be nested to any depth. Each level maintains its own parent-child relationships.
What is a Class Space?
Class Space provides a shared ancestor context for logical grouping of related event types with variable inheritance. Unlike sub-events (parent-child hierarchy), Class Space is for grouping without hierarchy.
Can I reuse a Construction Handle after triggering?
No, handles are single-use. Create a new handle for each event instance you want to build.
Do interfaces work with Blueprints?
Yes, all interfaces are fully exposed to Blueprints with appropriate nodes.
Does the Editor Utilities module affect packaged builds?
No, editor modules are excluded from packaged builds automatically.
When should I use Actions vs event methods?
Use Actions for reusable, composable behaviors. Use event methods for core logic specific to that event type.