Steam Componenet - wwestlake/Steamforge GitHub Wiki
BP_SteamComponent
)
⚙️ Steam Component (A modular ActorComponent
designed for use in any Blueprint that needs ambient, reactive, or hazardous steam. This component handles visual effects (particles), audio playback, and optional gameplay interactions like damage.
🔄 Purpose
Enable actors in the game to emit steam in a dynamic, configurable way. This system supports different steam styles (gentle hiss, violent roar, sputter), directional orientation, and attachable sound behavior.
📊 Component Type
- Type:
ActorComponent
- Blueprint Name:
BP_SteamComponent
- Addable to any Blueprint Actor
ActivateSteam()
🔧 Core Public Function: Function Purpose:
Called from the owning actor when the steam effect should trigger (e.g., machine powers on, a pipe bursts, environmental hazard triggers).
Function Behavior:
- Reads exposed variables like intensity and temperature
- Selects and spawns an appropriate Niagara particle system
- Aligns particle direction with the parent actor's rotation
- If a
SoundEmitter
is assigned, plays the matching sound
📌 Exposed Variables (Editable from Parent Blueprint)
Variable | Type | Description |
---|---|---|
bSteamActive |
Bool |
Internal toggle state |
SteamIntensity |
Float |
Controls visual size and possibly audio gain |
SteamTemperature |
Float |
Optional damage scaling or environmental effect |
SteamType |
Enum /Name |
Preset to select visual/audio combo |
SteamRotationOffset |
Rotator |
Allows directional fine-tuning per instance |
SoundEmitter |
AudioComponent |
Reference to the sound system (if not auto-created) |
SteamSound_Hiss |
SoundBase |
Default hiss loop |
SteamSound_Roar |
SoundBase |
High-pressure burst |
SteamSound_Sputter |
SoundBase |
Random intermittent sputtering |
🎧 Audio Logic
- Sound emitter must be valid to trigger sound.
- Plays one of the SteamSound variants based on current config or intensity.
- May support looping or one-shot modes depending on
bLoopSound
setting. - Can be modulated by
SteamIntensity
for pitch or volume blending.
🔁 Future Features
DeactivateSteam()
cleanup and togglingDamageOnOverlap
support with interval ticking- Timed steam bursts or pressure cycles
- Actor event bindings (e.g., "OnSteamBurst")
✨ Usage Example
- Create a Blueprint for a pipe or machine
- Add the
BP_SteamComponent
- Adjust rotation, steam type, and intensity in the Details panel
- On gameplay event (e.g., Overheat), call
ActivateSteam()
This component makes it easy to bring the world of Steamforge to life with immersive, configurable steam emissions.