Steam Componenet - wwestlake/Steamforge GitHub Wiki

⚙️ Steam Component (BP_SteamComponent)

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

🔧 Core Public Function: ActivateSteam()

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:

  1. Reads exposed variables like intensity and temperature
  2. Selects and spawns an appropriate Niagara particle system
  3. Aligns particle direction with the parent actor's rotation
  4. 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 toggling
  • DamageOnOverlap support with interval ticking
  • Timed steam bursts or pressure cycles
  • Actor event bindings (e.g., "OnSteamBurst")

✨ Usage Example

  1. Create a Blueprint for a pipe or machine
  2. Add the BP_SteamComponent
  3. Adjust rotation, steam type, and intensity in the Details panel
  4. 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.