Skip to content
TECHNICALLYARTIST
FAB

Triggering & Flow

The component runs skill checks inside a solving session. This page covers how a session starts and stops, how checks are triggered, and how to vary an individual check.

Begin Solving opens a session; End Solving closes it (removing any visible gauge and clearing the timers). Checks only happen while a session is open, so think of the session as the activity the player is busy with (repairing, lockpicking, casting, and so on).

Whether checks appear on their own is controlled by Auto Trigger Skill Checks on the component (on by default):

  • On: after Begin Solving, the component shows a gauge every Skill Check Interval plus or minus Skill Check Interval Variance seconds (never less than 0.5). After each result it schedules the next, until you call End Solving.
  • Off: nothing appears on its own. Call Show Gauge yourself whenever you want a check.
PropertyDefaultWhat it does
Auto Trigger Skill CheckstrueWhether checks appear automatically while solving.
Skill Check Interval3.0Base seconds between automatic checks (minimum 0.5).
Skill Check Interval Variance1.5Random plus or minus applied to the interval.
FunctionWhat it does
Begin Solving()Open a session. Starts automatic checks if enabled.
End Solving()Close the session; remove the gauge and clear timers.
Show Gauge()Show one check now using Default Gauge Settings.
Show Gauge With Settings(Settings)Show one check now using a custom settings struct.
Attempt Skill Check()The player’s input: stop the gauge and score it.

A common setup is a skill check that belongs to something in the world (a generator, a lock, a chest) rather than to the player, yet still has to react to the player’s key press. This works, because two things are decoupled:

  • Where the gauge shows is not tied to where the component lives. The component always draws the gauge on the local player’s screen (it builds the widget for the first player controller), so a Skill Check component sitting on a generator in the level still puts the gauge in front of the player.
  • What input must line up with is only the component instance. Attempt Skill Check scores whichever component you call it on, so the player’s key has to call it on the exact component that is running the current check.

That leaves two clean patterns.

Section titled “Pattern A: component on the character, the world object drives it (recommended)”

Keep the Skill Check component on the player character and let the interactable reach in and start the session:

  • When the player starts the activity (on interact or overlap), the world object gets the character’s Skill Check component and calls Begin Solving on it (and End Solving when the activity ends or the player walks away).
  • Input never changes. It already lives on the character and already points at that same component, so the key press keeps scoring correctly.

This is the simplest option: the trigger comes from outside, but input “just works” because nothing about the input wiring moved.

If you would rather the component live on the generator itself, the trigger is local to that object, but you now have to route input to it:

  • When interaction begins, store a reference to that object’s Skill Check component on the player (for example an Active Skill Check variable on the character or player controller). Set it as the session opens, clear it when solving ends.
  • Your input action calls Attempt Skill Check on that stored reference while it is valid. The gauge still appears on screen because the component targets the first player controller regardless of which actor owns it.
  • One custom check (manual): call Show Gauge With Settings with your own struct. Any sound field you leave empty inherits the component’s default sounds, so you only have to fill in what you want to change.
  • Change every following check: edit Default Gauge Settings at runtime (it is Blueprint-writable). Each new check, automatic or manual, copies it as its starting point, so changes apply from the next check onward.

Show Gauge with Settings called on input, with the per-check settings exposed as pins

Begin Solving // activity starts; auto checks begin
... gauge appears ...
Attempt Skill Check // player reacts; result is scored, next is scheduled
... gauge appears ...
Attempt Skill Check
End Solving // activity ends; everything is cleaned up

In manual mode (Auto Trigger Skill Checks off), replace the automatic appearances with your own Show Gauge calls, driven by whatever pacing your gameplay needs.