Appendix A. Blueprint node reference
Generated from the plugin's reflection data (RSE.Docs.ExportReference). 2247 nodes, events and overridable functions in 287 classes. Kind: function is a callable node, pure has no execution pin, event is an assignable event (Assign / Bind Event), override is a function a Blueprint subclass overrides. Parameters marked out are outputs, ref are passed by reference.
Classes by module: RSE (186); RSECommonUI (1); RSECore (90); RSEGAS (1); RSENet (4); RSEOnline (5).
ARSEATBBattleDirector
Module RSE. Runs and presents a classic battle on an ATB stage (D-023): ATB (D-022) or turn-based (D-050).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
End Battle (EndBattle) | function | RPG Saga|Battle | Removes the battle actors and returns to Idle. | ||
Get Battle (GetBattle) | pure | RPG Saga|Battle | URSEATBBattle* | The running (or last) battle, or none. | |
Get Battle Initiative (GetBattleInitiative) | pure | RPG Saga|Battle | ERSEBattleInitiative | Initiative of the running (or last) battle; before a battle, the one the next battle gets. | |
Get Battle Mode (GetBattleMode) | pure | RPG Saga|Battle | FGameplayTag | Battle.Mode.ATB or Battle.Mode.Turn: the running battle's mode; before a battle, the mode it would get. | |
Get Battle Outcome (GetBattleOutcome) | pure | RPG Saga|Battle | ERSEBattleOutcome | Outcome of the running or last battle (Ongoing without one). | |
Get Encounter (GetEncounterBP) | pure | RPG Saga|Battle | URSEEncounterData* | The encounter this director fights (the override while one is fought). | |
Get Last Rewards (GetLastRewards) | pure | RPG Saga|Battle | FRSEBattleRewards | What the last finished battle gave the party (experience, levels, items; D-030). Empty unless it was won. | |
Get Phase (GetPhase) | pure | RPG Saga|Battle | ERSEATBDirectorPhase | Idle, battle or finished. | |
Get Time Mode (GetTimeMode) | pure | RPG Saga|Battle | ERSEATBTimeMode | Wait or Active (the player's option, else the rules' default; may be switched during the battle). | |
Get Time Scale (GetTimeScale) | pure | RPG Saga|Battle | float | ATB time scale now (0 = standing still: Wait mode with a menu open; turn-based battles report 1). | |
Get Unit Actor (GetUnitActor) | pure | RPG Saga|Battle | UnitId: int32 | ARSEGridUnit* | The actor presenting a unit, or none. |
Get Unit Id (GetUnitId) | pure | RPG Saga|Battle | Actor: ARSEGridUnit* | int32 | Battle id of the unit an actor presents (-1 for none). |
Get Unit Name (GetUnitName) | pure | RPG Saga|Battle | UnitId: int32 | FText | Display name of a battle unit. |
Is Active (IsActive) | pure | RPG Saga|Battle | bool | A battle runs or has just finished on this stage (not Idle). | |
Is Command Queued (IsCommandQueued) | pure | RPG Saga|Battle | UnitId: int32 | bool | A player command waits for the action being shown to finish (D-065). |
Is Playback Idle (IsPlaybackIdle) | pure | RPG Saga|Battle | bool | True when no events are waiting to be shown and nothing is being presented. | |
On Event Presented (BP_OnEventPresented) | event | RPG Saga|Battle | Event: FRSEBattleEvent (ref) | Fired when a battle event is shown: damage numbers, custom HUDs, sounds. | |
Set Next Initiative (SetNextInitiative) | function | RPG Saga|Battle | Initiative: ERSEBattleInitiative | Initiative of the next battle started here (D-063: touching a visible enemy from behind, or being caught from behind). The battle consumes it; later battles start Normal again (a retry too). | |
Set Time Mode (SetTimeMode) | function | RPG Saga|Battle | InMode: ERSEATBTimeMode | Switches Wait / Active for the running battle (the options keep the player's stored choice). | |
Start Battle (StartBattle) | function | RPG Saga|Battle | EncounterOverride: URSEEncounterData* = None | bool | Starts the encounter with the party (first ATBPartySize characters allowed in ATB). EncounterOverride: fight this encounter instead of the director's own, for this battle only (several classic encounters sharing one stage, e.g. encounter triggers). Null = Encounter. |
ARSEATBStage
Module RSE. Where an ATB battle takes place (D-023): the party on one side, enemies on the other, each in a front and a back row, plus a fixed battle camera.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Frame Camera (FrameCamera) | function | RPG Saga|ATB | bool | D-183: puts the camera at the authored pose, then moves it to a clear one when geometry hides the formation (Camera Framing -> ATB). Runs when play begins; call it again after the level around the stage changed. Returns true when the camera moved. | |
Is Camera Reframed (IsCameraReframed) | pure | RPG Saga|ATB | bool | D-183: the camera was moved away from its authored pose by FrameCamera. |
ARSEAbilityDemoPad
Module RSE. A showcase pad (D-062, gallery maps): the player walks up, presses Interact and watches an ability's presentation (D-034 / D-055: its cue timeline, projectile, camera, reactions) played by a caster on a target dummy.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Ability (GetAbility) | pure | RPG Saga|World | URSEAbilityData* | The ability this pad shows. | |
Play Demo (PlayDemo) | function | RPG Saga|World | bool | Plays the ability's presentation now (spawns the units on first use). Returns false without an ability or while one plays. |
ARSEActionBattleDirector
Module RSE. The presenter of an action battle (D-171, package A3; the D-141 split: URSEActionSimDriver decides, this shows).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Action Battle (GetBattleBP) | pure | RPG Saga|Action Battle | URSEActionBattle* | The battle shown (the driver's on the authority, the proxy on a guest). Read only: commands go through Submit Command. | |
Get Battle Time (GetBattleTime) | pure | RPG Saga|Action Battle | float | Battle seconds now (a guest estimates the host's from the last mirror). | |
Get Encounter (GetEncounter) | pure | RPG Saga|Action Battle | URSEEncounterData* | Get Encounter | |
Get Unit Actor (GetUnitActor) | pure | RPG Saga|Action Battle | UnitId: int32 | AActor* | The world actor of a unit (null when it has none here). |
Get Unit Id Of (GetUnitIdOf) | pure | RPG Saga|Action Battle | Actor: AActor* | int32 | The unit an actor is (INDEX_NONE when it does not fight here). |
Is Battle Active (IsBattleActive) | pure | RPG Saga|Action Battle | bool | Is Battle Active | |
Is Proxy (IsProxy) | pure | RPG Saga|Action Battle | bool | This machine shows the host's battle (a guest). | |
On Battle Event (BP_OnEventPresented) | event | RPG Saga|Action Battle | Event: FRSEBattleEvent (ref) | ||
Try Finisher (TryFinisher) | override | RPG Saga|Action Battle | Attacker: AActor*Victim: AActor*Context: FRSEPairedContext (ref) | bool | A kill (or a stagger) by this machine's player: plays a finisher locally without stopping anyone (D-172). The default calls Try Play Finisher (Options -> Finishers, the paired animation libraries). Returns true when one plays. |
ARSEActionCameraRig
Module RSE. The action battle camera of one local player (D-171, package A3): a third-person view behind the character the player commands, turned by the look input, blending between the Combat, Aim (over the shoulder) and Lock On profiles of Action Battle (Presentation), kept off walls by a sphere probe, shake...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Trauma (AddTrauma) | function | RPG Saga|Action Battle | Amount: float | Adds camera shake (0..1). | |
Get Mode (GetMode) | pure | RPG Saga|Action Battle | ERSEActionCameraMode | Get Mode | |
Get Target (GetTarget) | pure | RPG Saga|Action Battle | AActor* | Get Target | |
Get Trauma (GetTrauma) | pure | RPG Saga|Action Battle | float | Get Trauma | |
Set Mode (SetMode) | function | RPG Saga|Action Battle | InMode: ERSEActionCameraMode | Set Mode | |
Set Target (SetTarget) | function | RPG Saga|Action Battle | InTarget: AActor* | Follows another character (a character switch) without a cut. |
ARSEActionProjectileActor
Module RSE. A projectile of an action battle in the world (D-171, package A3): each machine shows the battle's projectiles with one of these (the arrow, the fireball, the shell).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Owner Unit (GetOwnerUnit) | pure | RPG Saga|Action Battle | int32 | Get Owner Unit | |
Get Projectile Id (GetProjectileId) | pure | RPG Saga|Action Battle | int32 | Get Projectile Id | |
On Impact (OnImpact) | override | RPG Saga|Action Battle | Location: FVector (ref)HitActor: AActor* | It touched something (a unit or a wall): Blueprint impact effects. |
ARSEBuildingEntrance
Module RSE. The entrance of a building (D-150, docs/product/buildings.md): put it at the building's door and pick a mode.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Detect Door (DetectDoor) | function | Building Entrance | bool | D-158: finds the building's real door (a socket named "door", else a door-shaped opening or frame in its geometry), stands the entrance at it (the door's width and height, facing out) and places the exit point in front of it. Keep Placement leaves a hand placed entrance alone. Returns false when no door was found. | |
Get Door (GetDoor) | pure | RPG Saga|Buildings | ARSEDoor* | Get Door | |
Get Door Height (GetDoorHeight) | pure | RPG Saga|Buildings | float | Get Door Height | |
Get Door Width (GetDoorWidth) | pure | RPG Saga|Buildings | float | Get Door Width | |
Get Exit Transform (GetExitTransform) | pure | RPG Saga|Buildings | FTransform | Where the party stands when it comes out (the Exit Point, facing away from the building). | |
Get Interior (GetInterior) | pure | RPG Saga|Buildings | URSEInteriorData* | Get Interior | |
Get Mode (GetMode) | pure | RPG Saga|Buildings | ERSEBuildingEntranceMode | Get Mode | |
Get Points Problem (GetPointsProblem) | pure | Building Entrance | FText | D-153: Validate Exit Point and Check Interior Entry for tools and scripts: what is wrong, empty when both are usable. | |
Place Exit Point (PlaceExitPoint) | function | Building Entrance | bool | D-153: moves the Exit Point onto the spot FindExitSpot finds (the Building Analyzer calls it). Returns false: none found. |
ARSECaravan
Module RSE. A merchant caravan on the road (D-157, docs/product/living-npcs.md "Caravans"): place it, draw its route (the spline, along the roads; or use World Tools -> Place Caravan Route), mark the stops and pick a Caravan Data asset.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Merchant (GetMerchant) | pure | RPG Saga|Caravan | ARSENPC* | Get Merchant | |
Get Position (GetPosition) | pure | RPG Saga|Caravan | FRSECaravanPosition | Where it is now on its timetable. | |
Is Halted (IsHalted) | pure | RPG Saga|Caravan | bool | A player near it on the road holds it. | |
Refresh Now (RefreshNow) | function | Caravan | Rebuilds the timetable and moves everything to the clock's position at once (load, time skip, live tuning). |
ARSEChest
Module RSE. A treasure chest (D-042): items and money, opened once (the opened state is a story flag, so it is saved with the story), optionally locked by conditions or a key item.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Opened (IsOpened) | pure | RPG Saga|Economy | bool | The chest was opened already (its Opened flag is set; saved with the story). |
ARSECinematicCharacter
Module RSE. A character standing in a story scene (D-078): the spawnable that Cinematic from Screenplay puts in a Level Sequence for every speaker.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Copy Look From (CopyLookFrom) | function | RPG Saga|Scenes | Source: AActor* | bool | Takes the look of another actor's appearance (the real NPC or pawn it stands in for). Returns false when Source has none. |
Get Appearance Component (GetAppearanceComponent) | pure | RPG Saga|Scenes | URSEAppearanceComponent* | Get Appearance Component | |
Set Look (SetLook) | function | RPG Saga|Scenes | InCharacter: URSECharacterData*InAppearance: TSoftObjectPtr<URSECharacterAppearance>InVariant: FName | Shows a look: Appearance (and Variant) when set, else the Character's appearance and equipment. |
ARSECombatArea
Module RSE. A designed combat place of the map (D-093, free-tactics.md section 11): a clearing, a square, a bridge where battles are meant to happen.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Check Area (CheckArea) | pure | RPG Saga|Combat Roles | FRSECombatAreaReport | Traces the area (free tiles) and lists the objects whose role keeps them out of combat areas. | |
Contains Location (ContainsLocation) | pure | RPG Saga|Combat Roles | Location: FVector (ref) | bool | Whether a world position lies inside the area's box (height included). |
ARSECompanionAIController
Module RSE. The companion AI of a visible party member (D-097, engineering standards section 12): the controller every member has when no player controls it.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Follow (Follow) | function | RPG Saga|Party Field | Back to following the leader. | ||
Get Life State (GetLifeState) | pure | RPG Saga|Party Field | FRSEFollowerLifeState | D-129: the member's following and idle state (deterministic from its seed; the authority owns it). | |
Get Order (GetOrder) | pure | RPG Saga|Party Field | ERSECompanionOrder | Get Order | |
Stay (Stay) | function | RPG Saga|Party Field | Stops where it stands until told to follow again. |
ARSEDoor
Module RSE. A door the player opens and closes (D-110): in exploration by interacting with it, in a Free Tactics battle with the Door command (it costs the action set in Free Tactics -> Doors).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Locked (IsLocked) | pure | RPG Saga|Interiors | bool | Is Locked | |
Is Open (IsOpen) | pure | RPG Saga|Interiors | bool | Is Open | |
On Door Changed (OnDoorChanged) | event | RPG Saga|Interiors | Door: ARSEDoor*bOpen: bool | Raised when the door opens or closes. | |
Set Locked (SetLocked) | function | RPG Saga|Interiors | bInLocked: bool | Locks or unlocks it (a locked door cannot be opened, neither in exploration nor in battle). | |
Set Open (SetOpen) | function | RPG Saga|Interiors | bInOpen: boolbAnimate: bool = true | Opens or closes the door (swinging, or at once). |
ARSEEncounterSite
Module RSE. D-182: where one encounter is fought in every battle mode, so the same encounter can start in any mode (its own, or the session's Battle Mode Override) on one map: - grid Tactics: Tactics Director (its zone is the grid; the deployment tiles and the enemies' tiles fall back to the zone when the encou...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Build Mode Report (BuildModeReport) | pure, static | RPG Saga|Battle|Mode Override | WorldContext: UObject*InEncounter: URSEEncounterData*Site: ARSEEncounterSite* | FRSEEncounterModeReport | The mode report of Encounter on World (Site: its encounter site, may be none): the data report, then grid Tactics needs a director with a zone (the site's, or one that has the encounter), classic modes an ATB director with a stage. |
Find Site For (FindSiteFor) | pure, static | RPG Saga|Battle|Mode Override | WorldContext: UObject*InEncounter: URSEEncounterData* | ARSEEncounterSite* | The site of Encounter on World (its own encounter, or the asset it was copied from by a mode override), or null. |
Get Mode Report (GetModeReport) | pure | RPG Saga|Battle|Mode Override | FRSEEncounterModeReport | Which modes the encounter can run in at this site: its data report plus this map's battle sites (grid zone, classic stage, live area). | |
Start Encounter (StartEncounter) | function | RPG Saga|Battle|Mode Override | Source: AActor* = NoneReturnPoint: AActor* = None | bool | Starts the encounter in the mode it is fought in now (its own, or the session's Battle Mode Override). Returns false when it did not start. |
ARSEEncounterSpawner
Module RSE. Places visible enemy groups in the world (D-063, visible soldiers that start battles on contact; docs/design/random-encounters.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Force Contact (ForceContact) | function | RPG Saga|Encounters | Starts the battle of the first live group now, as if touched (Normal initiative). PIE testing. | ||
Get Group Count (GetGroupCount) | pure | RPG Saga|Encounters | int32 | Groups this spawner places now (Group Count x the frequency option's density x the time and weather density). | |
Get Group Reinforcements (GetGroupReinforcements) | pure | RPG Saga|Encounters | GroupIndex: int32 | URSEReinforcementData* | D-117: the reinforcements a group calls in its battles: this spawner's own, else its encounter's or pool's, else its behavior's. Null = none. |
Is Group Defeated (IsGroupDefeated) | pure | RPG Saga|Encounters | GroupIndex: int32 | bool | The group has been defeated and has not come back yet. |
Is Spawner Enabled (IsSpawnerEnabled) | pure | RPG Saga|Encounters | bool | The spawner places its groups (Enabled in the details). | |
On Encounter Contact (OnEncounterContact) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*GroupIndex: int32Initiative: ERSEBattleInitiative | A touch started the battle of GroupIndex. | |
On Enemy Alerted (OnEnemyAlerted) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*Enemy: ARSERoamingEnemy*bAlerted: bool | A leader noticed the party (bAlerted) or gave up (false). | |
On Group Defeated (OnGroupDefeated) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*GroupIndex: int32 | A group was defeated and removed. | |
On Group Spawned (OnGroupSpawned) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*GroupIndex: int32 | A group appeared (level start or respawn). | |
Reset Saved State (ResetSavedState) | function | RPG Saga|Encounters | Forgets the saved state (defeats, group seeds) and places fresh groups. PIE testing. | ||
Respawn All (RespawnAll) | function | RPG Saga|Encounters | Brings every group back now (clears the defeated state). Also a button for PIE testing. | ||
Set Spawner Enabled (SetSpawnerEnabled) | function | RPG Saga|Encounters | bInEnabled: bool | Turns the spawner on (spawns its live groups) or off (removes them; their state is kept). | |
Uses Free Tactics (UsesFreeTactics) | pure | RPG Saga|Encounters | GroupIndex: int32 | bool | The group fights Free Tactics battles (this spawner's Free Tactics, or its encounter's battle mode). |
ARSEEncounterTrigger
Module RSE. A volume on the exploration map that starts a battle when the explorer walks in (D-026).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Force Start Encounter (ForceStartEncounter) | function | Encounter | Starts the encounter now, ignoring rules (PIE testing: select the trigger in the PIE outliner). | ||
Is Condition Met (IsConditionMet) | override | RPG Saga|Battle | bool | Story condition. Extension point: Phase 7 replaces the default with the unified Conditions system (CLAUDE.md 3.4). Default: always true. May be overridden in a Blueprint subclass meanwhile. | |
Reset Trigger (ResetTrigger) | function | Encounter | Clears the saved state (consumed, counters) and re-arms. | ||
Set Trigger Enabled (SetTriggerEnabled) | function | RPG Saga|Battle | bInEnabled: bool | Turns the trigger on or off (a disabled trigger never starts its battle). | |
Try Start Encounter (TryStartEncounter) | function | RPG Saga|Battle | bool | Starts the encounter if the rules allow it. |
ARSEExplorationCharacter
Module RSE. The party leader walking the world in exploration.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Settings (ApplySettings) | function | Exploration | Re-reads URSEExplorationSettings (speeds, camera). Also a button for live tuning in PIE. | ||
Get Camera Arm (GetCameraArm) | pure | RPG Saga|Exploration|Camera | URSEExplorationCameraArm* | The exploration camera's arm (D-113): zoom, style, the view a battle hands back. | |
Get Idle Intent (GetIdleIntent) | pure | RPG Saga|Party Field | FRSEIdleIntent | The idle action shown now (inactive = none). | |
Get Party Member (GetPartyMember) | pure | RPG Saga|Exploration | URSECharacterData* | Get Party Member | |
Is Fallen (IsFallen) | pure | RPG Saga|Exploration | bool | Is Fallen | |
Is Pawn Input Blocked by Screen (IsPawnInputBlockedByScreen) | pure | RPG Saga|Exploration | bool | D-152: a menu or another modal screen of this explorer's player is open (Exploration -> Block Pawn Input Under Screens): movement, camera and action input are ignored. Per local player. | |
Is Sneaking (IsSneaking) | pure | RPG Saga|Exploration | bool | Is Sneaking | |
On Interact (OnInteract) | event | RPG Saga|Exploration | Character: ARSEExplorationCharacter* | Examine / talk. Phase 7 routes this to interactables; for now Blueprints and level scripts may listen. | |
Refresh Appearance (RefreshAppearance) | function | Exploration | Looks like AppearanceOverride, else the party leader (first ATB formation member) through its character data (D-046); without an appearance the placeholder shape stays. Call after the party changes. | ||
Set Fallen (SetFallen) | function | RPG Saga|Exploration | bFallen: bool | Fallen (D-109): lies on the ground (the knock-out pose, or the placeholder tipped over) until revived. | |
Set Party Member (SetPartyMember) | function | RPG Saga|Exploration | Member: URSECharacterData* | The party member this character is (null = the party's leader: the first of the formation). | |
Set Sneaking (SetSneaking) | function | RPG Saga|Exploration | bSneak: bool | Sneaking: a slower walk, much harder to notice (Stealth settings). |
ARSEFreeTacticsCameraPawn
Module RSE. The tactical camera of Free Tactics battles (D-097), in the style of modern party tactics games: it orbits a focus point on the ground, rotates freely (steps or held input), zooms, pans relative to its yaw and glides to the active unit and the actions.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Focus On (FocusOn) | function | RPG Saga|Free Tactics|Camera | WorldLocation: FVectorbInstant: bool = false | Glides to a world location (or cuts at once). | |
Get Tilt Offset (GetTiltOffset) | pure | RPG Saga|Free Tactics|Camera | float | Get Tilt Offset | |
Glide To (GlideTo) | function | RPG Saga|Free Tactics|Camera | WorldLocation: FVectorSeconds: float | D-115: a short glide of the focus to WorldLocation over Seconds (real time, eased in and out) at the current zoom and angle: the turn change reframe. Seconds <= 0 = FocusOn. | |
Pan (Pan) | function | RPG Saga|Free Tactics|Camera | Input: FVector2DDeltaSeconds: float | Pans the focus: Input X = right, Y = forward relative to the camera's yaw. | |
Rotate By (RotateBy) | function | RPG Saga|Free Tactics|Camera | Degrees: float | Rotates by Degrees (held input, mouse drag). | |
Rotate Step (RotateStep) | function | RPG Saga|Free Tactics|Camera | Direction: float | Rotates by Free Tactics (Presentation) -> Camera Rotate Step in the sign of Direction. | |
Set Tilt Offset (SetTiltOffset) | function | RPG Saga|Free Tactics|Camera | Degrees: float | D-129: the exploration camera's tilt, kept on this camera's angle (degrees; positive = steeper). Not inside interiors. | |
Set Yaw (SetYaw) | function | RPG Saga|Free Tactics|Camera | Yaw: floatbInstant: bool = false | Sets the yaw (degrees) and optionally cuts to it. | |
Zoom (Zoom) | function | RPG Saga|Free Tactics|Camera | Amount: float | Positive zooms in (steps of Camera Zoom Step). |
ARSEFreeTacticsDirector
Module RSE. Presents a Free Tactics battle on the live map (D-097, docs/design/free-tactics.md sections 4-6) on every machine (D-141): plays the events back (walking along UnitMoved.Points, abilities through the battle cue player, falls, joins, the turn marker), the ground overlay (movement area, path, ability...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Answer Hazard Prompt (AnswerHazardPrompt) | function | RPG Saga|Free Tactics | bContinue: bool | Answers the warning: continue (the command goes to the host, which validates it again) or pick another path. | |
Cancel (Cancel) | function | RPG Saga|Free Tactics | Cancel: leaves Target (back to Move), closes a list. | ||
Confirm (Confirm) | function | RPG Saga|Free Tactics | Confirm: walk to the hovered point (Move), use the aimed ability (Target). | ||
End Player Turn (EndPlayerTurn) | function | RPG Saga|Free Tactics | Ends the player's turn (facing where the unit looks). | ||
Get Battle (GetBattle) | pure | RPG Saga|Free Tactics | URSEFreeTacticsBattle* | The battle this machine shows: the live one on the authority (single player, the host), the proxy on a guest (changing it there changes nothing: the host's state overwrites it). Presentation code reads GetBattleView. | |
Get Contact Point (GetContactPoint) | pure | RPG Saga|Free Tactics | FVector | Where the battle ring spread from. | |
Get Hazard Prompt Selection (GetHazardPromptSelection) | pure | RPG Saga|Free Tactics | int32 | The highlighted answer: 0 = continue, 1 = pick another path. | |
Get Hazard Prompt Text (GetHazardPromptText) | pure | RPG Saga|Free Tactics | FText | The warning ("Danger: not enough movement to go around. Crossing Fire: 30% Burn, ~12 damage. Continue?"). | |
Get HUDOpacity (GetHUDOpacity) | pure | RPG Saga|Free Tactics | float | Opacity of the battle HUD's panels now (they fade in with the entry). | |
Get Input Mode (GetInputMode) | pure | RPG Saga|Free Tactics | ERSEFreeInputMode | --- Player input (the controller, the HUD, dev commands) --- | |
Get Script Runner (GetScriptRunner) | pure | RPG Saga|Free Tactics | URSEBattleScriptRunner* | The battle's reinforcements and scripted events (the authority only; null on a guest and outside a battle). | |
Get Selected Target Id (GetSelectedTargetId) | pure | RPG Saga|Free Tactics|Targeting | int32 | The unit chosen for the aimed ability (INDEX_NONE = none). | |
Get Targeting View (GetTargetingViewBP) | pure | RPG Saga|Free Tactics|Targeting | FRSEFreeTargetingView | Blueprint: the targeting view. | |
Get Unit Actor (GetUnitActor) | pure | RPG Saga|Free Tactics | UnitId: int32 | AActor* | The world actor of a unit (null when none). |
Get Unit Id Of (GetUnitIdOf) | pure | RPG Saga|Free Tactics | Actor: AActor* | int32 | The unit an actor stands for (INDEX_NONE for none). |
Get Unit Name (GetUnitName) | pure | RPG Saga|Free Tactics | UnitId: int32 | FText | Get Unit Name |
Is Awaiting Player (IsAwaitingPlayer) | pure | RPG Saga|Free Tactics | bool | The player may act (a player unit's turn, nothing playing). | |
Is Battle Active (IsBattleActive) | pure | RPG Saga|Free Tactics | bool | Is Battle Active | |
Is Entry Playing (IsEntryPlaying) | pure | RPG Saga|Free Tactics | bool | The battle's entry (the ring spreading, the enemies turning, the HUD fading in) is still playing: the first turn waits. | |
Is Hazard Prompt Open (IsHazardPromptOpen) | pure | RPG Saga|Free Tactics | bool | A walk, jump or carrying ability waits for the player's answer to the danger warning. | |
Is Picking Unit (IsPickingUnit) | pure | RPG Saga|Free Tactics|Targeting | bool | A single-target ability is being aimed (units are picked, not ground points). | |
Is Proxy (IsProxy) | pure | RPG Saga|Free Tactics | bool | D-141: this machine presents another machine's battle (a guest). | |
On Callout (BP_OnCallout) | event | RPG Saga|Free Tactics | Callout: FRSEFreeCallout (ref) | A bark or an intent to show over a unit (Blueprint HUDs). | |
On Custom Menu Command (BP_OnCustomMenuCommand) | event | RPG Saga|Free Tactics | Command: FGameplayTagUnitId: int32 | ||
On Event Presented (BP_OnEventPresented) | event | RPG Saga|Free Tactics | Event: FRSEBattleEvent (ref) | A presented battle event (Blueprint). | |
On Notice (BP_OnNotice) | event | RPG Saga|Free Tactics | Notice: FInstancedStruct (ref) | Every notice this presenter received (Blueprint: a custom notice's presentation). | |
Select Target (SelectTarget) | function | RPG Saga|Free Tactics|Targeting | UnitId: int32 | bool | Chooses a unit for the aimed single-target ability (Next / Previous, the mouse, scripts). Returns false when it is no candidate. |
Set Hazard Prompt Selection (SetHazardPromptSelection) | function | RPG Saga|Free Tactics | Index: int32 | Set Hazard Prompt Selection | |
Show Ability Preview (ShowAbilityPreview) | function | RPG Saga|Free Tactics|Targeting | Player: APlayerController*EntryId: FName | Blueprint: preview an ability of the battle menu (custom menus); NAME_None clears it. |
ARSEFrontEndPlayerController
Module RSE. Player controller of the main menu map: shows the mouse cursor, puts input in UI-only mode with the main menu focused (keyboard, gamepad and mouse) and carries out the chosen entries: - Continue: loads the most recent save, fades out and opens its map (URSESaveFlowSubsystem); - New Game: resets the...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Transition Started (OnTransitionStarted) | override | RPG Saga|Front End | Called when a fade-out towards a new map or quitting starts (hook for sounds or music fades in Blueprint). |
ARSEGeneratedInterior
Module RSE. A generated interior (D-158, docs/product/buildings.md "Generated interiors"): the one actor of Buildings -> Generated Interior Map.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Built (ClearBuilt) | function | Generated Interior | Removes everything built. | ||
Get Kit Build Stats (GetKitBuildStats) | pure | RPG Saga|Buildings | FRSEKitBuildStats | D-164 / K7: counts and time of the last kit build. | |
Set View Floor (SetViewFloor) | function | RPG Saga|Buildings | Floor: int32 | Shows the floors up to Floor and hides the ones above it (the cutaway; -1 = all shown). |
ARSEIdleSpot
Module RSE. A place the visible party uses while the leader rests (D-129): a bench to sit on, a wall to lean on (Kind = Idle.Spot.Sit / Idle.Spot.Lean: a Use Spot behaviour walks there, faces the arrow and loops its animation), or a point of interest the members look at (Kind = Idle.Spot.Interest: a statue, a v...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Point Of Interest (IsPointOfInterest) | pure | RPG Saga|Party Field | bool | A point of interest: members look here (Interest kind, or Also Point Of Interest). |
ARSEInteractableActor
Module RSE. Something the player examines or talks to in exploration (exploration.md, "Interactiuni / NPC").
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Settings (ApplySettings) | function | RPG Saga|Interaction | Re-applies the range and reach to the volume (live tuning). | ||
Can Interact (Custom) (CanInteractCustom) | override | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Extra availability rule of a Blueprint subclass (the prompt shows only while it is true). Default: true. |
Can Interact Now (CanInteractBP) | pure | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Whether a pawn may interact now (enabled, prompt conditions, Can Interact (Custom)). |
Get Interactable Component (GetInteractableComponent) | pure | RPG Saga|Interaction | URSEInteractableComponent* | D-165: the component the interaction system focuses and runs (it asks this actor). | |
Get Prompt Text (GetPromptText) | pure | RPG Saga|Interaction | FText | The action shown in the prompt. | |
Interact (Interact) | function | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Runs the interaction and/or starts the dialog, now, on this machine: what the Interact command applies on the authority (D-138). Player input goes through RequestInteract. Returns false when it could not interact. |
On Interact (ReceiveInteract) | override | RPG Saga|Interaction | InteractingPawn: APawn*bSucceeded: bool | A custom interaction action (D-052): runs after the data (interaction, dialog, puzzle) when the player interacts. A Blueprint subclass that implements it is interactable even without any data (a lever, a switch, a shrine). | |
On Interacted (OnInteracted) | event | RPG Saga|Interaction | Interactable: ARSEInteractableActor*InteractingPawn: APawn*bSucceeded: bool | Raised after every interaction (Blueprint and level scripting hook). | |
Request Interact (RequestInteract) | function | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Interacts as the player of InteractingPawn through the command bus (D-138): applied at once in single player and on the host, sent to the host from a guest. Returns true when it was applied (or sent). |
Set Interaction Enabled (SetInteractionEnabled) | function | RPG Saga|Interaction | bInEnabled: bool | Turns the interaction on or off (off: no prompt, Interact does nothing). |
ARSEInteriorVolume
Module RSE. An interior (D-110): a house, a cave, a dungeon room.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Contains Point (ContainsPoint) | pure | RPG Saga|Interiors | WorldPoint: FVector | bool | Contains Point |
Find At (FindAt) | pure, static | RPG Saga|Interiors | WorldContextObject: UObject*WorldPoint: FVector | ARSEInteriorVolume* | The highest-priority interior volume containing WorldPoint (null when none). |
Get Box (GetBox) | pure | RPG Saga|Interiors | UBoxComponent* | Get Box | |
On View Changed (OnViewChanged) | event | RPG Saga|Interiors | Volume: ARSEInteriorVolume*bInside: bool | The view (exploration or battle camera) went into or out of this interior. |
ARSELadder
Module RSE. A ladder between two floors (D-110; a traversal link since D-121): a body climbs from Bottom Point to Top Point with its kind's motion and animations (Project Settings -> Traversal -> Default Ladder Kind unless the actor has its own).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get World Ends (GetWorldEnds) | pure | RPG Saga|Interiors | OutBottom: FVector (out)OutTop: FVector (out) | Both ends in the world (centimeters, on their floors). | |
Set Ladder Points (SetLadderPoints) | function | RPG Saga|Interiors | InBottom: FVectorInTop: FVector | Sets both ends (local, centimeters) and rebuilds the placeholder: scripts, level tools, tests. |
ARSELockableActor
Module RSE, display name RSE Lockable. A locked door or chest (D-109): its Lock data (difficulty, who may pick it, keys) plus keys of its own.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Lock (GetLock) | pure | RPG Saga|Exploration RPG | URSELockData* | Get Lock | |
Is Locked (IsLocked) | pure | RPG Saga|Exploration RPG | bool | Is Locked | |
On Lock Changed (OnLockChanged) | event | RPG Saga|Exploration RPG | Lockable: ARSELockableActor*bUnlocked: bool | ||
Reset Lock (ResetLock) | function | RPG Saga|Exploration RPG | Locked again (editor button, dev tools). | ||
Try Pick (TryPick) | function | RPG Saga|Exploration RPG | Member: URSECharacterData*bOutSuccess: bool (out) | bool | Picks the lock by chance with Member (null = the best member able to): the delegated command and Auto Resolve mode. Returns false when nobody may try. |
Unlock (Unlock) | function | RPG Saga|Exploration RPG | bAnimate: bool = true | Opens the lock (story, a key, a pick): its Unlock Effects run once. |
ARSENPC
Module RSE. A talkable NPC: an interactable with a body (a capsule, plus its Appearance as an animated character (D-046) or a placeholder mesh), a speaker component (cues and barks find it), facing the player while talking, and an optional proximity bark.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Combat Character (GetCombatCharacter) | pure | RPG Saga|Exploration RPG | URSECharacterData* | The character it fights as when a battle makes it a combatant (null = it never fights). | |
Get NPCId (GetNPCId) | pure | RPG Saga|Exploration RPG | FName | Its id for saves and requests: the living NPC id (else the actor's name). | |
Get NPCName (GetNPCName) | pure | RPG Saga|Exploration RPG | FText | Its name for notifications: its Object Name, else its speaker's name, else its id. | |
Get Pickpocket (GetPickpocket) | pure | RPG Saga|Exploration RPG | URSEPickpocketData* | What it carries for thieves (null = nothing to steal). | |
Get Talk Component (GetTalkComponent) | pure | RPG Saga|NPC | URSENPCTalkComponent* | D-165: its talking behavior (lines, greeting, facing), driven with this NPC's settings. | |
Is Defeated (IsDefeated) | pure | RPG Saga|Exploration RPG | bool | Is Defeated | |
Is Present (IsPresent) | pure | RPG Saga|Exploration RPG | bool | It is here and could talk (not away, not beaten, not hidden). | |
Say Line (SayLine) | function | RPG Saga|NPC | Kind: FGameplayTag | bool | Says a line from its bark pools over its head (its own, its NPC Type's, else the project's default pools, plus the global ones), of Kind when it has such a line (an invalid Kind = any). Local presentation, never blocking. Returns false when it has nothing to say now. |
ARSENPCPlace
Module RSE, display name NPC Place. Where living NPCs do their activities (D-104): a spot, an area or a route, found by Place Id from the NPCs' schedules (any actor tagged with the id works as a spot too).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Route Points (GetRoutePoints) | pure | RPG Saga|NPC | TArray<FVector> | The stops in world space (waypoints, else the spline sampled, else the place itself). |
ARSENetGameState
Module RSENet. A game state that carries the replicated state sections from the start (D-140).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Net State (GetNetState) | pure | RPG Saga|Co-op | URSENetStateComponent* | Get Net State |
ARSENetPlayerState
Module RSENet. A player state that carries the co-op identity and command transport from the start (D-140).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Net Player (GetNetPlayer) | pure | RPG Saga|Co-op | URSENetPlayerComponent* | Get Net Player |
ARSEPuzzleDoor
Module RSE. A locked door or mechanism (D-039): open while OpenConditions pass (e.g.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Open (IsOpen) | pure | RPG Saga|Puzzles | bool | The door is open now (its Open Conditions pass). | |
Refresh (Refresh) | function | RPG Saga|Puzzles | bAnimate: bool = true | Re-checks OpenConditions (also runs on every story or party change). |
ARSERandomEncounterArea
Module RSE. Classic random ATB battles while the explorer walks inside this volume (D-022, D-026).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Force Encounter (ForceEncounter) | function | Random Encounter | Starts one of the area's battles now (PIE testing). | ||
Set Area Enabled (SetAreaEnabled) | function | RPG Saga|Battle | bInEnabled: bool | Turns random battles in this area on or off. |
ARSERoamingEnemy
Module RSE. A visible enemy in the world (D-063): the leader of a spawner's group (behavior profile, detection, chase, alert) or one of its followers (walks behind the leader).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Awareness (GetAwareness) | pure | RPG Saga|Encounters | ERSEStealthAwareness | Unaware, suspicious or alerted (its leader's for followers; alerted while it hunts the party). | |
Get Detection (GetDetection) | pure | RPG Saga|Encounters | float | Its detection meter (0..1, full = it noticed the party). Followers share the leader's. | |
Get Group Index (GetGroupIndex) | pure | RPG Saga|Encounters | int32 | Group of the spawner it belongs to. | |
Get Roaming State (GetRoamingState) | pure | RPG Saga|Encounters | ERSERoamingState | What it is doing: idle, alerted, chasing, fleeing, returning, stunned (after a fled battle) or sleeping (far away). | |
Get Spawner (GetSpawner) | pure | RPG Saga|Encounters | ARSEEncounterSpawner* | The spawner that placed it (its group, battle and respawn). | |
Investigate (Investigate) | function | RPG Saga|Encounters | Point: FVectorSeconds: float | bool | Comes to look at Point for Seconds (a distraction, D-109): the group walks there, looks around and goes back. Ignored while it hunts the party (Exploration RPG -> Alerted Ignore Distractions), in a battle, as a corpse or stunned. Returns true when it goes to look. |
Is Aware Of Party (IsAwareOfParty) | pure | RPG Saga|Encounters | bool | It has noticed the party (alerted or chasing). | |
Is Leader (IsLeader) | pure | RPG Saga|Encounters | bool | It leads its group (followers walk behind the leader and share its awareness). | |
Is Unaware (IsUnaware) | pure | RPG Saga|Encounters | bool | Attacking it now counts as attacking unseen (its meter is below Stealth -> Unseen Below). |
ARSESavePoint
Module RSE. A save point in the world (D-010).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Use (Use) | function | Save Point | Uses the save point as if the player pressed Interact in range (PIE testing: select it in the PIE outliner). |
ARSESceneTrigger
Module RSE. A volume that plays a story scene when the player's pawn walks in (D-043).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Force Play (ForcePlay) | function | Scene | Plays the scene now, ignoring seen state and conditions (PIE testing: select the trigger in the PIE outliner). | ||
Try Play (TryPlay) | function | RPG Saga|Scenes | bool | Plays the scene if it is not seen and the conditions pass. Returns true when it was queued. |
ARSESurfaceSpot
Module RSE. A surface that lies in the level before any battle (D-112): the water of a ford, a puddle of oil by the barrels, a poison marsh.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get World Corners (GetWorldCorners) | pure | RPG Saga|Free Tactics|Field | OutCorners: TArray<FVector> (out) | The four corners of the rectangle on the ground (world, centimeters), or the circle's center repeated. | |
Set Spot Enabled (SetSpotEnabled) | function | RPG Saga|Free Tactics|Field | bInEnabled: bool | Turns the spot on or off (a drained ford, an oil puddle already burnt). |
ARSESwimVolume
Module RSE. A traversal volume placed in the level (D-121, docs/design/traversal.md): deep water by default.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Contains Point 2D (ContainsPoint2D) | pure | RPG Saga|Traversal | Point: FVector (ref) | bool | Whether a world point lies inside the box (in X and Y; any height up to the surface). |
Get Kind (GetKind) | pure | RPG Saga|Traversal | URSETraversalVolumeKindData* | The kind in use: the actor's own, else Project Settings -> Traversal -> Default Swim Kind. | |
Get Surface Z (GetSurfaceZ) | pure | RPG Saga|Traversal | float | Height of the surface (world, cm): the box's top. | |
Set Kind (SetKind) | function | RPG Saga|Traversal | InKind: URSETraversalVolumeKindData* | Sets the kind (scripts, level tools, tests). Null = the settings' default. |
ARSETacticsBattleDirector
Module RSE. Runs a Tactics encounter on a zone of the live map (D-009) and presents it (D-006).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin Encounter (BeginEncounter) | function | RPG Saga|Battle | Starts the encounter: deployment (or auto-deploy), or the legacy battle without encounter data. | ||
End Encounter (EndEncounter) | function | RPG Saga|Battle | Tears the current encounter down and returns to Idle without starting a new one (back to exploration). | ||
Get Battle (GetBattle) | pure | RPG Saga|Battle | URSETacticsBattle* | The running (or last) battle, or none. | |
Get Battle Outcome (GetBattleOutcome) | pure | RPG Saga|Battle | ERSEBattleOutcome | Outcome of the running or last battle (Ongoing without one). | |
Get Encounter (GetEncounterBP) | pure | RPG Saga|Battle | URSEEncounterData* | The encounter this director fights. | |
Get Last Rewards (GetLastRewards) | pure | RPG Saga|Battle | FRSEBattleRewards | What the last finished battle gave the party (experience, levels, items; D-030). Empty unless it was won. | |
Get Phase (GetPhase) | pure | RPG Saga|Battle | ERSEDirectorPhase | Idle, deployment, battle or finished. | |
Get Unit Actor (GetUnitActor) | pure | RPG Saga|Battle | UnitId: int32 | ARSEGridUnit* | The actor presenting a unit, or none. |
Get Unit Id (GetUnitId) | pure | RPG Saga|Battle | Actor: ARSEGridUnit* | int32 | Battle id of the unit an actor presents (-1 for none). |
Get Unit Name (GetUnitName) | pure | RPG Saga|Battle | UnitId: int32 | FText | Display name of a battle unit. |
Is Awaiting Command (IsAwaitingCommand) | pure | RPG Saga|Battle | bool | True when a player-controlled unit is waiting for a command (no events playing). | |
Is Playback Idle (IsPlaybackIdle) | pure | RPG Saga|Battle | bool | True when no events are waiting to be shown and nothing is being presented. | |
On Event Presented (BP_OnEventPresented) | event | RPG Saga|Battle | Event: FRSEBattleEvent (ref) | Fired when a battle event is shown (after playback ordering): damage numbers, custom HUDs, sounds. | |
Restart Encounter (RestartEncounter) | function | RPG Saga|Battle | Tears everything down and begins the encounter again. | ||
Set Encounter (SetEncounter) | function | RPG Saga|Battle | NewEncounter: URSEEncounterData* | bool | Replaces the encounter this director fights, only while no encounter runs (Idle): one battle site of a map can host another encounter (story tools, dev commands, D-079). Its unit coordinates must fit the site's zone. Returns false during an encounter. |
Start Battle (StartBattle) | function | RPG Saga|Battle | bool | Ends deployment and starts the battle. |
ARSETacticsZone
Module RSE. A pre-placed area of the live map that turns into a tactical battlefield (decision D-009).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Bake Grid (BakeGrid) | function | Tactics Zone | Rebuilds the grid by tracing level geometry, then applies TileOverrides. | ||
Clear Highlights (ClearHighlights) | function | Tactics Zone | Clears the selection highlights (danger, move, path, target and area layers, the cursor, the ability preview's layers). | ||
Measure Surface (MeasureSurface) | function | Tactics Zone | Measures the real surface under every tile again, without changing the grid (heights, walkability, terrain). |
ARSETimeOfDayActor
Module RSE, display name Time of Day & Weather. The sky of a level (D-101, docs/design/time-weather.md): drop it into any level.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Active Profile (GetActiveProfile) | pure | RPG Saga|Time | URSETimeOfDayProfile* | The profile in use (the actor's or the default). | |
Get Displayed Hour (GetDisplayedHour) | pure | RPG Saga|Time | float | The hour the sky shows now. | |
Recapture Sky (RecaptureSky) | function | RPG Saga|Time | Recaptures the sky light now. | ||
Snap Now (SnapNow) | function | RPG Saga|Time | Applies everything now without blending (after a skip, a load). |
ARSETrapActor
Module RSE, display name RSE Trap. A trap in the world (D-109): a pressure plate, a tripwire, a gas vent, an arrow trap (its Trap data).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Trap (GetTrap) | pure | RPG Saga|Exploration RPG | URSETrapData* | Get Trap | |
Get Trigger Radius (GetTriggerRadius) | pure | RPG Saga|Exploration RPG | float | The trap's size on the ground (cm): a party member touching it sets it off. | |
Is Armed (IsArmed) | pure | RPG Saga|Exploration RPG | bool | It can still go off (not disarmed, not spent). | |
Is Disarmed (IsDisarmed) | pure | RPG Saga|Exploration RPG | bool | Is Disarmed | |
Is Revealed (IsRevealed) | pure | RPG Saga|Exploration RPG | bool | Is Revealed | |
On Trap Disarmed (OnTrapDisarmed) | event | RPG Saga|Exploration RPG | Trap: ARSETrapActor*Member: URSECharacterData* | ||
On Trap Revealed (OnTrapRevealed) | event | RPG Saga|Exploration RPG | Trap: ARSETrapActor*Member: URSECharacterData* | ||
On Trap Triggered (OnTrapTriggered) | event | RPG Saga|Exploration RPG | Trap: ARSETrapActor*Member: URSECharacterData* | ||
Reset Trap (ResetTrap) | function | RPG Saga|Exploration RPG | Back to hidden and armed (editor button, dev tools). | ||
Reveal (Reveal) | function | RPG Saga|Exploration RPG | Member: URSECharacterData* | A member spotted it (Member null = found another way): the marker shows. | |
Set Off (SetOff) | function | RPG Saga|Exploration RPG | Victim: AActor* | Sets it off on Victim (a party pawn; null = the leader). | |
Try Disarm (TryDisarm) | function | RPG Saga|Exploration RPG | Member: URSECharacterData*bOutSuccess: bool (out) | bool | Tries to disarm it with Member (null = the best member able to). A failure may set it off (the trap's Failure Triggers). Returns false when nobody may try (then bOutSuccess is false too). |
ARSETraversalActor
Module RSE. A placed traversal link (D-121, docs/design/traversal.md): a ladder, a rope, a jump across a gap, a vault, a drop, a zip-line.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Direction From (GetDirectionFrom) | pure | RPG Saga|Traversal | Location: FVector (ref) | ERSETraversalDirection | The direction a body at Location would take: from the end nearer to it. |
Get Kind (GetKind) | pure | RPG Saga|Traversal | URSETraversalLinkKindData* | The kind in use: the actor's own, else the settings' default for its shape (GetDefaultKind). | |
Get World Path (GetWorldPath) | pure | RPG Saga|Traversal | Direction: ERSETraversalDirectionOutPoints: TArray<FVector> (out) | The link's points in the world (centimeters, feet positions), in the order a body takes them going Direction. | |
Is Bidirectional (IsBidirectional) | pure | RPG Saga|Traversal | bool | The link may be taken from the end point back to the start. | |
Set Kind (SetKind) | function | RPG Saga|Traversal | InKind: URSETraversalLinkKindData* | Sets the kind (scripts, level tools, tests). Null = the settings' default. | |
Set Ways (SetWays) | function | RPG Saga|Traversal | InWays: ERSETraversalWays | Sets which ways it may be taken. |
ARSETraversalLink
Module RSE. A generic placed link (D-121): Start Point, End Point and optional points in between, edited with the viewport widgets.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Set Link Points (SetLinkPoints) | function | RPG Saga|Traversal | InStart: FVectorInEnd: FVectorInVia: TArray<FVector> (ref) | Sets the points (local, centimeters): scripts, level tools, tests. |
ARSEWorldInteractable
Module RSE. A ready-made world object of the interaction library (D-150, docs/product/interaction-library.md): pick an Interactable Data asset (a chest, a campfire, a lantern, a signpost, a danger warning, an examine spot, a shrine, a gathering node, a viewpoint, an obstacle, a class-action object) and place it...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Danger Level (GetDangerLevel) | pure | RPG Saga|Interactables | float | How dangerous this place is (Danger Override, else the area's progression zone, else the settings' default). | |
Get Data (GetData) | pure | RPG Saga|Interactables | URSEInteractableData* | Get Data | |
Get State (GetState) | pure | RPG Saga|Interactables | FRSEInteractableSaveState | The saved state now. | |
Get Visual (GetVisual) | pure | RPG Saga|Interactables | ERSEInteractableVisual | The look now (Default, Active, Depleted). | |
On Reacted (OnReacted) | event | RPG Saga|Interactables | Interactable: ARSEWorldInteractable*Rule: FName | D-157: raised when an ability used on the world changed it (the rule's name). | |
On Used (OnUsed) | event | RPG Saga|Interactables | Interactable: ARSEWorldInteractable*Outcome: FRSEInteractableOutcome (ref) | Raised after every use on the authority (Blueprint and level scripting). | |
Refresh Now (RefreshNow) | function | Interactable | Re-reads the state and the clock and applies the look (live tuning). | ||
Set Data (SetData) | function | RPG Saga|Interactables | InData: URSEInteractableData* | Sets the kind (tools, Blueprint) and refreshes the look. |
ARSEZoneExit
Module RSE. A way to another map (D-044, docs/design/zones-travel.md): a road or a door with a destination map and arrival point.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Try Exit (TryExit) | function | RPG Saga|Travel | InteractingPawn: APawn* | ERSEZoneExitResult | Tries the exit for InteractingPawn's player through the Take Zone Exit command (D-138): on the authority, travel (after the question, if any; in co-op the group travel rule decides) or the blocked lines. On a guest the request goes to the host and the local evaluation is returned. |
URSEAIBattleBrain
Module RSECore. The AI state of one battle (D-056): per-unit boss phases and last stands, the team blackboards and the debugger's decision records.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Focus Target (GetFocusTarget) | pure | RPG Saga|AI | Team: FGameplayTag | int32 | The team's shared focus target, INDEX_NONE if none. |
Get Last Decision Record (GetLastDecisionRecord) | pure | RPG Saga|AI | OutRecord: FRSEAIDecisionRecord (out) | bool | The last AI decision of a unit with its scored options (debugger). |
Get Own Turns (GetOwnTurns) | pure | RPG Saga|AI | UnitId: int32 | int32 | Own turns a unit has started in this battle. |
Get Phase (GetPhase) | pure | RPG Saga|AI | UnitId: int32 | int32 | Boss phase of a unit: 0 = its base behaviour, N = the Nth phase entered. |
Get Support Threat (GetSupportThreat) | pure | RPG Saga|AI | Team: FGameplayTagEnemyId: int32 | float | Remembered threat of EnemyId to Team's Support units (tenths of their max HP). |
Get Team Value (GetTeamValue) | pure | RPG Saga|AI | Team: FGameplayTagKey: FNameDefault: float = 0.000000 | float | A value on a team's AI blackboard (custom AI rules share information through it). |
Set Team Value (SetTeamValue) | function | RPG Saga|AI | Team: FGameplayTagKey: FNameValue: float | Free blackboard values (custom Blueprint scorers can share state through them). |
URSEAIBlueprintLibrary
Module RSECore. Battle reads for Blueprint AI conditions and scorers (D-052, D-056): subclass URSEAICondition / URSEAIScorer in Blueprint, override IsMet / Score and query the battle through these nodes.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Are Enemies (AreEnemies) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitA: int32UnitB: int32 | bool | Whether two units are on different teams. |
Count Units (CountUnits) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)bAllies: boolMaxDistance: int32 = -1 | int32 | Active units on a side of the deciding unit within MaxDistance (negative = anywhere). Allies include the unit itself. |
Evaluate Scalar (EvaluateScalar) | pure, static | RPG Saga|AI | Scalar: FRSEAIScalar (ref)Intelligence: float | float | A profile's value of an AI scalar at an intelligence (configurator previews, custom scorers). |
Get Attribute (GetAttribute) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32Attribute: FGameplayTag | float | Final value of a unit's attribute (Stat.Attack, a derived or custom attribute). |
Get Context Battle (GetContextBattle) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref) | URSEBattle* | The battle of the context. |
Get Deciding Unit Id (GetDecidingUnitId) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref) | int32 | The unit deciding (the AI unit whose option is scored). |
Get Distance (GetDistance) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitA: int32UnitB: int32 | int32 | Distance between two units (tiles in Tactics, 0 in the classic modes). |
Get HPPercent (GetHPPercent) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32 | float | HP of a unit in percent of its maximum (0 if missing). |
Get Resource (GetResource) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32Resource: FGameplayTagOutPercent: float (out) | float | A resource of a unit (any configured resource: HP, MP, Resonance, Rage...): its value, and its percentage of the maximum. |
Get Target Id (GetTargetId) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref) | int32 | The option's primary target (-1 for team-level checks and phase triggers). |
Get Team Focus Target (GetTeamFocusTarget) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref) | int32 | The deciding unit's team focus target (INDEX_NONE if none). |
Get Unit (GetUnit) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32OutUnit: FRSEBattleUnit (out) | bool | A unit of the context's battle. False if it does not exist. |
Get Unit Ids (GetUnitIds) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)bAllies: bool | TArray<int32> | Active unit ids on a side of the deciding unit (allies include the unit itself). |
Has Status (HasStatus) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32Status: FGameplayTag | bool | Whether a unit has a status matching the tag. |
Is Weak To (IsWeakTo) | pure, static | RPG Saga|AI | Context: FRSEAIContext (ref)UnitId: int32Element: FGameplayTag | bool | Whether a unit is weak to an element. |
URSEAICondition
Module RSECore. A condition of an AI rule, a boss phase trigger or a composite (D-056).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Describe (Describe) | override | RPG Saga|AI | FString | Short text for the debugger and logs ("HP < 30% (Target)"). | |
Get Requirement Text (GetRequirementText) | override | RPG Saga|AI | FText | What the player reads when this condition keeps an ability disabled (D-082 Use Conditions): "Only below 30% HP", "Requires a Sword". Empty = no text of its own (the menu then shows a generic reason). | |
Is Met (IsMet) | override | RPG Saga|AI | Context: FRSEAIContext (ref) | bool | Whether the condition holds for the context (the unit deciding, the option's target). |
URSEAIDebugViewModel
Module RSE. In-game AI debugger (D-056): the last AI decision of the running battle (unit, profile, phase, intelligence, the best options with their score terms) and rank labels on the Tactics tiles.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Debugged Battle (GetDebuggedBattle) | pure | RPG Saga|UI|AIDebug | URSEBattle* | Get Debugged Battle | |
Toggle Debugger (ToggleDebugger) | function | RPG Saga|UI|AIDebug | Turns RSE.AI.Debug on or off. |
URSEAIDecisionPolicy
Module RSECore, display name Custom Decision Policy (Blueprint). D-168: the last word on a unit's decisions, for special enemies scripted without changing the AI.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Override Decision (OverrideDecision) | override | RPG Saga|AI | Context: FRSEAIContext (ref)Options: TArray<FRSEAIOptionView> (ref)ChosenIndex: int32OutIndex: int32 (out) | bool | Final choice. Options are best first; ChosenIndex is the utility's pick. Return true and set OutIndex to choose another option (an invalid index keeps the pick). Context: the unit deciding, the intelligence, the brain (TargetId empty). |
Override Target (OverrideTarget) | override | RPG Saga|AI | Context: FRSEAIContext (ref)Candidates: TArray<int32> (ref)OutTargetId: int32 (out) | bool | Target of the chosen ability. Candidates: every unit the same ability (or item) was scored on, from the same place, best first; Context.TargetId is the current target and Context.Ability the ability. Return true and set OutTargetId to aim it at another candidate (not a candidate = kept). |
URSEAIInterop
Module RSE. Our AI for the buyer's AI (D-175, docs/product/ai-interop.md): what the Behavior Tree tasks, decorators and services, and the StateTree companion's tasks call.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Actor Has Status (ActorHasStatus) | pure, static | RPG Saga|AI Interop | Actor: AActor*Status: FGameplayTag | bool | Actor's battle unit has a status that matches Status (parents match children). False outside a battle. |
Claim Battle Side (ClaimBattleSide) | function, static | RPG Saga|AI Interop | Controller: AAIController*Team: FGameplayTag | The AI controller becomes the brain of one side of the battle (Team): its tree plays that side's units, one at a time (Grid Tactics: the active unit; ATB: a ready unit), and the framework's AI leaves them alone. | |
Execute Decision (ExecuteDecision) | function, static | RPG Saga|AI Interop | Actor: AActor*Decision: FRSEAIInteropDecision (ref) | bool | Runs a decision picked for Actor on its battle (the authority). Returns true when the battle took it. |
Get Actor Battle Mode (GetActorBattleMode) | pure, static | RPG Saga|AI Interop | Actor: AActor*OutMode: ERSEAIInteropMode (out) | bool | The battle mode Actor's unit fights in. Returns false outside a battle. |
Is Actor in Battle (IsActorInBattle) | pure, static | RPG Saga|AI Interop | Actor: AActor* | bool | Actor is a unit of a running battle (a live Free Tactics battle, or one a project registered). |
Is Actors Turn (IsActorsTurn) | pure, static | RPG Saga|AI Interop | Actor: AActor* | bool | It is Actor's unit's turn in its battle. |
Pick Best Action For (PickBestActionFor) | function, static | RPG Saga|AI Interop | Actor: AActor*Intelligence: floatOutDecision: FRSEAIInteropDecision (out) | bool | What our AI would do with Actor's turn now. Intelligence negative = the battle's own (false when the battle states none: pass a value 0-1). Read it, then call Execute Decision, or act on it yourself. |
Release Battle Side (ReleaseBattleSide) | function, static | RPG Saga|AI Interop | Controller: AAIController* | The side goes back to the framework's AI. |
URSEAIScorer
Module RSECore. A custom consideration added to the score of every ability option (D-056): Weight x Score(context).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Score (Score) | override | RPG Saga|AI | Context: FRSEAIContext (ref) | float | Raw value of the option in Context (the option's target and ability are set). |
URSEAIStyleLibrary
Module RSECore. D-168: building AI styles without code (the AI Style wizard, scripts and tests use the same functions).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Sliders (ApplySliders) | function, static | RPG Saga|AI | Profile: URSEAIProfile*Sliders: FRSEAIStyleSliders (ref) | Turns the sliders into Profile's weights. Profile must hold the base style's values (a copy of it): the sliders scale them, so applying twice compounds. Stores Sliders in Profile->StyleSliders. | |
Make Boss Phase (MakeBossPhase) | pure, static | RPG Saga|AI | Step: FRSEAIBossStep (ref) | FRSEAIPhase | The boss phase a simple step stands for. |
Make Boss Step (MakeBossStep) | pure, static | RPG Saga|AI | Phase: FRSEAIPhase (ref) | FRSEAIBossStep | A phase as a simple step (its first trigger and first summon; what a step cannot express is left out). |
Set Boss Steps (SetBossSteps) | function, static | RPG Saga|AI | Profile: URSEAIProfile*Steps: TArray<FRSEAIBossStep> (ref) | Replaces Profile's phases with Steps (in order) and marks it a boss style. Empty Steps keeps no phases. |
URSEATBHUDViewModel
Module RSE. The classic battle HUD (ATB and turn-based, D-021 / D-022 / D-050, D-052): party rows with resources and gauges, enemy chips, command menu, target preview and marker, time mode or round, turn order strip, log, banner, key prompts.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Choose Command (ChooseCommand) | function | RPG Saga|UI|Battle HUD | Index: int32 | Choose Command | |
Choose Target (ChooseTarget) | function | RPG Saga|UI|Battle HUD | UnitId: int32 | While a target is chosen: aims at UnitId and confirms (click on its chip). | |
Choose Target Entry (ChooseTargetEntry) | function | RPG Saga|UI|Battle HUD | Index: int32 | While a target is chosen: picks target list entry Index and confirms (click on the row). | |
Hover Command (HoverCommand) | function | RPG Saga|UI|Battle HUD | Index: int32 | Hover Command | |
Hover Target (HoverTarget) | function | RPG Saga|UI|Battle HUD | UnitId: int32 | While a target is chosen: aims at UnitId (mouse over its chip). | |
Hover Target Entry (HoverTargetEntry) | function | RPG Saga|UI|Battle HUD | Index: int32 | While a target is chosen: puts the cursor on target list entry Index (mouse over the row). | |
Toggle Time Mode (ToggleTimeMode) | function | RPG Saga|UI|Battle HUD | Switches Wait / Active (the hint's key does the same). |
URSEAbilityReaction
Module RSECore, display name Reaction. An automatic response of a unit (D-055): counterattack, overwatch, on-hit / on-death triggers.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Trigger (CanTrigger) | override | RPG Saga|Abilities|Reactions | Battle: URSEBattle*ReactorId: int32TriggerUnitId: int32 | bool | Custom rule on top of the fields above (Blueprint subclasses). Default: true. |
URSEAbilityTestLibrary
Module RSECore. Test ability (D-167): runs an ability headless in mini battles and measures it.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Ability Test Report to Text (AbilityTestReportToText) | pure, static | RPG Saga|Abilities|Test | Report: FRSEAbilityTestReport (ref) | FString | The report as plain text (logs, Python, copy to clipboard). |
Get Ability Test Presets (GetAbilityTestPresets) | pure, static | RPG Saga|Abilities|Test | TArray<FRSEAbilityTestPreset> | The target presets of Ability Test settings. | |
Make Ability Test Request (MakeAbilityTestRequest) | pure, static | RPG Saga|Abilities|Test | Ability: URSEAbilityData*Mode: FGameplayTag | FRSEAbilityTestRequest | A request for Ability with the settings' defaults (caster, default preset, Tactics, default level and runs). |
Resolve Test Character (ResolveTestCharacter) | pure, static | RPG Saga|Abilities|Test | Source: URSEPrimaryDataAsset* | URSECharacterData* | The character a test unit source stands for: the character itself, or an archetype's template character. |
Run Ability Test (RunAbilityTest) | function, static | RPG Saga|Abilities|Test | Request: FRSEAbilityTestRequest (ref) | FRSEAbilityTestReport | Uses Request.Ability Runs times, each in a fresh mini battle of the chosen mode (seed Seed + run), from the caster on its targets, and measures it: hits, damage and healing ranges, statuses with the chance that landed, costs, the area, and a step-by-step trace of the first run. Headless and deterministic: the same request always gives the same report. |
URSEActionAIController
Module RSECore. The real-time AI of action battles (A2, D-171; docs/design/action-battle.md): the shared utility AI (profiles, roles, scorers, gates, intelligence curves, rules, boss phases, the Decision Policy hook) adapted to real time.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Party Order (ApplyPartyOrderBP) | function | RPG Saga|Action AI | Command: FRSEActionPartyOrderCommand (ref)OutReason: FText (out) | bool | Blueprint form of ApplyPartyOrder. |
Get Battle (GetBattle) | pure | RPG Saga|Action AI | URSEActionBattle* | Get Battle | |
Get Intelligence (GetIntelligence) | pure | RPG Saga|Action AI | UnitId: int32 | float | The intelligence a unit decides with: its team's, else the party's (Action AI -> Party Intelligence) or Default Intelligence. |
Get Intent (GetIntent) | pure | RPG Saga|Action AI | UnitId: int32OutIntent: FRSEActionAIIntent (out) | bool | The unit's current decision. Returns false when there is none. |
Get Leader (GetLeader) | pure | RPG Saga|Action AI | UnitId: int32 | int32 | The unit a member's order refers to (the issuing player's unit), INDEX_NONE if none. |
Get Party Order (GetPartyOrder) | pure | RPG Saga|Action AI | UnitId: int32 | ERSEActionPartyOrder | A member's order (Action AI -> Default Party Order until one is given). |
Get Unit Memory (GetMemoryBP) | pure | RPG Saga|Action AI | UnitId: int32OutMemory: FRSEActionAIUnitMemory (out) | bool | Memory of a unit. Returns false if the controller never saw it. |
Initialize (Initialize) | function | RPG Saga|Action AI | InBattle: URSEActionBattle*SeedSalt: int32 = 0 | Starts driving Battle. SeedSalt: mixed into the battle's seed (two controllers on one battle decide independently). | |
Is Driving (IsDriving) | pure | RPG Saga|Action AI | UnitId: int32 | bool | Whether the AI drove the unit on the last step. |
Request Decision (RequestDecision) | function | RPG Saga|Action AI | UnitId: int32 | Makes the unit decide again on the next Think (a script moved it, its target changed). | |
Run (Run) | function | RPG Saga|Action AI | MaxSeconds: float | bool | Runs the battle (Think, then one step) until it ends or MaxSeconds of battle time pass. Returns true when it ended. |
Set Party Order (SetPartyOrder) | function | RPG Saga|Action AI | UnitId: int32Order: ERSEActionPartyOrderIssuer: FRSEPlayerId | bool | Orders one party member (host side; guests go through FRSEActionPartyOrderCommand). Returns false for an invalid unit. |
Set Team Intelligence (SetTeamIntelligence) | function | RPG Saga|Action AI | Team: FGameplayTagIntelligence: float | Intelligence (0-1, D-007) of a team's units (the adaptive value of the side it plays). | |
Set Team Party Order (SetTeamPartyOrder) | function | RPG Saga|Action AI | Team: FGameplayTagOrder: ERSEActionPartyOrderIssuer: FRSEPlayerId | int32 | Orders every member of Team. Returns how many were ordered. |
Think (Think) | function | RPG Saga|Action AI | Decides, executes and reacts for every driven unit (call before every battle step; host only). |
URSEActionAgent
Module RSE. RSE Action Agent
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Accept Action Order (CanAcceptActionOrder) | override | RPG Saga|Action Agent | bool | The pawn can take an order now (alive, not stunned, not locked in an animation). The AI waits when it cannot. | |
Get Action Battle Control (GetActionBattleControl) | override | RPG Saga|Action Agent | ERSEActionAgentControl | Who plays this pawn's unit in an action battle: the framework's AI (default), or the pawn's own brain. Read when the unit joins. | |
Is Busy with Order (IsBusyWithOrder) | override | RPG Saga|Action Agent | bool | An order is still being carried out (a walk in progress, an ability playing). | |
On Action Battle Joined (OnActionBattleJoined) | override | RPG Saga|Action Agent | UnitId: int32 | The pawn's unit joined an action battle (UnitId is its id there; the nodes find it from the pawn, this is for Blueprint brains). | |
On Action Battle Left (OnActionBattleLeft) | override | RPG Saga|Action Agent | The action battle ended (or the unit left it). | ||
Order Move To (OrderMoveTo) | override | RPG Saga|Action Agent | WorldLocation: FVector (ref)AcceptanceRadius: float | bool | Walk (or run) to WorldLocation and stop within AcceptanceRadius (cm). Returns true when the pawn took the order. |
Order Stop (OrderStop) | override | RPG Saga|Action Agent | Cancels the order in progress (movement and a started ability that can still be cancelled). | ||
Order Use Ability (OrderUseAbility) | override | RPG Saga|Action Agent | Ability: URSEAbilityData*TargetActor: AActor*TargetLocation: FVector (ref) | bool | Use Ability on TargetActor (null: at TargetLocation, a point in the world). The pawn plays it with its own animation and combat code. Returns true when the pawn took the order. |
URSEActionAgents
Module RSE. The action agent of an actor: the actor itself when it implements IRSEActionAgent, else its component that does.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Agent Use Ability (AgentUseAbility) | function, static | RPG Saga|Action Agent | Actor: AActor*Ability: URSEAbilityData*TargetActor: AActor*TargetLocation: FVector | bool | Orders Actor's agent to use an ability. Returns false when Actor is not an agent or it did not take the order. |
Can Agent Accept Order (CanAgentAcceptOrder) | pure, static | RPG Saga|Action Agent | Actor: AActor* | bool | The agent can take an order now (false for a non-agent). |
Find Action Agent (FindActionAgent) | pure, static | RPG Saga|Action Agent | Actor: AActor* | UObject* | The object that answers IRSEActionAgent for Actor (the actor, or its component), or null. |
Get Battle Control (GetBattleControl) | pure, static | RPG Saga|Action Agent | Actor: AActor* | ERSEActionAgentControl | Who plays Actor's unit in action battles (Framework for a non-agent). |
Is Action Agent (IsActionAgent) | pure, static | RPG Saga|Action Agent | Actor: AActor* | bool | Actor implements the interface itself or through a component. |
Is Agent Busy (IsAgentBusy) | pure, static | RPG Saga|Action Agent | Actor: AActor* | bool | The agent is still carrying out an order (false for a non-agent). |
Move Agent To (MoveAgentTo) | function, static | RPG Saga|Action Agent | Actor: AActor*WorldLocation: FVectorAcceptanceRadius: float = 50.000000 | bool | Orders Actor's agent to move. Returns false when Actor is not an agent or it did not take the order. |
Stop Agent (StopAgent) | function, static | RPG Saga|Action Agent | Actor: AActor* | Stops Actor's agent. |
URSEActionBattle
Module RSECore. Headless real-time action battle (D-171, docs/design/action-battle.md): the sixth battle mode, from sword fights to RPG shooters, on the same party, abilities, items, damage pipeline, statuses (control statuses included, D-167) and objectives as the other modes (URSEBattle).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Advance (Advance) | function | RPG Saga|Action Battle | DeltaSeconds: float | Advances simulated time in fixed steps (the remainder is kept for the next call). | |
Assign Controller (AssignController) | function | RPG Saga|Action Battle | UnitId: int32Player: FRSEPlayerId | Gives Player command of a unit (the driver at the start; None = the AI). No event. | |
Can Use Ability (CanUseAbility) | pure | RPG Saga|Action Battle | UnitId: int32Ability: URSEAbilityData* | ERSEActionCommandResult | Whether UnitId could use Ability now (ignoring targets): busy, statuses, cooldown or gauge, stamina, costs, requirements. |
Execute Command (ExecuteCommand) | function | RPG Saga|Action Battle | Command: FRSEActionCommand (ref) | ERSEActionCommandResult | Validates and applies one decision (the only way a controller changes the battle). Ok / Queued = accepted. |
Get Action State (GetActionStateBP) | pure | RPG Saga|Action Battle | UnitId: int32OutState: FRSEActionUnitState (out) | bool | The real-time state of a unit. Returns false for an unknown unit. |
Get Attack Reach (GetAttackReach) | pure | RPG Saga|Action Battle | UnitId: int32 | float | How far a unit's plain attack reaches (combo step hitbox, fire mode range or the basic attack's reach), for AI and HUDs. |
Get Claim Count (GetClaimCount) | pure | RPG Saga|Action Battle | Result: ERSEActionClaimResult | int32 | How many hit claims ended with Result so far (accepted ones as Accepted; anti-abuse statistics). |
Get Controlled Unit (GetControlledUnit) | pure | RPG Saga|Action Battle | Player: FRSEPlayerId | int32 | The unit Player commands (INDEX_NONE if none). |
Get Cooldown Remaining (GetCooldownRemaining) | pure | RPG Saga|Action Battle | UnitId: int32Ability: URSEAbilityData* | float | Seconds until Ability is ready for UnitId again (0 = ready, or not on cooldown pacing). |
Get Elapsed Time (GetElapsedTime) | pure | RPG Saga|Action Battle | float | Battle seconds simulated so far. | |
Get Last Claim Check (GetLastClaimCheck) | pure | RPG Saga|Action Battle | FRSEActionClaimCheck | What the last hit claim the battle applied or refused found (tests, logs, the HUD's "miss"). | |
Get Obstacles (GetObstacles) | pure | RPG Saga|Action Battle | TArray<FRSEActionObstacle> | The obstacles of the headless space (see SetObstacles). | |
Get Projectiles (GetProjectiles) | pure | RPG Saga|Action Battle | TArray<FRSEActionProjectile> | Projectiles in flight. | |
Get Resolved Rules (GetResolvedRules) | pure | RPG Saga|Action Battle | Ability: URSEAbilityData* | FRSEAbilityActionRules | The action rules Ability uses in this battle (its own, or derived from its other rules). |
Get Unit Controller (GetUnitController) | pure | RPG Saga|Action Battle | UnitId: int32 | FRSEPlayerId | The player commanding a unit (None = the AI). |
Get Unit Gap (GetUnitGap) | pure | RPG Saga|Action Battle | UnitA: int32UnitB: int32 | float | Edge-to-edge distance between two units on the ground plane (meters; a large value when one is missing). |
Get Unit Move Speed (GetUnitMoveSpeed) | pure | RPG Saga|Action Battle | UnitId: int32 | float | Walking speed of a unit when the battle moves it itself (meters per second; 0 for an unknown unit). |
Get Unit Place At (GetUnitPlaceAt) | pure | RPG Saga|Action Battle | UnitId: int32Time: floatOutLocation: FVector (out)OutYaw: float (out) | bool | A unit's place at a battle time from the host's position history (A6). Returns false without history for the unit. |
Is Open Flow (IsOpenFlow) | pure | RPG Saga|Action Battle | bool | No results screen in this framing (Open): the presentation shows loot toasts instead. | |
Set Auto Resolve Hits (SetAutoResolveHits) | function | RPG Saga|Action Battle | bAuto: bool | On (default): the battle tests its own hit shapes. Off: hits come only from hit claims (the presentation's traces). | |
Set Battle Area (SetBattleArea) | function | RPG Saga|Action Battle | Center: FVector (ref)Radius: float = 0.000000 | The combat area of a Bounded battle (center; radius 0 = the rules' Bounded Area Radius). | |
Set Obstacles (SetObstacles) | function | RPG Saga|Action Battle | InObstacles: TArray<FRSEActionObstacle> (ref) | Round obstacles of the headless space (A2): units walk around them, shots and projectiles stop at the ones that block shots, the AI uses them as cover. Only read while the battle moves units / resolves hits itself; the presentation's world has its own geometry and leaves this empty. | |
Set Simulate Movement (SetSimulateMovement) | function | RPG Saga|Action Battle | bSimulate: bool | On (default): the battle moves units from their move input and dodges (headless). Off: the presentation reports places. | |
Set Unit Transform (SetUnitTransform) | function | RPG Saga|Action Battle | UnitId: int32Location: FVector (ref)Yaw: float | The presentation reports where a unit's pawn stands (authority only; ignored on a proxy). Call it every frame or step while Simulate Movement is off. | |
Set Unit Weapon (SetUnitWeapon) | function | RPG Saga|Action Battle | UnitId: int32Weapon: URSEActionWeaponData* | Gives a unit an action weapon for this battle (null = back to its equipment / the default). |
URSEActionBattleSubsystem
Module RSE. Action battles on the live map (D-171, package A3): starts them where the party stands (an Action encounter from exploration: a trigger, a story effect, a dev command), gathers who takes part (the leader, the party members nearby, the encounter's enemies in the world or in front of the party), owns...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Active Director (GetActiveDirector) | pure | RPG Saga|Action Battle | ARSEActionBattleDirector* | The director of the running battle (authority or guest), or null. | |
Is Battle Active (IsBattleActive) | pure | RPG Saga|Action Battle | bool | Is Battle Active | |
Start Encounter Battle (StartEncounterBattle) | function | RPG Saga|Action Battle | Encounter: URSEEncounterData*EnemyActors: TArray<AActor*> (ref)Source: AActor* = NoneReturnPoint: AActor* = None | bool | Starts an action battle with Encounter's enemies where the party stands. EnemyActors stand for its enemies in order; missing ones appear in front of the party. Source gets the exploration's callback; ReturnPoint (optional) is where the explorer stands afterwards. Returns false when a battle cannot start now. |
URSEActionCombatComponent
Module RSE, display name RSE Action Combat. "RSE Action Combat" (D-171, package A3; docs/product/components.md): what a character does in real-time action battles, on any pawn (our characters, a project's own Blueprint characters through IRSEExplorerPawn).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Action Combat (FindActionCombat) | pure, static | RPG Saga|Action Battle | Actor: AActor* | URSEActionCombatComponent* | The action combat component of Actor, or null. |
Get Character Mesh (GetCharacterMesh) | pure | RPG Saga|Action Battle | USkeletalMeshComponent* | The character's main skeletal mesh (the character's mesh, else its first skeletal mesh). | |
Get Director (GetDirector) | pure | RPG Saga|Action Battle | ARSEActionBattleDirector* | Get Director | |
Get Muzzle Location (GetMuzzleLocation) | pure | RPG Saga|Action Battle | FVector | Where this character's shots start now (world). | |
Get Unit Id (GetUnitId) | pure | RPG Saga|Action Battle | int32 | The unit this character is in the running action battle (INDEX_NONE outside one). | |
Is Hit Window Open (IsHitWindowOpen) | pure | RPG Saga|Action Battle | bool | An attack of this character can land now (its hit window is open). | |
Is in Action Battle (IsInActionBattle) | pure | RPG Saga|Action Battle | bool | Is in Action Battle | |
On Action Event (OnActionEvent) | event | RPG Saga|Action Battle | Event: FRSEBattleEvent (ref) | Every battle event about this character (it acts, it is hit, it guards...), after the component reacted. | |
On Hit Claimed (OnHitClaimed) | event | RPG Saga|Action Battle | Victim: AActor*Location: FVector | This machine claimed a hit of this character's attack (the host decides whether it lands). |
URSEActionControlsComponent
Module RSE, display name RSE Action Controls. "RSE Action Controls" (D-171, package A3): one local player's controls in an action battle, on their player controller.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Look (AddLook) | function | RPG Saga|Action Battle | YawDegrees: floatPitchDegrees: float | Turns the view (degrees). | |
Cycle Party Order (CyclePartyOrder) | function | RPG Saga|Action Battle | bool | Gives the party the next order of Party Order Cycle (after the last one this player gave). | |
Find Action Controls (FindActionControls) | pure, static | RPG Saga|Action Battle | Controller: APlayerController* | URSEActionControlsComponent* | The controls of Controller (null when it has none). |
Get Camera Rig (GetCameraRig) | pure | RPG Saga|Action Battle | ARSEActionCameraRig* | Get Camera Rig | |
Get Controlled Unit (GetControlledUnit) | pure | RPG Saga|Action Battle | int32 | The unit this player commands now (INDEX_NONE without one). | |
Get Last Party Order (GetLastPartyOrder) | pure | RPG Saga|Action Battle | ERSEActionPartyOrder | The last party order this player gave (the rules' Default Party Order before any). | |
Get Lock Target (GetLockTarget) | pure | RPG Saga|Action Battle | int32 | The hard-locked unit (INDEX_NONE = none). | |
Get Mapping Context (GetMappingContext) | pure | RPG Saga|Action Battle | UInputMappingContext* | The mapping context the controls use (built from the settings' keys unless one is set there). | |
Get Selectable Abilities (GetSelectableAbilities) | pure | RPG Saga|Action Battle | TArray<URSEAbilityData*> | The abilities the selection cycles through (the controlled unit's, without its basic attack). | |
Get Selected Ability (GetSelectedAbility) | pure | RPG Saga|Action Battle | URSEAbilityData* | Get Selected Ability | |
Get Soft Target (GetSoftTarget) | pure | RPG Saga|Action Battle | int32 | The enemy an attack would turn to now without a hard lock (INDEX_NONE = none). | |
Is Action Input Active (IsActionInputActive) | pure | RPG Saga|Action Battle | bool | The action mapping context is active for this player. | |
Is Aiming (IsAiming) | pure | RPG Saga|Action Battle | bool | Is Aiming | |
Is Guarding (IsGuarding) | pure | RPG Saga|Action Battle | bool | Is Guarding | |
Issue Party Order (IssuePartyOrder) | function | RPG Saga|Action Battle | Order: ERSEActionPartyOrderUnitId: int32 = -1 | bool | Gives a party order (A2) as this player: UnitId INDEX_NONE = every member the AI drives on the player's side. Goes through the command bus (a guest's to the host); Co-op Rules -> Companion Orders decides who may order whom. Returns true when applied (or forwarded by a guest). |
Lock on Unit (LockOnUnit) | function | RPG Saga|Action Battle | TargetUnitId: int32 | bool | Hard lock on a unit (INDEX_NONE releases). Returns whether the battle accepted it. |
On Action Input (OnActionInput) | event | RPG Saga|Action Battle | Input: ERSEActionInputbPressed: bool | Every input of this player (Blueprint reactions, tutorials). | |
On Party Order Issued (OnPartyOrderIssued) | event | RPG Saga|Action Battle | Order: ERSEActionPartyOrderbAccepted: bool | A party order this player gave (HUD feedback, tutorials). | |
Press Input (PressInput) | function | RPG Saga|Action Battle | Input: ERSEActionInputbPressed: bool = true | Presses (or releases) an input as if its key did. | |
Switch Character (SwitchCharacter) | function | RPG Saga|Action Battle | Direction: int32 = 1 | bool | Takes command of the next party member (Direction > 0) or the previous. |
Switch Target (SwitchTarget) | function | RPG Saga|Action Battle | Direction: int32 | bool | The next target to the right (Direction > 0) or left. |
Toggle Lock On (ToggleLockOn) | function | RPG Saga|Action Battle | bool | Locks on the best target (or releases the lock). Returns true when locked now. |
URSEActionInterop
Module RSE. AI interop for action battles (D-175 / D-171, package B2): what the Behavior Tree nodes, the StateTree nodes and Blueprints call to play a unit of a real-time battle with the project's own brain: attacks, abilities, dodge / block / parry, walking to and keeping a range, and the questions those decis...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Action Attack (ActionAttack) | function, static | RPG Saga|Action Interop | Actor: AActor*Target: AActor*bHeavy: bool = false | bool | The actor's unit starts the weapon's attack on Target (lock-on, facing, combo step or shot). Returns true when the battle took it. |
Action Block (ActionBlock) | function, static | RPG Saga|Action Interop | Actor: AActor*bRaise: bool | bool | The actor's unit raises or lowers its guard. |
Action Dodge (ActionDodge) | function, static | RPG Saga|Action Interop | Actor: AActor*WorldDirection: FVector | bool | The actor's unit dodges toward a world direction (zero = away from the incoming attack). |
Action Has Incoming Threat (ActionHasIncomingThreat) | pure, static | RPG Saga|Action Interop | Actor: AActor*MaxSecondsToHit: float = 0.000000 | bool | An attack is on its way to the actor's unit that it has not answered yet. |
Action Is Target in Reach (ActionIsTargetInReach) | pure, static | RPG Saga|Action Interop | Actor: AActor*Target: AActor*Ability: URSEAbilityData*MarginCm: float = 0.000000 | bool | The actor's weapon (or the ability) reaches Target from where they stand. |
Action Parry (ActionParry) | function, static | RPG Saga|Action Interop | Actor: AActor* | bool | The actor's unit opens a parry window. |
Action Set Own AI (ActionSetOwnAI) | function, static | RPG Saga|Action Interop | Actor: AActor*bOwnAI: bool | bool | The actor's unit is played by the project's own brain (true) or by the framework's action AI (false). |
Action Use Ability (ActionUseAbility) | function, static | RPG Saga|Action Interop | Actor: AActor*Ability: URSEAbilityData*Target: AActor*Location: FVector | bool | The actor's unit uses an ability on Target (or at Location). Returns true when the battle took it. |
URSEActionRules
Module RSECore, display name Action Battle. Real-time action battles (D-171, docs/design/action-battle.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Preset (ApplyPreset) | function | RPG Saga|Action Battle | Preset: ERSEActionPreset | Sets every rule to a shipped starting point (Melee, Shooter, Hybrid). The weapon is left as it is. |
URSEActionSimDriver
Module RSE. The server side of an action battle (D-171, package A3; the D-141 split of the live battles): owns the headless battle (URSEActionBattle) and runs it on the authority only (single player, the host).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get AI (GetAI) | pure | RPG Saga|Action Battle | URSEActionAIController* | The real-time AI of this battle (null before BeginBattle and after EndBattle). | |
Get Battle (GetBattle) | pure | RPG Saga|Action Battle | URSEActionBattle* | Get Battle |
URSEAppLifecycleSubsystem
Module RSE. The game's reaction to platform events (D-170), in each game world: listens to URSEPlatformUserSubsystem (RSECore) and - controller disconnect of the primary user: pauses the world (through URSETimeControlSubsystem, so co-op never pauses for everyone) and opens the reconnect screen (Platform ->...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Reconnect View Model (GetReconnectViewModel) | pure | RPG Saga|Platform | URSEReconnectViewModel* | The reconnect screen's view-model while it is open (null otherwise). | |
Hide Reconnect Prompt (HideReconnectPrompt) | function | RPG Saga|Platform | Closes the reconnect screen and releases its pause. | ||
Is Paused for Platform (IsPausedForPlatform) | pure | RPG Saga|Platform | bool | This subsystem holds a world pause request now (disconnect or suspend). | |
Is Reconnect Prompt Open (IsReconnectPromptOpen) | pure | RPG Saga|Platform | bool | The reconnect screen is open. | |
On Reconnect Prompt Changed (OnReconnectPromptChanged) | event | RPG Saga|Platform | bOpen: bool | The reconnect screen opened or closed. | |
On Return to Title Requested (OnReturnToTitleRequested) | event | RPG Saga|Platform | The primary user signed out (Platform -> Return To Title On Sign Out): bind it to show a message first. | ||
Show Reconnect Prompt (ShowReconnectPrompt) | function | RPG Saga|Platform | bool | Opens the reconnect screen and pauses (also for a buyer's own flows). Returns true when it is open. |
URSEAppearanceComponent
Module RSE. Builds a modular character on its actor from a URSECharacterAppearance (D-046): the leader skeletal mesh with the Anim Blueprint, follower skeletal parts copying its pose (leader pose), static parts on sockets, material variants, and the visible parts of the equipment worn.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Rebuild (Rebuild) | function | Appearance | Loads (if needed) and builds again. Editor preview too. |
URSEArchetype
Module RSECore. A template content is made from (D-095, docs/design/studio.md section 6): "Knight", "Goblin", "Merchant", "Healing spell".
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Ensure Template (EnsureTemplate) | function | RPG Saga|Archetypes | Creates the Template (of Content Class, else the base class) when it is missing or of the wrong class. | ||
Get Parent Archetype (GetParentArchetype) | pure | RPG Saga|Archetypes | URSEArchetype* | The parent archetype (loaded), or null. | |
Has Parent Cycle (HasParentCycle) | pure | RPG Saga|Archetypes | bool | The parent chain loops back (A -> B -> A). |
URSEArchetypeLibrary
Module RSECore. Archetype inheritance (D-095, docs/design/studio.md section 6 and section 16): creating content from an archetype, per-field overrides, propagation that asks first (a report with per-asset changes, applied only to the assets the designer checks, overridden fields never touched), "Reset to archetype"...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Propagation (ApplyPropagation) | function, static | RPG Saga|Archetypes | Archetype: URSEArchetype*Selected: TArray<UObject*> (ref) | FRSEArchetypeApplyResult | Propagates Archetype to the Selected assets only (the checked rows): copies the archetype's value of every inherited field that differs. Overridden fields are never written. The differences are recomputed, so a stale report cannot overwrite anything. Modified assets are marked dirty; child archetypes that changed are listed for propagating next. |
Compute Propagation (ComputePropagation) | function, static | RPG Saga|Archetypes | Archetype: URSEArchetype*Candidates: TArray<UObject*> (ref) | FRSEArchetypePropagationReport | What propagating Archetype would do to Candidates (content assets and child archetypes; others are ignored): per asset, the inherited fields that would change and the overridden fields that differ but are kept. Changes nothing. |
Detach from Archetype (DetachFromArchetype) | function, static | RPG Saga|Archetypes | Asset: UObject* | bool | Removes the archetype link; the asset keeps its current values and stops following the archetype. |
Get Archetype (GetArchetype) | pure, static | RPG Saga|Archetypes | Asset: UObject* | URSEArchetype* | The archetype Asset inherits from (content: its archetype; archetype: its parent), loaded; null when none. |
Get Archetype Link (GetArchetypeLink) | pure, static | RPG Saga|Archetypes | Asset: UObject* | FRSEArchetypeLink | The link of Asset (empty when it has none, or in cooked builds). |
Get Field Value Text (GetFieldValueText) | pure, static | RPG Saga|Archetypes | Asset: UObject*Field: FName | FString | Short text of a field's value on Asset (a content asset or an archetype's Template), for lists and reports. |
Get Inheritable Fields (GetInheritableFields) | pure, static | RPG Saga|Archetypes | Asset: UObject* | TArray<FName> | Fields Asset can inherit from its archetype (empty without an archetype). |
Get Out Of Date Fields (GetOutOfDateFields) | pure, static | RPG Saga|Archetypes | Asset: UObject* | TArray<FName> | Inherited fields whose value differs from the archetype's (the archetype changed and was not propagated yet). |
Initialize from Archetype (InitializeFromArchetype) | function, static | RPG Saga|Archetypes | Content: UObject*Archetype: URSEArchetype* | bool | Makes Content inherit from Archetype: links it, clears its overrides and copies every archetype field (identity fields listed in Non Inherited Fields are copied once, and only when Content has not set them). Content must be of the archetype's content class (or a subclass). False (and a warning) when it is not, or when Content is itself an archetype (use Set Parent Archetype). |
Is Field Inherited (IsFieldInherited) | pure, static | RPG Saga|Archetypes | Asset: UObject*Field: FName | bool | The field comes from the archetype (Asset has one, the field is inheritable and not overridden): shown greyed. |
Is Field Overridden (IsFieldOverridden) | pure, static | RPG Saga|Archetypes | Asset: UObject*Field: FName | bool | The author changed this field on Asset (propagation keeps it). |
Keep Differences as Overrides (KeepDifferencesAsOverrides) | function, static | RPG Saga|Archetypes | Asset: UObject* | TArray<FName> | Marks every inherited field that differs from the archetype as overridden ("keep my edits"). Returns the fields. |
Reset All Fields to Archetype (ResetAllFieldsToArchetype) | function, static | RPG Saga|Archetypes | Asset: UObject* | bool | Resets every inheritable field (all overrides dropped). |
Reset Field to Archetype (ResetFieldToArchetype) | function, static | RPG Saga|Archetypes | Asset: UObject*Field: FName | bool | "Reset to archetype": copies the archetype's value of Field and makes the field inherited again. |
Set Field Overridden (SetFieldOverridden) | function, static | RPG Saga|Archetypes | Asset: UObject*Field: FNamebOverridden: bool | bool | Marks a field overridden (kept by propagation) or inherited again (the value stays until the next propagation). |
Set Parent Archetype (SetParentArchetype) | function, static | RPG Saga|Archetypes | Child: URSEArchetype*Parent: URSEArchetype* | bool | Makes Child derive from Parent (its Template inherits Parent's Template), or detaches it when Parent is null. Refused when the classes do not fit or the chain would loop. |
Set Template from Content (SetTemplateFromContent) | function, static | RPG Saga|Archetypes | Archetype: URSEArchetype*Source: URSEPrimaryDataAsset* | bool | Copies Source (content of the archetype's kind) into Archetype's Template: "make an archetype from this". |
Validate Archetype Link (ValidateArchetypeLink) | function, static | RPG Saga|Archetypes | Asset: UObject*OutErrors: TArray<FText> (out)OutWarnings: TArray<FText> (out) | bool | Problems of Asset's archetype link: missing archetype, wrong class, unknown overridden fields, parent loops. |
URSEAreaMapViewModel
Module RSE. The full area map screen (D-089, D-092): pan, zoom, legend with category filters, region names, the player, quest objectives and player pins placed with the pin wheel.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate Marker (ActivateMarker) | function | RPG Saga|Map | Marker: FRSEMapMarkerView (ref) | bool | A marker was clicked: an objective opens its quest in the journal (settings). Returns true when it did something. |
Aim Pin Wheel (AimPinWheel) | function | RPG Saga|Map | Offset: FVector2D | Picks the slice an offset points at (wheel radii, screen axes), e.g. the stick or the mouse from the wheel's center. | |
Cancel Pin Wheel (CancelPinWheel) | function | RPG Saga|Map | Cancel Pin Wheel | ||
Center On (CenterOn) | function | RPG Saga|Map | UV: FVector2D | Moves the view so that UV is at the center. | |
Center on Player (CenterOnPlayer) | function | RPG Saga|Map | Center on Player | ||
Confirm Pin Wheel (ConfirmPinWheel) | function | RPG Saga|Map | bool | Applies the selected slice (a new pin, a new type or remove) and closes the wheel. Returns true when applied. | |
Find Pin At (FindPinAt) | pure | RPG Saga|Map | UV: FVector2D | int32 | The pin under UV (within the pick radius at the current zoom), or 0. |
Focus Quest (FocusQuest) | function | RPG Saga|Map | Quest: URSEQuestData* | bool | Centers the view on a quest's objective (journal "Show on map"). Returns false when it has none on this level. |
Get View Span (GetViewSpan) | pure | RPG Saga|Map | float | Visible map span in map units (across the view's shorter side). | |
Is Category Shown (IsCategoryShown) | pure | RPG Saga|Map | Category: FGameplayTag | bool | Is Category Shown |
Open Pin Wheel (OpenPinWheel) | function | RPG Saga|Map | UV: FVector2D | bool | Opens the pin wheel at UV (map coordinates): the pin types, plus Remove when a pin is there. |
Pan (Pan) | function | RPG Saga|Map | Delta: FVector2D | Moves the view by Delta (in view widths: 1 = one whole view). | |
Place Pin (PlacePin) | function | RPG Saga|Map | UV: FVector2DType: FGameplayTagPinId: int32 = 0 | bool | Places a pin of Type at UV, or changes the type of PinId (non-zero). Replaces the oldest pin when full (settings). |
Select Pin Wheel (SelectPinWheel) | function | RPG Saga|Map | Index: int32 | Select Pin Wheel | |
Set Legend Focused (SetLegendFocused) | function | RPG Saga|Map | bFocused: bool | Moves the keyboard / gamepad focus into the legend or back to the map. | |
Toggle Category (ToggleCategory) | function | RPG Saga|Map | Category: FGameplayTag | Shows / hides a category's markers (legend filter). | |
Toggle Pin At (TogglePinAt) | function | RPG Saga|Map | UV: FVector2D | bool | Removes the pin near UV (map coordinates), or places a pin of the first type there. Returns true when something changed. |
Zoom By (ZoomBy) | function | RPG Saga|Map | Steps: floatAnchor: FVector2D | Zooms by Steps zoom steps (negative = out), keeping Anchor (map coordinates) where it is on screen. |
URSEAttributeRegistry
Module RSECore. The attributes and resources of a project (D-054, docs/design/attributes.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Attribute Definition (FindAttributeDefinition) | pure | RPG Saga|Attributes | Tag: FGameplayTagOutDefinition: FRSEAttributeDefinition (out) | bool | The definition of an attribute (name, bounds, formula). False when the registry does not define it. |
Find Resource Definition (FindResourceDefinition) | pure | RPG Saga|Attributes | Tag: FGameplayTagOutDefinition: FRSEResourceDefinition (out) | bool | The definition of a resource (maximum, start, regeneration, gains). False when the registry does not define it. |
Get Display Name (GetDisplayName) | pure | RPG Saga|Attributes | Tag: FGameplayTag | FText | Player-facing name of an attribute or resource (its definition, else the last part of the tag). |
Get HUDResources (GetHUDResources) | pure | RPG Saga|Attributes | bBattleHUD: boolbPartyMenu: bool | TArray<FGameplayTag> | Resources, in HUD order; bBattleHUD / bPartyMenu filter by where they are shown. |
Get Short Label (GetShortLabel) | pure | RPG Saga|Attributes | Tag: FGameplayTag | FText | Short label of an attribute or resource ("HP", "ATK"). |
Get Visible Attributes (GetVisibleAttributes) | pure | RPG Saga|Attributes | TArray<FGameplayTag> | Attributes shown in menus, in UI order. | |
Reset to Built in Defaults (ResetToBuiltInDefaults) | function | Attributes | Fills Attributes and Resources with the framework's built-in definitions (the class defaults). |
URSEAudioSubsystem
Module RSE. The game's audio (D-036, docs/design/audio.md): music, sound effects and the mixer.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Music Now (ApplyMusicNow) | function | RPG Saga|Audio | Applies pending music changes now instead of next frame. | ||
Clear Layer (ClearLayer) | function | RPG Saga|Audio | Layer: ERSEMusicLayer | Clears a layer of the music stack: the layer below plays again. | |
Play Story Music (PlayStoryMusic) | function | RPG Saga|Audio | Track: FRSEMusicTrack (ref)Context: ERSEMusicContext = Story | Story override (Play Music effect, console): covers area music until RestoreMusic. | |
Restore Music (RestoreMusic) | function | RPG Saga|Audio | Ends the story override: the music below comes back. | ||
Set Area Music (SetAreaMusic) | function | RPG Saga|Audio | Track: FRSEMusicTrack (ref) | Area / map music of the current world (URSEAudioWorldSubsystem). Ignored while the base was set explicitly. | |
Set Base Context (SetBaseContext) | function | RPG Saga|Audio | Context: ERSEMusicContext | Sets the base music to a context explicitly (the front end: MainMenu); area music then leaves the base alone until the next map. | |
Set Context Layer (SetContextLayer) | function | RPG Saga|Audio | Layer: ERSEMusicLayerContext: ERSEMusicContext | Sets a layer to a context's settings track (a context without a track clears the layer). | |
Set Dialog Active (SetDialogActive) | function | RPG Saga|Audio | bActive: bool | Dialog music on / off (only when a Dialog context track is set). | |
Set Layer (SetLayer) | function | RPG Saga|Audio | Layer: ERSEMusicLayerContext: ERSEMusicContextTrack: FRSEMusicTrack (ref) | Sets a layer of the music stack to a track (the highest set layer plays). | |
Stop Story Music (StopStoryMusic) | function | RPG Saga|Audio | FadeOut: float = -1.000000 | Silence requested by the story (Stop Music effect) until RestoreMusic. FadeOut < 0 = default. |
URSEAuthorityPolicy
Module RSE. Who runs the game logic (D-134, docs/design/networking.md §3.5).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Has Authority (HasAuthority) | override | RPG Saga|Players | World: UWorld* | bool | This machine applies the game logic in World (single-player: always). |
Is Multiplayer Session (IsMultiplayerSession) | override | RPG Saga|Players | World: UWorld* | bool | More than one player shares World (a network session, or several local players): the co-op rules apply. |
URSEAuthoritySubsystem
Module RSECore. The authority mode and the local player's id for this game instance (D-133).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Authority Mode (GetAuthorityMode) | pure | RPG Saga|Commands | ERSEAuthorityMode | Standalone (single player), Authority (session host) or Proxy (session guest). | |
Get Local Player Id (GetLocalPlayerId) | pure | RPG Saga|Commands | FRSEPlayerId | The player of this machine (the host in single player and on the host). | |
Get Session Players (GetSessionPlayers) | pure | RPG Saga|Commands | TArray<FRSEPlayerId> | The players of the session (D-138): the host first, then the guests. Single player: only the host. The network layer keeps it up to date (joins, leaves); group decisions (dialog votes) count these players. | |
Has Authority (HasAuthority) | pure | RPG Saga|Commands | bool | This machine may change game state: single player or the host of a session. | |
Is Networked (IsNetworked) | pure | RPG Saga|Commands | bool | A network session is running (host or guest). | |
On Authority Mode Changed (BP_OnModeChanged) | event | RPG Saga|Commands | OldMode: ERSEAuthorityModeNewMode: ERSEAuthorityMode | The mode changed (a session started or ended). | |
Set Authority Mode (SetAuthorityMode) | function | RPG Saga|Commands | NewMode: ERSEAuthorityModeNewLocalPlayer: FRSEPlayerId | Sets the mode and this machine's player. Called by the network layer when a session starts or ends (and by tests); Standalone always uses the host id. | |
Set Session Players (SetSessionPlayers) | function | RPG Saga|Commands | Players: TArray<FRSEPlayerId> (ref) | Sets the session's players (RSENet on join / leave, tests). The host is always included. |
URSEBattle
Module RSECore. Rules shared by both battle modes: units, resources, damage and healing, defeat, end of battle and the event stream (D-006).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Status (ApplyStatus) | function | RPG Saga|Battle | SourceId: int32TargetId: int32Status: URSEStatusData*Chance: float | Tries to apply a status (Chance in percent); immunity and stacking follow the status data. | |
Are Units Enemies (AreUnitsEnemies) | pure | RPG Saga|Battle | UnitA: int32UnitB: int32 | bool | Whether two units are on different teams. |
Change Resource (ChangeResource) | function | RPG Saga|Battle | SourceId: int32TargetId: int32Resource: FGameplayTag (ref)Delta: float | float | Changes a unit's resource with a battle event: HP losses go through shields and reactions, HP gains heal. Returns the change applied. |
Deal Damage (DealDamageBP) | function | RPG Saga|Battle | SourceId: int32TargetId: int32Amount: floatElement: FGameplayTag | int32 | Deals HP damage decided by a rule (no stats, no rolls): Amount before the target's affinity to Element (if any); shields, reactions and defeat follow. SourceId may be -1 (the environment). Returns HP lost. |
Defeat Unit (DefeatUnit) | function | RPG Saga|Battle | UnitId: int32 | Marks a unit defeated and checks for the end of battle. | |
Get Battle Mode Tag (GetBattleModeTag) | pure | RPG Saga|Battle | FGameplayTag | The battle mode this battle runs (Battle.Mode.Tactics / ATB / Turn / FreeTactics). Each mode class reports its own tag, so systems that care about the mode (AI records, adaptive difficulty, use conditions, statistics) never need a chain of class checks. Empty for the abstract base. | |
Get Controlling Status (GetControllingStatus) | pure | RPG Saga|Battle|Status | UnitId: int32 | URSEStatusData* | The status that controls the unit now (the first with a control behavior), or null. |
Get Environment Tags (GetEnvironmentTags) | pure | RPG Saga|Battle | FGameplayTagContainer | Get Environment Tags | |
Get Outcome (GetOutcome) | pure | RPG Saga|Battle | ERSEBattleOutcome | Result of the battle from the player team's side (Ongoing while it runs). | |
Get Player Team (GetPlayerTeam) | pure | RPG Saga|Battle | FGameplayTag | The player's team tag in this battle. | |
Get Seed (GetSeed) | pure | RPG Saga|Battle | int32 | Seed the battle started with (deterministic rolls after the battle, e.g. loot, D-042). | |
Get Turns Taken (GetTurnsTaken) | pure | RPG Saga|Battle | Team: FGameplayTag (ref) | int32 | Turns taken so far by units of a team. |
Get Unit (GetUnitBP) | pure | RPG Saga|Battle | UnitId: int32OutUnit: FRSEBattleUnit (out) | bool | A unit of this battle by id. Returns false when there is none. |
Get Unit Attribute (GetUnitAttribute) | pure | RPG Saga|Battle|Attributes | UnitId: int32Attribute: FGameplayTag | float | Final attribute value of a unit (0 for an unknown unit). |
Get Unit Ids (GetUnitIds) | pure | RPG Saga|Battle | Team: FGameplayTagbActiveOnly: bool = true | TArray<int32> | Ids of the units of a team (empty = every team); bActiveOnly skips fallen and withdrawn ones. |
Get Unit Own Team (GetUnitOwnTeam) | pure | RPG Saga|Battle|Status | UnitId: int32 | FGameplayTag | The team a unit belongs to, whatever a status (Charm) makes it fight for now. |
Get Unit Resource (GetUnitResource) | pure | RPG Saga|Battle|Attributes | UnitId: int32Resource: FGameplayTag | float | Current value of a unit's resource. |
Get Unit Resource Max (GetUnitResourceMax) | pure | RPG Saga|Battle|Attributes | UnitId: int32Resource: FGameplayTag | float | Maximum of a unit's resource (0 when it lacks it). |
Get Winning Team (GetWinningTeam) | pure | RPG Saga|Battle | FGameplayTag | The team that won (empty while the battle runs). | |
Heal Unit (HealUnitBP) | function | RPG Saga|Battle | SourceId: int32TargetId: int32Amount: float | float | Restores HP to a unit (a heal event). Returns HP restored. |
Is Battle Over (IsBattleOver) | pure | RPG Saga|Battle | bool | The battle has ended (victory, defeat or escape). | |
Is Unit Active (IsUnitActive) | pure | RPG Saga|Battle | UnitId: int32 | bool | The unit stands on the field (not defeated, not withdrawn). |
Is Unit Controlled by Status (IsUnitControlledByStatus) | pure | RPG Saga|Battle|Status | UnitId: int32 | bool | Whether a status takes the player's command of the unit away (the AI acts for it). |
Modify Unit Resource (ModifyUnitResource) | function | RPG Saga|Battle|Attributes | UnitId: int32Resource: FGameplayTagDelta: float | Adds to a unit's resource (negative removes), within its bounds; HP at 0 defeats the unit. For custom rules and cues. | |
On Battle Event (OnBattleEvent) | event | RPG Saga|Battle | Event: FRSEBattleEvent (ref) | Every battle event, in order (damage, heals, statuses, turns, defeats, the end). | |
On Resource Changed (OnResourceChanged) | event | RPG Saga|Battle|Attributes | UnitId: int32Resource: FGameplayTagOldValue: floatNewValue: float | Fired whenever a unit's resource value changes (damage, costs, gains, regeneration). | |
Remove Statuses (RemoveStatuses) | function | RPG Saga|Battle | SourceId: int32TargetId: int32StatusTags: FGameplayTagContainer (ref) | Removes every status on TargetId whose tag matches any of StatusTags. | |
Roll Int (RollInt) | function | RPG Saga|Battle | Max: int32 | int32 | A deterministic random integer in [0, Max) from the battle's stream (use it instead of Random nodes so replays and the simulator stay exact). |
Roll Percent (RollPercent) | function | RPG Saga|Battle | float | A deterministic random value in [0, 100) from the battle's stream. | |
Scan Unit (ScanUnit) | function | RPG Saga|Battle | SourceId: int32TargetId: int32 | Emits UnitScanned (the bestiary reveals the target's entry). | |
Set Unit Base Stat (SetUnitBaseStat) | function | RPG Saga|Battle|Attributes | UnitId: int32Stat: FGameplayTagValue: float | bool | Replaces the base value of one stat of a unit while the battle runs (D-169, G2): an outside system (the GAS bridge) reports a changed stat. Equipment, Pact and statuses still apply on top; resources above their new maximum are clamped (HP at 0 does not defeat: only damage does). Refused on a proxy or finished battle. Authority code only: other machines get the result through the usual state mirror. Returns true when the value changed. |
Shift Turn (ShiftTurn) | function | RPG Saga|Battle | SourceId: int32TargetId: int32TurnFraction: float | Moves the unit's next turn by TurnFraction of a turn: positive = sooner (haste-like), negative = later (delay). Tactics: CT; ATB: the gauge; turn-based: the timeline (CTB) or the place in the round (Round). | |
Unit Has Status (UnitHasStatus) | pure | RPG Saga|Battle | UnitId: int32Status: FGameplayTag | bool | Whether a unit has a status matching the tag. |
URSEBattleBannerViewModel
Module RSE. Text banners of battle presentations (D-034): the ability name plate and the large cinematic titles.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Banner Started (OnBannerStarted) | event | RPG Saga|UI|Banner | Raised when a style starts showing a new text (widgets play their intro). |
URSEBattleCuePlayerComponent
Module RSE. Plays battle presentation timelines (D-034) and times interactive action commands.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Camera Shake (AddCameraShake) | function | RPG Saga|Battle Presentation | Amplitude: floatRotationAmplitude: floatFrequency: floatDuration: float | Shakes the battle camera (location amplitude in cm, rotation in degrees, frequency in Hz, seconds). | |
Flash (Flash) | function | RPG Saga|Battle Presentation | Color: FLinearColor (ref)Alpha: floatFadeIn: floatHold: floatFadeOut: float | Flashes the screen with a color (fade in, hold, fade out in seconds). | |
Get Caster (GetCaster) | pure | RPG Saga|Battle Presentation | AActor* | The actor of the unit using the action. | |
Get Impact Point (GetImpactPoint) | pure | RPG Saga|Battle Presentation | bOnGround: bool | FVector | The aimed tile / area center (D-055): ground level, or chest height above it. Falls back to the targets' center. |
Get Primary Target (GetPrimaryTarget) | pure | RPG Saga|Battle Presentation | AActor* | The actor of the action's primary target (none for an empty tile). | |
Get Subject Point (GetSubjectPoint) | pure | RPG Saga|Battle Presentation | Actor: AActor* | FVector | Chest height location of a unit (what shots look at). Transient pose offsets (shake, lunge, hop, hit reactions) are left out: shots frame the unit's resting place, so a shaking unit never shakes the camera. |
Get Subjects (GetSubjects) | pure | RPG Saga|Battle Presentation | Subject: ERSECueSubjectOutActors: TArray<AActor*> (out) | The actors of a cue subject: the caster, the primary target or every affected unit. | |
Play Hit Reaction (PlayHitReaction) | function | RPG Saga|Battle Presentation | Target: AActor*From: FVector (ref)Scale: floatbDodge: bool = falsebHeavy: bool = false | Target recoil away from From (hit) or a sidestep (dodge). bHeavy: a critical (the anim set's HitHeavy from the front). |
URSEBattleCue_Custom
Module RSE, display name Custom (Blueprint). A presentation step written in Blueprint (D-052): create a Blueprint class from it and override On Cue Start (and optionally On Cue Update / On Cue Stop) to spawn effects, move actors, play sounds or animations on the cue's subjects.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Cue Start (OnCueStart) | override | RPG Saga|Battle Presentation | Player: URSEBattleCuePlayerComponent*SubjectActors: TArray<AActor*> (ref) | The cue starts: Player gives the caster, the impact point, camera shakes, flashes. | |
On Cue Stop (OnCueStop) | override | RPG Saga|Battle Presentation | Player: URSEBattleCuePlayerComponent*SubjectActors: TArray<AActor*> (ref)bSkipped: bool | The cue ended (time up, skipped or stopped): leave things in their final state. | |
On Cue Update (OnCueUpdate) | override | RPG Saga|Battle Presentation | Player: URSEBattleCuePlayerComponent*SubjectActors: TArray<AActor*> (ref)Alpha: float | Every frame while it runs (bReceiveUpdate): Alpha goes from 0 to 1 over Duration. |
URSEBattleHUDViewModel
Module RSE. Common base of the battle HUD view-models (D-052): the battle log, the result banner, the key prompts and the battle events for floating numbers.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Battle Event (OnBattleEvent) | event | Battle HUD | Event: FRSEBattleEvent (ref)WorldLocation: FVector | A battle event presented on a unit (damage, heal, miss, status...): floating numbers. | |
Refresh Now (RefreshNow) | function | RPG Saga|UI|Battle HUD | Rebuilds the view now (tests; the HUD refreshes every frame on its own). | ||
Set Preview Info (SetPreviewInfo) | function | RPG Saga|UI|Battle HUD | Info: FText (ref) | Sets (or clears, with empty text) the preview summary line. |
URSEBattleLauncherSubsystem
Module RSE. The C++ behind the battle launcher (P55, D-179): starts, restarts and auto-plays a battle of any mode from one FRSEBattleLaunchPreset, on the map the player explores.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Last Launch (GetLastLaunch) | pure | RPG Saga|Dev|Launcher | OutPreset: FRSEBattleLaunchPreset (out)OutSeed: int32 (out) | bool | The preset of the last start (valid after one), with the seed it ran on. |
Is Auto Play (IsAutoPlay) | pure | RPG Saga|Dev|Launcher | bool | Is Auto Play | |
Is Launcher Visible (IsLauncherVisible) | pure | RPG Saga|Dev|Launcher | bool | Is Launcher Visible | |
Restart Battle (RestartBattle) | function | RPG Saga|Dev|Launcher | bNewSeed: boolOutMessage: FString (out) | bool | Fights the last started battle again. While it runs (or has just ended) it is restarted from its beginning with the party as before it; once exploration has control again it starts anew. New seed: a new seed for the rolls; else the same seed (the same battle again, as far as the player's input is the same, e.g. with auto-play). |
Set Auto Play (SetAutoPlay) | function | RPG Saga|Dev|Launcher | bEnabled: bool | The AI plays the party's units too (RSE.Battle.AutoPlay). | |
Set Launcher Visible (SetLauncherVisible) | function | RPG Saga|Dev|Launcher | bVisible: bool | Shows or hides the launcher panel (and gives it the mouse); the F10 key and RSE.Rooms.Launcher call it. | |
Start Battle (StartBattle) | function | RPG Saga|Dev|Launcher | Preset: FRSEBattleLaunchPreset (ref)OutMessage: FString (out) | bool | Starts the preset's battle. A running battle makes this fail (use Restart). OutMessage why it did not start, or what started. |
URSEBattleMenuLibrary
Module RSECore. Blueprint access to the battle menu model (custom providers, custom presenters; D-122).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Menu Entry (AddMenuEntry) | function, static | RPG Saga|Battle Menu | Model: FRSEBattleMenuModel (ref)Entry: FRSEBattleMenuEntry (ref)CategoryLabel: FText (ref)Shape: ERSEBattleMenuCategoryShape = Group | Adds an entry to the menu (its category is made with Category Label / Shape when missing). | |
Find Menu Entry (FindMenuEntry) | pure, static | RPG Saga|Battle Menu | Model: FRSEBattleMenuModel (ref)EntryId: FNameOutEntry: FRSEBattleMenuEntry (out) | bool | The entry with this id, if any. |
Get Menu Unit Character (GetMenuUnitCharacter) | pure, static | RPG Saga|Battle Menu | Context: FRSEBattleMenuContext (ref) | URSECharacterData* | The unit the menu is for (its battle unit id) and its character. |
Make Ability Menu Entry (MakeAbilityMenuEntry) | pure, static | RPG Saga|Battle Menu | Context: FRSEBattleMenuContext (ref)Ability: URSEAbilityData*CategoryId: FName | FRSEBattleMenuEntry | An entry for an ability of the unit (cost, resource, uses left, reasons), for a custom provider. |
Menu Has Ability (MenuHasAbility) | pure, static | RPG Saga|Battle Menu | Model: FRSEBattleMenuModel (ref)Ability: URSEAbilityData* | bool | The menu already has this ability (an earlier provider added it). |
URSEBattleMenuProvider
Module RSECore, display name Battle Menu Provider. A source of battle menu entries (D-122, docs/design/battle-menus.md): the config's providers fill the active unit's menu in order (movement, the command layout's abilities and items, Pacts, the turn commands, custom ones).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Gather (Gather) | override | RPG Saga|Battle Menu | Context: FRSEBattleMenuContext (ref)Model: FRSEBattleMenuModel (ref) | Adds this provider's entries to Model (Context: the battle and the unit). |
URSEBattleMenuViewModel
Module RSE. One local player's battle menu (D-122, docs/design/battle-menus.md): the host's model and list as this player sees them, plus the menu's own navigation (open category, page, highlight, ring open).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate Entry (ActivateEntry) | function | RPG Saga|Battle Menu | EntryId: FName | bool | Activates an entry: the host aims it or issues its command. Disabled entries tell why (the message line). |
Activate List Row (ActivateListRow) | function | RPG Saga|Battle Menu | Row: int32 | The list's rows (list-shaped presenters). | |
Cancel Aim (CancelAim) | function | RPG Saga|Battle Menu | Back out of the aim. | ||
Close Category (CloseCategory) | function | RPG Saga|Battle Menu | bool | Back to the categories. Returns false when already there. | |
Get Highlighted Node Id (GetHighlightedNodeId) | pure | RPG Saga|Battle Menu | FName | The highlighted node's id on the current level (a category on the first ring), or none. | |
Get Hotbar Slots (GetHotbarSlots) | pure | RPG Saga|Battle Menu | MinSlots: int32PageSize: int32OutSlots: TArray<FName> (out) | The hotbar's slots for the active unit's character: its saved order, new entries in free slots (RSEBattleMenu::ResolveHotbar). | |
Get Nodes (GetNodes) | pure | RPG Saga|Battle Menu | OutNodes: TArray<FRSEBattleMenuNode> (out) | What the current level shows (RSEBattleMenu::GetNodes): categories, groups, families, entries. | |
Get Owning Player (GetOwningPlayer) | pure | RPG Saga|Battle Menu | APlayerController* | Get Owning Player | |
Get Path (GetPath) | pure | RPG Saga|Battle Menu | FRSEBattleMenuPath | Where the menu is: the open category, group and family. | |
Highlight Category (HighlightCategory) | function | RPG Saga|Battle Menu | CategoryId: FName | Highlight Category | |
Highlight Entry (HighlightEntry) | function | RPG Saga|Battle Menu | EntryId: FName | Highlight Entry | |
Highlight List Row (HighlightListRow) | function | RPG Saga|Battle Menu | Row: int32 | Highlight List Row | |
Highlight Node (HighlightNode) | function | RPG Saga|Battle Menu | NodeId: FName | Highlights a node of the current level (the host may preview its entry). | |
Move Hotbar Slot (MoveHotbarSlot) | function | RPG Saga|Battle Menu | From: int32To: int32MinSlots: int32PageSize: int32 | bool | Moves a slot onto another (they swap) and saves the order for the character. Returns false when nothing changed. |
On Changed (OnChanged) | event | RPG Saga|Battle Menu | |||
Open Category by Id (OpenCategoryById) | function | RPG Saga|Battle Menu | CategoryId: FName | Open Category by Id | |
Open Family by Id (OpenFamilyById) | function | RPG Saga|Battle Menu | CategoryId: FNameFamilyId: FName | Opens a tier family of a category directly (a hotbar slot): its tiers become the level. | |
Pick Category (PickCategory) | function | RPG Saga|Battle Menu | CategoryId: FName | bool | Picks a category: Direct or single-entry ones act at once, the others open. Returns true when it acted. |
Pick Node (PickNode) | function | RPG Saga|Battle Menu | NodeId: FName | bool | Picks a node of the current level: an entry (or a category / family that acts) is used, the others open. Returns true when it acted. |
Set Expanded (SetExpanded) | function | RPG Saga|Battle Menu | bInExpanded: bool | Set Expanded | |
Set Page (SetPage) | function | RPG Saga|Battle Menu | InPage: int32 | Set Page |
URSEBattleModeOverrideLibrary
Module RSECore. D-182: the battle mode override's data side: reports, resolution and the per-mode copy of an encounter.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Encounter Run in Mode (CanEncounterRunInMode) | pure, static | RPG Saga|Battle|Mode Override | Encounter: URSEEncounterData*Mode: FGameplayTagOutWhyNot: FText (out) | bool | Whether Encounter's data can run in Mode (OutWhyNot: the first problem). |
Get Battle Mode Short Name (GetBattleModeShortName) | pure, static | RPG Saga|Battle|Mode Override | Mode: FGameplayTag | FString | The short name of a mode (Tactics, Live, ATB, Turn, Action), for logs, commands and file names. |
Get Encounter Mode Report (GetEncounterModeReport) | pure, static | RPG Saga|Battle|Mode Override | Encounter: URSEEncounterData* | FRSEEncounterModeReport | Which modes Encounter's data can run in (one entry per overridable mode): its Mode Override switches, the features switched on, an enemy list to bring into another mode, and the automatic fallbacks each mode uses. The map's battle sites (a grid zone, a classic stage) are checked by the world report (RSE Encounter Site -> Build Mode Report). |
Make Encounter for Mode (MakeEncounterForMode) | function, static | RPG Saga|Battle|Mode Override | Outer: UObject*Encounter: URSEEncounterData*Mode: FGameplayTag | URSEEncounterData* | A transient copy of Encounter to fight in Mode: the mode set, the mode's rules profile (Mode Rules Profiles) applied, and the data-only fallbacks (classic rows). The copy keeps the encounter's name, so its asset id (quests, bestiary) is the same. Grid fallbacks need the zone: ApplyGridFallbacks. |
Parse Battle Mode (ParseBattleMode) | pure, static | RPG Saga|Battle|Mode Override | Name: FString | FGameplayTag | Battle.Mode.* from a short name: Tactics / Grid, FreeTactics / Live, ATB, Turn, Action (or a full tag name). Empty when unknown. |
Resolve Battle Mode (ResolveBattleMode) | pure, static | RPG Saga|Battle|Mode Override | Encounter: URSEEncounterData*OverrideMode: FGameplayTag | FRSEBattleModeResolution | The mode Encounter is fought in with OverrideMode active (empty = no override). |
URSEBattleModeOverrideSubsystem
Module RSECore. D-182: the session's battle mode override.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Battle Mode Override (ClearBattleModeOverride) | function | RPG Saga|Battle|Mode Override | Encounters start in their own mode again. | ||
Get Battle Mode Override (GetBattleModeOverride) | pure | RPG Saga|Battle|Mode Override | FGameplayTag | The override's mode (empty: none). | |
Has Battle Mode Override (HasBattleModeOverride) | pure | RPG Saga|Battle|Mode Override | bool | Has Battle Mode Override | |
On Battle Mode Override Changed (OnBattleModeOverrideChanged) | event | RPG Saga|Battle|Mode Override | Mode: FGameplayTag | The override changed (empty tag: cleared). | |
Resolve Battle Mode (ResolveBattleMode) | pure | RPG Saga|Battle|Mode Override | Encounter: URSEEncounterData* | FRSEBattleModeResolution | The mode Encounter is fought in now (the override when the encounter allows it and can run in it). |
Set Battle Mode Override (SetBattleModeOverride) | function | RPG Saga|Battle|Mode Override | Mode: FGameplayTag | bool | Fights every encounter that allows it in Mode (Battle.Mode.*). An empty tag clears the override. Returns false for a mode that is not overridable. |
URSEBattleScriptEffect
Module RSECore, display name Battle Script Effect. What a scripted battle event changes (D-117).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply (Apply) | override | RPG Saga|Battle Script | Context: FRSEBattleScriptContext (ref) | Applies the effect. | |
Describe (Describe) | override | RPG Saga|Battle Script | FText | One line for the editor and logs. |
URSEBattleScriptRunner
Module RSECore. Runs a battle's reinforcements and scripted events (D-117, docs/product/reinforcements.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Queue Wave (CanQueueWave) | pure | RPG Saga|Reinforcements | CallId: int32 | bool | Whether a called wave may be handed to the battle now (its Delay Rounds passed). |
Fire Event (FireEvent) | function | RPG Saga|Battle Script | Id: FName | bool | Fires a scripted event now, whatever its trigger (once-only events that already fired are refused). Returns true when it fired. |
Get Call (GetCall) | pure | RPG Saga|Reinforcements | CallId: int32OutCall: FRSEReinforcementCallView (out) | bool | Get Call |
Get Calls (GetCalls) | pure | RPG Saga|Reinforcements | TArray<FRSEReinforcementCallView> | Every call so far (calling, incoming, arrived, cancelled). | |
Get Incoming Count (GetIncomingCount) | pure | RPG Saga|Reinforcements | Team: FGameplayTag | int32 | Units on their way for Team (called, not joined yet). |
Get Round (GetRound) | pure | RPG Saga|Reinforcements | int32 | The current round as the triggers count it (the battle's own rounds, else counted in turns). | |
Get Times Fired (GetTimesFired) | pure | RPG Saga|Battle Script | Id: FName | int32 | Times a scripted event fired in this battle. |
Is Calling (IsCalling) | pure | RPG Saga|Reinforcements | UnitId: int32 | bool | The unit is calling for help now. |
On Call Cancelled (BP_OnCallCancelled) | event | RPG Saga|Reinforcements | Call: FRSEReinforcementCallView (ref) | A call was stopped before it completed (Blueprint). | |
On Call Started (BP_OnCallStarted) | event | RPG Saga|Reinforcements | Call: FRSEReinforcementCallView (ref) | A unit started calling for help (Blueprint). | |
On Script Event (BP_OnScriptEvent) | event | RPG Saga|Battle Script | Event: FRSEBattleScriptEventView (ref) | A scripted battle event fired (Blueprint). | |
On Wave Arrived (BP_OnWaveArrived) | event | RPG Saga|Reinforcements | Call: FRSEReinforcementCallView (ref) | Every unit of a wave joined the battle (Blueprint). | |
On Wave Called (BP_OnWaveCalled) | event | RPG Saga|Reinforcements | Call: FRSEReinforcementCallView (ref) | A wave is on its way (Blueprint). | |
Process Pending (ProcessPending) | function | RPG Saga|Reinforcements | bool | The safe point: evaluates the triggers, completes or cancels calls, fires scripted events (their effects) and brings in auto-joined waves. Never call it from inside a battle event. Returns true when something happened. | |
Set Auto Join (SetAutoJoin) | function | RPG Saga|Reinforcements | bInAutoJoin: bool | Headless joining: called waves enter by themselves at their round (Free Tactics: hidden points of the snapshot). | |
Start Reinforcements (StartReinforcements) | function | RPG Saga|Reinforcements | Data: URSEReinforcementData*CallerId: int32bSkipCallTime: bool | int32 | A group calls now (a scripted event, Blueprint): its waves with a Battle Start, When Alerted or Manual trigger are due; the rest follow their triggers. CallerId calls (INDEX_NONE = by the data's Caller rule). bSkipCallTime: no channel. Returns the new group's index. |
URSEBattleStartGate
Module RSE. The one rule every battle start goes through (D-120): no battle starts over a story scene, a blocking dialog or a custom block.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Block (AddBlock) | function | RPG Saga|Battle | Reason: FName | Keeps battles from starting until the matching RemoveBlock (counted per reason): a custom cinematic, a tutorial screen, a network hand-off. | |
Can Start Now (CanStartNow) | pure | RPG Saga|Battle | bool | A battle may start now (nothing blocks and no start is waiting). | |
Cancel Pending Start (CancelPendingStart) | function | RPG Saga|Battle | Drops the waiting start without running it. | ||
Get Block Reason (GetBlockReason) | pure | RPG Saga|Battle | FName | Why no battle can start now: Scene, Dialog or a custom block reason. None = a battle may start. | |
Has Pending Start (HasPendingStart) | pure | RPG Saga|Battle | bool | A start is waiting for the block to lift. | |
On Deferred Start (OnDeferredStart) | event | RPG Saga|Battle | Label: FStringbStarted: bool | A waiting start ran (bStarted: the battle started). | |
Remove Block (RemoveBlock) | function | RPG Saga|Battle | Reason: FName | Remove Block |
URSEBattleTransitionSubsystem
Module RSE. Plays the screen transitions between exploration and battles (D-083).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Playing (IsPlaying) | pure | RPG Saga|Battle | bool | A transition plays. |
URSEBestiarySubsystem
Module RSECore. The bestiary (D-047): every enemy type met and defeated, saved as section "Bestiary".
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Entry (FindEntryBP) | pure | RPG Saga|Bestiary | Character: URSECharacterData*OutEntry: FRSEBestiaryEntry (out) | bool | The saved counts of Character. Returns false when it has no entry. |
Get Bestiary Characters (GetCharactersBP) | pure | RPG Saga|Bestiary | TArray<URSECharacterData*> | Enemies with an entry, sorted by category then name. | |
Get Knowledge (GetKnowledgeBP) | pure | RPG Saga|Bestiary | Character: URSECharacterData* | FRSEBestiaryKnowledge | What the entry of Character reveals now (name, description, stats, affinities, drops). |
On Bestiary Changed (BP_OnChanged) | event | RPG Saga|Bestiary | Fired after any change (menus refresh). | ||
Record Defeat (RecordDefeatBP) | function | RPG Saga|Bestiary | Character: URSECharacterData* | Counts one defeat of Character. | |
Record Encounter (RecordEncounterBP) | function | RPG Saga|Bestiary | Character: URSECharacterData*Level: int32 | Counts one enemy of Character met at Level (a custom encounter, a scripted fight). |
URSEBlueprintLibrary_Art
Module RSECore, display name RSEBlueprint Library Art. Portraits and icons for UMG screens (D-075): the same lookups the built-in screens use.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Character Portrait (GetCharacterPortrait) | pure, static | RPG Saga|Art | Character: URSECharacterData*Variant: FName = None | TSoftObjectPtr<UTexture2D> | The portrait of a character (its Portrait, a variant's, or the generated art library's). Null = none: show an initial. |
Get Icon (GetIcon) | pure, static | RPG Saga|Art | Asset: UObject* | TSoftObjectPtr<UTexture2D> | The icon of an item, ability or status (its Icon, or the generated art library's). Null = none. |
Get Quest Image (GetQuestImage) | pure, static | RPG Saga|Art | Quest: URSEQuestData* | TSoftObjectPtr<UTexture2D> | D-155: a quest's journal picture (its Header Image, or the generated art library's). Null = none. |
Get Speaker Portrait (GetSpeakerPortrait) | pure, static | RPG Saga|Art | Speaker: URSESpeakerData*Expression: FGameplayTag | TSoftObjectPtr<UTexture2D> | A speaker's dialog portrait for an expression (its Portraits, neutral, its character's portrait, the library's). |
URSEBlueprintLibrary_Audio
Module RSE, display name RSEBlueprint Library Audio. Music, sounds and volumes from Blueprint (D-052).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Audio Subsystem (GetAudioSubsystem) | pure, static | RPG Saga|Audio | WorldContextObject: UObject* | URSEAudioSubsystem* | The game's audio: the music stack, the sound catalog and the mixer. |
Get Volume (GetVolume) | pure, static | RPG Saga|Audio|Volume | Channel: ERSEAudioChannel | float | The player's volume of a channel (0-1). |
Play Music (PlayMusic) | function, static | RPG Saga|Audio | WorldContextObject: UObject*Track: FRSEMusicTrack (ref) | Plays a track as story music (covers the area music) until Restore Music. | |
Play Music Context (PlayMusicContext) | function, static | RPG Saga|Audio | WorldContextObject: UObject*Context: ERSEMusicContext | Plays the Audio settings' track of a context (Boss, Victory, a custom mood...) as story music, until Restore Music. | |
Play Sound 2D (PlaySound2D) | function, static | RPG Saga|Audio | WorldContextObject: UObject*Sound: FGameplayTagVolumeMultiplier: float = 1.000000PitchMultiplier: float = 1.000000 | bool | Plays the catalog sound of a tag, not placed in the world (UI, stingers). Returns whether the tag has a sound. |
Play Sound at Location (PlaySoundAtLocation) | function, static | RPG Saga|Audio | WorldContextObject: UObject*Sound: FGameplayTagLocation: FVectorVolumeMultiplier: float = 1.000000PitchMultiplier: float = 1.000000 | bool | Plays the catalog sound of a tag at a location. Returns whether the tag has a sound. |
Reset Volumes (ResetVolumes) | function, static | RPG Saga|Audio|Volume | Every channel back to the Audio settings' default volume. | ||
Restore Music (RestoreMusic) | function, static | RPG Saga|Audio | WorldContextObject: UObject* | Ends the story music: the area music comes back. | |
Set Volume (SetVolume) | function, static | RPG Saga|Audio|Volume | Channel: ERSEAudioChannelVolume: floatbSave: bool = true | Sets and applies a channel volume (0-1); bSave stores it in the player's options. | |
Stop Music (StopMusic) | function, static | RPG Saga|Audio | WorldContextObject: UObject*FadeOut: float = -1.000000 | Story silence until Restore Music. FadeOut < 0 = the default fade. |
URSEBlueprintLibrary_Battle
Module RSE, display name RSEBlueprint Library Battle. Battles from Blueprint (D-052): start an encounter from its data asset, find the running battle and its outcome, reach the directors.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find ATBDirector (FindATBDirector) | pure, static | RPG Saga|Battle | WorldContextObject: UObject*Encounter: URSEEncounterData* = None | ARSEATBBattleDirector* | The map's ATB director (battle stage) for an encounter (none = the first one). |
Find Tactics Director (FindTacticsDirector) | pure, static | RPG Saga|Battle | WorldContextObject: UObject*Encounter: URSEEncounterData* = None | ARSETacticsBattleDirector* | The map's Tactics director for an encounter (none = the first one). |
Get Current Battle (GetCurrentBattle) | pure, static | RPG Saga|Battle | WorldContextObject: UObject* | URSEBattle* | The running battle (units, resources, events), or none. |
Get Current Battle Outcome (GetCurrentBattleOutcome) | pure, static | RPG Saga|Battle | WorldContextObject: UObject* | ERSEBattleOutcome | Outcome of the running battle from the player's side (Ongoing while it runs or without a battle). |
Get Current Encounter (GetCurrentEncounter) | pure, static | RPG Saga|Battle | WorldContextObject: UObject* | URSEEncounterData* | The encounter being fought, or none. |
Get Exploration Subsystem (GetExplorationSubsystem) | pure, static | RPG Saga|Battle | WorldContextObject: UObject* | URSEExplorationSubsystem* | Hands control from exploration to battles and back (Start Encounter, encounter events). |
Get Unit Display Name (GetUnitDisplayName) | pure, static | RPG Saga|Battle | Unit: FRSEBattleUnit (ref) | FText | Display name of a battle unit (its character's name). |
Is in Battle (IsInBattle) | pure, static | RPG Saga|Battle | WorldContextObject: UObject* | bool | A battle is running on this map (started from exploration or directly on a director). |
Start Encounter (StartEncounter) | function, static | RPG Saga|Battle | WorldContextObject: UObject*Encounter: URSEEncounterData*Source: AActor* = None | bool | Starts a battle from an encounter asset: a Tactics encounter on the map's Tactics director that has it, a classic (ATB / turn-based) one on the map's battle stage. Source: the actor asking (it receives the encounter events). |
URSEBlueprintLibrary_CombatRoles
Module RSECore, display name RSEBlueprint Library Combat Roles. Combat roles for Blueprints and scripts (D-093): definitions, asset roles, suggestions.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Combat Role Definition (GetCombatRoleDefinition) | pure, static | RPG Saga|Combat Roles | Role: FGameplayTagOutDefinition: FRSECombatRoleDefinition (out) | bool | The definition of a role. Returns false when the project defines no such role. |
Get Combat Roles (GetCombatRoles) | pure, static | RPG Saga|Combat Roles | TArray<FRSECombatRoleDefinition> | Every combat role of the project (Project Settings -> Combat Roles). | |
Resolve Combat Role (ResolveCombatRole) | pure, static | RPG Saga|Combat Roles | Query: FRSECombatRoleQuery (ref) | FRSECombatRoleResolution | The role looked up from a query (per-instance overrides and assets), with the project's registries. |
Suggest Combat Role (SuggestCombatRole) | pure, static | RPG Saga|Combat Roles | Shape: FRSECombatRoleShape (ref) | FRSECombatRoleSuggestion | The suggested role for a measured shape, with the project's thresholds. |
URSEBlueprintLibrary_Commands
Module RSECore, display name RSEBlueprint Library Commands. Blueprint access to the command bus, the players, the authority mode and the seeds (D-133).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Equal (Player Id) (EqualEqual_PlayerId) | pure, static | RPG Saga|Commands | A: FRSEPlayerIdB: FRSEPlayerId | bool | Both ids are the same player. |
Get Authority Mode (GetAuthorityMode) | pure, static | RPG Saga|Commands | WorldContextObject: UObject* | ERSEAuthorityMode | Standalone (single player), Authority (session host) or Proxy (session guest). |
Get Host Player Id (GetHostPlayerId) | pure, static | RPG Saga|Commands | FRSEPlayerId | The host's id (slot 0). | |
Get Local Player Id (GetLocalPlayerId) | pure, static | RPG Saga|Commands | WorldContextObject: UObject* | FRSEPlayerId | This machine's player (the host in single player). |
Get State Section Revision (GetStateSectionRevision) | pure, static | RPG Saga|Save | WorldContextObject: UObject*SectionId: FName | int32 | How many times a state section changed (its revision; 0 = never). |
Has Game Authority (HasGameAuthority) | pure, static | RPG Saga|Commands | WorldContextObject: UObject* | bool | This machine may change game state (single player or the session host). |
Is Host Player (IsHostPlayer) | pure, static | RPG Saga|Commands | Player: FRSEPlayerId | bool | The player is the host. |
Is Valid Player (IsValidPlayer) | pure, static | RPG Saga|Commands | Player: FRSEPlayerId | bool | A real player (not the game itself). |
Make Player Id (MakePlayerId) | pure, static | RPG Saga|Commands | Slot: int32 | FRSEPlayerId | The id of a session slot (0 = host, 1.. = guests). |
Next Game Seed (NextGameSeed) | function, static | RPG Saga|Seeds | WorldContextObject: UObject*Stream: FName | int32 | The next seed of a named stream of the world seed (use it for any random roll that matters to the game). |
Submit Command (Game) (SubmitGameCommand) | function, static | RPG Saga|Commands | WorldContextObject: UObject*Command: FInstancedStruct (ref) | FRSECommandResult | Sends a command as this machine's player (validated and applied by its handler, or sent to the host on a guest). |
Was Command Applied (WasCommandApplied) | pure, static | RPG Saga|Commands | Result: FRSECommandResult (ref) | bool | The command was validated and applied. |
URSEBlueprintLibrary_ExploreRPG
Module RSECore, display name RSEBlueprint Library Explore RPG. Exploration RPG rules for Blueprints (D-109).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Revive Option (FindReviveOption) | function, static | RPG Saga|Exploration RPG | WorldContextObject: UObject*Fallen: URSECharacterData* | FRSEReviveOption | The best way to revive a fallen member now (an item, a spell, help up). |
Get Attempt Chance (GetAttemptChance) | pure, static | RPG Saga|Exploration RPG | WorldContextObject: UObject*Score: floatDifficulty: float | float | Chance (0..1) of an attempt with Score against Difficulty. |
Get Member Skill (GetMemberSkill) | function, static | RPG Saga|Exploration RPG | WorldContextObject: UObject*Member: URSECharacterData*Skill: ERSEExploreSkill | float | A party member's score in an exploration skill now (Project Settings -> Exploration RPG -> Skills). |
Revive Fallen Member (ReviveFallenMember) | function, static | RPG Saga|Exploration RPG | WorldContextObject: UObject*Fallen: URSECharacterData* | bool | Revives a fallen member the best way available. Returns true when it got up. |
URSEBlueprintLibrary_FollowerLife
Module RSECore, display name RSEBlueprint Library Follower Life. Follower rules for Blueprints (D-129).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Follower Drift (GetFollowerDrift) | pure, static | RPG Saga|Party Field | Seed: int32Time: floatRadius: floatPeriod: float | FVector2D | A member's smooth drift around its formation slot at Time (cm), deterministic from Seed. |
Get Formation Spread (GetFormationSpread) | pure, static | RPG Saga|Party Field | Profile: URSEFollowerProfile*FreeWidth: float | float | The formation's width for a free width around the leader (cm), from a profile. |
URSEBlueprintLibrary_Game
Module RSECore, display name RSEBlueprint Library Game. Game-wide systems from Blueprint (D-052): rules profiles, adaptive difficulty, tutorials, the bestiary and the card collection.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Challenge Card Opponent (CanChallengeCardOpponent) | pure, static | RPG Saga|Cards | WorldContextObject: UObject*Opponent: URSECardOpponentData* | ERSECardChallengeResult | Whether the player can challenge an opponent now (conditions, rematch rule, deck). |
Challenge Card Opponent (ChallengeCardOpponent) | function, static | RPG Saga|Cards | WorldContextObject: UObject*Opponent: URSECardOpponentData* | Opens the card table against an opponent (checks and table screen), like the Start Card Match effect. | |
Get Active Rules Profile (GetActiveRulesProfile) | pure, static | RPG Saga|Rules | WorldContextObject: UObject* | URSERulesProfile* | The rules profile in use (none = the global Project Settings). |
Get Bestiary Knowledge (GetBestiaryKnowledge) | pure, static | RPG Saga|Bestiary | WorldContextObject: UObject*Enemy: URSECharacterData* | FRSEBestiaryKnowledge | What the bestiary reveals about an enemy now. |
Get Bestiary Subsystem (GetBestiarySubsystem) | pure, static | RPG Saga|Bestiary | WorldContextObject: UObject* | URSEBestiarySubsystem* | The bestiary: enemies met and defeated, what their entries reveal, and its change event. |
Get Card Count (GetCardCount) | pure, static | RPG Saga|Cards | WorldContextObject: UObject*Card: URSECardData* | int32 | Copies of a card the player owns. |
Get Card Subsystem (GetCardSubsystem) | pure, static | RPG Saga|Cards | WorldContextObject: UObject* | URSECardSubsystem* | The card game: collection, deck, matches and their events. |
Get Defeat Count (GetDefeatCount) | pure, static | RPG Saga|Bestiary | WorldContextObject: UObject*Enemy: URSECharacterData* | int32 | Times an enemy type was defeated. |
Get Difficulty Subsystem (GetDifficultySubsystem) | pure, static | RPG Saga|Difficulty | WorldContextObject: UObject* | URSEDifficultySubsystem* | Adaptive enemy intelligence of the game (per battle mode). |
Get Enemy Intelligence (GetEnemyIntelligence) | pure, static | RPG Saga|Difficulty | WorldContextObject: UObject*Mode: FGameplayTag | float | Current adaptive enemy intelligence (0-1) of a battle mode (Battle.Mode.*). |
Get Rules Subsystem (GetRulesSubsystem) | pure, static | RPG Saga|Rules | WorldContextObject: UObject* | URSERulesSubsystem* | The game's rules profile (switchable by the story; battles copy it when they start). |
Get Tutorial Subsystem (GetTutorialSubsystem) | pure, static | RPG Saga|Tutorials | WorldContextObject: UObject* | URSETutorialSubsystem* | Contextual tutorials: triggers, seen state and the tutorial event. |
Give Card (GiveCard) | function, static | RPG Saga|Cards | WorldContextObject: UObject*Card: URSECardData*Count: int32 = 1 | int32 | Gives copies of a card (capped by the copies limit). Returns copies added. |
Is Tutorial Seen (IsTutorialSeen) | pure, static | RPG Saga|Tutorials | WorldContextObject: UObject*Tutorial: URSETutorialData* | bool | The tutorial was shown already. |
Notify Tutorial Trigger (NotifyTutorialTrigger) | function, static | RPG Saga|Tutorials | WorldContextObject: UObject*Trigger: FGameplayTag | URSETutorialData* | Reports a game event (Tutorial.Trigger.*): the first unseen tutorial with that trigger shows. Any new tag works as a custom trigger. Returns the tutorial shown, or none. |
Set Active Rules Profile (SetActiveRulesProfile) | function, static | RPG Saga|Rules | WorldContextObject: UObject*Profile: URSERulesProfile* | Switches the game's rules profile (none = the default profile). Running battles keep theirs. | |
Set Enemy Intelligence (SetEnemyIntelligence) | function, static | RPG Saga|Difficulty | WorldContextObject: UObject*Mode: FGameplayTagIntelligence: float | Sets the adaptive enemy intelligence (0-1) of a battle mode; adaptation continues from there. | |
Show Tutorial (ShowTutorial) | function, static | RPG Saga|Tutorials | WorldContextObject: UObject*Tutorial: URSETutorialData*bEvenIfSeen: bool = false | bool | Shows a tutorial now (marks it seen). bEvenIfSeen: again, even when already seen. |
URSEBlueprintLibrary_Growth
Module RSECore, display name RSEBlueprint Library Growth. Progression systems from Blueprint (D-144): the game's system, points, allocations, the board, teachers, mastery and use growth.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Allocate Attribute Points (AllocateAttributePoints) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Stat: FGameplayTagCount: int32 = 1 | ERSEGrowthResult | --- Changing (party commands) --- |
Auto Allocate Growth (AutoAllocateGrowth) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData* | ERSEGrowthResult | Spends the character's points with the allocation policy. |
Award Growth Points (AwardGrowthPoints) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Currency: FGameplayTagAmount: int32 = 1 | ERSEGrowthResult | Gives (or takes) points; Character empty = every member. Host only. |
Buy Growth Ability (BuyGrowthAbility) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Ability: URSEAbilityData* | ERSEGrowthResult | Buy Growth Ability |
Can Learn from Teacher (CanLearnFromTeacher) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Teacher: URSETeacherData*Ability: URSEAbilityData* | ERSEGrowthResult | Whether the character may learn the teacher's offer for Ability now. |
Describe Growth Result (DescribeGrowthResult) | pure, static | RPG Saga|Progression | Result: ERSEGrowthResult | FText | Text of a result ("Not enough points."). |
Estimate Class Growth Board Fill Level (EstimateClassGrowthBoardFillLevel) | function, static | RPG Saga|Progression|Generator | Class: URSEClassData*Profile: URSERulesProfile*MaxLevel: int32 = 99 | int32 | D-154: Estimate Growth Board Fill Level for a hero of Class (its plan's board), e.g. while generating content. |
Estimate Growth Board Fill Level (EstimateGrowthBoardFillLevel) | function, static | RPG Saga|Progression|Generator | Character: URSECharacterData*Profile: URSERulesProfile*MaxLevel: int32 = 99StartLevel: int32 = 1 | int32 | D-154: the level at which Character's growth board is full when every point goes to it and battles give a typical playthrough's points (Profile's Battle Points, Simulated Victories Per Level and Enemies Per Victory; empty = the project's settings), counted from Start Level. -1 = not full by Max Level (or no board). Generated boards fill near their Target Level. |
Generate Growth Board (GenerateGrowthBoard) | function, static | RPG Saga|Progression|Generator | Class: URSEClassData*Params: FRSEGrowthGeneratorParams (ref)Board: URSEGrowthBoard*Plan: URSEGrowthPlan* = None | Fills Board from Class (deterministic; replaces its nodes and edges) and gives Plan (optional) its board points. | |
Generate Growth Point Tables (GenerateGrowthPointTables) | function, static | RPG Saga|Progression|Generator | Class: URSEClassData*Params: FRSEGrowthGeneratorParams (ref)Plan: URSEGrowthPlan* | Fills Plan's point grants, key attributes and ability catalog from Class (deterministic; replaces them). | |
Get Ability Rank (GetAbilityRank) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Ability: URSEAbilityData* | FRSEAbilityRankModifier | Use growth rank (1 = base) and multipliers of an ability for the character. |
Get Allocated Attribute Points (GetAllocatedAttributePoints) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Stat: FGameplayTag | int32 | Points put into an attribute (Classic + Points). |
Get Available Growth Points (GetAvailableGrowthPoints) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Currency: FGameplayTag | int32 | Points of Currency the character may spend now. |
Get Growth Board (GetGrowthBoard) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData* | URSEGrowthBoard* | Get Growth Board |
Get Growth Board Problems (GetGrowthBoardProblems) | function, static | RPG Saga|Progression|Generator | Board: URSEGrowthBoard*Errors: TArray<FText> (out)Warnings: TArray<FText> (out) | Structural problems of a board (errors block a valid board; warnings are advice). | |
Get Growth Currencies (GetGrowthCurrencies) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData* | TArray<FGameplayTag> | The currencies the character spends in the current system. |
Get Growth Generator Defaults (GetGrowthGeneratorDefaults) | pure, static | RPG Saga|Progression|Generator | FRSEGrowthGeneratorParams | The generator inputs of Project Settings -> Progression Systems -> Generator. | |
Get Growth Node Cost (GetGrowthNodeCost) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*NodeId: FName | int32 | What unlocking the node would cost now (-1 = not reachable yet). |
Get Growth Options (GetGrowthOptions) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData* | TArray<FRSEGrowthOption> | What the character could take now, scored (what Auto would pick from). |
Get Growth Plan (GetGrowthPlan) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData* | URSEGrowthPlan* | The character's Growth Plan and board (may be empty). |
Get Mastery Points (GetMasteryPoints) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Item: URSEItemData*Ability: URSEAbilityData*bMastered: bool (out) | int32 | Mastery points of an item's ability for the character, and whether it is mastered. |
Get Progression System (GetProgressionSystem) | pure, static | RPG Saga|Progression | WorldContextObject: UObject* | ERSEProgressionSystem | The progression system the game uses now. |
Is Growth Node Unlocked (IsGrowthNodeUnlocked) | pure, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*NodeId: FName | bool | The node is open for the character (Classic + Growth Board). |
Learn from Teacher (LearnFromTeacher) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Teacher: URSETeacherData*Ability: URSEAbilityData* | ERSEGrowthResult | Learn from Teacher |
Respec Character (RespecCharacter) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*Teacher: URSETeacherData* = None | ERSEGrowthResult | Resets the character's spent points (Teacher: the NPC offering it, for NPC mode). |
Set Progression System (SetProgressionSystem) | function, static | RPG Saga|Progression | WorldContextObject: UObject*System: ERSEProgressionSystemChoicebForce: bool = false | ERSEGrowthResult | The system the game uses from now on (New Game choice; Force skips the settings' check). Host only. |
Unlock Growth Node (UnlockGrowthNode) | function, static | RPG Saga|Progression | WorldContextObject: UObject*Character: URSECharacterData*NodeId: FName | ERSEGrowthResult | Unlock Growth Node |
URSEBlueprintLibrary_Items
Module RSECore, display name RSEBlueprint Library Items. Items and money from Blueprint (D-052): the shared inventory, money, shop prices and purchases, inns.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Money (AddMoney) | function, static | RPG Saga|Economy | WorldContextObject: UObject*Amount: int32 | int32 | Adds money (capped by the Economy Max Money). Returns the money actually added. |
Buy (Buy) | function, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData*EntryIndex: int32Count: int32 = 1 | ERSEShopResult | Pays and adds Count of the entry's item. |
Can Buy (CanBuy) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData*EntryIndex: int32Count: int32 = 1 | ERSEShopResult | Whether the party could buy Count of a shop entry now, or why not (money, stock, availability, room). |
Can Sell (CanSell) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Item: URSEItemData*Count: int32 = 1Shop: URSEShopData* = None | ERSEShopResult | Whether the party could sell Count of an item now, or why not (key items, not enough, the shop does not buy). |
Get Buy Price (GetBuyPrice) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData*EntryIndex: int32 | int32 | Price of a shop entry (its override, else the item's price). |
Get Inn Cost (GetInnCost) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*CostOverride: int32 = -1 | int32 | Price of a night (CostOverride >= 0, else the Economy default). |
Get Inventory Items (GetInventoryItems) | function, static | RPG Saga|Items | WorldContextObject: UObject*Kind: ERSEItemKindOutItems: TArray<URSEItemData*> (out)OutCounts: TArray<int32> (out) | Held items of a kind in acquisition order, with their counts (same index). | |
Get Inventory Stacks (GetInventoryStacks) | pure, static | RPG Saga|Items | WorldContextObject: UObject* | TArray<FRSEItemStack> | Every stack of the inventory (item and count). |
Get Item Count (GetItemCount) | pure, static | RPG Saga|Items | WorldContextObject: UObject*Item: URSEItemData* | int32 | How many of an item the party holds. |
Get Item Kind (GetItemKind) | pure, static | RPG Saga|Items | Item: URSEItemData* | ERSEItemKind | Consumable, equipment, key item or document. |
Get Max Buy Count (GetMaxBuyCount) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData*EntryIndex: int32 | int32 | Most of an entry the party could buy now (money, stock, stack room). |
Get Money (GetMoney) | pure, static | RPG Saga|Economy | WorldContextObject: UObject* | int32 | The party's money. |
Get Offered Shop Entries (GetOfferedShopEntries) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData* | TArray<int32> | Entries of a shop offered now (availability passes), including sold-out ones. |
Get Sell Price (GetSellPrice) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Item: URSEItemData*Shop: URSEShopData* = None | int32 | What a shop pays for one item (Shop empty = the Economy settings' sell ratio). |
Get Stock Left (GetStockLeft) | pure, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData*EntryIndex: int32 | int32 | Stock left of a shop entry (-1 = unlimited). |
Give Item (GiveItem) | function, static | RPG Saga|Items | WorldContextObject: UObject*Item: URSEItemData*Count: int32 = 1 | int32 | Gives items to the party (capped by the item's stack limit). Returns how many were added. |
Has Item (HasItem) | pure, static | RPG Saga|Items | WorldContextObject: UObject*Item: URSEItemData*Count: int32 = 1 | bool | The party holds at least Count of an item. |
Rest at Inn (RestAtInn) | function, static | RPG Saga|Economy | WorldContextObject: UObject*CostOverride: int32 = -1 | ERSEInnResult | Pays and restores every member, then the rest fade plays (like the Rest At Inn effect). |
Sell (Sell) | function, static | RPG Saga|Economy | WorldContextObject: UObject*Item: URSEItemData*Count: int32 = 1Shop: URSEShopData* = None | ERSEShopResult | Removes Count of Item and pays their sell price. |
Spend Money (SpendMoney) | function, static | RPG Saga|Economy | WorldContextObject: UObject*Amount: int32 | bool | Pays Amount if the party has it. Returns false (and pays nothing) otherwise. |
Take Item (TakeItem) | function, static | RPG Saga|Items | WorldContextObject: UObject*Item: URSEItemData*Count: int32 = 1 | int32 | Takes up to Count items from the party. Returns how many were taken. |
URSEBlueprintLibrary_Narrative
Module RSECore, display name RSEBlueprint Library Narrative. Story state from Blueprint (D-052): flags, variables, puzzles, areas and events, conditions and effects, interactions, dialogs and quests.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Abort Dialog (AbortDialog) | function, static | RPG Saga|Dialog | WorldContextObject: UObject* | Stops the running blocking dialog now (effects already applied stay applied). | |
Add Member (Context) (EffectAddMember) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Character: URSECharacterData* | bool | Recruits a character. Returns false if already a member. |
Add Money (Context) (EffectAddMoney) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Amount: int32 | int32 | Adds money (negative: takes up to what the party has). Returns the change applied. |
Add to Variable (AddToVariable) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Variable: FGameplayTagDelta: int32 = 1 | int32 | Adds to a story variable (negative subtracts). Returns the new value. |
Can Run Interaction (CanRunInteraction) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Interaction: URSEInteractionData* | bool | Whether an Interaction asset would run now. |
Check Conditions (CheckConditions) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Conditions: FRSEConditionSet (ref) | bool | Whether a list of conditions passes now (an empty list passes). |
Check Conditions (Context) (ContextCheckConditions) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Conditions: FRSEConditionSet (ref) | bool | Evaluates a list of conditions in this context (composite Blueprint conditions). |
Complete Quest Objective (CompleteQuestObjective) | function, static | RPG Saga|Quests | WorldContextObject: UObject*Quest: URSEQuestData*Objective: FName | bool | Completes an objective of an active quest's current stage. |
Get Dialog Subsystem (GetDialogSubsystem) | pure, static | RPG Saga|Dialog | WorldContextObject: UObject* | URSEDialogSubsystem* | Dialogs of the game: the running dialog, barks, history and events. |
Get Item Count (Context) (ContextGetItemCount) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Item: URSEItemData* | int32 | How many of an item the party holds in this context. |
Get Level (Context) (ContextGetLevel) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Character: URSECharacterData* | int32 | Level of a character in this context. |
Get Money (Context) (ContextGetMoney) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref) | int32 | The party's money in this context. |
Get Narrative Subsystem (GetNarrativeSubsystem) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject* | URSENarrativeSubsystem* | The story state of the game (flags, variables, puzzles, areas, events) and its events. |
Get Party Members (Context) (ContextGetPartyMembers) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref) | TArray<URSECharacterData*> | Characters in the party in this context, in menu order. |
Get Quest Status (GetQuestStatus) | pure, static | RPG Saga|Quests | WorldContextObject: UObject*Quest: URSEQuestData* | ERSEQuestStatus | Status of a quest (not started, active, completed, failed...). |
Get Quest Subsystem (GetQuestSubsystem) | pure, static | RPG Saga|Quests | WorldContextObject: UObject* | URSEQuestSubsystem* | Quests and endings of the game, with their events. |
Get Variable (GetVariable) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Variable: FGameplayTag | int32 | A story variable (Narrative.Var.*); 0 when never set. |
Get Variable (Context) (ContextGetVariable) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Variable: FGameplayTag | int32 | A story variable in this context (0 when never set). |
Get World (Context) (ContextGetWorldContext) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref) | UObject* | The game world of a context (null in headless tests). World nodes inside Blueprint effects work without it too. |
Give Item (Context) (EffectGiveItem) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Item: URSEItemData*Count: int32 = 1 | int32 | Gives items to the party (capped by the stack limit). Returns how many were added. |
Is Area Unlocked (IsAreaUnlocked) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Area: FGameplayTag | bool | Whether a story area (Narrative.Area.*) is unlocked. |
Is Area Unlocked (Context) (ContextIsAreaUnlocked) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Area: FGameplayTag | bool | Whether a story area is unlocked in this context. |
Is Dialog Active (IsDialogActive) | pure, static | RPG Saga|Dialog | WorldContextObject: UObject* | bool | A blocking dialog is running (saving, travel and random encounters wait for it). |
Is Event Seen (IsEventSeen) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Event: FGameplayTag | bool | Whether a scene or event (Narrative.Event.*) was seen. |
Is Event Seen (Context) (ContextIsEventSeen) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Event: FGameplayTag | bool | Whether a scene or event was seen in this context. |
Is Flag Set (IsFlagSet) | pure, static | RPG Saga|Narrative | WorldContextObject: UObject*Flag: FGameplayTag | bool | Whether a story flag (Narrative.Flag.*) is set. |
Is Flag Set (Context) (ContextIsFlagSet) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Flag: FGameplayTag | bool | Whether a flag is set in this context. |
Is Party Member (Context) (ContextIsPartyMember) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Character: URSECharacterData* | bool | Whether a character is in the party in this context. |
Is Puzzle Solved (IsPuzzleSolved) | pure, static | RPG Saga|Puzzles | WorldContextObject: UObject*Puzzle: FGameplayTag | bool | Whether a puzzle (Narrative.Puzzle.*) is solved. |
Is Puzzle Solved (Context) (ContextIsPuzzleSolved) | pure, static | RPG Saga|Narrative|Context | Context: FRSEConditionContext (ref)Puzzle: FGameplayTag | bool | Whether a puzzle is solved in this context. |
Is Quest Active (IsQuestActive) | pure, static | RPG Saga|Quests | WorldContextObject: UObject*Quest: URSEQuestData* | bool | The quest is active. |
Modify Member Resource (Context) (EffectModifyMemberResource) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Character: URSECharacterData*Resource: FGameplayTagDelta: float | Changes a party member's resource (HP, MP, custom) by Delta, within its bounds. | |
Modify Variable (Context) (EffectModifyVariable) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Variable: FGameplayTagOp: ERSEVariableOpValue: int32 | Sets (Op Set) or adds to (Op Add) a story variable. | |
Remove Member (Context) (EffectRemoveMember) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Character: URSECharacterData*Departure: ERSEDepartureKind = Permanent | bool | A character leaves (permanently: its equipment returns to the inventory). |
Request Battle (RequestBattle) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Encounter: TSoftObjectPtr<URSEEncounterData> | Asks the game to start a battle (the encounter decides its mode), exactly like the Start Battle effect. | |
Request Battle (Context) (EffectRequestBattle) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Encounter: TSoftObjectPtr<URSEEncounterData> | Requests a battle (performed after a running dialog, like the Start Battle effect). | |
Request Dialog (Context) (EffectRequestDialog) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Dialog: TSoftObjectPtr<UObject> | Requests a dialog (after a running dialog, like the Start Dialog effect). | |
Request Scene (RequestScene) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Scene: TSoftObjectPtr<UObject>Event: FGameplayTagbMarkSeen: bool = true | Asks the game to play a scene (Scene Data or a dialog), exactly like the Play Scene effect. | |
Request Screen (RequestScreen) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Screen: TSoftObjectPtr<UObject> | Asks the game to open the screen of a data asset (a shop, a code lock, a card opponent, a tutorial), like the effects that open them. | |
Request Screen (Context) (EffectRequestScreen) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Screen: TSoftObjectPtr<UObject> | Requests the screen of a data asset (shop, code lock, card opponent, tutorial). | |
Restore Party (Context) (EffectRestoreParty) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Character: URSECharacterData* = None | Full HP / MP, no KO, no lasting statuses. Character empty = every member. | |
Run Effects (RunEffects) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Effects: FRSEEffectList (ref) | int32 | Runs a list of effects now, in order (each one's Only If gate is checked). Returns how many ran. |
Run Effects (Context) (EffectRunEffects) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Effects: FRSEEffectList (ref) | int32 | Runs a list of effects in this context. Returns how many ran. |
Run Interaction (RunInteraction) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Interaction: URSEInteractionData* | ERSEInteractionResult | Runs an Interaction asset (conditions, then effects; one-shot ones only once). |
Set Area Unlocked (SetAreaUnlocked) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Area: FGameplayTagbUnlocked: bool = true | Unlocks (or locks again) a story area. | |
Set Area Unlocked (Context) (EffectSetAreaUnlocked) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Area: FGameplayTagbUnlocked: bool = true | Unlocks or locks a story area. | |
Set Event Seen (SetEventSeen) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Event: FGameplayTagbSeen: bool = true | Marks a scene or event seen (or unseen). | |
Set Event Seen (Context) (EffectSetEventSeen) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Event: FGameplayTagbSeen: bool = true | Marks a scene or event seen or unseen. | |
Set Flag (SetFlag) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Flag: FGameplayTagbValue: bool = true | Sets or clears a story flag. Quests, doors and conditions react at once. | |
Set Flag (Context) (EffectSetFlag) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Flag: FGameplayTagbValue: bool = true | Sets or clears a story flag (reported like the Set Flag effect). | |
Set Puzzle Solved (SetPuzzleSolved) | function, static | RPG Saga|Puzzles | WorldContextObject: UObject*Puzzle: FGameplayTagbSolved: bool = true | Marks a puzzle solved (or unsolved again). | |
Set Puzzle Solved (Context) (EffectSetPuzzleSolved) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Puzzle: FGameplayTagbSolved: bool = true | Marks a puzzle solved or unsolved. | |
Set Variable (SetVariable) | function, static | RPG Saga|Narrative | WorldContextObject: UObject*Variable: FGameplayTagValue: int32 | Sets a story variable. | |
Start Dialog (StartDialog) | function, static | RPG Saga|Dialog | WorldContextObject: UObject*Dialog: URSEDialogData*Initiator: FGameplayTagStartNode: FName = None | bool | Starts a dialog (a blocking one waits for the running one; barks start at once). Returns true when it started or was queued. |
Start Quest (StartQuest) | function, static | RPG Saga|Quests | WorldContextObject: UObject*Quest: URSEQuestData*bIgnoreAvailability: bool = false | bool | Starts a quest (checks its availability unless bIgnoreAvailability). |
Take Item (Context) (EffectTakeItem) | function, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref)Item: URSEItemData*Count: int32 = 1 | int32 | Takes up to Count items from the party. Returns how many were taken. |
To Condition Context (EffectToConditionContext) | pure, static | RPG Saga|Narrative|Context | Context: FRSEEffectContext (ref) | FRSEConditionContext | The read-only view of an effect context (to call the condition Context nodes from an effect). |
URSEBlueprintLibrary_Party
Module RSECore, display name RSEBlueprint Library Party. The party from Blueprint (D-052): members and recruitment, the ATB formation, levels and experience, attributes and resources, equipment, field use of abilities and items, and Pacts.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Experience (AddExperience) | function, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Character: URSECharacterData*Amount: int32 | FRSELevelUpResult | Gives experience to a character: levels, stats, HP / MP and class abilities follow. Returns the levels gained and what they unlocked. |
Add Experience to Party (AddExperienceToParty) | function, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Amount: int32bOnlyStanding: bool = true | int32 | Gives the same experience to every member (bOnlyStanding: members that are not KO). Returns total levels gained. |
Add Party Member (AddPartyMember) | function, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* | bool | Recruits a character (main, secondary or guest). Returns false if already a member. |
Award Pact Points (AwardPactPoints) | function, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData*Points: int32 | Gives points to a Pact (spent on its abilities). | |
Bind Pact (BindPact) | function, static | RPG Saga|Pacts | WorldContextObject: UObject*Character: URSECharacterData*Pact: URSEPactData* | ERSEPactBindResult | Binds a Pact to a main character (replacing the one it held). Only outside battle. |
Can Bind Pact (CanBindPact) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Character: URSECharacterData*Pact: URSEPactData* | ERSEPactBindResult | Whether a character may take a Pact now. |
Can Equip (CanEquip) | pure, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*Item: URSEEquipmentData*SlotId: FName | ERSEEquipResult | Whether a character could wear Item in SlotId (class, slot kind, locked guest gear; ignores the inventory). |
Can Learn Pact Ability (CanLearnPactAbility) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData*Ability: URSEAbilityData* | ERSEPactLearnResult | Whether a Pact ability can be learned now, or why not (points, prerequisites). |
Cast Ability on Members (CastAbilityOnMembers) | function, static | RPG Saga|Party|Field | WorldContextObject: UObject*User: URSECharacterData*Ability: URSEAbilityData*Targets: TArray<URSECharacterData*> (ref) | ERSEFieldUseResult | A member casts an ability outside battle (healing, cures) on members; its costs are paid. |
Equip (Equip) | function, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*Item: URSEEquipmentData*SlotId: FName | ERSEEquipResult | Takes Item from the inventory and puts it in SlotId; what it replaces goes back to the inventory. |
Forget Ability (ForgetAbility) | function, static | RPG Saga|Party|Abilities | WorldContextObject: UObject*Character: URSECharacterData*Ability: URSEAbilityData* | ERSEAbilityLearnResult | A character forgets an ability: a learned one is removed, a class ability is hidden until learned again. No Change = it does not have it. |
Get ATB Formation (GetATBFormation) | pure, static | RPG Saga|Party|Formation | WorldContextObject: UObject* | TArray<URSECharacterData*> | Members that fight in ATB / turn-based battles now, in order. |
Get ATB Party Size (GetATBPartySize) | pure, static | RPG Saga|Party|Formation | WorldContextObject: UObject* | int32 | Size of the ATB party (Battle settings of the game's rules profile). |
Get ATB Row (GetATBRow) | pure, static | RPG Saga|Party|Formation | WorldContextObject: UObject*Character: URSECharacterData* | ERSEATBRow | The ATB row (front / back) a member fights in. |
Get Bound Pact (GetBoundPact) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Character: URSECharacterData* | URSEPactData* | A character's Pact, or none. |
Get Equip Candidates (GetEquipCandidates) | pure, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*SlotId: FName | TArray<URSEEquipmentData*> | Inventory equipment the character could wear in SlotId. |
Get Equipment (GetEquipment) | pure, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData* | FRSECharacterEquipment | What a character wears (slot id -> item). |
Get Equipped Item (GetEquippedItem) | pure, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*SlotId: FName | URSEEquipmentData* | The item a character wears in a slot, or none. |
Get Experience (GetExperience) | pure, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Character: URSECharacterData* | int32 | Experience total of a character. |
Get Experience to Next Level (GetExperienceToNextLevel) | pure, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Character: URSECharacterData* | int32 | Experience still missing for the next level (0 at the maximum level). |
Get Learned Abilities (GetLearnedAbilities) | pure, static | RPG Saga|Party|Abilities | WorldContextObject: UObject*Character: URSECharacterData* | TArray<URSEAbilityData*> | Abilities a character learned through Learn Ability, in learning order. |
Get Learned Pact Abilities (GetLearnedPactAbilities) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData* | TArray<URSEAbilityData*> | Abilities learned with a Pact, in learning order. |
Get Level (GetLevel) | pure, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Character: URSECharacterData* | int32 | Current level of a character. |
Get Member Abilities (GetMemberAbilities) | pure, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* | TArray<URSEAbilityData*> | Abilities a member has now: its class's for its level, plus those of its equipment and Pact, then the learned ones. |
Get Member Attribute (GetMemberAttribute) | pure, static | RPG Saga|Party|Attributes | WorldContextObject: UObject*Character: URSECharacterData*Attribute: FGameplayTag | float | Final attribute of a member (level, equipment, derived formulas). |
Get Member Attributes (GetMemberAttributes) | pure, static | RPG Saga|Party|Attributes | WorldContextObject: UObject*Character: URSECharacterData* | FRSEAttributeSet | Every attribute of a member now (level and equipment). |
Get Member Resource (GetMemberResource) | pure, static | RPG Saga|Party|Attributes | WorldContextObject: UObject*Character: URSECharacterData*Resource: FGameplayTag | float | Current value of a member's resource (HP, MP, custom ones kept after battle). |
Get Member Resource Max (GetMemberResourceMax) | pure, static | RPG Saga|Party|Attributes | WorldContextObject: UObject*Character: URSECharacterData*Resource: FGameplayTag | float | Maximum of a member's resource now (level, equipment). |
Get Member Vitals (GetMemberVitals) | pure, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* | FRSECharacterVitals | Current resources, KO and lasting statuses of a member. |
Get Owned Pacts (GetOwnedPacts) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject* | TArray<URSEPactData*> | Pacts the party has obtained, in the order obtained. |
Get Pact Holder (GetPactHolder) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData* | URSECharacterData* | Who holds a Pact, or none. |
Get Pact Points (GetPactPoints) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData* | int32 | Unspent points of a Pact. |
Get Party Members (GetPartyMembers) | pure, static | RPG Saga|Party | WorldContextObject: UObject* | TArray<URSECharacterData*> | Characters in the party, in menu order. |
Get Party State (GetPartyState) | pure, static | RPG Saga|Party | WorldContextObject: UObject* | FRSEPartyState | The whole party state (members, inventory, money, equipment, formation, Pacts, levels), read-only. |
Get Party Subsystem (GetPartySubsystem) | pure, static | RPG Saga|Party | WorldContextObject: UObject* | URSEPartySubsystem* | The party of the game (state, attributes and resources, and their events). |
Get Tactics Roster (GetTacticsRoster) | pure, static | RPG Saga|Party|Formation | WorldContextObject: UObject* | TArray<URSECharacterData*> | Members that can be deployed in Tactics battles (main and secondary characters). |
Give Pact (GivePact) | function, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData* | bool | The party obtains a Pact. Returns false if already owned. |
Has Learned Ability (HasLearnedAbility) | pure, static | RPG Saga|Party|Abilities | WorldContextObject: UObject*Character: URSECharacterData*Ability: URSEAbilityData* | bool | Whether a character learned an ability through Learn Ability (class, equipment and Pact abilities do not count). |
Has Pact (HasPact) | pure, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData* | bool | The party owns a Pact. |
Is In ATB Formation (IsInATBFormation) | pure, static | RPG Saga|Party|Formation | WorldContextObject: UObject*Character: URSECharacterData* | bool | The member fights in ATB / turn-based battles now. |
Is Member KO (IsMemberKO) | pure, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* | bool | The member is knocked out (HP 0). |
Is Party Member (IsPartyMember) | pure, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* | bool | The character is in the party now. |
Learn Ability (LearnAbility) | function, static | RPG Saga|Party|Abilities | WorldContextObject: UObject*Character: URSECharacterData*Ability: URSEAbilityData* | ERSEAbilityLearnResult | A character learns an ability for good (like the Learn Ability effect; the game shows a notice). No Change = it already has it. |
Learn Pact Ability (LearnPactAbility) | function, static | RPG Saga|Pacts | WorldContextObject: UObject*Pact: URSEPactData*Ability: URSEAbilityData* | ERSEPactLearnResult | Spends Pact points on one of its abilities. Only outside battle. |
Modify Member Resource (ModifyMemberResource) | function, static | RPG Saga|Party|Attributes | WorldContextObject: UObject*Character: URSECharacterData*Resource: FGameplayTagDelta: float | Adds Delta (negative removes) to a member's resource, within its bounds; HP 0 = KO. | |
Notify Party Changed (NotifyPartyChanged) | function, static | RPG Saga|Party | WorldContextObject: UObject* | Reports a party change made outside story effects (quests re-evaluate, menus refresh). The nodes above do it themselves. | |
Preview Equip (PreviewEquip) | function, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*Item: URSEEquipmentData*OutCurrent: FRSEAttributeSet (out)OutAfter: FRSEAttributeSet (out) | bool | Attributes now and with Item worn instead (equipment comparison). Returns false when the character cannot wear it. |
Remove Party Member (RemovePartyMember) | function, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData*Departure: ERSEDepartureKind = Permanent | bool | A character leaves: Permanent returns its equipment to the inventory; Parallel Scenario keeps it on the character. |
Restore Party (RestoreParty) | function, static | RPG Saga|Party | WorldContextObject: UObject*Character: URSECharacterData* = None | Full HP / MP, no KO, no lasting statuses (rest points, story heals). Character empty = every member. | |
Set ATB Row (SetATBRow) | function, static | RPG Saga|Party|Formation | WorldContextObject: UObject*Character: URSECharacterData*Row: ERSEATBRow | ERSEFormationResult | Moves a member to the front or back ATB row. |
Set In ATB Formation (SetInATBFormation) | function, static | RPG Saga|Party|Formation | WorldContextObject: UObject*Character: URSECharacterData*bActive: bool | ERSEFormationResult | Moves a member into (bActive) or out of the ATB party. |
Set Level (SetLevel) | function, static | RPG Saga|Party|Progression | WorldContextObject: UObject*Character: URSECharacterData*Level: int32 | FRSELevelUpResult | Sets a character's level (experience moves to the level's threshold). |
Unbind Pact (UnbindPact) | function, static | RPG Saga|Pacts | WorldContextObject: UObject*Character: URSECharacterData* | ERSEPactBindResult | Takes a character's Pact away. Only outside battle. |
Unequip (Unequip) | function, static | RPG Saga|Party|Equipment | WorldContextObject: UObject*Character: URSECharacterData*SlotId: FName | bool | Returns the item in SlotId to the inventory. |
Use Item on Members (UseItemOnMembers) | function, static | RPG Saga|Party|Field | WorldContextObject: UObject*Item: URSEConsumableData*Targets: TArray<URSECharacterData*> (ref) | ERSEFieldUseResult | Uses one consumable on members (a single target, or several when the item hits the whole party). |
URSEBlueprintLibrary_PartyField
Module RSECore, display name RSEBlueprint Library Party Field. Party field rules for Blueprints (D-097).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Compute Formation Slots (ComputeFormationSlots) | pure, static | RPG Saga|Party Field | LeaderLocation: FVectorLeaderYaw: floatCount: int32 | TArray<FVector> | World places of Count followers behind a leader (Project Settings -> Party Field -> Formation Slots). |
Decide Follow Action (DecideFollowAction) | pure, static | RPG Saga|Party Field | DistanceToSlot: floatDistanceToLeader: float | ERSEFollowAction | What a follower does next, from its distance to its place and to the leader. |
Get Command Success Chance (GetCommandSuccessChance) | pure, static | RPG Saga|Party Field | Command: URSEPartyCommandData*Member: URSECharacterData* | float | Chance (0..1) that Member's attempt at Command works. |
URSEBlueprintLibrary_Save
Module RSE, display name RSEBlueprint Library Save. Saving and loading from Blueprint (D-052).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Allow Saving (AllowSaving) | function, static | RPG Saga|Save | WorldContextObject: UObject*Reason: FName | Lifts a save block set with Block Saving (same reason). | |
Block Saving (BlockSaving) | function, static | RPG Saga|Save | WorldContextObject: UObject*Reason: FNameScope: ERSESaveBlockScope = All | Blocks saving for a reason until Allow Saving with the same reason (a custom no-save area, a minigame). Scope Consumable Item Only still allows save points. Reasons are counted. | |
Can Save Now (CanSaveNow) | function, static | RPG Saga|Save | WorldContextObject: UObject*Source: ERSESaveRequestSourceReasons: TArray<FName> (out) | bool | Whether a save is allowed now; Reasons lists what blocks it (Battle, Dialog, Cutscene, NoSaveZone...). |
Delete Save Slot (DeleteSaveSlot) | function, static | RPG Saga|Save | WorldContextObject: UObject*SlotName: FString | bool | Deletes a save slot (its file and backup). |
Get Continue Slot (GetContinueSlot) | function, static | RPG Saga|Save | WorldContextObject: UObject*SlotName: FString (out) | bool | The most recent loadable slot (Continue). Returns false when there is none. |
Get Play Time Seconds (GetPlayTimeSeconds) | pure, static | RPG Saga|Save | WorldContextObject: UObject* | float | Play time of this game in seconds. |
Get Save Flow Subsystem (GetSaveFlowSubsystem) | pure, static | RPG Saga|Save | WorldContextObject: UObject* | URSESaveFlowSubsystem* | The save flow in the world: save points, the save item, the save screen, load and travel. |
Get Save Slots (GetSaveSlots) | function, static | RPG Saga|Save | WorldContextObject: UObject* | TArray<FRSESaveSlotInfo> | Every slot's summary (autosaves first, then manual slots; empty ones included). |
Get Save Subsystem (GetSaveSubsystem) | pure, static | RPG Saga|Save | WorldContextObject: UObject* | URSESaveSubsystem* | Save files, slots, save rules, play time and the save events. |
Get Slot Name (GetSlotName) | pure, static | RPG Saga|Save | WorldContextObject: UObject*SlotIndex: int32 | FString | Name of manual slot N (0-based). |
Has Any Save (HasAnySave) | pure, static | RPG Saga|Save | WorldContextObject: UObject* | bool | At least one loadable save exists (Continue / Load in a main menu). |
Load Game (LoadGame) | function, static | RPG Saga|Save | WorldContextObject: UObject*SlotName: FString | ERSESaveResult | Loads a slot and opens its map (the player appears where the save was made). |
Open Save Screen (OpenSaveScreen) | function, static | RPG Saga|Save | WorldContextObject: UObject*SavePointId: FName | bool | Opens the save screen (slot list), like a save point does. |
Save Game (SaveGame) | function, static | RPG Saga|Save | WorldContextObject: UObject*SlotName: FStringSavePointId: FName | ERSESaveResult | Saves the game now in a slot, with the player's place (SavePointId: the save point used, if any). Manual saves cannot overwrite the autosave slots. |
Start New Game (StartNewGame) | function, static | RPG Saga|Save | WorldContextObject: UObject* | A new game for every saved system (party, story, quests, cards...), play time back to zero. |
URSEBlueprintLibrary_Stealth
Module RSECore, display name RSEBlueprint Library Stealth. Stealth rules for Blueprints (D-097).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Advance Detection Meter (AdvanceDetectionMeter) | function, static | RPG Saga|Stealth | Meter: FRSEDetectionMeter (ref)Rate: floatDeltaSeconds: float | bool | Advances a detection meter (fills at Rate, drains after the decay delay). Returns true the moment it becomes full. |
Compute Detection Fill Rate (ComputeDetectionFillRate) | pure, static | RPG Saga|Stealth | Input: FRSEDetectionInput (ref)Behavior: URSERoamingBehaviorData* | float | How fast an enemy with Behavior fills its detection meter for what it perceives (meter share per second; 0 = nothing). |
Get Detection Awareness (GetDetectionAwareness) | pure, static | RPG Saga|Stealth | Meter: FRSEDetectionMeter (ref) | ERSEStealthAwareness | D-151: unaware, suspicious or alerted, from a meter. |
URSEBlueprintLibrary_UI
Module RSE, display name RSEBlueprint Library UI. Screens, input prompts, visual styles and player options from Blueprint (D-052).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Close Modal Screen (CloseModalScreen) | function, static | RPG Saga|UI | WorldContextObject: UObject*Screen: UObject* | Unregisters a custom screen (the HUD comes back; world input waits a moment so the closing press does not reach it). | |
Get Active Visual Style (GetActiveVisualStyle) | pure, static | RPG Saga|Visual Style | WorldContextObject: UObject* | URSEVisualStyle* | The style applied now, or none. |
Get Dialog Text Speed (GetDialogTextSpeed) | pure, static | RPG Saga|Dialog | WorldContextObject: UObject* | int32 | Index into the Dialog settings' text speed steps (the player's option). |
Get Gamepad Label Style (GetGamepadLabelStyle) | pure, static | RPG Saga|Input | ERSEGamepadLabelStyle | The gamepad label set in use (the player's choice, else the project's). | |
Get Input Device (GetInputDevice) | pure, static | RPG Saga|Input | ERSEInputDevice | The device the key prompts show (the forced one, else the one used last). | |
Get Key Label (GetKeyLabel) | pure, static | RPG Saga|Input | Key: FKey | FText | Short label of a key for prompts (theme, active gamepad label set: Xbox, PlayStation, Steam Deck). |
Get Keys Label (GetKeysLabel) | pure, static | RPG Saga|Input | Keys: TArray<FKey> (ref) | FText | The label of the first key of Keys for the device in use (empty when the device has none). |
Get Player Option Bool (GetPlayerOptionBool) | pure, static | RPG Saga|Options | Key: FStringbDefault: bool = false | bool | A stored bool player option (Default when never set). |
Get Player Option Float (GetPlayerOptionFloat) | pure, static | RPG Saga|Options | Key: FStringDefault: float = 0.000000 | float | A stored float player option (Default when never set). |
Get Player Option Int (GetPlayerOptionInt) | pure, static | RPG Saga|Options | Key: FStringDefault: int32 = 0 | int32 | A stored player option (Default when never set). Keys are shared with the built-in options screen. |
Get Player Option String (GetPlayerOptionString) | pure, static | RPG Saga|Options | Key: FStringDefault: FString | FString | A stored text player option (Default when never set). |
Get Visual Style Subsystem (GetVisualStyleSubsystem) | pure, static | RPG Saga|Visual Style | WorldContextObject: UObject* | URSEVisualStyleSubsystem* | The visual style layer of the current world (area -> player -> default). |
Get Visual Styles (GetVisualStyles) | function, static | RPG Saga|Visual Style | TArray<URSEVisualStyle*> | The styles the player can pick from, in order. | |
Is Any Modal Screen Open (IsAnyModalScreenOpen) | pure, static | RPG Saga|UI | WorldContextObject: UObject* | bool | Any modal screen is open (menus, dialogs, shops, the card table...). |
Is Dialog Auto Advance (IsDialogAutoAdvance) | pure, static | RPG Saga|Dialog | WorldContextObject: UObject* | bool | Dialog lines advance by themselves (the player's option). |
Is Game Input Blocked (IsGameInputBlocked) | pure, static | RPG Saga|UI | WorldContextObject: UObject* | bool | World actions (Interact, the menu key) must wait: a screen is open or has just closed. |
Open Modal Screen (OpenModalScreen) | function, static | RPG Saga|UI | WorldContextObject: UObject*Screen: UObject*Options: FRSEModalScreenOptions | Registers a custom screen as open: the exploration / battle HUD hides and world input waits until Close Modal Screen. | |
Set Dialog Auto Advance (SetDialogAutoAdvance) | function, static | RPG Saga|Dialog | WorldContextObject: UObject*bEnabled: bool | Turns dialog auto-advance on or off (stored in the player's options). | |
Set Dialog Text Speed (SetDialogTextSpeed) | function, static | RPG Saga|Dialog | WorldContextObject: UObject*Step: int32 | Sets the text speed step (index into the Dialog settings' steps; stored in the player's options). | |
Set Gamepad Label Style (SetGamepadLabelStyle) | function, static | RPG Saga|Input | Style: ERSEGamepadLabelStyle | The player's gamepad label set (Auto = automatic). Stored in the player's options. | |
Set Player Option Bool (SetPlayerOptionBool) | function, static | RPG Saga|Options | Key: FStringbValue: bool | Stores a bool player option (GameUserSettings.ini). | |
Set Player Option Float (SetPlayerOptionFloat) | function, static | RPG Saga|Options | Key: FStringValue: float | Stores a float player option (GameUserSettings.ini). | |
Set Player Option Int (SetPlayerOptionInt) | function, static | RPG Saga|Options | Key: FStringValue: int32 | Stores an integer player option (GameUserSettings.ini). | |
Set Player Option String (SetPlayerOptionString) | function, static | RPG Saga|Options | Key: FStringValue: FString | Stores a text player option (GameUserSettings.ini). | |
Set Quest Tracker Hidden (SetQuestTrackerHidden) | function, static | RPG Saga|Quests | WorldContextObject: UObject*Reason: FNamebHidden: bool | Hides the quest tracker while any reason is set (a custom screen, a cutscene). Battles hide it on their own. | |
Set Visual Style (SetVisualStyle) | function, static | RPG Saga|Visual Style | WorldContextObject: UObject*Style: URSEVisualStyle*bSave: bool = true | The player's style (none = the default); applied at once, saved per user when bSave. | |
Show Notification (ShowNotification) | function, static | RPG Saga|Quests | WorldContextObject: UObject*Header: FTextBody: FTextColor: FLinearColor | Shows a notification through the quest HUD (header, body, accent color). | |
Show Tutorial Screen (ShowTutorialScreen) | function, static | RPG Saga|Tutorials | WorldContextObject: UObject*Tutorial: URSETutorialData* | Shows a tutorial screen again without changing its seen state (a Help page). |
URSEBlueprintLibrary_World
Module RSE, display name RSEBlueprint Library World. The world from Blueprint (D-052): travel between maps and fast travel, areas, interaction, puzzles, story scenes, shops and the card table.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Encounter Rate Effect (AddEncounterRateEffect) | function, static | RPG Saga|Encounters | WorldContextObject: UObject*SourceId: FNameMultiplier: floatSteps: int32Seconds: float | bool | Changes the random encounter rate for a while (Repel / Lure from a Blueprint): Multiplier 0 = no random battles, 2 = twice as many; Steps and Seconds (0 = not limited) count down while exploring. SourceId: the same id refreshes or ends it. |
Discover Place (DiscoverPlace) | function, static | RPG Saga|Travel | WorldContextObject: UObject*Place: URSETravelDestinationData* | Discovers a fast-travel place (it appears on the world map). | |
Fast Travel To (FastTravelTo) | function, static | RPG Saga|Travel | WorldContextObject: UObject*Destination: URSETravelDestinationData* | bool | Fast travel to a world map place (it must be available). |
Get Current Area (GetCurrentArea) | pure, static | RPG Saga|Travel | WorldContextObject: UObject* | URSEAreaData* | The area the player is in now (area volume, else the map's area), or none. |
Get Encounter Rate Multiplier (GetEncounterRateMultiplier) | pure, static | RPG Saga|Encounters | WorldContextObject: UObject* | float | The random battle chance multiplier now: rate effects x equipment traits x the player's frequency option. |
Get Encounter Subsystem (GetEncounterSubsystem) | pure, static | RPG Saga|Encounters | WorldContextObject: UObject* | URSEEncounterSubsystem* | The world's random encounter system: rate, rate effects, generated groups, visible enemy events. |
Get Fast Travel Block (GetFastTravelBlock) | pure, static | RPG Saga|Travel | WorldContextObject: UObject* | ERSEFastTravelBlock | Whether fast travel works now, and why not (battle, dialog, story lock...). |
Get Focused Interactable (GetFocusedInteractable) | pure, static | RPG Saga|Interaction | WorldContextObject: UObject* | ARSEInteractableActor* | The interactable the prompt shows now, or none. |
Get Travel Subsystem (GetTravelSubsystem) | pure, static | RPG Saga|Travel | WorldContextObject: UObject* | URSETravelSubsystem* | Zone navigation and fast travel (TravelTo, the world map, the area catalog). |
Interact with Focused (InteractWithFocused) | function, static | RPG Saga|Interaction | WorldContextObject: UObject* | bool | Interacts with the focused interactable, like pressing Interact. |
Is Area Discovered (IsAreaDiscovered) | pure, static | RPG Saga|Travel | WorldContextObject: UObject*Area: URSEAreaData* | bool | The player has been to an area. |
Is Code Lock Solved (IsCodeLockSolved) | pure, static | RPG Saga|Puzzles | WorldContextObject: UObject*Lock: URSECodeLockData* | bool | The code lock was solved. |
Is Exploration Active (IsExplorationActive) | pure, static | RPG Saga|Exploration | WorldContextObject: UObject* | bool | The explorer has control (no battle, menu, dialog). |
Is Place Discovered (IsPlaceDiscovered) | pure, static | RPG Saga|Travel | WorldContextObject: UObject*Place: URSETravelDestinationData* | bool | A fast-travel place was discovered. |
Is Scene Playing (IsScenePlaying) | pure, static | RPG Saga|Scenes | WorldContextObject: UObject* | bool | A story scene is on screen. |
Is Traveling (IsTraveling) | pure, static | RPG Saga|Travel | WorldContextObject: UObject* | bool | A travel is queued, fading out or loading. |
Open Card Album (OpenCardAlbum) | function, static | RPG Saga|Cards | WorldContextObject: UObject* | bool | Opens the card album / deck editor. |
Open Code Lock (OpenCodeLock) | function, static | RPG Saga|Puzzles | WorldContextObject: UObject*Lock: URSECodeLockData* | Opens a code lock screen (unless it is solved), like the Open Code Lock effect. | |
Open Shop (OpenShop) | function, static | RPG Saga|Economy | WorldContextObject: UObject*Shop: URSEShopData* | Opens a shop screen, like the Open Shop effect. | |
Open World Map (OpenWorldMap) | function, static | RPG Saga|Travel | WorldContextObject: UObject*Reason: FText (out) | bool | Opens the world map (after a running dialog). Returns false when fast travel is blocked; Reason says why. |
Play Narration (PlayNarration) | function, static | RPG Saga|Puzzles | WorldContextObject: UObject*Lines: TArray<FText> (ref)Effects: TArray<URSEWorldEffect*> (ref) | bool | Narrator lines in the dialog box (examine texts, hints), then optional effects. |
Play Rest Fade (PlayRestFade) | function, static | RPG Saga|Economy | WorldContextObject: UObject* | Plays the inn's fade to black and back (the party is not changed; see Rest At Inn). | |
Play Scene (PlayScene) | function, static | RPG Saga|Scenes | WorldContextObject: UObject*Scene: URSESceneData*bReplay: bool = false | bool | Plays a story scene (queued behind a running one). bReplay: no end effects (theater). |
Skip Scene (SkipScene) | function, static | RPG Saga|Scenes | WorldContextObject: UObject* | Skips the running scene now (its end effects still run). | |
Start Card Match (StartCardMatch) | function, static | RPG Saga|Cards | WorldContextObject: UObject*Opponent: URSECardOpponentData* | bool | Starts a card match now (no dialog wait; a notice explains a refusal). |
Travel to Map (TravelToMap) | function, static | RPG Saga|Travel | WorldContextObject: UObject*Map: TSoftObjectPtr<UWorld>ArrivalPoint: FNameArea: TSoftObjectPtr<URSEAreaData> | bool | Travels to a map: fade out with the destination's name, open the map, place the player at the arrival point (ArrivalPoint None = the point for the map left, else the default one). Waits for a running dialog. |
URSECameraFocusInterface
Module RSE. RSECamera Focus Interface
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Camera Focus (GetCameraFocus) | override | RPG Saga|Camera | OutFeet: TArray<FVector> (out)OutIgnoredActors: TArray<AActor*> (out) | Feet of the characters to keep visible (world, most important first) and the actors never hidden. |
URSECameraHandOffLibrary
Module RSE. D-127: hand-overs of the player's view without a visible jump.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Freeze View (FreezeView) | function, static | RPG Saga|Camera | Controller: APlayerController*LifeSeconds: float = 2.000000 | ACameraActor* | Spawns a transient camera exactly at the controller's current view (location, rotation, field of view, post process) and makes it the view target at once: possessing another pawn no longer moves the picture, and the next Set View Target with Blend blends from this frozen view. The camera destroys itself after Life Seconds (game time; keep it longer than the blend); 0 = the caller destroys it. Returns the camera, or null without a camera manager. |
URSECameraOcclusionSubsystem
Module RSE. The camera occlusion of the RPG cameras (D-113, D-116, Camera Occlusion settings).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Circle Strength (GetCircleStrength) | pure | RPG Saga|Camera | Slot: int32 | float | D-116: how far the see-through circle is open (0..1) around the focus character Slot (0 = the leader / active unit). |
Get Fading Count (GetFadingCount) | pure | RPG Saga|Camera | int32 | Objects in the way at the last check that fade instead of hiding (opted-in materials). | |
Get Ghost Count (GetGhostCount) | pure | RPG Saga|Camera | int32 | D-116: objects (or instances) wearing the ghost material now, opening or closing. | |
Get Hidden Count (GetHiddenCount) | pure | RPG Saga|Camera | int32 | Objects hidden now (the fallback, the forced parts and the single instances). | |
Get Hidden Instance Count (GetHiddenInstanceCount) | pure | RPG Saga|Camera | int32 | Single instances of instanced meshes hidden now (D-112: trees of an instanced forest). | |
Restore All (RestoreAll) | function | RPG Saga|Camera | Shows everything the occlusion hid (a cut, the end of a battle). The next check hides what is still in the way. | ||
Update Now (UpdateNow) | function | RPG Saga|Camera | Runs a check now (tests, scripts; the timer does it on its own). |
URSECardAlbumViewModel
Module RSE. Card album and deck editor (D-028): owned cards by rarity, the deck (max size by the card rules), add / remove, auto-build and the validation message.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate (Activate) | function | RPG Saga|UI|Album | Adds the selected collection card / removes the selected deck card. | ||
Activate Row (ActivateRow) | function | RPG Saga|UI|Album | InColumn: int32Index: int32 | Selects a row and activates it (a click). | |
Auto Build (AutoBuild) | function | RPG Saga|UI|Album | Auto Build | ||
Leave (Leave) | function | RPG Saga|UI|Album | Closes the album (the last valid deck stays). | ||
Move Selection (MoveSelection) | function | RPG Saga|UI|Album | Delta: int32 | Move Selection | |
Select (Select) | function | RPG Saga|UI|Album | InColumn: int32Index: int32 | Select | |
Set Column (SetColumn) | function | RPG Saga|UI|Album | InColumn: int32 | Set Column |
URSECardChallengerComponent
Module RSE. Makes any actor (an NPC, a sign, a table) a card opponent (D-028).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Challenge (CanChallenge) | pure | RPG Saga|Cards | ERSECardChallengeResult | Whether the player can challenge now (conditions, rematch rule, deck). | |
Challenge (Challenge) | function | RPG Saga|Cards | Asks for a match (the card presentation checks CanChallenge again and explains a refusal). |
URSECardPresentationSubsystem
Module RSE. Card game director in the world (D-028).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Card Screen Open (IsBusy) | pure | RPG Saga|Cards | bool | A card screen (table or album) is open. | |
On Challenge Refused (BP_OnChallengeRefused) | event | RPG Saga|Cards | Opponent: URSECardOpponentData*Reason: ERSECardChallengeResult | A challenge was refused (conditions, rematch rule, deck; Blueprint). | |
On Match Presented (BP_OnMatchPresented) | event | RPG Saga|Cards | Result: FRSECardMatchResult (ref) | The table closed after a match (Blueprint). | |
Open Album (OpenAlbum) | function | RPG Saga|Cards | bool | Opens the album / deck editor. Returns false when busy. | |
Start Challenge (StartChallenge) | function | RPG Saga|Cards | Opponent: URSECardOpponentData* | bool | Starts a match against Opponent now. Returns false when refused (a notice explains why). |
URSECardSubsystem
Module RSECore. Owns the player's card collection for the session and runs matches (D-028).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Auto Build Deck (AutoBuildDeck) | function | RPG Saga|Cards | Replaces the deck with the strongest one from the owned cards (RSECardDeck::BuildBest). | ||
Can Challenge (CanChallenge) | pure | RPG Saga|Cards | Opponent: URSECardOpponentData* | ERSECardChallengeResult | Whether the player can challenge Opponent now (conditions, rematch rule, deck). |
Get Card Collection (GetCollectionBP) | pure | RPG Saga|Cards | FRSECardCollection | Owned cards and counts, the deck and the record against each opponent (read-only). | |
Get Card Count (GetCardCount) | pure | RPG Saga|Cards | Card: URSECardData* | int32 | Copies of a card the player owns. |
Get Deck (GetDeckBP) | pure | RPG Saga|Cards | TArray<URSECardData*> | The player's deck, in order. | |
Get Wins (GetWins) | pure | RPG Saga|Cards | Opponent: URSECardOpponentData* | int32 | Matches won against an opponent. |
Give Card (GiveCard) | function | RPG Saga|Cards | Card: URSECardData*Count: int32 = 1 | int32 | Adds copies (capped by MaxCopiesPerCard). Returns copies added. |
On Card Collection Changed (OnCardCollectionChanged) | event | RPG Saga|Cards | Owned cards or the deck changed. | ||
On Card Match Finished (OnCardMatchFinished) | event | RPG Saga|Cards | Result: FRSECardMatchResult (ref) | A match was played and applied (the table replays it). | |
On Card Match Requested (OnCardMatchRequested) | event | RPG Saga|Cards | Opponent: TSoftObjectPtr<URSECardOpponentData> (ref) | A Start Card Match effect or Request Match asked for a match. | |
Play Match (Instant) (PlayMatchBP) | function | RPG Saga|Cards | Opponent: URSECardOpponentData*Seed: int32OutResult: FRSECardMatchResult (out) | bool | Plays and applies a whole match at once, without the table screen (record, stake, rewards). Seed 0 = the next seed of the game's Cards stream (world seed). |
Request Match (RequestMatchBP) | function | RPG Saga|Cards | Opponent: URSECardOpponentData* | Asks the presentation to start a match (checks come there), like the Start Card Match effect. | |
Set Deck (SetDeck) | function | RPG Saga|Cards | Deck: TArray<URSECardData*> (ref) | ERSEDeckValidation | Replaces the deck if it is valid. |
Simulate Match (SimulateMatchBP) | pure | RPG Saga|Cards | Opponent: URSECardOpponentData*Seed: int32OutResult: FRSECardMatchResult (out) | bool | The same match without changing anything (previews). |
Take Card (TakeCard) | function | RPG Saga|Cards | Card: URSECardData*Count: int32 = 1 | int32 | Removes up to Count copies; the deck loses copies no longer owned. Returns copies removed. |
Validate Deck (ValidateDeck) | pure | RPG Saga|Cards | Deck: TArray<URSECardData*> (ref) | ERSEDeckValidation | Whether a deck is valid (size, owned copies), or why not. |
URSECardTableViewModel
Module RSE. The War card table (D-028): replays a finished match (RSECardTimeline) step by step, then shows the result.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Continue (Continue) | function | RPG Saga|UI|Cards | Leaves the result (only once it is shown). | ||
Cycle Speed (CycleSpeed) | function | RPG Saga|UI|Cards | Next replay speed (Cards UI -> SpeedOptions). | ||
Get Match Card (GetMatchCard) | pure | RPG Saga|UI|Cards | MatchCard: int32 | URSECardData* | The card of a match card index (steps refer to cards by index). |
On Step (OnStep) | event | RPG Saga|UI|Cards | Step: FRSECardAnimStep (ref) | Every replay step as it starts (animate it). | |
Skip to Result (SkipToResult) | function | RPG Saga|UI|Cards | Jumps to the end of the replay and shows the result. |
URSECharacterAnimInstance
Module RSE. Animation logic of every character (D-046, CLAUDE.md 3.5), in C++ so Anim Blueprints stay thin: - locomotion values for the blend space (Speed, Direction, bIsMoving), measured from the movement component or, for actors moved directly (grid units, battle cue moves), from their motion; plus the inputs...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Battle State (GetBattleState) | pure | RPG Saga|Animation | ERSEAnimBattleState | The battle pose state the animation shows (idle, ready, hit, KO...). | |
Get Last Hit Direction (GetLastHitDirection) | pure | RPG Saga|Animation | ERSEHitDirection | Side the last hit came from (Front before any hit). | |
Get Stance Overlay Alpha (GetStanceOverlayAlpha) | pure | RPG Saga|Animation | float | D-185 addendum 2: the weight of the upper body stance now (0..1). | |
Get Stance Overlay Sequence (GetStanceOverlaySequence) | pure | RPG Saga|Animation | UAnimSequenceBase* | D-185 addendum 2: the stance clip playing over the upper body (null when none). | |
Play Approach (PlayApproach) | function | RPG Saga|Animation | float | The anim set's dash toward a target (battle cue Move, To Target). Returns seconds (0 = none: locomotion shows the move). | |
Play Reaction (PlayReaction) | function | RPG Saga|Animation | Reaction: ERSEAnimReaction | float | Plays a one-shot reaction over the current state (not while Down), as if from the front. Returns seconds it lasts (0 = none). |
Play Reaction From (PlayReactionFrom) | function | RPG Saga|Animation | Reaction: ERSEAnimReactionFromLocation: FVector (ref)bHeavy: bool = false | float | Plays a one-shot reaction to a hit coming from a world location: the anim set's animation for that side (and HitHeavy for a heavy hit from the front). A knock-out soon after falls the same way. Returns seconds (0 = none). |
Play Weapon Recoil (PlayWeaponRecoil) | function | RPG Saga|Animation | HoldType: ERSEWeaponHoldType = AutoScale: float = 1.000000 | float | D-185 addendum 2: kicks the procedural recoil (the spine and the weapon arm pitch, then recover): guns without a fire clip. The held weapon's kick (its hold profile, else the Weapon Hold settings' Recoil Defaults); HoldType picks the settings' kick when nothing is held. Needs the recoil nodes of the Anim Blueprint (Add Weapon Layers). Returns seconds it lasts (0 = off). |
Set Battle State (SetBattleState) | function | RPG Saga|Animation | NewState: ERSEAnimBattleState | Enters a battle state: its animation loops (Down and a non-looping Victory hold their last pose). | |
Set Variant Seed (SetVariantSeed) | function | RPG Saga|Animation | Seed: int32 | Seed of the random animation variants (RSECharacterAnim::MakeSeed: battle seed + unit id). Resets the play counts, so the same battle events pick the same variants. |
URSEClockHUDSubsystem
Module RSE. Shows the HUD clock while exploring in levels that have a Time of Day actor (D-101).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Set Clock Hidden (SetClockHidden) | function | RPG Saga|Time | bHidden: bool | Hides the clock (a cinematic, a screenshot) until shown again. |
URSECodeLockViewModel
Module RSE. A code lock (D-039): digit, symbol or clock-hand wheels.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Leave (Leave) | function | RPG Saga|UI|CodeLock | Leave | ||
Select Wheel (SelectWheel) | function | RPG Saga|UI|CodeLock | Wheel: int32 | Select Wheel | |
Step Selected Wheel (StepSelectedWheel) | function | RPG Saga|UI|CodeLock | Direction: int32 | Moves the wheel selection (-1 left, +1 right, wrapping). | |
Submit (Submit) | function | RPG Saga|UI|CodeLock | Enters the code (D-138: the Submit Code command, checked on the authority): opens (and closes the screen), shows the wrong text, or locks out, when the outcome arrives. | ||
Turn Wheel (TurnWheel) | function | RPG Saga|UI|CodeLock | Delta: int32 | Turns the selected wheel by Delta positions. | |
Turn Wheel At (TurnWheelAt) | function | RPG Saga|UI|CodeLock | Wheel: int32Delta: int32 | Selects Wheel and turns it (the arrows above / below each wheel). |
URSECombatRoleLibrary
Module RSE. Combat roles of placed objects (D-093): the role of a component, an actor or an asset, the cover information of a hit (for line of sight, cover and movement queries such as Free Tactics' cover query), and whether a place is inside a Combat Area.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Place At (CanPlaceAt) | pure, static | RPG Saga|Combat Roles | WorldContext: UObject*Asset: UObject*Location: FVector | bool | Whether placement tools may put Asset (a mesh, Blueprint or class) at Location: false when its role keeps it out of Combat Areas and Location is inside one. |
Can Place in Combat Area (CanPlaceInCombatArea) | pure, static | RPG Saga|Combat Roles | Asset: UObject* | bool | Whether Asset (a mesh, Blueprint or class) may be placed inside Combat Areas (false when its role keeps it out). |
Get Actor Role (GetActorRole) | pure, static | RPG Saga|Combat Roles | Actor: AActor* | FRSECombatRoleResolution | The role of a placed actor (its Combat Role component or tag, else its root mesh's or class's role). |
Get Asset Role (GetAssetRole) | pure, static | RPG Saga|Combat Roles | Asset: UObject* | FRSECombatRoleResolution | The role stored for an asset: a static mesh, a Blueprint or an actor class (parents' roles are inherited). |
Get Component Role (GetComponentRole) | pure, static | RPG Saga|Combat Roles | Component: UPrimitiveComponent* | FRSECombatRoleResolution | The role of a placed component (all instances of an instanced mesh share it). |
Get Cover Info (GetCoverInfo) | pure, static | RPG Saga|Combat Roles | Component: UPrimitiveComponent*InstanceIndex: int32 = -1 | FRSECombatRoleCover | Cover and blocking information of a placed component (a line trace's Hit Component and Item): the role's flags and the blocking volume in world space (the mesh's simple collision bounds, per instance for instanced meshes). |
Is in Combat Area (IsInCombatArea) | pure, static | RPG Saga|Combat Roles | WorldContext: UObject*Location: FVector | bool | Whether a world position lies inside an enabled Combat Area of the level. |
URSECommandHandler
Module RSECore. Validates and applies one command type (D-133).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply (Apply) | override | RPG Saga|Commands | Context: FRSECommandContext (ref)Command: FInstancedStruct (ref) | Changes the state (only after Validate passed). Fire the system's own events as usual. | |
Get Command Type (GetCommandType) | override | RPG Saga|Commands | UScriptStruct* | The command struct this handler applies (derived from RSE Command). Default: Command Type. | |
Validate (Validate) | override | RPG Saga|Commands | Context: FRSECommandContext (ref)Command: FInstancedStruct (ref)OutReason: FText (out) | bool | Whether the command may run now (the sender, the state, the arguments). Must not change state. Return false with a Reason the player can read. Default: true. |
URSECommandSubsystem
Module RSECore. The command bus (D-124 §3.3, D-133): the one path by which player actions change game state, in every mode.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Submit (CanSubmit) | pure | RPG Saga|Commands | Command: FInstancedStruct (ref) | FRSECommandResult | Whether a command would be accepted now (handler found, permission, Validate), without applying it. On a guest: local check only. |
Get Current Instigator (GetCurrentInstigator) | pure | RPG Saga|Commands | FRSEPlayerId | Sender of the command being applied right now, else this machine's player. | |
Get Permission (GetPermission) | pure | RPG Saga|Commands | CommandType: UScriptStruct* | ERSECommandPermission | Who may send CommandType now: the project's permission rule, else its handler's permission (AnyPlayer without a handler). |
Has Handler (HasHandler) | pure | RPG Saga|Commands | CommandType: UScriptStruct* | bool | A handler is registered for CommandType or one of its base structs. |
Is Allowed For (IsAllowedFor) | pure | RPG Saga|Commands | CommandType: UScriptStruct*Player: FRSEPlayerId | bool | Whether Player may send CommandType by permission alone (no state check): the UI greys out what a guest may not do. The game itself (None) and the host always may. |
Is Applying Command (IsApplyingCommand) | pure | RPG Saga|Commands | bool | A command is being applied right now (handlers, effects). | |
On Command Result (OnCommandResult) | event | RPG Saga|Commands | Result: FRSECommandResult (ref) | A command sent from this machine or applied on it has a result (Applied, Rejected...). | |
Register Handler Class (RegisterHandlerClass) | function | RPG Saga|Commands | HandlerClass: TSubclassOf<URSECommandHandler> | URSECommandHandler* | Creates a handler of HandlerClass and registers it. Returns the handler, or null. |
Register Handler Object (RegisterHandlerObject) | function | RPG Saga|Commands | Handler: URSECommandHandler* | Adds a handler object for its command type; one already registered for that type is replaced (with a warning). | |
Set Command Outcome (SetCommandOutcome) | pure | RPG Saga|Commands | Outcome: FInstancedStruct (ref) | Attaches what the command being validated or applied did, in its system's terms (any USTRUCT): it is returned in the command's result (FRSECommandResult::Outcome) and sent back to a guest. Call it from a handler's Validate or Apply; the last call wins. Outside a handler it does nothing. | |
Submit Command (Submit) | function | RPG Saga|Commands | Command: FInstancedStruct (ref) | FRSECommandResult | Sends a command as this machine's player. Command: any struct derived from RSE Command (Make Instanced Struct). |
Submit Command As (SubmitAs) | function | RPG Saga|Commands | Command: FInstancedStruct (ref)Instigator: FRSEPlayerId | FRSECommandResult | Sends a command for another player or for the game itself (FRSEPlayerId::None): AI, scripted sequences, tools, tests. Only where this machine has authority; a guest gets Not Allowed. |
Unregister Handler (UnregisterHandler) | function | RPG Saga|Commands | CommandType: UScriptStruct* | Removes the handler of CommandType (exactly that type). |
URSECommonUISubsystem
Module RSECommonUI. One local player's CommonUI host layer (D-176, docs/product/common-ui.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Screen Host (FindScreenHost) | pure | RPG Saga|UI|Common UI | Screen: URSEScreenWidget* | URSECommonScreenHost* | The host of Screen while it is on a layer, else null. |
Get Layer Stack (GetLayerStack) | function | RPG Saga|UI|Common UI | Layer: ERSECommonUILayer | UCommonActivatableWidgetContainerBase* | The stack of Layer (made with the layout when needed). Null without a local player controller or Slate. |
Get Layout (GetLayout) | pure | RPG Saga|UI|Common UI | URSECommonUILayout* | The layout made for this player (null when the project registered its own stacks or none was needed yet). | |
Get RSE Common UI (GetFor) | pure, static | RPG Saga|UI|Common UI | Player: UObject* | URSECommonUISubsystem* | The CommonUI host layer of the local player behind Player (a controller, pawn, widget or local player), or null. |
Pop Screen (PopScreen) | function | RPG Saga|UI|Common UI | Screen: URSEScreenWidget* | Pops Screen's host from its stack (the screen itself stays alive; its owner removes it). | |
Push Screen (PushScreen) | function | RPG Saga|UI|Common UI | Screen: URSEScreenWidget*Layer: ERSECommonUILayer | URSECommonScreenHost* | Pushes an RPG Saga screen onto Layer in a screen host. Returns the host (null when the layer has no stack). |
Push Widget to Layer (PushWidgetToLayer) | function | RPG Saga|UI|Common UI | Layer: ERSECommonUILayerWidgetClass: TSubclassOf<UCommonActivatableWidget> | UCommonActivatableWidget* | Pushes one of the project's activatable widgets onto Layer (above our screens there). |
Register Layer Stack (RegisterLayerStack) | function | RPG Saga|UI|Common UI | Layer: ERSECommonUILayerStack: UCommonActivatableWidgetContainerBase* | Uses Stack for Layer (a stack of the project's own primary layout). While any stack is registered no layout is made; layers without a stack then fall back to the nearest registered one below (else above). |
URSECompanionOrderPolicy
Module RSECore. Who may order which companion in co-op (D-142).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Order (CanOrder) | override | RPG Saga|Co-op | Issuer: FRSEPlayerIdMember: FPrimaryAssetIdMemberController: FRSEPlayerIdbMultiplayer: bool | bool | Whether Issuer may order Member (invalid = "the best member", chosen later among the free ones), which MemberController drives now (invalid = the companion AI). bMultiplayer: several players share the world. |
URSECompassView
Module RSE. The compass bar (D-092): cardinal points and ticks turning with the camera, markers at their bearing with the distance in meters and an up / down arrow, faded by distance.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Show View Model (ShowViewModel) | function | RPG Saga|Map | ViewModel: URSECompassViewModel* | Shows a compass view-model's places. |
URSECondition_Custom
Module RSECore, display name Custom (Blueprint). A condition written in Blueprint: create a Blueprint class from it, override Is Condition Met and read the game through the "Context" nodes (RPG Saga\|Narrative\|Context) or any other node.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Condition Met (IsConditionMet) | override | RPG Saga|Conditions | Context: FRSEConditionContext (ref) | bool | Whether the condition holds now. |
URSECoopEncounterPolicy
Module RSECore. Turns an encounter request into the battle to fight now (D-142).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Resolve (Resolve) | override | RPG Saga|Co-op | Encounter: URSEEncounterData*SessionPlayers: int32 | FRSECoopEncounterResolution | The battle Encounter becomes with SessionPlayers players in the session (0 or 1 = single player). |
URSECoopNoticeSubsystem
Module RSE. One path for the co-op notices (D-142, docs/design/networking.md §9): any system calls Notify (one player) or NotifyAll; the presentation router delivers it to the player's machine (RSENet for a remote one), where it shows through the HUD's notification (the quest HUD's notice) and On Notice (for a...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Notify (Notify) | function | RPG Saga|Co-op | Player: FRSEPlayerIdTitle: FText (ref)Detail: FText (ref)Kind: ERSECoopNoticeKind = Info | bool | Shows a notice to Player (their machine). Returns whether it was shown or sent. |
Notify All (NotifyAll) | function | RPG Saga|Co-op | Title: FText (ref)Detail: FText (ref)Kind: ERSECoopNoticeKind = Info | int32 | Shows a notice to every player (the authority's players; elsewhere the local ones). Returns players reached. |
On Notice (OnNotice) | event | RPG Saga|Co-op | Player: APlayerController*Notice: FRSEPresentation_Notice (ref) | Every notice shown on this machine (after the repeat filter). |
URSECoverProvider
Module RSECore, display name Cover Provider. The pluggable answer to "what cover does this blocker give?" for Free Tactics line of sight and cover (D-091).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Blocker Cover (GetBlockerCover) | override | RPG Saga|Free Tactics | Blocker: FRSENavBlocker (ref) | ERSECoverLevel | Cover the blocker gives. Full blocks sight and projectiles; Partial protects a target standing close behind it; None lets everything through (never return Auto). |
URSEDetectionMeterComponent
Module RSE. The detection meter over a visible enemy (D-097): a screen-space bar that fills while the enemy sees or hears the party and turns into "!" when it notices it.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Shown Value (GetShownValue) | pure | RPG Saga|Stealth | float | The value shown now. | |
Set Detection (SetDetection) | function | RPG Saga|Stealth | Value: floatbAlerted: bool | Shows Value (0..1; hidden at or below Stealth -> Show Meter Above unless bAlerted). | |
Set Prompt (SetPrompt) | function | RPG Saga|Stealth | Prompt: FText (ref) | D-151: a prompt under the meter (shown even while the meter is empty); empty text = none. |
URSEDialogControlPolicy
Module RSECore. Who controls a dialog in co-op (D-094, D-138): "the one who started it speaks, the others watch; story choices by the host, the speaker or a vote".
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Control Flow (CanControlFlow) | override | RPG Saga|Dialog|Co-op | Player: FRSEPlayerIdSpeaker: FRSEPlayerId | bool | Whether Player may advance lines, skip and finish waits of Speaker's dialog. Default: the speaker, and the host by setting. |
Get Choice Decider (GetChoiceDecider) | override | RPG Saga|Dialog|Co-op | Dialog: URSEDialogData*NodeId: FNameNodeDecider: ERSEDialogChoiceDecider | ERSEDialogChoiceDecider | Who picks the option of a choice. NodeDecider is the choice node's own setting (Default = the rules decide). Default: the node's setting, else Story Choice Decider for dialog assets and System Choice Decider for prompts made at run time (puzzles, travel questions). |
Get Voters (GetVoters) | override | RPG Saga|Dialog|Co-op | WorldContext: UObject*OutVoters: TArray<FRSEPlayerId> (out) | Who votes on a vote choice. Default: the session's players (URSEAuthoritySubsystem::GetSessionPlayers). | |
Resolve Vote (ResolveVote) | override | RPG Saga|Dialog|Co-op | Votes: TArray<FRSEDialogVote> (ref)Options: TArray<FName> (ref)Speaker: FRSEPlayerId | FName | The winning option of a vote. Options = the choice's available options in display order. Default: the majority; a tie goes to the speaker's vote, then the host's, then the first of the tied options. None = no votes (nothing is picked). |
URSEDialogLayout
Module RSE. How the dialog screen is arranged (P61).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Box Width Fraction (GetBoxWidthFraction) | pure, static | RPG Saga|UI Layout | bCinematic: bool | float | The width share of the classic box (Dialog UI -> Box Width Fraction, or the cinematic one). |
Get Column Width (GetColumnWidth) | override | RPG Saga|UI Layout | float | The column's fixed width the screen builds (0 = none: the layout's anchors give the width). | |
Update Anchor (UpdateAnchor) | override | RPG Saga|UI Layout | Context: URSEScreenLayoutContext*ScreenPosition: FVector2DbOnScreen: bool | World-anchored layouts: moves the column to the speaker. ScreenPosition is over the speaker's head (layout units); bOnScreen false = no speaker actor or off screen (show the line somewhere readable). Called every frame while a line shows, so it must only move slots (no new widgets). |
URSEDialogSubsystem
Module RSECore. Owns the dialogs of the game session (dialog-proposal.md 5.2): - one blocking dialog at a time (IsDialogActive: read by input, saving and random encounters) plus barks; - starts dialogs requested by the StartDialog effect (URSENarrativeSubsystem::GetEvents().OnDialogRequested); - defers requests mad...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Player Choose (CanPlayerChoose) | pure | RPG Saga|Dialog | Player: FRSEPlayerId | bool | Whether Player may answer the active dialog's choice now (always true for a vote's voters). |
Can Player Control Flow (CanPlayerControlFlow) | pure | RPG Saga|Dialog | Player: FRSEPlayerId | bool | Whether Player may advance, skip or finish waits of the active dialog. |
Get Active Choice Decider (GetActiveChoiceDecider) | pure | RPG Saga|Dialog | ERSEDialogChoiceDecider | Who picks the option of the choice on screen (Speaker, Host or Vote; Default resolved by the policy). | |
Get Active Run Id (GetActiveRunId) | pure | RPG Saga|Dialog | int32 | The running blocking dialog's run number (0 = none). Commands name it, so they never touch another dialog. | |
Get Active Speaker (GetActiveSpeaker) | pure | RPG Saga|Dialog | FRSEPlayerId | The player who started the running blocking dialog: they speak, the others watch. | |
Get Deferred Request Count (GetDeferredRequestCount) | pure | RPG Saga|Dialog | int32 | Number of dialog requests (battles, scenes, screens) waiting for the running dialog to end. | |
Get Vote Seconds Left (GetVoteSecondsLeft) | pure | RPG Saga|Dialog | float | Seconds the running vote has left (0 = no vote, or no timeout). | |
Get Votes (GetVotes) | pure | RPG Saga|Dialog | TArray<FRSEDialogVote> | Votes cast on the choice on screen (vote choices only). | |
Is Dialog Active (IsDialogActive) | pure | RPG Saga|Dialog | bool | A blocking dialog is running. | |
Is Mirroring Dialog (IsMirroringDialog) | pure | RPG Saga|Dialog | bool | The active dialog is the authority's, shown here (a guest). | |
On Bark Started (BP_OnBarkStarted) | event | RPG Saga|Dialog | Dialog: URSEDialogData* | A bark (ambient line over an NPC) started. | |
On Dialog Ended (BP_OnDialogEnded) | event | RPG Saga|Dialog | Outcome: FGameplayTagbCompleted: bool | A blocking dialog ended: its outcome tag and whether it reached its end (false when aborted). | |
On Dialog Started (BP_OnDialogStarted) | event | RPG Saga|Dialog | Dialog: URSEDialogData* | A blocking dialog started (Blueprint). | |
On Dialog Votes Changed (BP_OnVotesChanged) | event | RPG Saga|Dialog | NodeId: FNameVotes: TArray<FRSEDialogVote> (ref) | ||
Set Control Policy (SetControlPolicy) | function | RPG Saga|Dialog | Policy: URSEDialogControlPolicy* | Replaces the policy at run time (a session rule, a mode); null = back to the settings' class. |
URSEDialogViewModel
Module RSE. The dialog (dialog-proposal.md 6.2-6.5): blocking dialog box with speaker, portraits, typewriter text, choices, backlog, auto-advance, fast-forward and skip; plus barks and emote balloons.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Advance (Advance) | function | RPG Saga|UI|Dialog | Line: reveals the rest, or goes to the next line. Title card: skips it. | ||
Cancel Choice (CancelChoice) | function | RPG Saga|UI|Dialog | Picks the choice's cancel option (when it has one). | ||
Choose Option (ChooseOption) | function | RPG Saga|UI|Dialog | Index: int32 | Highlights an option and confirms it (a click). | |
Confirm Choice (ConfirmChoice) | function | RPG Saga|UI|Dialog | Confirms the highlighted option (locked ones do nothing). | ||
Finish Title Card (FinishTitleCard) | function | RPG Saga|UI|Dialog | Finish Title Card | ||
Get Choices Text (GetChoicesText) | pure | RPG Saga|UI|Dialog | FText | The choices as one text, one per line, the selected one marked (simple dialog screens). | |
Handle Click (HandleClick) | function | RPG Saga|UI|Dialog | Advance on a mouse click (Dialog UI -> bClickToAdvance). | ||
Handle Dialog Key (HandleDialogKey) | function | RPG Saga|UI|Dialog | Key: FKeybPressed: boolbRepeat: bool | bool | Every dialog key of the Dialog UI settings (advance, up / down, cancel, backlog, auto, fast-forward, skip), as the built-in box reads them. bPressed false = key up (fast-forward release). Returns true when the key is a dialog key. |
Move Choice (MoveChoice) | function | RPG Saga|UI|Dialog | Delta: int32 | Move Choice | |
On Screen Fx (OnScreenFx) | event | RPG Saga|UI|Dialog | Style: FRSEDialogScreenFxStyle (ref)Seconds: float | A cue asked for a screen effect (fade, flash, shake). | |
Select Choice (SelectChoice) | function | RPG Saga|UI|Dialog | Index: int32 | Select Choice | |
Set Fast Forward (SetFastForward) | function | RPG Saga|UI|Dialog | bHeld: bool | Fast-forward held (read lines type at once and advance quickly). | |
Skip Scene (SkipScene) | function | RPG Saga|UI|Dialog | Skips the scene (skippable dialogs; a Level Sequence scene is skipped as a whole). | ||
Toggle Auto Advance (ToggleAutoAdvance) | function | RPG Saga|UI|Dialog | Toggle Auto Advance | ||
Toggle Backlog (ToggleBacklog) | function | RPG Saga|UI|Dialog | Toggle Backlog |
URSEDifficultySubsystem
Module RSECore. Adaptive difficulty controller (CLAUDE.md 2.8, D-007): one per game session, one value per battle mode.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Difficulty State (GetStateBP) | pure | RPG Saga|Difficulty | FRSEDifficultyState | The whole adaptive state (per mode: intelligence, recent battles), read-only. | |
Get Intelligence For Encounter (GetIntelligenceForEncounterBP) | pure | RPG Saga|Difficulty | Encounter: URSEEncounterData* | float | Enemy intelligence a battle of Encounter would use now (its mode, its bounds, the override). |
Get Mode Intelligence (GetModeIntelligence) | pure | RPG Saga|Difficulty | Mode: FGameplayTag (ref) | float | Current adaptive enemy intelligence (0-1) of a battle mode, before encounter bounds and overrides. |
Set Mode Intelligence (SetModeIntelligence) | function | RPG Saga|Difficulty | Mode: FGameplayTagIntelligence: float | Sets the adaptive enemy intelligence (0-1) of a battle mode, e.g. a chapter that starts harder. The adaptation continues from there (the Difficulty settings' limits still apply to battles). Saved. |
URSEDoorComponent
Module RSE, display name RSE Door. Door behavior for any actor (D-165, docs/product/components.md): add it with an RSE Interactable component to your own door actor; Interact opens and closes it (a locked one says Interiors -> Locked Door Text), the prompt follows ("Open" / "Close"), and the swinging part (Swing Component: your leaf...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Prompt Text (GetPromptText) | pure | RPG Saga|Interiors | FText | The prompt now: Open Text / Close Text, else Interiors -> Open / Close Door Text. | |
Is Locked (IsLocked) | pure | RPG Saga|Interiors | bool | Is Locked | |
Is Open (IsOpen) | pure | RPG Saga|Interiors | bool | Is Open | |
On Door Changed (OnDoorChanged) | event | RPG Saga|Interiors | Door: URSEDoorComponent*bOpen: bool | Raised when the door opens or closes. | |
Set Locked (SetLocked) | function | RPG Saga|Interiors | bInLocked: bool | Locks or unlocks it (a locked door does not open). | |
Set Open (SetOpen) | function | RPG Saga|Interiors | bInOpen: boolbAnimate: bool = true | Opens or closes the door (swinging, or at once). | |
Use Door (UseDoor) | function | RPG Saga|Interiors | What Interact does: says the locked line, or opens / closes it. |
URSEDoorDetectorLibrary
Module RSE. Door detection for Blueprint and Python (D-158).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Building Door (FindBuildingDoor) | function, static | RPG Saga|Buildings | Building: AActor* | FRSEDoorFinding | Finds the door of a building whose door is modelled into its mesh (sockets, then its geometry). |
URSEEffect_Custom
Module RSECore, display name Custom (Blueprint). A custom effect written in Blueprint (D-052): subclass it, override On Apply and use the battle's Blueprint API (resources, attributes, statuses through other effects).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Apply (OnApply) | override | RPG Saga|Abilities | Battle: URSEBattle*SourceId: int32TargetId: int32TargetTile: FRSEGridCoordPowerMultiplier: float | Applies the effect. Change the battle through its nodes (Deal Damage, Heal Unit, Change Resource, Apply Status, Shift Turn...) and draw random numbers with Roll Int / Roll Percent so replays and the simulator stay deterministic. | |
Preview Damage (PreviewDamage) | override | RPG Saga|Abilities | Battle: URSEBattle*SourceId: int32TargetId: int32PowerMultiplier: float | float | Expected HP damage on the target (negative = healing), without rolling and without changing the battle: the damage forecast and the AI read it. Default 0 (the AI then sees no value in the effect). The source may be hypothetical. |
URSEEncounterSubsystem
Module RSE. Random encounters v2 in the world (D-063, docs/design/random-encounters.md): - counts world steps while the explorer walks (rate effect durations, step respawns of visible groups; saved in the World section); - the encounter rate multiplier: party rate effects x equipment traits x the player's frequ...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Rate Effect (AddRateEffect) | function | RPG Saga|Encounters | Effect: FRSEEncounterRateEffect (ref) | bool | Adds a rate effect (the Encounters settings' stacking rules apply). Returns true if the state changed. |
Compose Encounter (ComposeEncounter) | function | RPG Saga|Encounters | Pool: URSEEncounterPoolData*Seed: int32 = 0 | URSEEncounterData* | A new group from Pool for the current party and progression zone (the pool's zone, else the current area's). Seed 0 = a random one. The encounter is transient and kept alive while it may be fought. Null when the pool has no usable entry. |
Get Active Rate Effects (GetActiveRateEffects) | pure | RPG Saga|Encounters | TArray<FRSEEncounterRateEffect> | The party's active rate effects (steps and seconds left). | |
Get Detection Scale (GetDetectionScale) | pure | RPG Saga|Encounters | float | Visible enemies' detection radius scale from the rate (Encounters settings: Rate Scales Enemy Detection). | |
Get Encounter Rate Multiplier (GetEncounterRateMultiplier) | pure | RPG Saga|Encounters | float | Multiplier of the random battle chance now: rate effects x equipment traits x the frequency option x the time and weather rules (Encounter Rate, D-101 / D-104), capped by the Encounters settings' Max Rate Multiplier (0 = none). | |
Get Frequency Index (GetFrequencyIndex) | pure | RPG Saga|Encounters | int32 | The player's battle frequency choice (index into GetFrequencyNames). | |
Get Frequency Names (GetFrequencyNames) | pure | RPG Saga|Encounters | TArray<FText> | Names of the player's battle frequency choices (Encounters settings), in menu order. | |
Get Party Level (GetPartyLevel) | pure | RPG Saga|Encounters | int32 | Party level used for generated groups (the ATB formation, Progression "Party Level Source"). | |
Get Rate Effects Multiplier (GetRateEffectsMultiplier) | pure | RPG Saga|Encounters | float | Only the active rate effects (items, abilities, story effects), without traits and the option. | |
Get World Steps (GetWorldSteps) | pure | RPG Saga|Encounters | int64 | World steps walked over the whole game (saved). | |
Is Contact Allowed (IsContactAllowed) | pure | RPG Saga|Encounters | bool | Visible enemies may start a battle now (no battle running, the post-battle grace is over, exploration has control). | |
On Encounter Contact (BP_OnEncounterContact) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*Encounter: URSEEncounterData*Initiative: ERSEBattleInitiative | ||
On Encounter Rate Changed (BP_OnRateChanged) | event | RPG Saga|Encounters | Multiplier: float | --- Events --- | |
On Enemy Alerted (BP_OnEnemyAlerted) | event | RPG Saga|Encounters | Spawner: ARSEEncounterSpawner*Enemy: ARSERoamingEnemy*bAlerted: bool | ||
Remove Rate Effect (RemoveRateEffect) | function | RPG Saga|Encounters | SourceId: FName | bool | Ends the rate effect of SourceId (None = every effect). Returns true if one ended. |
Set Frequency Index (SetFrequencyIndex) | function | RPG Saga|Encounters | Index: int32 | Stores the player's battle frequency choice (GameUserSettings.ini, with the other options). | |
Start Classic Encounter (StartClassicEncounter) | function | RPG Saga|Encounters | Encounter: URSEEncounterData*Initiative: ERSEBattleInitiativeDirector: ARSEATBBattleDirector* = NoneSource: AActor* = None | bool | Starts a classic battle (ATB / turn-based) with Encounter on Director (null = the map's classic battle director), with an initiative. Source receives the exploration's encounter-ended callback. Returns true if it started. |
URSEEquipmentSlotSet
Module RSECore. A preset of character equipment slots (D-126): the classic JRPG set (weapon, off-hand, head, body, two accessories) or the ARPG set (helmet, body armor, hands, legs, feet, main hand, off-hand, two accessories).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Matches Project Settings (MatchesProjectSettings) | pure | RPG Saga|Items | bool | The preset is what Project Settings -> Items uses now (same slot ids, types and off-hand). |
URSEExplorationCameraArm
Module RSE. The exploration camera's arm (D-113).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Tilt Input (AddTiltInput) | function | RPG Saga|Exploration|Camera | LookUpDegrees: float | D-129: tilts the view (degrees; positive = up, toward the horizon), within the tactical camera's tilt limits. The player's Invert Camera Tilt option applies. Ignored inside interiors (the profile frames the view) and with tilting off. | |
Get Current Distance (GetCurrentDistance) | pure | RPG Saga|Exploration|Camera | float | The zoom now (cm from the party) and where it glides. | |
Get Current Pitch (GetCurrentPitch) | pure | RPG Saga|Exploration|Camera | float | The view's angle below the horizon now (degrees; the interior profile's inside a volume). | |
Get Current Tilt (GetCurrentTilt) | pure | RPG Saga|Exploration|Camera | float | D-129: the tilt now (it glides toward the target). | |
Get Target Distance (GetTargetDistance) | pure | RPG Saga|Exploration|Camera | float | Get Target Distance | |
Get Target Tilt (GetTargetTilt) | pure | RPG Saga|Exploration|Camera | float | D-129: the tilt the view aims at (degrees added to the zoom's angle; positive = steeper). | |
Is Tactical (IsTactical) | pure | RPG Saga|Exploration|Camera | bool | Is Tactical | |
Match View (MatchView) | function | RPG Saga|Exploration|Camera | Yaw: floatDistance: float | Takes over a view (a battle camera handing back): the yaw goes to the controller, the zoom to Distance (clamped), the pan is cleared and the follow lag forgotten, so the view does not glide from where it was before. | |
Reset Tilt (ResetTilt) | function | RPG Saga|Exploration|Camera | bInstant: bool = false | D-129: puts the tilt back to the zoom's angle (bInstant cuts instead of gliding). | |
Set Target Distance (SetTargetDistance) | function | RPG Saga|Exploration|Camera | Distance: floatbInstant: bool = false | Zooms to Distance (clamped); bInstant cuts. | |
Set Target Tilt (SetTargetTilt) | function | RPG Saga|Exploration|Camera | Tilt: floatbInstant: bool = false | D-129: sets the tilt (degrees, clamped; positive = steeper); bInstant cuts. |
URSEExplorationCameraSubsystem
Module RSE. The exploration camera's shared state (D-113): the style in use (project settings, the level's RSE Exploration Camera actor, or a runtime choice such as an options menu), the tactical camera's values, and the zoom the party leaders share (switching the leader or coming back from a battle keeps the v...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Camera Style (ClearCameraStyle) | function | RPG Saga|Exploration|Camera | Back to the level's or the project's style. | ||
Get Camera Style (GetCameraStyle) | pure | RPG Saga|Exploration|Camera | ERSEExplorationCameraStyle | The style the exploration camera uses here: a runtime choice, else the level's, else Project Settings -> Exploration. | |
Get Tilt (GetTilt) | pure | RPG Saga|Exploration|Camera | float | D-129: the tilt the party's leaders share (degrees added to the zoom's angle; positive = steeper), clamped. | |
Get Zoom Distance (GetZoomDistance) | pure | RPG Saga|Exploration|Camera | float | The zoom the tactical camera aims at (cm from the party). | |
Set Camera Style (SetCameraStyle) | function | RPG Saga|Exploration|Camera | Style: ERSEExplorationCameraStyle | Switches the exploration camera's style now (an options menu, a story segment); every explorer re-reads it. | |
Set Zoom Distance (SetZoomDistance) | function | RPG Saga|Exploration|Camera | Distance: floatbInstant: bool = false | Zooms the tactical camera (cm, clamped to its limits); bInstant cuts instead of gliding. |
URSEExplorationSubsystem
Module RSE. Hands control from third-person exploration to a battle and back (D-026).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Battle Mode For (GetBattleModeFor) | pure | RPG Saga|Battle|Mode Override | Encounter: URSEEncounterData* | FGameplayTag | D-182: the mode Encounter would be fought in now (its own, or the session's Battle Mode Override when the encounter allows it). |
Get Current Battle (GetCurrentBattleBP) | pure | RPG Saga|Battle | URSEBattle* | The battle of the running encounter, or none. | |
Get Current Encounter (GetCurrentEncounterBP) | pure | RPG Saga|Battle | URSEEncounterData* | The encounter being fought, or none. | |
Get Encounter Kind (GetEncounterKind) | pure | RPG Saga|Battle | ERSEExplorationBattleKind | The system of the running encounter (None outside battle). | |
Is Exploration Active (IsExplorationActive) | pure | RPG Saga|Exploration | bool | True while the explorer has control (no battle, party menu closed). | |
Is in Encounter (IsInEncounter) | pure | RPG Saga|Battle | bool | A battle started from exploration is running (until control is back in exploration). | |
On Encounter Ended (BP_OnEncounterEnded) | event | RPG Saga|Battle | Source: AActor*Kind: ERSEExplorationBattleKindOutcome: ERSEBattleOutcome | Control is back in exploration after a battle (Blueprint). | |
On Encounter Started (BP_OnEncounterStarted) | event | RPG Saga|Battle | Source: AActor*Kind: ERSEExplorationBattleKind | A battle started from exploration (Blueprint). | |
Start ATBEncounter (StartATBEncounter) | function | RPG Saga|Battle | Director: ARSEATBBattleDirector*Source: AActor* = NoneReturnPoint: AActor* = NoneEncounterOverride: URSEEncounterData* = None | bool | Starts a classic encounter (ATB or turn-based) on the director's stage; EncounterOverride replaces the director's encounter for this battle. |
Start Encounter (StartEncounter) | function | RPG Saga|Battle | Encounter: URSEEncounterData*Source: AActor* = NoneReturnPoint: AActor* = None | bool | Starts a battle from an encounter asset (D-052): Tactics encounters on the map's Tactics director that has this encounter; classic ones (ATB, turn-based) on the map's ATB director (one with this encounter first, else any). The Start Battle story effect comes here too. Returns false when no director fits or an encounter is running. |
Start Tactics Encounter (StartTacticsEncounter) | function | RPG Saga|Battle | Director: ARSETacticsBattleDirector*Source: AActor* = NoneReturnPoint: AActor* = None | bool | Starts a Tactics encounter on the director's zone. ReturnPoint (optional) is where the explorer stands afterwards. |
URSEExploreRPGSubsystem
Module RSE. The exploration RPG actions in the world (D-109, docs/design/exploration.md "Explorare RPG"): passive perception of traps by the visible party, "Search here", traps going off on the party and in Free Tactics battles, the lockpick screen, stealing from NPCs, distractions (aim, throw, the enemies come...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin Aim (BeginAim) | function | RPG Saga|Exploration RPG | bool | Starts aiming (shows the landing marker). | |
Check Perception (CheckPerception) | function | RPG Saga|Exploration RPG | int32 | Runs the passive perception check now (it also runs on a timer). Returns traps spotted. | |
End Aim (EndAim) | function | RPG Saga|Exploration RPG | bThrow: bool | bool | Stops aiming; bThrow throws at the aim point. |
Get Aim Point (GetAimPoint) | pure | RPG Saga|Exploration RPG | FVector | Where a throw would land now (valid while aiming). | |
Get Lockpick (GetLockpick) | pure | RPG Saga|Exploration RPG | URSELockpickViewModel* | The open lockpick screen's view model (null when closed). | |
Get Member Score (GetMemberScore) | pure | RPG Saga|Exploration RPG | Member: URSECharacterData*Skill: ERSEExploreSkill | float | Member's score in Skill now. |
Is Aiming (IsAiming) | pure | RPG Saga|Exploration RPG | bool | Is Aiming | |
Make Noise (MakeNoise) | function | RPG Saga|Exploration RPG | Point: FVectorRadius: floatbInvestigateOnly: bool | int32 | A noise at Point: visible enemies within Radius come to look (bInvestigateOnly) or notice the party. Returns enemies reached. |
On Distraction Landed (OnDistractionLanded) | event | RPG Saga|Exploration RPG | Location: FVector | ||
On Steal Attempted (OnStealAttempted) | event | RPG Saga|Exploration RPG | NPC: ARSENPC*Result: ERSEStealResultThief: URSECharacterData* | ||
Refresh Fallen (RefreshFallen) | function | RPG Saga|Exploration RPG | Applies the fallen rules to the visible party now (after a battle, a load): get up, lie down, or be carried. | ||
Revive Member (ReviveMember) | function | RPG Saga|Exploration RPG | Member: URSECharacterData* | bool | Revives a fallen member the best way available (item, spell, help up). |
Search At (SearchAt) | function | RPG Saga|Exploration RPG | Point: FVectorSearcher: URSECharacterData* | int32 | "Search here" (D-097 command): Searcher's perception gets the search bonus around Point for a while; checks at once. |
Throw At (ThrowAt) | function | RPG Saga|Exploration RPG | Point: FVector | bool | Throws a distraction at Point as this machine's player (D-138: the Throw Distraction command; the authority throws from their pawn): an item is used if the rules say so; the enemies near it come to look. Returns true when applied (or sent). |
URSEExplorerComponent
Module RSE, display name RSE Explorer. Makes any pawn an explorer (D-165, docs/product/components.md): add it to your own character (a Blueprint character keeps its parent class) and the interaction prompt, the Interact key, encounters, stealth and the party systems treat it as the player's explorer.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Pawn (GetPawn) | pure | RPG Saga|Explorer | APawn* | The pawn this component explores with (its owner). | |
Interact (Interact) | function | RPG Saga|Explorer | The Interact input: runs what the pawn's prompt shows (the interaction system listens) and raises On Interact. | ||
On Explorer State Changed (OnExplorerStateChanged) | event | RPG Saga|Explorer | Explorer: URSEExplorerComponent* | Party member, sneaking, in battle or fallen changed. | |
On Interact (OnInteract) | event | RPG Saga|Explorer | Pawn: APawn* | The Interact input reached the pawn (Blueprint and level scripting hook). |
URSEExplorerPawn
Module RSE. RSE Explorer Pawn
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Explorer Party Member (GetExplorerPartyMember) | override | RPG Saga|Explorer | URSECharacterData* | The party member this pawn is (null = the party's leader: the first of the formation). | |
Is Explorer Fallen (IsExplorerFallen) | override | RPG Saga|Explorer | bool | Fallen (D-109): lies on the ground until revived. | |
Is Explorer in Battle (IsExplorerInBattle) | override | RPG Saga|Explorer | bool | A Free Tactics battle moves this pawn (its own movement and input wait). | |
Is Explorer Input Blocked (IsExplorerInputBlocked) | override | RPG Saga|Explorer | bool | A menu or another modal screen of this pawn's player is open: its world actions wait (D-152). | |
Is Explorer Sneaking (IsExplorerSneaking) | override | RPG Saga|Explorer | bool | Sneaking (D-097): much harder to notice; sneak attacks and placing members need it. | |
Set Explorer Fallen (SetExplorerFallen) | override | RPG Saga|Explorer | bFallen: bool | Set Explorer Fallen | |
Set Explorer in Battle (SetExplorerInBattle) | override | RPG Saga|Explorer | bInBattle: bool | Set Explorer in Battle | |
Set Explorer Party Member (SetExplorerPartyMember) | override | RPG Saga|Explorer | Member: URSECharacterData* | Set Explorer Party Member | |
Set Explorer Sneaking (SetExplorerSneaking) | override | RPG Saga|Explorer | bSneaking: bool | Set Explorer Sneaking |
URSEExplorers
Module RSE. The explorer of an actor (D-165): the actor itself when it implements IRSEExplorerPawn, else its component that does (URSEExplorerComponent).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Explorer Interact (ExplorerInteract) | function, static | RPG Saga|Explorer | Pawn: APawn* | bool | Interacts with what Pawn's prompt shows (the Interact input of a pawn that implements IRSEExplorerPawn itself; the explorer component and ARSEExplorationCharacter do it on their own). Returns true when it interacted. |
Find Explorer (FindExplorer) | pure, static | RPG Saga|Explorer | Actor: AActor* | UObject* | The object that answers IRSEExplorerPawn for Actor (the actor, or its explorer component), or null. |
Get Camera Arm (GetCameraArm) | pure, static | RPG Saga|Explorer | Actor: AActor* | URSEExplorationCameraArm* | The exploration camera arm of Actor (D-113), or null. |
Get Explorer Party Member (GetPartyMember) | pure, static | RPG Saga|Explorer | Actor: AActor* | URSECharacterData* | The party member the explorer is (null when it is not an explorer, or is the leader without a member set). |
Is Explorer (IsExplorer) | pure, static | RPG Saga|Explorer | Actor: AActor* | bool | Actor is an explorer (implements the interface or carries an explorer component). |
Is Explorer Fallen (IsFallen) | pure, static | RPG Saga|Explorer | Actor: AActor* | bool | Is Explorer Fallen |
Is Explorer In Battle (IsInBattle) | pure, static | RPG Saga|Explorer | Actor: AActor* | bool | Is Explorer In Battle |
Is Explorer Input Blocked (IsInputBlocked) | pure, static | RPG Saga|Explorer | Actor: AActor* | bool | Is Explorer Input Blocked |
Is Explorer Sneaking (IsSneaking) | pure, static | RPG Saga|Explorer | Actor: AActor* | bool | Is Explorer Sneaking |
Set Explorer Fallen (SetFallen) | function, static | RPG Saga|Explorer | Actor: AActor*bFallen: bool | Set Explorer Fallen | |
Set Explorer In Battle (SetInBattle) | function, static | RPG Saga|Explorer | Actor: AActor*bInBattle: bool | Set Explorer In Battle | |
Set Explorer Party Member (SetPartyMember) | function, static | RPG Saga|Explorer | Actor: AActor*Member: URSECharacterData* | Set Explorer Party Member | |
Set Explorer Sneaking (SetSneaking) | function, static | RPG Saga|Explorer | Actor: AActor*bSneaking: bool | Set Explorer Sneaking |
URSEFallRecoverySubsystem
Module RSE. The safety net against gaps in a level's collision (D-112, Exploration settings -> Fall Recovery): on a timer it remembers where each explorer (the leader and the visible party; D-165: any character with IRSEExplorerPawn or an RSE Explorer component) last stood on solid ground, and puts back one tha...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Character Recovered (OnCharacterRecovered) | event | RPG Saga|Exploration | Explorer: ACharacter*From: FVector | D-165: any explorer character was put back (also the ones On Explorer Recovered does not name). | |
On Explorer Recovered (OnExplorerRecovered) | event | RPG Saga|Exploration | Explorer: ARSEExplorationCharacter*From: FVector | An explorer was put back (From: where it was lost). | |
Recover Explorer (RecoverExplorer) | function | RPG Saga|Exploration | Explorer: ACharacter* | bool | Puts an explorer back on the spot it last stood on safely. Returns false when no safe spot is known. |
URSEFeatureLibrary
Module RSECore. Blueprint access to the feature toggles, so project code can adapt (hide a button when a system is off).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Feature Enabled (IsFeatureEnabled) | pure, static | RPG Saga|Features | Feature: ERSEFeature | bool | Whether a framework system is switched on (Project Settings -> RPG Saga Engine -> Features). |
URSEFitText
Module RSE. UMG wrapper of SRSEFitText: a single line label that ends with "..." instead of being cut (D-106).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Text (GetText) | pure | RPG Saga|UI | FText | The whole text (not the shortened one on screen). | |
Set Color and Opacity (SetColorAndOpacity) | function | RPG Saga|UI | InColor: FSlateColor | Color of the text (the shadow keeps its own). | |
Set Text (SetText) | function | RPG Saga|UI | InText: FText (ref) | The text; it is shortened with an ellipsis only on screen, when its space is too narrow. |
URSEFormulaTesterLibrary
Module RSECore. The formula tester (D-166): pick a character, class or archetype, a level and equipment, then see every attribute and derived stat computed step by step (base, formula result, add, percent, multiply, override, clamp, final), with the formula text and the problems highlighted (unknown variable, cycle...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Format Formula Test Report (FormatFormulaTestReport) | pure, static | RPG Saga|Attributes|Formula Tester | Result: FRSEFormulaTestResult (ref) | FString | The result as readable text, one line per stat and one per problem (logs, Python, bug reports). |
Format Stat Trace (FormatStatTrace) | pure, static | RPG Saga|Attributes|Formula Tester | Trace: FRSEStatTrace (ref) | FString | One stat as a line: "Max HP = 120 (base 100 -> +10 -> x1.2 ...)". |
Run Formula Test (RunFormulaTest) | function, static | RPG Saga|Attributes|Formula Tester | Input: FRSEFormulaTestInput (ref) | FRSEFormulaTestResult | Run Formula Test |
URSEFoundationLibrary
Module RSECore. The Game Foundation API (D-095, docs/design/studio.md section 5 and section 16) for the Studio's foundation wizard and tools.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Analyze Impact (AnalyzeImpact) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation*Content: TArray<UObject*> (ref) | FRSEFoundationImpactReport | Every reference in Content (and, per settings, in framework settings) to a tag under a managed root (Stat, Resource, Element, Equip.Slot, Equip.Type, Ability.Type, Item.Category) that Foundation does not define, plus one proposed replacement per tag (the preset's suggestion, else a defined tag with the same name, else removal). |
Apply Foundation (ApplyFoundation) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation*Target: FRSEFoundationApplyTarget (ref)Options: FRSEFoundationApplyOptions (ref) | FRSEFoundationApplyReport | Writes Foundation into Target: validation first (errors: nothing written), then the breaking-change check on Options.Content (breaking and not allowed: nothing written, the report holds the impact and proposed mapping). |
Apply Replacement Mapping (ApplyReplacementMapping) | function, static | RPG Saga|Foundation | Content: TArray<UObject*> (ref)Mapping: TArray<FRSEFoundationReplacement> (ref) | TArray<UObject*> | Rewrites the tags of Mapping in Content (empty To = the reference is removed). Instanced sub-objects included. Returns the modified assets (marked dirty). Settings objects are never changed here. |
Capture Current Setup (CaptureCurrentSetup) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation*Profile: URSERulesProfile* | Fills Foundation from the setup that applies under Profile (null = the global settings): registry, formulas, affinities, slots, command menu, modes, progression, economy, terms. Element, equipment kind, item and ability category lists are filled from the tags the setup uses. "Start from my current setup". | |
Get Foundation Presets (GetFoundationPresets) | function, static | RPG Saga|Foundation | TArray<URSEGameFoundation*> | Foundations found in the library folders (Game Foundation settings), presets first by Sort Order. | |
Get Game Term (GetGameTerm) | pure, static | RPG Saga|Foundation | Id: FNameFallback: FText | FText | The game's word for Id (Party, Class, Magic, Money...; HP / MP: also the attribute registry), or Fallback when the game does not define it. |
Get Known Game Terms (GetKnownGameTerms) | function, static | RPG Saga|Foundation | TArray<FRSEGameTermInfo> | Every word screens ask for (Party, Lv, EXP, HP...), with its default and current text (D-100). | |
Get Missing Tags (GetMissingTags) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation* | TArray<FName> | Gameplay tags Foundation needs that the project does not have (the editor can add them before applying). |
Get Tag Display Name (GetTagDisplayName) | pure, static | RPG Saga|Foundation | Tag: FGameplayTag | FText | The player-facing name of a tag (Game Terms, else the last part of the tag). |
Is Foundation Valid (IsFoundationValid) | pure, static | RPG Saga|Foundation | Foundation: URSEGameFoundation* | bool | True when ValidateFoundation has no errors. |
Resolve Game Terms (ResolveGameTerms) | pure, static | RPG Saga|Foundation | Text: FText | FText | Text with its {Term.<Id>} arguments filled with the game's words; other arguments stay for a later Format Text. |
Run Foundation Test Battle (RunFoundationTestBattle) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation* | TArray<FRSEFoundationTestBattle> | A quick simulated battle with generated units (Game Foundation settings -> Test Battle) in every mode the foundation enables, applied to a transient sandbox: shows the setup is consistent and playable. Nothing in the project changes. |
Run Starter Content Battles (RunStarterContentBattles) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation*Runs: int32 | TArray<FRSEFoundationStarterBattleResult> | Plays the foundation's starter content in the simulator (D-100): the starter party, at each battle's party level, against each starter encounter in its own mode, on a sandbox with the foundation applied (Game Foundation -> Starter Balance: runs, intelligence, target band). Runs = 0: the settings' value. Nothing in the project changes. |
Validate Foundation (ValidateFoundation) | function, static | RPG Saga|Foundation | Foundation: URSEGameFoundation* | TArray<FRSEFoundationIssue> | Every problem of Foundation (missing required stats, formulas that do not compile, unknown tags, empty menus...). |
URSEFreeTacticsBattle
Module RSECore. Headless Free Tactics battle (D-091, docs/design/free-tactics.md): the Tactics rules in free space.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Move Trigger (AddMoveTrigger) | function | RPG Saga|Free Tactics | Trigger: FRSEFreeMoveTrigger (ref) | int32 | Adds a trap on the ground (D-109). Returns its id (the FieldId of its ZoneTriggered event). |
Apply Surprise (ApplySurprise) | function | RPG Saga|Free Tactics | OpenerTeam: FGameplayTagSurprisedUnitIds: TArray<int32> (ref) | A surprise round (call after StartBattle, before the first turn): SurprisedUnitIds lose their first turn (a TurnEnded with Battle.Turn.Surprised); OpenerTeam acts first (individual order: full Charge Time; team order: it opens round 1). Ignored when Free Tactics -> Surprise Rounds is off. | |
Can Act At (CanActAt) | pure | RPG Saga|Free Tactics|Traversal | Point: FVector | bool | Whether a unit standing at Point may use abilities and items (false inside a volume whose kind forbids it: swimming). |
Can Flee Battle (CanFleeBattle) | pure | RPG Saga|Free Tactics | bool | The party may run away from this battle (the encounter allows it and Free Tactics -> Fleeing is on). | |
Check Door (CheckDoor) | pure | RPG Saga|Free Tactics | UnitId: int32DoorIndex: int32 | ERSEFreeDoorCheck | Whether UnitId (the active unit) may open or close the door now: in reach on its floor, unlocked, nobody in the way, the budget. |
Check Flee (CheckFlee) | pure | RPG Saga|Free Tactics | UnitId: int32Point: FVector | ERSEFreeFleeCheck | Whether UnitId (the active unit, on the player's team) could flee from Point now: fleeing allowed, Point within its movement (its own spot = no walk), and no enemy there within Escape Radius that sees it (Escape Hidden Radius when it does not). The enemies are taken where they stand now. |
Check Jump (CheckJumpBP) | pure | RPG Saga|Free Tactics|Field | UnitId: int32Point: FVectorOutPlan: FRSEFreeJumpPlan (out) | ERSEFreeJumpCheck | Blueprint: CheckJump. |
Create Surface Circle (CreateSurfaceCircle) | function | RPG Saga|Free Tactics|Field | CreatorId: int32Data: URSETileZoneData*Center: FVectorRadius: floatDurationOverride: int32 = -1 | int32 | A round surface (Blueprint, dev commands). |
Damage Object (DamageObject) | function | RPG Saga|Free Tactics|Field | SourceId: int32ObjectId: int32Amount: float | Damages an object; at 0 HP it breaks (its blocker leaves the snapshot: paths, sight and cover change), and may explode. | |
End Battle as Escape (EndBattleAsEscape) | function | RPG Saga|Free Tactics | Ends the battle as an escape (Fled): a flee ability, a story exit. | ||
Execute Command (ExecuteCommand) | function | RPG Saga|Free Tactics | Command: FRSEFreeTacticsCommand (ref) | ERSEFreeCommandResult | The single entry point of decisions: validates Command (the active unit's, affordable, reachable, a valid target) and applies it. Nothing changes when it is refused. |
Get Controller (GetController) | pure | RPG Saga|Free Tactics | UnitId: int32 | URSEFreeTacticsController* | Who decides for a unit: its own controller, else its team's; null = nobody (the caller drives it). |
Get Door Count (GetDoorCount) | pure | RPG Saga|Free Tactics | int32 | Doors of the battle area (the snapshot's). | |
Get Escape Progress (GetEscapeProgress) | pure | RPG Saga|Free Tactics | UnitId: int32 | int32 | Rounds the escaping unit has spent out of reach so far (INDEX_NONE when it is not escaping). |
Get Escaped Count (GetEscapedCount) | pure | RPG Saga|Free Tactics | int32 | Units of the player's team that got away. | |
Get Joined Unit Id (GetJoinedUnitId) | pure | RPG Saga|Free Tactics | Ticket: int32 | int32 | Unit id of a queued unit once it joined (INDEX_NONE while it waits, or for an unknown ticket). |
Get Objects (GetObjectsBP) | pure | RPG Saga|Free Tactics|Field | TArray<FRSEFreeObject> | Get Objects | |
Get Overwatches (GetOverwatchesBP) | pure | RPG Saga|Free Tactics | TArray<FRSEFreeOverwatch> | Blueprint: the units on watch now. | |
Get Queued Join Count (GetQueuedJoinCount) | pure | RPG Saga|Free Tactics | int32 | Units waiting to join. | |
Get Round (GetRound) | pure | RPG Saga|Free Tactics | int32 | Rounds started (1 = the first). Team-based order: every team had its phase. Individual order: a round lasts as many turns as there were units standing when it began (D-097), so joining, fleeing and surprise work the same in both orders. | |
Get Route Hazards (GetActiveUnitRouteHazards) | pure | RPG Saga|Free Tactics|Field | Goal: FVector | FRSEFreeRouteHazardReport | Blueprint: what the active unit's walk to Goal goes through (empty when unreachable). |
Get Surfaces (GetSurfacesBP) | pure | RPG Saga|Free Tactics|Field | TArray<FRSEFreeSurface> | Blueprint: every surface on the field. | |
Has Escaped (HasEscaped) | pure | RPG Saga|Free Tactics | UnitId: int32 | bool | The unit ran away and is out of the battle (not defeated: it keeps its HP and is written back to the party). |
Insert Turn (InsertTurn) | function | RPG Saga|Free Tactics | UnitId: int32 | D-117: UnitId acts next: an extra turn inserted before the next regular one (a scripted battle event's "acts now"). Its CT and round bookkeeping are not touched; several insertions keep their order. Ignored for a unit that is not standing. | |
Is Door Open (IsDoorOpen) | pure | RPG Saga|Free Tactics | DoorIndex: int32 | bool | Is Door Open |
Is Escaping (IsEscaping) | pure | RPG Saga|Free Tactics | UnitId: int32 | bool | The unit fled and waits out Escape Rounds before it leaves. |
Is Overwatch Ability (IsOverwatchAbility) | pure | RPG Saga|Free Tactics | Ability: URSEAbilityData* | bool | Whether Ability is an Overwatch stance here (its Free Tactics Rules -> Overwatch). |
Is Surprised (IsSurprised) | pure | RPG Saga|Free Tactics | UnitId: int32 | bool | The unit will lose its next turn to a surprise. |
Preview From Destination (PreviewFromDestinationBP) | pure | RPG Saga|Free Tactics|Field | UnitId: int32Destination: FVector | TArray<FRSEFreeDestinationPreview> | Blueprint: PreviewFromDestination. |
Queue Join (QueueJoin) | function | RPG Saga|Free Tactics | Spawn: FRSEBattleUnitSpawn (ref) | int32 | A unit that noticed the battle joins it (an enemy walking over, a party member arriving): at the start of the next round (Free Tactics -> Join At Next Round), else before the next turn. Place it with Spawn.Location (bHasLocation). Returns a ticket to move it while it waits (UpdateQueuedJoin) and to find its unit id afterwards (GetJoinedUnitId). |
Remove Surface (RemoveSurface) | function | RPG Saga|Free Tactics|Field | SurfaceId: int32 | Remove Surface | |
Set Can Flee (SetCanFlee) | function | RPG Saga|Free Tactics | bInCanFlee: bool | Whether this battle may be fled at all (the encounter's Can Flee). Free Tactics -> Fleeing must be on as well. | |
Set Cover Provider (SetCoverProvider) | function | RPG Saga|Free Tactics | Provider: URSECoverProvider* | Replaces the cover provider for this battle (asset combat roles, tests). Null = back to the settings' provider. | |
Set Team Controller (SetTeamController) | function | RPG Saga|Free Tactics | Team: FGameplayTagController: URSEFreeTacticsController* | The controller of every unit of Team without its own (null clears it). | |
Set Unit Controller (SetUnitController) | function | RPG Saga|Free Tactics | UnitId: int32Controller: URSEFreeTacticsController* | The controller of one unit (a guest, a charmed unit; null clears it). | |
Spawn Object (SpawnObject) | function | RPG Saga|Free Tactics|Field | CreatorId: int32Data: URSEFieldObjectData*Point: FVector | int32 | Places an object of Data at Point (Spawn Object in Free Tactics): a blocker with HP. Returns its id or INDEX_NONE. |
Toggle Door (ToggleDoor) | function | RPG Saga|Free Tactics | DoorIndex: int32 | bool | Opens or closes a door with the active unit (a Door command). Returns false when refused (nothing changes). |
Update Queued Join (UpdateQueuedJoin) | function | RPG Saga|Free Tactics | Ticket: int32Location: FVectorYaw: float | bool | Where a queued unit stands now (battle space, meters): it enters the battle there. Returns false for an unknown or joined ticket. |
URSEFreeTacticsController
Module RSECore, display name Free Tactics Controller. Who decides for a unit in Free Tactics (D-091): the local player, the AI, later a remote player.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Command Rejected (OnCommandRejected) | override | RPG Saga|Free Tactics | Battle: URSEFreeTacticsBattle*Command: FRSEFreeTacticsCommand (ref)Result: ERSEFreeCommandResult | The battle refused a command this controller provided (it will be asked again, or the turn is ended for it). | |
Provide Command (ProvideCommand) | override | RPG Saga|Free Tactics | Battle: URSEFreeTacticsBattle*UnitId: int32OutCommand: FRSEFreeTacticsCommand (out) | bool | The next command for UnitId (the active unit), or false to wait (a player who has not decided yet). Must not change the battle: the battle validates and applies the command. |
Uses AIRoutes (UsesAIRoutes) | override | RPG Saga|Free Tactics | bool | D-121: the units it decides for route like the AI (links whose kind keeps them from the AI are closed to them). |
URSEFreeTacticsHUDViewModel
Module RSE. The data and the actions of the Free Tactics battle HUD (D-097, D-052): turn order, the active unit, the command menu (the command menu layout of D-065), the target preview with hit chances and position factors, the path cost, messages and hints.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate Entry (ActivateEntry) | function | RPG Saga|Free Tactics|HUD | Index: int32 | Activates a command menu entry (a click). | |
Answer Hazard (AnswerHazard) | function | RPG Saga|Free Tactics|HUD | bContinue: bool | D-156: answers the danger warning (a click on its buttons). | |
End Turn (EndTurn) | function | RPG Saga|Free Tactics|HUD | End Turn | ||
Get Battle Menu (GetBattleMenu) | pure | RPG Saga|Free Tactics|HUD | URSEBattleMenuViewModel* | D-122: this player's battle menu (every menu style shows it; Widget Blueprints may too). | |
Get Director (GetDirector) | pure | RPG Saga|Free Tactics|HUD | ARSEFreeTacticsDirector* | Get Director | |
Highlight Entry (HighlightEntry) | function | RPG Saga|Free Tactics|HUD | Index: int32 | Highlights a command menu entry (mouse over). | |
Highlight Hazard Answer (HighlightHazardAnswer) | function | RPG Saga|Free Tactics|HUD | Index: int32 | D-156: highlights one of the warning's answers (mouse over: 0 = continue, 1 = pick another path). |
URSEFreeTacticsQueuedController
Module RSECore, display name Free Tactics Queued Controller. A controller fed from outside (D-097): the local player's input (the Free Tactics director queues what the player chose), later a remote player's messages.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Queue (ClearQueue) | function | RPG Saga|Free Tactics | Forgets the commands not taken yet. | ||
Clear Rejection (ClearRejection) | function | RPG Saga|Free Tactics | Clear Rejection | ||
Get Last Rejection (GetLastRejection) | pure | RPG Saga|Free Tactics | ERSEFreeCommandResult | Why the last refused command was refused (Ok when none was refused since the last ClearRejection). | |
Get Queued Count (GetQueuedCount) | pure | RPG Saga|Free Tactics | int32 | Commands waiting to be taken. | |
Queue Command (QueueCommand) | function | RPG Saga|Free Tactics | Command: FRSEFreeTacticsCommand (ref) | Adds a command; the battle takes it the next time it asks this controller (RunControllers). |
URSEFreeTacticsSimDriver
Module RSE. The server side of a Free Tactics battle (D-141, docs/design/networking.md §3.6): owns the headless battle (URSEFreeTacticsBattle) and runs it on the authority only (single player, the host): the controllers (one queued controller per player, the AI for the enemies and for the units no player plays)...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Battle (GetBattle) | pure | RPG Saga|Free Tactics | URSEFreeTacticsBattle* | Get Battle |
URSEFreeTacticsSubsystem
Module RSE. Free Tactics on the live map (D-097): starts battles where the party stands (a visible group that noticed the party or was attacked, an encounter, a dev command), gathers who takes part (the group, the enemies called for help, the party members nearby), owns the world's battle director and relays th...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Active Director (GetActiveDirector) | pure | RPG Saga|Free Tactics | ARSEFreeTacticsDirector* | The director of the running battle, or null. | |
Is Battle Active (IsBattleActive) | pure | RPG Saga|Free Tactics | bool | Is Battle Active | |
Start Encounter Battle (StartEncounterBattle) | function | RPG Saga|Free Tactics | Encounter: URSEEncounterData*Opening: ERSEFreeOpeningEnemyActors: TArray<AActor*> (ref)Source: AActor* = None | bool | Starts a Free Tactics battle with Encounter's enemies (story battles, triggers, dev commands). EnemyActors stand for its enemies in order; missing ones appear near the first (or in front of the party). Source gets the exploration's callback. |
Start Group Battle (StartGroupBattle) | function | RPG Saga|Free Tactics | Spawner: ARSEEncounterSpawner*GroupIndex: int32Opening: ERSEFreeOpening | bool | Starts the battle of a visible group of Spawner (it noticed the party, or the party touched it). Enemies of other groups within Free Tactics -> Call For Help Radius join from the start; party members within Party Join Radius of the leader fight from where they stand. Returns false when a battle cannot start now. |
URSEFreeTargetingLibrary
Module RSECore. D-146: the targeting rules for Blueprints (custom HUDs, tutorials).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Gather Targets (GatherTargets) | function, static | RPG Saga|Free Tactics|Targeting | Battle: URSEFreeTacticsBattle*UnitId: int32Origin: FVectorAbility: URSEAbilityData*bItem: boolViewYaw: float | TArray<FRSEFreeTargetCandidate> | Every unit the ability's side holds, with whether UnitId at Origin can aim it there and why not (sorted by distance). |
Get Target Side (GetTargetSide) | pure, static | RPG Saga|Free Tactics|Targeting | Ability: URSEAbilityData* | ERSEFreeTargetSide | Whom an ability is for. |
Make Target Cycle (MakeTargetCycle) | pure, static | RPG Saga|Free Tactics|Targeting | Candidates: TArray<FRSEFreeTargetCandidate> (ref)Order: ERSEFreeTargetCycleOrder | TArray<int32> | The valid targets in the order Next / Previous target walks. |
Pick Default Target (PickDefaultTarget) | pure, static | RPG Saga|Free Tactics|Targeting | Candidates: TArray<FRSEFreeTargetCandidate> (ref)Side: ERSEFreeTargetSideHostilePick: ERSEFreeHostileAutoPickSupportPick: ERSEFreeSupportAutoPick | int32 | The target highlighted first. |
URSEGASBridgeComponent
Module RSEGAS, display name RSE GAS Bridge. Puts a Gameplay Ability System character into RPG Saga Engine battles (D-169).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate Bridge (ActivateBridge) | function | RPG Saga|GAS | Starts answering for the character (called at Begin Play; call it yourself for an actor that never begins play). | ||
Bind to Battle Unit (BindToBattleUnit) | function | RPG Saga|GAS | Battle: URSEBattle*UnitId: int32 | bool | Mirrors a battle unit (done by itself when the battle builds the unit through the stat source). |
Deactivate Bridge (DeactivateBridge) | function | RPG Saga|GAS | Stops answering and unbinds from any battle (called at End Play). | ||
Get Ability System (GetAbilitySystem) | pure | RPG Saga|GAS | UAbilitySystemComponent* | The ASC used: the one set with Set Ability System, else the owner's. | |
Get Battle (GetBattle) | pure | RPG Saga|GAS | URSEBattle* | Get Battle | |
Get Mapped Value (GetMappedValue) | pure | RPG Saga|GAS | RSETag: FGameplayTagbFound: bool (out) | float | The current value of the GAS attribute mapped to an RSE stat or resource, in RSE units (UI). |
Get Unit Id (GetUnitId) | pure | RPG Saga|GAS | int32 | Get Unit Id | |
Is Bound (IsBound) | pure | RPG Saga|GAS | bool | Is Bound | |
On Battle Event Forwarded (OnBattleEventForwarded) | event | RPG Saga|GAS | Event: FRSEBattleEvent (ref)EventTag: FGameplayTag | An RSE battle event of the bound unit was sent to the ASC (EventTag empty when only the ability map sent one). | |
On Bound (OnBound) | event | RPG Saga|GAS | Battle: URSEBattle*UnitId: int32 | --- Events (GAS -> RSE side) --- | |
On Gameplay Cue Triggered (OnGameplayCueTriggered) | event | RPG Saga|GAS | CueTag: FGameplayTagCueEvent: ERSEGASCueEvent | A Gameplay Cue was triggered on this actor by an RSE presentation cue (Gameplay Cue cue, G2). | |
On GASAttribute Changed (OnGASAttributeChanged) | event | RPG Saga|GAS | RSETag: FGameplayTagOldValue: floatNewValue: float | A mapped GAS attribute changed by something other than the bridge (values in RSE units). | |
On GASTag Changed (OnGASTagChanged) | event | RPG Saga|GAS | Tag: FGameplayTagbPresent: bool | A status tag of the status map was added or removed by something other than the bridge. | |
On Unbound (OnUnbound) | event | RPG Saga|GAS | |||
Read Stats (ReadStats) | pure | RPG Saga|GAS | OutStats: FRSEExternalUnitStats (out)Battle: URSEBattle* = None | bool | What the ASC supplies for a battle unit now (In rows; resources vs stats per the battle's attribute registry, or the global one). Returns false without an ASC or an attribute map. |
Set Ability System (SetAbilitySystem) | function | RPG Saga|GAS | AbilitySystem: UAbilitySystemComponent* | Uses this ASC instead of the owner's (e.g. one kept on the Player State). | |
Unbind (Unbind) | function | RPG Saga|GAS | Stops mirroring the battle unit (done by itself when the battle ends). |
URSEGameOverViewModel
Module RSE. Game over (D-031): Retry battle / Load last save / Return to main menu, with the cursor.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Choose (Choose) | function | RPG Saga|UI|GameOver | Index: int32 | Chooses an option (disabled ones do nothing). | |
Move Selection (MoveSelection) | function | RPG Saga|UI|GameOver | Direction: int32 | Moves the cursor to the next enabled option (+1 down, -1 up). | |
Select (Select) | function | RPG Saga|UI|GameOver | Index: int32 | Puts the cursor on an option (mouse hover). |
URSEGroupTravelPolicy
Module RSE. Who leads the group out of a zone in co-op (D-124 §6.6, D-138).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Decide (Decide) | override | RPG Saga|Travel|Co-op | Request: FRSETravelRequest (ref)Instigator: FRSEPlayerIdbMultiplayer: bool | ERSEGroupTravelDecision | What Request (made by Instigator; None = the game itself) does now. bMultiplayer: several players share the world. |
URSEGroupTravelPresenter
Module RSE. The co-op screens of group travel (D-138 rule, D-142 screens): the host's countdown shows on every player's screen (the destination and the seconds, with how to stay on the host's), its cancel closes them with a notice; a guest who walks into an exit asks the host, who answers a question box ("Playe...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Seconds Left (GetSecondsLeft) | pure | RPG Saga|Travel|Co-op | float | Seconds left on this machine's countdown screen. | |
Is Countdown Shown (IsCountdownShown) | pure | RPG Saga|Travel|Co-op | bool | The countdown shows on this machine now. | |
On Group Travel Shown (OnGroupTravelShown) | event | RPG Saga|Travel|Co-op | Travel: FRSEPresentation_GroupTravel (ref) | Every countdown screen this machine shows or closes (a project's own widget). |
URSEGrowthAllocationPolicy
Module RSECore. Spends a character's points when nobody builds it by hand (D-144): AI-controlled members, autoplay, the battle simulator, Balance My Campaign and the Progression Designer, so balance stays valid under every progression system.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Choose Option (ChooseOption) | override | RPG Saga|Progression | Character: URSECharacterData*Level: int32Options: TArray<FRSEGrowthOption> (ref) | int32 | Which option to take next (index into Options), or -1 to stop spending. Default: the best Score per point of cost, the earliest listed on ties. |
Should Stop (ShouldStop) | override | RPG Saga|Progression | Character: URSECharacterData*Level: int32StepsTaken: int32 | bool | Whether the policy keeps points for later (e.g. saving for an expensive node). Default: never. |
URSEGrowthViewModel
Module RSE. The Growth page (D-144): the selected member's points and the points page (Classic + Points) or the board (Classic + Growth Board), plus mastery and ranks.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cancel Pending (CancelPending) | function | RPG Saga|UI|Growth | No. | ||
Choose Node Menu Option (ChooseNodeMenuOption) | function | RPG Saga|UI|Growth | Index: int32 | bool | Runs an entry of the node menu (Unlock sends the command at once: the free undo takes it back). |
Close Node Menu (CloseNodeMenu) | function | RPG Saga|UI|Growth | Close Node Menu | ||
Confirm Pending (ConfirmPending) | function | RPG Saga|UI|Growth | bool | Yes: sends the waiting action's command. | |
End Session (EndSession) | function | RPG Saga|UI|Growth | The page closed (D-149): the undo steps of the members changed here become final (a Clear Growth Undo command each) and the node menu closes. The page calls it when it leaves the screen. | ||
Get Content Count (GetContentCount) | pure | RPG Saga|UI|Growth | int32 | Number of rows of the points page (attributes + catalog). | |
Get Currency Name (GetCurrencyName) | pure | RPG Saga|UI|Growth | Currency: FGameplayTag | FText | Get Currency Name |
Get Member Column Count (GetMemberColumnCount) | pure | RPG Saga|UI|Growth | int32 | Number of rows of the member column (members + Auto + Undo + Respec). | |
Get Selected Character (GetSelectedCharacter) | pure | RPG Saga|UI|Growth | URSECharacterData* | Get Selected Character | |
Open Node Menu (OpenNodeMenu) | function | RPG Saga|UI|Growth | NodeIndex: int32 | bool | Opens the node menu next to a board node (D-149): Unlock (with its cost), Details, Cancel. |
Refresh (Refresh) | function | RPG Saga|UI|Growth | Reads the party state again (keeps the selection). | ||
Request Auto (RequestAuto) | function | RPG Saga|UI|Growth | bool | Request Auto | |
Request Buy (RequestBuy) | function | RPG Saga|UI|Growth | Ability: URSEAbilityData* | bool | Request Buy |
Request Raise (RequestRaise) | function | RPG Saga|UI|Growth | Stat: FGameplayTag | bool | Request Raise |
Request Respec (RequestRespec) | function | RPG Saga|UI|Growth | bool | Request Respec | |
Request Selected Action (RequestSelectedAction) | function | RPG Saga|UI|Growth | bool | Asks to raise / buy / unlock the selected row or node (a Yes / No follows). | |
Request Undo (RequestUndo) | function | RPG Saga|UI|Growth | bool | Takes the selected member's newest step back for free (D-149). | |
Request Unlock (RequestUnlock) | function | RPG Saga|UI|Growth | NodeId: FName | bool | Request Unlock |
Select Content (SelectContent) | function | RPG Saga|UI|Growth | Index: int32 | Puts the cursor on a content row (points page) or a node (board, by index). | |
Select Member (SelectMember) | function | RPG Saga|UI|Growth | Index: int32 | Select Member | |
Select Node by Id (SelectNodeById) | function | RPG Saga|UI|Growth | NodeId: FName | bool | Select Node by Id |
Set Details Open (SetDetailsOpen) | function | RPG Saga|UI|Growth | bOpen: bool | Shows or hides the board's details panel. | |
Set Legend Open (SetLegendOpen) | function | RPG Saga|UI|Growth | bOpen: bool | Shows or hides the legend of node kinds over the board (D-154: the strip's Help button). |
URSEHUDLayoutSubsystem
Module RSE. P32d: the screen areas the HUD elements of one local player take (the quest tracker, a minimap a game adds...), so that transient UI (the reward feed's toasts) places itself around them instead of on top of them.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Occupied (ClearOccupied) | function | RPG Saga|HUD | Id: FName | Clear Occupied | |
Set Occupied HUD Area (SetOccupiedArea) | function | RPG Saga|HUD | Id: FNameAbsoluteTopLeft: FVector2DAbsoluteBottomRight: FVector2D | Blueprint form: a widget's area this frame (absolute Slate coordinates, e.g. from its cached geometry). Call while it shows. |
URSEIdleBehavior
Module RSECore. One idle behaviour (D-129): how likely (Weight), how often (Cooldown) and what it does.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Run (CanRun) | override | RPG Saga|Party Field | Context: FRSEIdleContext (ref) | bool | Whether it can run in this context (an animation the look has, a free spot, another member nearby). |
Make Intent (MakeIntent) | override | RPG Saga|Party Field | Context: FRSEIdleContext (ref)Seed: int32OutIntent: FRSEIdleIntent (out) | Fills the intent (kind, animations, target, duration). Seed: the deterministic random choice of this pick. |
URSEInputDeviceSubsystem
Module RSE. Tracks the device in use (keyboard / mouse or gamepad) through a Slate input pre-processor, so key prompts show the labels of that device only (RSEKeyPrompts, D-038 / D-040).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Input Device (GetLastDevice) | pure, static | RPG Saga|Input | ERSEInputDevice | The device the prompts show: the forced one, else the one used last. | |
Is Menu Focused (IsMenuFocused) | pure, static | RPG Saga|Input | bool | Whether any registered menu has focus (the left stick navigates it). | |
Is Steam Deck (IsSteamDeck) | pure, static | RPG Saga|Input | bool | Running on a Steam Deck (SteamDeck=1 environment variable, -SteamDeck, or URSEInputSettings::bSimulateSteamDeck). | |
Is Using Gamepad (IsUsingGamepad) | pure, static | RPG Saga|Input | bool | The prompts show gamepad buttons now. | |
Is Using Touch (IsUsingTouch) | pure, static | RPG Saga|Input | bool | D-180: the player uses a touch screen now (touch hints, on-screen controls). | |
Notify Prompts Changed (NotifyPromptsChanged) | function, static | RPG Saga|Input | Re-reads the forced device and label set and broadcasts OnDeviceChanged (options, CVars). | ||
On Input Device Changed (BP_OnDeviceChanged) | event | RPG Saga|Input | Device: ERSEInputDevice | The prompt device changed (keyboard / mouse or gamepad; Blueprint). |
URSEInteractableComponent
Module RSE, display name RSE Interactable. Makes any actor interactable (D-165, docs/product/components.md): add it to your own actor (no parent class needed) and the player's prompt focuses it ("[E] Examine") and the Interact key runs it, exactly as an RSE interactable actor: - a Library Kind (D-150: a chest, a campfire, a lantern, a shrine...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Settings (ApplySettings) | function | RPG Saga|Interaction | Re-applies the range and reach to the volume (live tuning). | ||
Can Interact (Custom) (CanInteractCustom) | override | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Extra availability rule of a Blueprint subclass (the prompt shows only while it is true). Default: true. |
Can Interact Now (CanInteractNow) | pure | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Whether a pawn may interact now. |
Get Kind (GetKind) | pure | RPG Saga|Interaction | URSEInteractableData* | The library kind (null = none). | |
Get Kind State (GetKindState) | pure | RPG Saga|Interaction | FRSEInteractableSaveState | The kind's saved state now. | |
Get Prompt Text (GetPromptText) | pure | RPG Saga|Interaction | FText | The action shown in the prompt ("Open", "Talk"); the kind's prompt when it has one. | |
Get Visual (GetVisual) | pure | RPG Saga|Interaction | ERSEInteractableVisual | The kind's look now (Default, Active, Depleted). | |
Interact (Interact) | function | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Runs it now, on this machine (what the Interact command applies on the authority). Returns false when it could not. |
Is Interaction Enabled (IsInteractionEnabled) | pure | RPG Saga|Interaction | bool | Is Interaction Enabled | |
On Focus Changed (OnFocusChanged) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*Pawn: APawn*bFocused: bool | A player's prompt moved onto (bFocused) or off this object: highlight it, play a sound. | |
On Interact (ReceiveInteract) | override | RPG Saga|Interaction | InteractingPawn: APawn*bSucceeded: bool | A custom action of a Blueprint subclass of the component: runs after the data. | |
On Interacted (OnInteracted) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*InteractingPawn: APawn*bSucceeded: bool | Raised after every interaction (on an RSE interactable actor's own component: after the actor's, bSucceeded = it ran). | |
On Interaction Dialog Ended (OnInteractionDialogEnded) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent* | The blocking dialog this interaction started has ended. | |
On Interaction Started (OnInteractionStarted) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*InteractingPawn: APawn* | Before the interaction runs (turn toward the player, stop walking). | |
On Kind Used (OnKindUsed) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*InteractingPawn: APawn*Outcome: FRSEInteractableOutcome (ref) | The library kind was used on the authority (its outcome: lines, items, the look). | |
On No Response (OnNoResponse) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*InteractingPawn: APawn* | The interaction ran and nothing answered the player (no dialog, the conditions failed): say a line here. | |
On Visual Changed (OnVisualChanged) | event | RPG Saga|Interaction | Interactable: URSEInteractableComponent*Visual: ERSEInteractableVisual | The kind's look changed (a lantern lit, a chest emptied): show it on your own meshes. | |
Request Interact (RequestInteract) | function | RPG Saga|Interaction | InteractingPawn: APawn* | bool | Interacts as the player of InteractingPawn through the command bus (D-138). Returns true when applied (or sent). |
Set Interaction Enabled (SetInteractionEnabled) | function | RPG Saga|Interaction | bInEnabled: bool | Turns the interaction on or off (off: no prompt, Interact does nothing). | |
Set Kind (SetKind) | function | RPG Saga|Interaction | InKind: URSEInteractableData* | Sets the library kind (tools, Blueprint) and starts its state over. |
URSEInteractionPromptViewModel
Module RSE. The interaction prompt (D-060): key cap + action ("[E] Talk") above the focused interactable (its prompt point) or at a screen point.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Compute Screen Position (ComputeScreenPosition) | pure | RPG Saga|UI|Interaction | PromptSize: FVector2DOutPosition: FVector2D (out) | bool | Where the prompt's bottom-center goes now, in viewport units, for a prompt of PromptSize. Returns true when it follows the object; false = the settings' screen anchor (OutPosition is that point). |
URSEInteractionSubsystem
Module RSE. Routes the explorer's Interact to the interactable in focus and shows the prompt ("[E] Talk").
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Focused (GetFocused) | pure | RPG Saga|Interaction | ARSEInteractableActor* | The RSE interactable actor the prompt of this machine's primary player shows now, or none (see GetFocusedComponent). | |
Get Focused Actor For (GetFocusedActorFor) | pure | RPG Saga|Interaction | Pawn: APawn* | AActor* | The actor Pawn's prompt shows now (whatever its class), or none. |
Get Focused Component (GetFocusedComponent) | pure | RPG Saga|Interaction | URSEInteractableComponent* | The interactable (any actor's RSE Interactable component) the primary player's prompt shows now, or none. | |
Get Focused Component For (GetFocusedComponentFor) | pure | RPG Saga|Interaction | Pawn: APawn* | URSEInteractableComponent* | The interactable (any actor's RSE Interactable component) Pawn's prompt shows now, or none. |
Get Focused For (GetFocusedFor) | pure | RPG Saga|Interaction | Pawn: APawn* | ARSEInteractableActor* | The RSE interactable actor Pawn's prompt shows now, or none (see GetFocusedComponentFor). |
Interact with Focused (InteractWithFocused) | function | RPG Saga|Interaction | bool | Interacts with the primary player's focused interactable (the explorer's Interact calls the pawn's own). Returns true when it did. | |
Interact with Focused For (InteractWithFocusedFor) | function | RPG Saga|Interaction | Pawn: APawn* | bool | Interacts with the object Pawn's prompt shows (its focus), without re-picking at the press: what the player read is what runs. Only when that object is gone or cannot be used any more is the focus re-evaluated first. Returns true when it was applied (or sent). |
Is Interaction Allowed (IsInteractionAllowed) | pure | RPG Saga|Interaction | bool | Interaction is possible now for the primary player (exploration active, no dialog or scene, no modal screen open or just closed). |
URSEInteriorCameraSubsystem
Module RSE. The exploration camera inside interiors (D-110): when the local player's explorer enters an Interior Volume, its spring arm, look limits, field of view and (with a fixed angle) the view direction blend to the volume's profile; leaving every volume blends back to what the camera was outside.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Active Volume (GetActiveVolume) | pure | RPG Saga|Interiors | ARSEInteriorVolume* | The interior whose profile the explorer camera uses now (null outside). | |
Is Blending (IsBlending) | pure | RPG Saga|Interiors | bool | The camera is still blending between two profiles. |
URSEInteriorKitData
Module RSECore. A modular interior kit (D-164): pieces of one pack that fit together on a module grid.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Coverage (GetCoverage) | pure | RPG Saga|Interiors | FGameplayTagContainer | Which piece kinds the kit has (exact kinds). | |
Get Kind for Slot (GetKindForSlot) | pure | RPG Saga|Interiors | Slot: FGameplayTag | FGameplayTag | The first piece kind of a plan slot this kit has (its Slot Kinds, else the built-in table); invalid when none. |
Get Kit Id (GetKitId) | pure | RPG Saga|Interiors | FName | KitId, else the asset's name. | |
Has Kind (HasKind) | pure | RPG Saga|Interiors | Kind: FGameplayTag | bool | Whether the kit has a piece of exactly Kind. |
Pick Kit Piece (PickPieceBP) | pure | RPG Saga|Interiors | Kind: FGameplayTagSpan: floatSeed: int32OutPiece: FRSEKitPiece (out) | bool | PickPiece for Blueprint: Returns false when nothing fits. |
URSEInteriorTravelSubsystem
Module RSE. Separate interiors (D-150): the trip from a building entrance of mode Separate Interior into its interior and back.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Are Battles Blocked (AreBattlesBlocked) | pure | RPG Saga|Buildings | bool | D-153: battles are refused now: the party is in a separate interior whose rules forbid them. | |
Is Busy (IsBusy) | pure | RPG Saga|Buildings | bool | A blackout is running (the trip is half way). | |
Is Inside (IsInside) | pure | RPG Saga|Buildings | bool | Is Inside |
URSEInventoryPermissionPolicy
Module RSECore. Who may change what (co-op, D-094 / D-124): the host can let guests manage the shared stash and their own characters, or more.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Change Equipment (CanChangeEquipment) | override | RPG Saga|Items|Permissions | Issuer: FRSEInventoryIssuer (ref)Character: URSECharacterData* | bool | Whether Issuer may change Character's equipment. Default: yes (guests' fixed equipment stays locked by its data, D-011). |
Can Issue (CanIssue) | override | RPG Saga|Items|Permissions | Issuer: FRSEInventoryIssuer (ref)Command: FRSEInventoryCommand (ref) | bool | Whether Issuer may send Command at all. Default: yes. |
Can Issue Party Command (CanIssuePartyCommand) | override | RPG Saga|Items|Permissions | Issuer: FRSEInventoryIssuer (ref)Command: FInstancedStruct (ref) | bool | Whether Issuer may send a party command (D-137): Command is the payload (Equip Item, Bind Pact, Buy Item, Set Formation...; inventory commands also pass Can Issue). The bus' own permission (host-only story commands) is checked first. Default: yes. |
Can Use Container (CanUseContainer) | override | RPG Saga|Items|Permissions | Issuer: FRSEInventoryIssuer (ref)Container: FRSEContainerRef (ref)bTakeOut: bool | bool | D-143: whether Issuer may take items out of (bTakeOut) or put items into Container (a member's bag, the stash, the pending loot): moves, transfers, Give to..., use and discard. Co-op: a host may keep guests out of the members other players lead. Default: yes. |
URSEInventorySubsystem
Module RSECore. Inventory commands (D-123) on the command bus (D-137): every move, equip, unequip, use, sort or discard from an inventory screen is a FRSEInventoryCommand, a party command.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Change Equipment (CanChangeEquipment) | pure | RPG Saga|Items|Commands | Issuer: FRSEInventoryIssuer (ref)Character: URSECharacterData* | bool | Whether Issuer may change Character's equipment (permission policy and the character's own lock). |
Is Allowed (IsAllowed) | pure | RPG Saga|Items|Commands | Command: FRSEInventoryCommand (ref)Issuer: FRSEInventoryIssuer (ref) | bool | Whether Issuer may send Command (permission policy only; the command may still fail its own rules). |
On Command Applied (OnCommandApplied) | event | RPG Saga|Items|Commands | Command: FRSEInventoryCommand (ref)Outcome: FRSEInventoryCommandOutcome (ref) | A command was applied successfully (on the host or in single player), or refused when sent from this subsystem. | |
Set Policy (SetPolicy) | function | RPG Saga|Items|Commands | InPolicy: URSEInventoryPermissionPolicy* | Replaces the policy at run time (D-137): the host's session rules (co-op: what guests may change), tests. Null = back to Items -> Permission Policy Class. Only the authority's policy decides (commands are validated there). | |
Submit Command (SubmitCommand) | function | RPG Saga|Items|Commands | Command: FRSEInventoryCommand (ref)Issuer: FRSEInventoryIssuer (ref) | FRSEInventoryCommandOutcome | Sends Command through the command bus (D-137) and returns its outcome. Issuer: this machine's player, or (with authority: the host, tools, tests) another player whose command it is; the bus decides who the sender really is. On a guest the outcome is Pending and OnCommandApplied follows on the host. |
URSEInventoryViewModel
Module RSE. The grid inventory presenter (D-123): data and commands of an inventory screen, for any screen style (our grid page, a Widget Blueprint, later a chest or a shop).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate Item (ActivateItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Double-click / right-click: equip equipment, use consumables, read documents, use key items on the object in front. |
Auto Distribute (AutoDistribute) | function | RPG Saga|UI|Inventory | bool | Deals every bag again by the Smart rule (and the open stash's upgrades): one command. | |
Can Equip in Slot (CanEquipInSlot) | pure | RPG Saga|UI|Inventory | Item: URSEItemData*SlotId: FName | bool | Whether the selected character can wear Item in SlotId now (drop highlights). |
Can Give To (CanGiveTo) | pure | RPG Saga|UI|Inventory | Item: URSEItemData*MemberIndex: int32 | bool | Whether member Index's bag can take Item now (drop highlights on the party strip). |
Can Place At (CanPlaceAt) | pure | RPG Saga|UI|Inventory | Item: URSEItemData*Cell: FIntPoint | bool | Whether Item (of the current tab) fits at Cell, ignoring its own place (drop highlights). Items not on the grid count as new. |
Combine Items (CombineItems) | function | RPG Saga|UI|Inventory | First: URSEItemData*Second: URSEItemData* | bool | Combines two key items (through the party menu, D-039). |
Discard Item (DiscardItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Throws one Item away (Items -> Allow Discard). |
Equip Item (EquipItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData*SlotId: FNameReturnCell: FIntPoint | bool | The selected character equips Item in SlotId (None = automatic); what comes off lands at ReturnCell when free. |
Get Actions (GetActions) | pure | RPG Saga|UI|Inventory | Item: URSEItemData*FromSlot: FName | TArray<FRSEMenuEntryView> | Actions for a piece of the grid (FromSlot None) or a worn item (FromSlot set): Equip, Use, Read, Use on..., Combine, Move, Unequip, Discard, Cancel. |
Get Current Container (GetCurrentContainer) | pure | RPG Saga|UI|Inventory | FRSEContainerRef | The container of the current tab. | |
Get Issuer (GetIssuer) | pure | RPG Saga|UI|Inventory | FRSEInventoryIssuer | Who this screen acts for (its local player; host in single player). | |
Get Selected Character (GetSelectedCharacter) | pure | RPG Saga|UI|Inventory | URSECharacterData* | Get Selected Character | |
Get Selected Equipment (GetSelectedEquipment) | pure | RPG Saga|UI|Inventory | FRSECharacterEquipment | What the selected character wears now (the paperdoll's live preview shows it, D-126). | |
Get Stat Preview (GetStatPreview) | pure | RPG Saga|UI|Inventory | Item: URSEItemData*SlotId: FName | TArray<FRSEStatChangeView> | The selected character's stats with Item in SlotId (None = its automatic slot); Item null = SlotId emptied. |
Get Tooltip (GetTooltip) | pure | RPG Saga|UI|Inventory | Item: URSEItemData* | FRSEItemTooltipView | Tooltip of Item, compared with the selected character's equipment. |
Give Item To (GiveItemTo) | function | RPG Saga|UI|Inventory | Item: URSEItemData*MemberIndex: int32 | bool | Gives Item (the whole stack) from the current container to member Index's bag (Give to..., a drop on a portrait). |
Move Item (MoveItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData*Cell: FIntPoint | bool | Moves Item to Cell of the current tab (swaps with a single piece in the way). |
Refresh (Refresh) | function | RPG Saga|UI|Inventory | Rebuilds every list from the game. | ||
Select Member (SelectMember) | function | RPG Saga|UI|Inventory | Index: int32 | Select Member | |
Select Tab (SelectTab) | function | RPG Saga|UI|Inventory | Index: int32 | Select Tab | |
Send to Stash (SendToStash) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Moves Item (the whole stack) from the current bag into the stash (only where the stash opens). |
Set Message (SetMessage) | function | RPG Saga|UI|Inventory | InMessage: FText (ref) | Sets Message (and the host menu's message). | |
Sort Tab (SortTab) | function | RPG Saga|UI|Inventory | bool | Re-packs the current tab. | |
Submit (Submit) | function | RPG Saga|UI|Inventory | Command: FRSEInventoryCommand (ref) | FRSEInventoryCommandOutcome | The single dispatch point: sends Command for this view-model's player and refreshes. |
Take Item (TakeItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Takes Item (the whole stack) from the stash or the pending loot into the selected member's bag. |
Unequip Slot (UnequipSlot) | function | RPG Saga|UI|Inventory | SlotId: FNameCell: FIntPoint | bool | The selected character's SlotId goes back to the inventory, at Cell when free ((-1, -1) = anywhere). |
Use Item (UseItem) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Uses a consumable on the selected character (or the whole party when the item allows only that). Save items open the save screen. |
Use Key Item on Target (UseKeyItemOnTarget) | function | RPG Saga|UI|Inventory | Item: URSEItemData* | bool | Uses a key item on the object the player stands at (through the party menu, D-039). |
URSEKeyPromptProvider
Module RSE. RSE Key Prompt Provider
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Key Prompt Icon (GetKeyPromptIcon) | override | RPG Saga|Input|Prompts | Keys: TArray<FKey> (ref)Device: ERSEInputDeviceOutIcon: FRSEKeyPromptIcon (out) | bool | An icon for Keys (one key, or a set shown as one prompt: the D-pad's up / down) on Device. Returns false to show the text key cap. Default: no icon. |
Get Key Prompt Label (GetKeyPromptLabel) | override | RPG Saga|Input|Prompts | Key: FKey (ref)LabelStyle: ERSEGamepadLabelStyle | FText | Short label of Key in the gamepad label set LabelStyle (Xbox, PlayStation, Steam Deck). Default: UI Theme -> Key Prompts. |
URSELeashPolicy
Module RSE. The co-op leash rules (D-094, D-142): who is leashed, to what, how far, and when it applies.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Applies Now (AppliesNow) | override | RPG Saga|Co-op|Leash | WorldContext: UObject* | bool | Whether the leash applies now in WorldContext's world. Default: not during scenes, dialogs, battles, travels. |
Get Anchor (GetAnchor) | override | RPG Saga|Co-op|Leash | Anchor: ERSELeashAnchorHostLocation: FVectorbHasHost: boolPlayerLocations: TArray<FVector> (ref) | FVector | The anchor point. HostLocation: the host's explorer (when it has one); PlayerLocations: every player's explorer. |
Is Leashed (IsLeashed) | override | RPG Saga|Co-op|Leash | Player: FRSEPlayerIdAnchor: ERSELeashAnchor | bool | Whether Player is tied to the anchor. Default: the guests (Host anchor), everyone (Group Center). |
URSELeashSubsystem
Module RSE. Keeps the co-op group together (D-094 leash, D-142): on the authority, every Leash Check Interval it measures each leashed player's explorer against the anchor; past the radius the player gets a warning notice (on their machine), and after the grace seconds is brought back beside the anchor.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Effective Radius (GetEffectiveRadius) | pure | RPG Saga|Co-op|Leash | float | The radius on this map (its Co-op Map Settings, else Co-op Flow), or 0 when the leash is off here. |
URSELobbyViewModel
Module RSEOnline. The lobby screen's data and actions (D-135): host / find / join / leave / invite, the found sessions, the players and the local character choice.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cycle Character (CycleCharacter) | function | RPG Saga|Online|Lobby | Direction: int32 | Picks the previous (-1) or next (+1) selectable character. | |
Find (Find) | function | RPG Saga|Online|Lobby | Searches for sessions. | ||
Host (Host) | function | RPG Saga|Online|Lobby | Hosts a session with the project's online settings. | ||
Invite (Invite) | function | RPG Saga|Online|Lobby | Opens the online service's invite overlay. | ||
Join (Join) | function | RPG Saga|Online|Lobby | ResultIndex: int32 | Joins the session of a row (its Result Index). | |
Leave (Leave) | function | RPG Saga|Online|Lobby | Leaves or ends the session. | ||
Select Session (SelectSession) | function | RPG Saga|Online|Lobby | RowIndex: int32 | Highlights a session row (mouse hover). |
URSELocalPlayerUISubsystem
Module RSE. One local player's UI context (D-134, docs/design/networking.md §3.8): its modal screen stack, whether its world actions are blocked, its HUD groups and the focus of its screens.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Close Party Menu (ClosePartyMenu) | function | RPG Saga|UI|Host | Closes the party menu when it is open. | ||
Close Screen (CloseScreen) | function | RPG Saga|UI|Screens | Screen: UObject* | Close Screen | |
Focus Top Screen (FocusTopScreen) | pure | RPG Saga|UI|Screens | bool | Gives the focus back to this player's top screen. Returns false when there is none. | |
Get Fallback UIHost (GetFallbackUIHost) | pure | RPG Saga|UI|Host | UObject* | The host set with Set Fallback UI Host, or null. | |
Get Local Player UI (GetFor) | pure, static | RPG Saga|UI|Screens | Player: UObject* | URSELocalPlayerUISubsystem* | The UI context of the local player behind Player (a controller, pawn, widget or local player), or null. |
Get Party Menu (GetPartyMenu) | function | RPG Saga|UI|Host | bCreate: bool = true | URSEPartyMenuViewModel* | This player's party menu (made by a standalone host when the player has no UI host and bCreate). |
Get Player Controller (GetPlayerController) | pure | RPG Saga|UI|Screens | APlayerController* | This player's controller in the current world. | |
Get Screen Presenter (GetScreenPresenter) | pure | RPG Saga|UI|Host | UObject* | Get Screen Presenter | |
Get Top Focusable Screen (GetTopFocusableScreen) | pure | RPG Saga|UI|Screens | UUserWidget* | This player's top focusable screen, or null. | |
Get UIHost (GetUIHost) | function | RPG Saga|UI|Host | bCreate: bool = true | UObject* | This player's UI host: the one set with Set UI Host, else the player's HUD when it implements IRSEUIHost, else (bCreate) a standalone host made now. Null without a player controller (or without one and !bCreate). |
Is Any Screen Open (IsAnyScreenOpen) | pure | RPG Saga|UI|Screens | bool | This player has a screen open (its own or a shared one). | |
Is Game Input Blocked (IsGameInputBlocked) | pure | RPG Saga|UI|Screens | bool | This player's world actions must be ignored now (a screen is open or has just closed). | |
Is HUDGroup Hidden (IsHUDGroupHidden) | pure | RPG Saga|UI|Screens | Group: ERSEHUDGroup | bool | One of this player's screens hides Group. |
On Screens Changed (OnScreensChanged) | event | RPG Saga|UI|Screens | bAnyScreenOpen: bool | One of this player's screens opened or closed (bAnyScreenOpen: for this player). | |
Open Growth (OpenGrowth) | function, static | RPG Saga|UI|Host | Player: APlayerController* | bool | Opens Player's progression (the party menu's Growth page), with any HUD class. |
Open Inventory (OpenInventory) | function, static | RPG Saga|UI|Host | Player: APlayerController* | bool | Opens Player's inventory (the party menu's Items page), with any HUD class. |
Open Party Menu (Player) (OpenPartyMenu) | function, static | RPG Saga|UI|Host | Player: APlayerController*Page: ERSEPartyMenuPage | bool | Opens Player's party menu on Page, with any HUD class. |
Open Party Menu Page (OpenPartyMenuPage) | function | RPG Saga|UI|Host | Page: ERSEPartyMenuPage | bool | Opens the party menu on Page (or moves it there). Returns false when it cannot open or the page is not offered. |
Open Screen (OpenScreen) | function | RPG Saga|UI|Screens | Screen: UObject*Options: FRSEModalScreenOptions (ref) | Opens Screen on this player's stack (see URSEModalScreenSubsystem::OpenScreenFor). | |
Set Fallback UIHost (SetFallbackUIHost) | function | RPG Saga|UI|Host | Host: UObject* | D-176: the host used when the player has no explicit host and its HUD is not one (before the standalone host), e.g. the Common UI host (RSECommonUI module). An object implementing IRSEUIHost; null = none. | |
Set Screen Presenter (SetScreenPresenter) | function | RPG Saga|UI|Host | Presenter: UObject* | D-176: what puts this player's screens on screen (an object implementing IRSEScreenPresenter, e.g. the Common UI host's layer stacks in the RSECommonUI module). Null = the viewport (the screens add themselves). | |
Set UIHost (SetUIHost) | function | RPG Saga|UI|Host | Host: UObject* | Uses Host (an object implementing IRSEUIHost: a HUD, a controller, a manager) for this player's screens. Null = automatic. |
URSELockpickViewModel
Module RSE. The lockpick screen's data and actions (D-109, D-052): a Widget Blueprint may replace the built-in screen.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Marker (GetMarker) | pure | RPG Saga|Exploration RPG | float | The marker's place on the bar (0..1). | |
Give Up (GiveUp) | function | RPG Saga|Exploration RPG | Gives up (Back): counts as a failure without breaking anything. | ||
Press (Press) | function | RPG Saga|Exploration RPG | ERSELockpickStep | The press (Confirm, a click): sets the pin or counts a miss. |
URSELootDistributionRule
Module RSECore. Who receives an item the party gained in the Per Character mode (D-143): chests, battle rewards (boss loot included), quest rewards, shop purchases, pick-ups, the Auto-distribute button.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Rank Targets (RankTargets) | override | RPG Saga|Items|Loot | State: FRSEPartyState (ref)Query: FRSELootQuery (ref)OutTargets: TArray<FRSELootTarget> (out) | Ranks where Query's items should go, best first. Default: the members in party order. |
URSEMainMenuViewModel
Module RSE. The title screen and main menu (D-026): the game title, an optional "press any key" state and the [Continue] / New Game / Load / Options / Quit entries (Continue and Load depend on the saves, D-010).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Back to Title (BackToTitle) | function | RPG Saga|UI|MainMenu | Back to the title state (when the settings show one). | ||
Choose (Choose) | function | RPG Saga|UI|MainMenu | Chooses the selected entry. | ||
Choose Entry (ChooseEntry) | function | RPG Saga|UI|MainMenu | Index: int32 | Selects an entry and chooses it (a click). | |
Move Selection (MoveSelection) | function | RPG Saga|UI|MainMenu | Direction: int32 | Move Selection | |
On Fade Changed (OnFadeChanged) | event | RPG Saga|UI|MainMenu | Opacity: float | The fade overlay's opacity changed (every frame while a fade runs). | |
Press Any Key (PressAnyKey) | function | RPG Saga|UI|MainMenu | Leaves the title state. | ||
Press Any Key From (PressAnyKeyFrom) | function | RPG Saga|UI|MainMenu | Device: FInputDeviceId | D-170, "press start": leaves the title state and makes the user of Device the primary user (whose saves are used; Platform -> Select User On Press Start). An invalid device keeps the current user. | |
Refresh Entries (RefreshEntries) | function | RPG Saga|UI|MainMenu | Rebuilds the entries from the saves (Continue, Load), keeping the cursor on the same action. | ||
Select (Select) | function | RPG Saga|UI|MainMenu | Index: int32 | Select | |
Set Message (SetMessage) | function | RPG Saga|UI|MainMenu | InMessage: FText (ref) | Set Message |
URSEMapBadge
Module RSE. One marker badge (shape, color, glyph) as the maps draw it (D-092): the legend's rows use it.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Set Badge (SetBadge) | function | RPG Saga|Map | InShape: ERSEMapMarkerShapeInColor: FLinearColorInGlyph: FText (ref)InOpacity: float = 1.000000 | Sets what the badge shows. |
URSEMapData
Module RSECore. The area map of one level (D-089): the top-down picture Generate Map made, where it lies in the world, and what the designers added by hand (name, regions, markers, hidden categories).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Map Id (GetMapId) | pure | RPG Saga|Map | FName | The id saves use for this map's fog and pins. |
URSEMapMarkerComponent
Module RSE, display name RSE Map Marker. Puts its actor on the area map and the minimap (D-089).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Set Category (SetCategory) | function | RPG Saga|Map | InCategory: FGameplayTag | Set Category | |
Set Show Marker (SetShowMarker) | function | RPG Saga|Map | bShow: bool | Set Show Marker |
URSEMapMarkerSource
Module RSE. RSEMap Marker Source
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Should Show Map Marker (ShouldShowMapMarker) | override | RPG Saga|Map | bool | Whether this actor's marker shows now. |
URSEMapStyle
Module RSECore. The look of a generated area map (D-089): what Generate Map does to the top-down picture of the level.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Preset (ApplyPreset) | function | Preset | Sets every look parameter below to the values of Preset (materials and pictures are kept). |
URSEMapSubsystem
Module RSECore. The saved state of the area maps (D-089): explored areas (fog of war) and player pins, by map id.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Pin (AddPin) | function | RPG Saga|Map | MapId: FNameWorldLocation: FVector2DMaxPins: int32 = 0Type: FGameplayTag = ()bReplaceOldest: bool = false | int32 | Adds a pin of Type at a world X / Y. MaxPins 0 = no limit. When the map has MaxPins pins already, bReplaceOldest removes the oldest one to make room, else the pin is refused. Returns the pin id (0 = refused, or sent to the host by a co-op guest: the pin then arrives with the Map section). The sender is the pin's owner. |
Get Explored Fraction (GetExploredFraction) | pure | RPG Saga|Map | MapId: FName | float | Share of the map explored (0..1). |
Get Pins (GetPins) | pure | RPG Saga|Map | MapId: FName | TArray<FRSEMapPin> | The pins of a map. |
Is Revealed (IsRevealed) | pure | RPG Saga|Map | MapId: FNameUV: FVector2D | bool | The point of the map was explored (false while the map has no fog mask yet). |
Move Pin (MovePin) | function | RPG Saga|Map | PinId: int32WorldLocation: FVector2D | bool | Moves a pin to a world X / Y. |
On Changed (OnChanged) | event | RPG Saga|Map | MapId: FName | Fires after the fog or the pins of a map changed. | |
Remove Pin (RemovePin) | function | RPG Saga|Map | PinId: int32 | bool | Remove Pin |
Reset Fog (ResetFog) | function | RPG Saga|Map | MapId: FName | Forgets what was explored on a map (a command: host only in co-op). | |
Reveal At (RevealAt) | function | RPG Saga|Map | MapId: FNameUV: FVector2DRadiusUV: floatFogSize: int32 | bool | Reveals the map around UV (map coordinates 0..1) within RadiusUV; the mask is made at FogSize cells per side on first use. Returns true when new cells were revealed (OnChanged fires). |
Set Pin Type (SetPinType) | function | RPG Saga|Map | PinId: int32Type: FGameplayTag | bool | Changes a pin's type. Returns false when there is no such pin. |
URSEMapView
Module RSE. Draws an area map (D-089): the map picture, fog of war, region names, markers and the player arrow, for any view (center, zoom, rotation), round or square.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Local to Map (LocalToMap) | pure | RPG Saga|Map | Local: FVector2D | FVector2D | Map coordinates under a point of this widget (local pixels). |
Show View Model (ShowViewModel) | function | RPG Saga|Map | ViewModel: URSEMapViewModel* | Shows a minimap view-model (its zoom, shape and rotation) or an area map view-model (its view). |
URSEMapViewModel
Module RSE. What the map screens show (D-089): the map picture and fog, the player, the markers and the tracked objective.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Has Map (HasMap) | pure | RPG Saga|Map | bool | A map is loaded for this level. |
URSEMapWorldSubsystem
Module RSE. The area map and minimap of a game world (D-089).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Open Area Map (CanOpenAreaMap) | pure | RPG Saga|Map | bool | D-148: the level has a map and the area map may open now (no battle, no scene hiding the maps). | |
Can Show Quest on Map (CanShowQuestOnMap) | pure | RPG Saga|Map | Quest: URSEQuestData* | bool | The quest has an objective with a place this level can show (on it, or the exit toward it). |
Close Area Map (CloseAreaMap) | function | RPG Saga|Map | Closes the area map (the screen, or the party menu shown on its Map tab). | ||
Cycle Minimap Zoom (CycleMinimapZoom) | function | RPG Saga|Map | Next minimap zoom level. | ||
Get Map Data (GetMapData) | pure | RPG Saga|Map | URSEMapData* | The level's map (null while loading or when the level has none). | |
Get Markers (GetMarkers) | pure | RPG Saga|Map | TArray<FRSEMapMarkerView> | Every marker of the world now (filters of the map data and fog applied, player filters not). | |
Get Objective Location (GetObjectiveLocation) | pure | RPG Saga|Map | OutText: FText (out)OutLocation: FVector (out) | bool | The tracked quest's current objective with a map target: its text and world location (or the exit toward its level). |
Is Area Map Open (IsAreaMapOpen) | pure | RPG Saga|Map | bool | The area map shows now (its screen, or the party menu on the Map tab). | |
Is Fog Enabled (IsFogEnabled) | pure | RPG Saga|Map | bool | Fog of war is on for the current map. | |
Is Minimap Shown (IsMinimapShown) | pure | RPG Saga|Map | bool | The minimap is on screen now (the level has a map, no battle, cutscene or option hides it). | |
Open Area Map (OpenAreaMap) | function | RPG Saga|Map | Controller: APlayerController* | bool | Opens the area map for Controller. D-148: on the party menu's Map tab (Map & Minimap -> Area Map In Party Menu); the area map screen alone when that is off or the player has no built-in party menu. Returns false when there is no map or it cannot open now. |
Open Area Map at Quest (OpenAreaMapAtQuest) | function | RPG Saga|Map | Controller: APlayerController*Quest: URSEQuestData* | bool | Opens the area map centered on a quest's objective (journal "Show on map"). |
Open Journal At (OpenJournalAt) | function | RPG Saga|Map | Controller: APlayerController*Quest: URSEQuestData* | bool | Closes the area map and opens the party menu's journal on Quest. |
Set Map (SetMap) | function | RPG Saga|Map | Map: URSEMapData* | Uses Map for this world (normally found by level); the texture is loaded if needed. Tests pass a map without a picture. | |
Set Minimap Info (SetMinimapInfo) | function | RPG Saga|Map | Source: FNameText: FText | Extension point of the minimap (D-104): a line shown under it, by source (the clock uses "Clock"; a quest timer, a region's danger level...). Lines show in source name order; an empty Text removes the source's line. | |
Set Minimap Suppressed (SetMinimapSuppressed) | function | RPG Saga|Map | Reason: FNamebSuppressed: bool | Hides the minimap while any reason is set (cutscenes use "Scene"). Battles and modal screens are handled automatically. |
URSEMenuExtension
Module RSE. One entry a module or a project adds to the framework's menus without touching them (D-142; RSEOnline adds Host Game, Join Game and Invite this way).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Execute (Execute) | override | RPG Saga|UI|Menu Extension | Player: APlayerController* | ERSEMenuFollowUp | The entry was chosen. Returns what the menu does next. |
Is Enabled (IsEnabled) | override | RPG Saga|UI|Menu Extension | Player: APlayerController*OutReason: FText (out) | bool | Whether the entry can be chosen now (OutReason: shown beside a disabled entry). Default: yes. |
Is Visible (IsVisible) | override | RPG Saga|UI|Menu Extension | Player: APlayerController* | bool | Whether the entry shows now for Player (null on a title screen without a player). Default: yes. |
URSEMenuExtensionSubsystem
Module RSE. The menus' extension entries (D-142, an extension point of RSE's front end and in-game menu).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Register (Register) | function | RPG Saga|UI|Menu Extension | Extension: URSEMenuExtension* | Adds Extension (replaces one with the same Id). | |
Unregister (Unregister) | function | RPG Saga|UI|Menu Extension | Id: FName | Unregister |
URSEMinimapViewModel
Module RSE. The HUD minimap (D-089): zoom levels, shape and rotation from Map & Minimap settings.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cycle Zoom (CycleZoom) | function | RPG Saga|Map | Next zoom level (wraps). | ||
Get View Rotation (GetViewRotation) | pure | RPG Saga|Map | float | Map angle drawn up: the player's heading, the camera's, or 0 = north (Rotation Mode). | |
Get View Span (GetViewSpan) | pure | RPG Saga|Map | float | Visible map width in map units (1 = the whole map). |
URSEModalScreenSubsystem
Module RSE. Knows which modal screens (menus, dialogs, shops, card table, results...) are open, so the always-on HUD never shows through them (docs/design/ui-theme.md, "Ecrane modale").
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Close Screen (CloseScreen) | function | RPG Saga|UI|Screens | Screen: UObject* | Close Screen | |
Is Any Screen Open (IsAnyScreenOpen) | pure | RPG Saga|UI|Screens | bool | Any player has a screen open. | |
Is Any Screen Open For (IsAnyScreenOpenFor) | pure | RPG Saga|UI|Screens | Player: UObject* | bool | Player (a controller, local player, pawn or widget) has a screen open (its own or a shared one). |
Is Game Input Blocked (IsGameInputBlocked) | pure | RPG Saga|UI|Screens | bool | World actions (Interact, the menu key) must be ignored now: a screen is open or has just closed (any player). | |
Is Game Input Blocked For (IsGameInputBlockedFor) | pure | RPG Saga|UI|Screens | Player: UObject* | bool | Player's world actions must be ignored now: one of its screens (or a shared one) is open or has just closed. |
Is HUDGroup Hidden (IsHUDGroupHidden) | pure | RPG Saga|UI|Screens | Group: ERSEHUDGroup | bool | An open screen hides Group (for any player). |
Is HUDGroup Hidden For (IsHUDGroupHiddenFor) | pure | RPG Saga|UI|Screens | Group: ERSEHUDGroupPlayer: UObject* | bool | An open screen of Player hides Group. |
Is Input Guarded (IsInputGuarded) | pure | RPG Saga|UI|Screens | bool | A screen closed moments ago (URSEUISettings::ScreenCloseInputGuard), for any player. | |
Is Input Guarded For (IsInputGuardedFor) | pure | RPG Saga|UI|Screens | Player: UObject* | bool | Is Input Guarded For |
Is Quest Tracker Hidden (IsQuestTrackerHidden) | pure | RPG Saga|UI|Screens | bool | Is Quest Tracker Hidden | |
Is Quest Tracker Hidden For (IsQuestTrackerHiddenFor) | pure | RPG Saga|UI|Screens | Player: UObject* | bool | Is Quest Tracker Hidden For |
Is Screen Open (IsScreenOpen) | pure | RPG Saga|UI|Screens | Screen: UObject* | bool | Is Screen Open |
On Screens Changed (OnScreensChanged) | event | RPG Saga|UI|Screens | bAnyScreenOpen: bool | A screen opened or closed (closing is reported on the next tick, so a screen that opens another does not flicker the HUD). | |
Open Screen (OpenScreen) | function | RPG Saga|UI|Screens | Screen: UObject*Options: FRSEModalScreenOptions (ref) | Registers Screen as open (again: updates its options) on its owning player's stack. | |
Open Screen For (OpenScreenFor) | function | RPG Saga|UI|Screens | Screen: UObject*Options: FRSEModalScreenOptions (ref)Player: UObject* | Registers Screen as open on Player's stack (a controller, local player, pawn or widget of that player); a Player that resolves to no local player puts it on the shared stack (it blocks every player). | |
Validate Screens (ValidateScreens) | function | RPG Saga|UI|Screens | int32 | D-152, the safety net: forgets the registered screens that are not on screen any more (GetLiveness), e.g. a screen widget embedded in a menu that was hidden, or removed from the viewport without closing. Runs by itself when a screen opens or closes and before the first query of each frame; a forgotten screen logs a warning and the HUD comes back. Returns how many screens were forgotten. |
URSENPCActivityBehavior
Module RSECore, display name NPC Activity Behavior. A scripted activity (D-173, docs/product/living-npcs.md "Activity behaviours"): what a living NPC does while it stays at its place, beyond an animation.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin (Begin) | override | RPG Saga|NPC | NPC: AActor*Activity: FRSENPCActivity (ref) | The NPC starts the activity (it arrived at its place). NPC is its actor; get its Living NPC component for walking and animations. | |
Can Interrupt (CanInterrupt) | override | RPG Saga|NPC | NPC: AActor*Reason: ERSENPCInterruptReason | bool | May the NPC stop now? False = it finishes first (the schedule's change waits; the player's talk waits). Danger is never refused. |
End (End) | override | RPG Saga|NPC | NPC: AActor*bInterrupted: bool | The activity ends (a new one starts, a conversation, danger, the NPC sleeps). bInterrupted: it was cut short. Clean up here. | |
Get Activity (GetActivity) | pure | RPG Saga|NPC | FRSENPCActivity | The activity it runs for (valid between Begin and End). | |
Get NPC (GetNPC) | pure | RPG Saga|NPC | AActor* | The NPC doing it (valid between Begin and End). | |
Get Run Seconds (GetRunSeconds) | pure | RPG Saga|NPC | float | Seconds this activity has run (since Begin). | |
Tick (Tick) | override | RPG Saga|NPC | NPC: AActor*DeltaSeconds: float | Every Tick Interval while the NPC does the activity. DeltaSeconds: since the last call. |
URSENPCBehaviorComponent
Module RSE, display name Living NPC. A living NPC (D-104, docs/product/living-npcs.md): put it on an RSE NPC (it has one already) or on any actor or pawn.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin Talk (BeginTalk) | function | RPG Saga|NPC | Pawn: APawn* | Starts a conversation: stops walking and its activity, faces Pawn. | |
Clear Danger (ClearDanger) | function | RPG Saga|NPC | The danger is over: a reacting NPC returns to its schedule after its Return Delay. | ||
End Chat (EndChat) | function | RPG Saga|NPC | Ends the talk with its partner (both go back to what they did). | ||
End Talk (EndTalk) | function | RPG Saga|NPC | DelayOverride: float = -1.000000 | The conversation ended: it goes on after the settings' Resume Delay (DelayOverride >= 0: after that many seconds). | |
Face Location (FaceLocation) | function | RPG Saga|NPC | Location: FVectorbInstant: bool = false | Turns toward a point of the world. | |
Face Yaw (FaceYaw) | function | RPG Saga|NPC | Yaw: floatbInstant: bool = false | Turns toward a yaw (degrees); bInstant skips the turn. | |
Get Activity Behavior (GetActivityBehavior) | pure | RPG Saga|NPC | URSENPCActivityBehavior* | The scripted activity running now (null = none). | |
Get Activity Location (GetActivityLocation) | pure | RPG Saga|NPC | OutLocation: FVector (out)OutRotation: FRotator (out) | bool | Where its current activity happens. |
Get Battle Response (GetBattleResponse) | pure | RPG Saga|NPC | ERSENPCBattleResponse | The response it chose for the running battle (Ignore when it does not react). | |
Get Behavior State (GetBehaviorState) | pure | RPG Saga|NPC | ERSENPCBehaviorState | Get Behavior State | |
Get Chat Partner (GetChatPartner) | pure | RPG Saga|NPC | URSENPCBehaviorComponent* | Get Chat Partner | |
Get Crime Phase (GetCrimePhase) | pure | RPG Saga|NPC | ERSENPCCrimePhase | The phase of its crime response (None when it answers nothing). | |
Get Current Activity (GetCurrentActivity) | pure | RPG Saga|NPC | FRSENPCActivity | What it does now (its schedule's activity; it may still be walking there). | |
Get NPCId (GetNPCId) | pure | RPG Saga|NPC | FName | The id the story knows it by. | |
Get Place Location (GetPlaceLocation) | pure | RPG Saga|NPC | PlaceId: FNameOutLocation: FVector (out)OutRotation: FRotator (out) | bool | Where a place is (an NPC Place actor with this id, or any actor tagged with it). Returns false when the level has none. |
Is Available (IsAvailable) | pure | RPG Saga|NPC | bool | It is in the level and may be talked to (not away, its activity is interactable). | |
Is in Idle Action (IsInIdleAction) | pure | RPG Saga|NPC | bool | It does an idle action of its idle life now (a gesture, a stroll, a seat on a bench). | |
Is Reacting (IsReacting) | pure | RPG Saga|NPC | bool | It reacts to a battle now (fleeing, watching, cowering, helping) or waits to. | |
Is Walking (IsWalking) | pure | RPG Saga|NPC | bool | It is walking now. | |
Notify Danger (NotifyDanger) | function | RPG Saga|NPC | Location: FVectorRadius: float = 0.000000 | A battle began at Location, Radius wide (the area it needs): the NPC decides by its reaction (distance, response) and reacts after its delay. The NPC world subsystem calls it for every NPC when an encounter starts on the live map (and when an NPC wakes during one); levels and Blueprints may call it for their own dangers. Authority only. | |
On Activity Changed (OnActivityChanged) | event | RPG Saga|NPC | Component: URSENPCBehaviorComponent*Activity: FGameplayTag | The activity changed (the hour, the weather, the story); it may still be walking there. | |
On Chat (OnChat) | event | RPG Saga|NPC | Component: URSENPCBehaviorComponent*Partner: URSENPCBehaviorComponent*bStarted: bool | It started or ended a talk with another NPC. | |
On Crime Response (OnCrimeResponse) | event | RPG Saga|NPC | Component: URSENPCBehaviorComponent*Crime: FGameplayTagPhase: ERSENPCCrimePhase | A guard's answer to a crime changed phase (warning, chasing, caught, over). | |
On Idle Custom (OnIdleCustom) | event | RPG Saga|NPC | Component: URSENPCBehaviorComponent*CustomTag: FGameplayTag | An idle behaviour of kind Custom was chosen: play it (Blueprint). | |
On Reaction (OnReaction) | event | RPG Saga|NPC | Component: URSENPCBehaviorComponent*Response: ERSENPCBattleResponsebStarted: bool | It began reacting to a battle (Started), or went back to its day. | |
Play Activity Anim (PlayActivityAnim) | function | RPG Saga|NPC | AnimActivity: FGameplayTag (ref) | Plays the animation of an activity tag (Project Settings -> Living NPCs -> Activity Animations / Idle Slots) while it stands. | |
Refresh Schedule (RefreshSchedule) | function | RPG Saga|NPC | bSnap: bool = false | Looks at the schedule again (the clock or the story changed). bSnap: appear at the new place at once (skips, loads). | |
Report Crime (ReportCrime) | function | RPG Saga|NPC | Crime: FRSENPCCrime (ref) | bool | A crime happened: a guard (its reaction has Crime rules) that sees or hears it answers: warns, chases, runs the rule's effects. Returns true when it noticed the crime and answers. Authority only. |
Stop Activity Anim (StopActivityAnim) | function | RPG Saga|NPC | Stop Activity Anim | ||
Try Start Chat (TryStartChat) | function | RPG Saga|NPC | SearchRadius: float = 450.000000Seconds: float = 12.000000 | bool | Starts a talk with the nearest free living NPC within SearchRadius: they face each other and trade lines (Bark.Kind.Chat) for Seconds. Returns true when a partner was found. |
Wander Step (WanderStep) | function | RPG Saga|NPC | Walks to a new random point around its place (a wander step), whatever its Movement is. |
URSENPCSubsystem
Module RSECore. The living NPCs' story state (D-104, docs/design/exploration.md "NPC-uri vii"): headless, saved (section "NPCs").
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear NPCOverride (ClearNPCOverride) | function | RPG Saga|NPC | NPCId: FName | The NPC follows its own schedule again. | |
Get NPCActivity (GetNPCActivity) | pure | RPG Saga|NPC | NPCId: FName | FGameplayTag | The activity tag of an NPC now (from its schedule and override; empty when unknown). |
Get NPCOverride (GetNPCOverride) | pure | RPG Saga|NPC | NPCId: FNameOutOverride: FRSENPCOverride (out) | bool | The NPC's override (false = none). |
Is NPCAt Activity (IsNPCAtActivity) | pure | RPG Saga|NPC | NPCId: FNameActivities: FGameplayTagContainer | bool | The NPC does one of Activities now (empty = it is present at all, not away). By schedule, not by where the actor walks. |
On NPCOverride Changed (OnNPCOverrideChanged) | event | RPG Saga|NPC | NPCId: FName | An NPC's override changed (set, cleared, loaded: NPCId None = all). | |
Set NPCOverride (SetNPCOverride) | function | RPG Saga|NPC | NPCId: FNameOverride: FRSENPCOverride (ref) | Changes an NPC's day (story): another schedule, or a forced activity. Saved. |
URSENPCTalkComponent
Module RSE, display name RSE NPC Talk. Talking NPC behavior for any actor (D-165, docs/product/components.md): add it next to an RSE Interactable component (with a Dialog, an Interaction, or nothing at all) on your own character or actor.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Last Line (GetLastLine) | pure | RPG Saga|NPC | FText | The last line it said. | |
Has Lines (HasLines) | pure | RPG Saga|NPC | bool | It has lines to say. | |
On Line Said (OnLineSaid) | event | RPG Saga|NPC | Talker: URSENPCTalkComponent*Line: FText (ref) | A line was said (Blueprint and level scripting hook). | |
Request Automatic Line (RequestAutomaticLine) | function | RPG Saga|NPC | Kind: FGameplayTag | Asks the bark director (budget, cooldown, silence under dialogs and screens) to let it say an automatic line. | |
Say Line (SayLine) | function | RPG Saga|NPC | Kind: FGameplayTag | bool | Says a line of Kind from its pools. Returns false when it has nothing to say now. |
Try Bark (TryBark) | function | RPG Saga|NPC | bool | Starts the proximity greeting now (bark dialog, else a line), within its cooldown. Returns true when one was asked for. |
URSENPCWorldSubsystem
Module RSE. The living NPCs of a level (D-104): one place that listens to the clock, the weather and the story overrides and tells every NPC to look at its schedule again (hour, phase, weather: walk there; time skip, load: appear there), and one batch timer that puts NPCs far from the player (or long off screen...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Raised Danger (ClearRaisedDanger) | function | RPG Saga|NPC | The danger raised by RaiseDanger is over: the NPCs go back to their day. | ||
Raise Danger (RaiseDanger) | function | RPG Saga|NPC | Location: FVectorRadius: float = 0.000000 | A danger at Location (a brawl, a monster in the street, a scripted scare): every NPC within its reaction's Trigger Distance reacts (flee, watch, cower, help). The running battle on the live map raises one by itself. Authority only. | |
Refresh All (RefreshAll) | function | RPG Saga|NPC | bSnap: bool | Every living NPC of the level looks at its schedule again. | |
Report Crime (ReportCrime) | function | RPG Saga|NPC | Crime: FRSENPCCrime (ref) | int32 | A crime happened: the guards (NPCs whose reaction has Crime rules) that see or hear it answer. During a battle on the map the crime waits for its end (the guards come after the fight). The theft of a pickpocket, an attack on an NPC and the Report Crime effect arrive here by themselves; levels and Blueprints may report their own. Returns how many guards noticed it now. |
URSENarrativeSubsystem
Module RSECore. Owns the global narrative state for the game session (survives level changes) and the narrative events the presentation listens to.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Run Interaction (CanRunInteraction) | pure | RPG Saga|Narrative | Interaction: URSEInteractionData* | bool | Whether an Interaction asset would run now (conditions, one-shot state). |
Get Flag (GetFlag) | pure | RPG Saga|Narrative | Flag: FGameplayTag | bool | Read access for light level scripting (the Narrative library also writes: Set Flag, Set Variable...). |
Get Narrative State (GetStateBP) | pure | RPG Saga|Narrative | FRSENarrativeState | The whole story state (flags, variables, puzzles, areas, events, discovered places), read-only. | |
Get Variable (GetVariable) | pure | RPG Saga|Narrative | Variable: FGameplayTag | int32 | A story variable (0 when never set). |
Is Area Unlocked (IsAreaUnlocked) | pure | RPG Saga|Narrative | Area: FGameplayTag | bool | Whether a story area is unlocked. |
Is Event Seen (IsEventSeen) | pure | RPG Saga|Narrative | Event: FGameplayTag | bool | Whether a scene or event was seen. |
Is Puzzle Solved (IsPuzzleSolved) | pure | RPG Saga|Narrative | Puzzle: FGameplayTag | bool | Whether a puzzle is solved. |
On Battle Requested (OnBattleRequested) | event | RPG Saga|Narrative | Encounter: TSoftObjectPtr<URSEEncounterData> (ref) | A Start Battle effect asked for a battle. | |
On Dialog Requested (OnDialogRequested) | event | RPG Saga|Narrative | Asset: TSoftObjectPtr<UObject> (ref) | A Start Dialog effect asked for a dialog. | |
On Narrative Changed (OnNarrativeChanged) | event | RPG Saga|Narrative | Key: FGameplayTag | A flag, variable, puzzle, area or event changed value (Key is its tag). | |
On Party Changed (OnPartyChanged) | event | RPG Saga|Narrative | Members, equipment, inventory, money or vitals were changed by an effect. | ||
On Rest Requested (OnRestRequested) | event | RPG Saga|Narrative | The party rested at an inn (the state is already restored). | ||
On Scene Requested (OnSceneRequested) | event | RPG Saga|Narrative | Scene: TSoftObjectPtr<UObject> (ref)Event: FGameplayTag | A Play Scene effect asked for a scene. | |
On Screen Requested (OnScreenRequested) | event | RPG Saga|Narrative | Asset: TSoftObjectPtr<UObject> (ref) | An effect asked for the screen of a data asset (shop, code lock, card opponent, tutorial). | |
On World Requested (OnWorldRequested) | event | RPG Saga|Narrative | Request: FRSEWorldRequest (ref) | A battle with context (opening, scene combatants) or an alarm (D-109: Start Battle with an opening, Alert Enemies). | |
Run Interaction (RunInteraction) | function | RPG Saga|Narrative | Interaction: URSEInteractionData* | ERSEInteractionResult | Runs an interaction against this game instance's state. Null = ConditionsFailed. |
URSENavSnapshotCapture
Module RSE. Reads a battle area of the world into a navigation snapshot for Free Tactics (D-091, docs/design/free-tactics.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Battle to World (BattleToWorld) | pure, static | RPG Saga|Free Tactics | Snapshot: FRSENavSnapshot (ref)BattlePoint: FVector (ref) | FVector | World position (centimeters) of a battle space point of Snapshot. |
Capture Area (CaptureArea) | function, static | RPG Saga|Free Tactics | WorldContextObject: UObject*AreaTransform: FTransform (ref)SizeMeters: FVector2DIgnoredActors: TArray<AActor*> (ref) | FRSENavSnapshot | Captures the area whose corner is at AreaTransform's origin (its yaw orients it) and whose size is SizeMeters (X, Y), with cells of Free Tactics -> Snapshot Cell Size. Battle space = meters from that corner; the snapshot's WorldTransform maps back. IgnoredActors (the battle's units, for example) are not captured. |
World to Battle (WorldToBattle) | pure, static | RPG Saga|Free Tactics | Snapshot: FRSENavSnapshot (ref)WorldPoint: FVector (ref) | FVector | Battle space point (meters) of a world position of Snapshot's area. |
URSENetPlayerComponent
Module RSENet. One player of a co-op session (D-124 §3.7, D-140), on the player's APlayerState: its session slot (FRSEPlayerId, 0 = the host), the party member it plays and its admission (play, or watch until the battle ends).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Admission (GetAdmission) | pure | RPG Saga|Co-op | ERSEJoinAdmission | Get Admission | |
Get Character (GetCharacter) | pure | RPG Saga|Co-op | FPrimaryAssetId | The party member the player plays (the lobby's choice, then what the host gave). | |
Get Player Id (GetPlayerId) | pure | RPG Saga|Co-op | FRSEPlayerId | The player's session slot (None until the host set it). |
URSENetSubsystem
Module RSENet. The co-op layer of one game instance (D-140, docs/design/networking.md §3, docs/product/coop.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Net Role (GetNetRole) | pure | RPG Saga|Co-op | ERSEAuthorityMode | Standalone, Authority (host) or Proxy (guest), as set on the RSECore authority subsystem. | |
Get Stats (GetStats) | pure | RPG Saga|Co-op | FRSENetTrafficStats | What the co-op layer sent and received since the session started. | |
Has Initial State (HasInitialState) | pure | RPG Saga|Co-op | bool | Guest: the first complete state from the host has been applied. Host and single player: always true. | |
Is Coop Active (IsCoopActive) | pure | RPG Saga|Co-op | bool | A co-op session runs on this machine (host or guest). | |
On Peer Command Result (OnPeerCommandResult) | event | RPG Saga|Co-op | Result: FRSECommandResult (ref) | Another player's command result (Broadcast Result Types), on every machine. |
URSENightLightComponent
Module RSE, display name Night Light. Turns the lights of its actor on at dusk and off at dawn (D-101): lamps, torches, windows.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Forced (ClearForced) | function | RPG Saga|Time | Clear Forced | ||
Force State (ForceState) | function | RPG Saga|Time | bOn: bool | Forces the light on or off for the story (clears with ClearForced). | |
Get Level (GetLevel) | pure | RPG Saga|Time | float | On now (after fade), as last computed. |
URSEOptionsViewModel
Module RSE. The options screen (D-038): tabs Game / Audio / Display / Controls.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Activate (Activate) | function | RPG Saga|UI|Options | Runs the selected row: an action, or the next value of a choice; Keep / Revert during the video question. | ||
Change Row Value (ChangeRowValue) | function | RPG Saga|UI|Options | Index: int32Direction: int32 | Changes a row's value by Direction (arrows next to a row). | |
Change Value (ChangeValue) | function | RPG Saga|UI|Options | Direction: int32 | Changes the selected row's value by Direction (-1 / +1). | |
Confirm Video (ConfirmVideo) | function | RPG Saga|UI|Options | bKeep: bool | Answers the video question. | |
Leave (Leave) | function | RPG Saga|UI|Options | Leaves the screen (display choices not applied are dropped). | ||
Move Selection (MoveSelection) | function | RPG Saga|UI|Options | Direction: int32 | Move Selection | |
Select (Select) | function | RPG Saga|UI|Options | Index: int32 | Puts the cursor on a row (mouse hover); the video question's options when it is open. | |
Set Choice (SetChoice) | function | RPG Saga|UI|Options | Index: int32Choice: int32 | Sets a choice row directly. | |
Set Page (SetPage) | function | RPG Saga|UI|Options | NewPage: ERSEOptionsPage | Set Page | |
Set Slider Value (SetSliderValue) | function | RPG Saga|UI|Options | Index: int32Value: floatbFinal: bool = true | Sets a slider row's value (snapped to its step). bFinal: the drag ended (sound, full refresh). | |
Switch Page (SwitchPage) | function | RPG Saga|UI|Options | Direction: int32 | Switch Page |
URSEPairedAnimationLibrary
Module RSE. The pairs a project can pick from (D-172): finishers, counters, parries, grabs and phase moments, chosen by their conditions and weights.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Select Pair (SelectPair) | pure | RPG Saga|Paired Animations | Context: FRSEPairedContext (ref)Roll: float | URSEPairedAnimationData* | A pair that fits Context, weighted; Roll in [0, 1) picks it (deterministic for a given roll). Null when none fits. |
URSEPairedAnimationLibraryFunctions
Module RSE. Paired animation nodes (D-172).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Compute Pair Alignment (ComputePairAlignment) | pure, static | RPG Saga|Paired Animations | Attacker: FTransform (ref)Victim: FTransform (ref)Relative: FRSEPairedRelativeTransform (ref)Mode: ERSEPairedAlignMode | FRSEPairedAlignment | Alignment of a pair for two transforms (where both stand when the montages start). |
Find Pair (FindPair) | function, static | RPG Saga|Paired Animations | Context: FRSEPairedContext (ref)Roll: float = 0.000000 | URSEPairedAnimationData* | Finds a pair for Context in the project's libraries (Project Settings -> Paired Animations), weighted by Roll (0..1). Null when none fits. |
Get Finisher Frequency (GetFinisherFrequency) | pure, static | RPG Saga|Paired Animations | ERSEFinisherFrequency | The player's finisher setting (Options -> Finishers): Off, Sometimes or Always. | |
Play Paired Animation (PlayPairedAnimation) | function, static | RPG Saga|Paired Animations | WorldContext: UObject*Pair: URSEPairedAnimationData*Attacker: AActor*Victim: AActor*bLocalCamera: boolbVictimFalls: boolOnFinished: FRSEOnPairedFinished | bool | Plays a pair on two actors now (action battles, cutscene moments, boss phase hooks). Call it on the machine that should see it: the killer's, in co-op. bLocalCamera: the cinematic camera and slow motion for this machine's player. On Finished fires when both montages end (at once when nothing could play). |
Set Finisher Frequency (SetFinisherFrequency) | function, static | RPG Saga|Paired Animations | Frequency: ERSEFinisherFrequency | Sets the player's finisher setting (saved in GameUserSettings). | |
Try Play Finisher (TryPlayFinisher) | function, static | RPG Saga|Paired Animations | WorldContext: UObject*Attacker: AActor*Victim: AActor*Context: FRSEPairedContext (ref)Roll: floatOnFinished: FRSEOnPairedFinished | bool | A finisher for an action battle kill (or stagger): checks Options -> Finishers and the chance, finds a pair and plays it locally. Call it only for the kills of this machine's player. Returns true when a finisher plays. |
URSEPaperdollPreview
Module RSE. The picture in the middle of the inventory paperdoll (D-126): the selected party member, live, wearing its equipment.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin (Begin) | override | RPG Saga|UI|Inventory | Player: APlayerController* | The screen opened for Player (the world the preview may live in). | |
End (End) | override | RPG Saga|UI|Inventory | The screen closed: release everything. | ||
Get Picture (GetPicture) | override | RPG Saga|UI|Inventory | UTexture* | The picture to draw now, or null while there is none (loading, no look): the board falls back to the portrait. | |
Get Yaw (GetYaw) | pure | RPG Saga|UI|Inventory | float | Get Yaw | |
Get Zoom (GetZoom) | pure | RPG Saga|UI|Inventory | float | Get Zoom | |
Notify Shown (NotifyShown) | override | RPG Saga|UI|Inventory | PixelSize: FVector2D | The picture is on screen this frame, drawn at PixelSize (providers capture only while shown). | |
Project Body Part (ProjectBodyPart) | override | RPG Saga|UI|Inventory | BodyPart: FGameplayTagOutUV: FVector2D (out) | bool | Where a body part (Inventory UI -> Body Anchors, its bones) is in the picture now, 0..1; false = unknown (the anchor's fixed point is used). |
Set Yaw (SetYaw) | override | RPG Saga|UI|Inventory | InYaw: float | Turns the character (degrees around its vertical axis, 0 = the framing's view). | |
Set Zoom (SetZoom) | override | RPG Saga|UI|Inventory | InZoom: float | Zoom (1 = the whole figure; clamped to Inventory UI -> Preview Zoom Range). | |
Show Character (ShowCharacter) | override | RPG Saga|UI|Inventory | Character: URSECharacterData*Equipment: FRSECharacterEquipment (ref) | Shows Character wearing Equipment (called after every change; same values = nothing to do). Null = none. |
URSEPartyCommandMenuViewModel
Module RSE. The radial menu's data and actions (D-097, D-052): Widget Blueprints may replace the built-in radial widget.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Choose (Choose) | function | RPG Saga|Party Field | Index: int32 | Carries out an entry (a click, Confirm). |
URSEPartyControlSubsystem
Module RSECore. Owner of who controls each party member in the field (D-097, D-124 §3.7, D-133): the host, a guest, or the companion AI.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Control State (GetControlState) | pure | RPG Saga|Party|Control | FRSEPartyControlState | Who controls each member. | |
Get Controlling Player (GetControllingPlayer) | pure | RPG Saga|Party|Control | Member: FPrimaryAssetId | FRSEPlayerId | The player who controls Member; None for the companion AI. |
Get Leader (GetLeader) | pure | RPG Saga|Party|Control | Player: FRSEPlayerId | FPrimaryAssetId | The member Player leads; invalid when none. |
On Party Control Changed (BP_OnControlChanged) | event | RPG Saga|Party|Control | The control changed (a command applied, a sync, a load). |
URSEPartyFieldSubsystem
Module RSE. The visible party in exploration (D-097, docs/design/coop-pvp.md section 2): spawns the party members behind the leader (Project Settings -> Party Field), keeps who controls whom (FRSEPartyControlState: the local player leads, the others have a companion AI), switches the leader, and performs delega...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cycle Leader (CycleLeader) | function | RPG Saga|Party Field | Step: int32 = 1 | bool | Makes the next (Step 1) or previous (-1) member the leader: the local player takes its pawn. |
Force Idle Now (ForceIdleNow) | function | RPG Saga|Party Field | D-129 (dev, tests): every follower starts its idle life at its next think. | ||
Get Leader Pawn (GetLeaderPawn) | pure | RPG Saga|Party Field | ARSEExplorationCharacter* | The pawn the local player controls. | |
Is Command Menu Open (IsCommandMenuOpen) | pure | RPG Saga|Party Field | bool | Is Command Menu Open | |
On Follower Idle (OnFollowerIdle) | event | RPG Saga|Party Field | Member: ARSEExplorationCharacter*Intent: FRSEIdleIntent (ref) | A resting member started an idle action (Custom behaviours: the game carries them out). | |
Refresh Followers (RefreshFollowers) | function | RPG Saga|Party Field | Spawns or removes the followers to match the party (Party Field settings, the formation). Call after the party changed. | ||
Set Leader (SetLeader) | function | RPG Saga|Party Field | Member: URSECharacterData* | bool | Makes Member's pawn the leader. |
Toggle Command Menu (ToggleCommandMenu) | function | RPG Saga|Party Field | Opens or closes the radial menu. |
URSEPartyMenuViewModel
Module RSE. The party menu (D-024 / D-025, D-039, D-013, D-027 / D-029, D-047, D-038): data of every page and every action that changes the game (use items and abilities, equip, formation, Pacts, quests, key items, help, options, world map).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Abandon Quest (AbandonQuest) | function | RPG Saga|UI|PartyMenu | Quest: URSEQuestData*bConfirmed: bool | bool | Abandons a side quest (bConfirmed false = only asks, when the settings want a confirmation). Returns true when abandoned. |
Can Cast Ability (CanCastAbility) | function | RPG Saga|UI|PartyMenu | Caster: URSECharacterData*Ability: URSEAbilityData* | bool | Can Cast Ability |
Can Change Equipment (CanChangeEquipment) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | bool | Member's equipment can be changed (guests' cannot). |
Can Fight Classic Battles Here (CanFightClassicBattlesHere) | pure | RPG Saga|UI|PartyMenu | bool | Classic (ATB / turn-based) battles can start in this level (it has an ATB battle director). | |
Can Open (CanOpen) | pure | RPG Saga|UI|PartyMenu | bool | The menu may open now (not blocked by a battle). | |
Can Show Quest on Map (CanShowQuestOnMap) | pure | RPG Saga|UI|PartyMenu | Quest: URSEQuestData* | bool | Quest has an objective the area map of this level can show. |
Can Target Whole Party (CanTargetWholeParty) | pure, static | RPG Saga|UI|PartyMenu | Ability: URSEAbilityData* | bool | Ability (for items: the item's use ability) can also target the whole party at once (Target null in UseItem / CastAbility). |
Can Use Item (CanUseItem) | function | RPG Saga|UI|PartyMenu | Item: URSEConsumableData* | bool | Whether Item can be used from the menu now (message when not). Save items open the save screen. |
Cast Ability (CastAbility) | function | RPG Saga|UI|PartyMenu | Caster: URSECharacterData*Ability: URSEAbilityData*Target: URSECharacterData* | bool | Casts Ability from Caster on Target (null = the whole party when allowed). Returns true when cast. |
Cast Ability on World (CastAbilityOnWorld) | function | RPG Saga|UI|PartyMenu | Caster: URSECharacterData*Ability: URSEAbilityData* | bool | D-157: casts Ability from Caster on the surroundings (the Cast On World command). Returns true when it was sent. |
Close Menu (CloseMenu) | function | RPG Saga|UI|PartyMenu | Closes the menu (the options screen too). | ||
Combine Items (CombineItems) | function | RPG Saga|UI|PartyMenu | First: URSEItemData*Second: URSEItemData* | URSEItemData* | Tries a combination of two key items (D-039). Returns the new item, or null. |
Equip (Equip) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData*SlotId: FNameItem: URSEEquipmentData* | bool | Equip |
Get Abilities (GetAbilities) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | TArray<FRSEPartyAbilityView> | Get Abilities |
Get Battle Access (GetBattleAccess) | pure | RPG Saga|UI|PartyMenu | ERSEPartyMenuBattleAccess | What this player's menu may do now (D-128): outside battles Allowed; in a battle UI -> Party Menu In Battle. Per menu (each local player owns one), so co-op screens decide for themselves. | |
Get Equip Candidates (GetEquipCandidates) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData*SlotId: FName | TArray<FRSEItemView> | Inventory items that fit SlotId for Member. |
Get Equip Preview (GetEquipPreview) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData*SlotId: FNameItem: URSEEquipmentData* | TArray<FRSEStatChangeView> | Member's menu stats now and with Item in SlotId (Item null = the slot emptied; OutCanEquip false when it does not fit). |
Get Equipment (GetEquipment) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | TArray<FRSEEquipSlotView> | Get Equipment |
Get Formation Page Kind (GetFormationPageKind) | pure | RPG Saga|UI|PartyMenu | ERSEFormationPageKind | What the Formation tab is now (UI -> Formation Page; Auto: classic battles where the player is). | |
Get Items Of Kind (GetItemsOfKind) | pure | RPG Saga|UI|PartyMenu | Kind: ERSEItemKind | TArray<FRSEItemView> | Items of one kind (Items page tabs). |
Get Map Page (GetMapPage) | pure | RPG Saga|UI|PartyMenu | URSEAreaMapViewModel* | The area map shown by the Map tab (made by the level's map subsystem; null without a map). | |
Get Member Status (GetMemberStatus) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | FRSEMemberStatusView | One member as the Status page shows it. |
Get Page Label (GetPageLabel) | pure, static | RPG Saga|UI|PartyMenu | Page: ERSEPartyMenuPage | FText | D-148: the page's tab label. |
Get Party Order (GetPartyOrder) | pure | RPG Saga|UI|PartyMenu | TArray<FRSEPartyOrderView> | The Party page's rows: leader, followers in order with their places, those out of the formation. | |
Get Quest Map Preview (GetQuestMapPreview) | pure | RPG Saga|UI|PartyMenu | Quest: URSEQuestData*OutMap: UTexture2D* (out)OutObjectiveUV: FVector2D (out)OutPlayerUV: FVector2D (out)bOutHasPlayer: bool (out) | bool | The mini-map of a quest's current objective: this level's map picture, the objective's map coordinates and the player's. Returns false when the level's map cannot show the quest. |
Get Row Effects (GetRowEffects) | pure, static | RPG Saga|UI|PartyMenu | FRSERowEffectsView | What the front and back rows do to melee damage (the battle rules of the game's profile). | |
Get Selected Member (GetSelectedMember) | pure | RPG Saga|UI|PartyMenu | URSECharacterData* | The selected member (the first when none was chosen). | |
Get Selected Member Index (GetSelectedMemberIndex) | pure | RPG Saga|UI|PartyMenu | int32 | The selected member's row in Members (the first when none was chosen; INDEX_NONE without members). | |
Get Start Page (GetStartPage) | pure | RPG Saga|UI|PartyMenu | ERSEPartyMenuPage | D-148: the page Tab / Esc open on (UI -> Party Menu Start Page, else the first tab shown). | |
Get Stats (GetStats) | pure | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | TArray<FRSEStatChangeView> | Member's menu stats now (Current = After). |
Get Tab Label (GetTabLabel) | pure | RPG Saga|UI|PartyMenu | Page: ERSEPartyMenuPage | FText | D-155: a tab's label as shown now (the Formation tab is "Party" in live-only games). |
Get Tab Order (GetTabOrder) | pure | RPG Saga|UI|PartyMenu | TArray<ERSEPartyMenuPage> | D-148: the tabs shown now, in order. | |
Get Targets (GetTargets) | pure | RPG Saga|UI|PartyMenu | Caster: URSECharacterData*Ability: URSEAbilityData* | TArray<FRSEMemberView> | Members an item or ability can be used on now (Caster null for items). |
Handle Page Key (HandlePageKey) | function | RPG Saga|UI|PartyMenu | Page: ERSEPartyMenuPage | ERSEPartyMenuKeyResult | D-148: a page key was pressed (I, J, M, K..., UI -> Party Menu Page Actions): opens the menu on Page, moves to it, or closes the menu when it is already there (Game Flow -> Screen Keys Toggle). |
Is in Battle (IsInBattle) | pure | RPG Saga|UI|PartyMenu | bool | This player's party is in a battle now (Free Tactics, Tactics or ATB; D-128). | |
Is Page Available (IsPageAvailable) | pure | RPG Saga|UI|PartyMenu | Page: ERSEPartyMenuPage | bool | D-148: the page can be shown now: in the tab order (UI -> Party Menu Tab Order), Growth with a progression system beyond Classic, Map when the level has a map, Equipment unless the grid inventory holds it. |
Is Read Only (IsReadOnly) | pure | RPG Saga|UI|PartyMenu | bool | Look only: every change is refused (UI -> Party Menu In Battle = View Only during a battle). | |
Is Sub Screen Open (IsSubScreenOpen) | pure | RPG Saga|UI|PartyMenu | bool | The options screen or a tutorial is open over the menu (the menu waits). | |
Learn Pact Ability (LearnPactAbility) | function | RPG Saga|UI|PartyMenu | Pact: URSEPactData*Ability: URSEAbilityData* | bool | Learn Pact Ability |
Make Leader (MakeLeader) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | bool | Makes Member the leader (the explorer the player controls; co-op: asks the host). |
Move in Formation (MoveInFormation) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData*Offset: int32 | bool | Moves Member Offset places in the formation's order (negative = earlier): battle party and follower order. |
Open (Open) | function | RPG Saga|UI|PartyMenu | Opens the menu (remembers the object the player stands at, for "Use on ..."). During a battle only when UI -> Party Menu In Battle allows it (D-128; blocked: Message says why and the menu stays closed). | ||
Open Growth For (OpenGrowthFor) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | bool | Moves to the Growth page with Member selected (the Status page's growth button). |
Open Journal (OpenJournal) | function | RPG Saga|UI|PartyMenu | Quest: URSEQuestData* | Opens the menu on the journal with Quest selected (the area map's objectives, D-092). | |
Open on Page (OpenOnPage) | function | RPG Saga|UI|PartyMenu | Page: ERSEPartyMenuPage | bool | D-148: opens the menu on Page, or moves the open menu to it. Returns false when the menu cannot open or the page is not offered. |
Open Options (OpenOptions) | function | RPG Saga|UI|PartyMenu | bool | Opens the options screen over the menu. | |
Open World Map (OpenWorldMap) | function | RPG Saga|UI|PartyMenu | bool | Opens the world map (needs the map item when the settings set one). | |
Read Tutorial (ReadTutorial) | function | RPG Saga|UI|PartyMenu | Tutorial: URSETutorialData* | bool | Reads a seen tutorial again (over the menu). |
Refresh (Refresh) | function | RPG Saga|UI|PartyMenu | Rebuilds every list from the game. | ||
Run Menu Extension (RunMenuExtension) | function | RPG Saga|UI|PartyMenu | Id: FName | bool | Runs the menu extension row Id of the Options page (D-142: Host Game, Invite, a project's own entries). Returns false when there is no such enabled entry. |
Select Member (SelectMember) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | Selects Member on every page with a member list (null = the first member). | |
Set Message (SetMessage) | function | RPG Saga|UI|PartyMenu | InMessage: FText (ref) | Set Message | |
Set Page (SetPage) | function | RPG Saga|UI|PartyMenu | NewPage: ERSEPartyMenuPage | Set Page | |
Should Cast on World (ShouldCastOnWorld) | pure | RPG Saga|UI|PartyMenu | Caster: URSECharacterData*Ability: URSEAbilityData* | bool | D-157: choosing Ability casts it on the surroundings instead of a member: it is usable on the world and either has no party use or something around the leader reacts to it (a torch to light, fog to clear). |
Show Blocked Notice (ShowBlockedNotice) | function | RPG Saga|UI|PartyMenu | Tells this player the menu cannot open now (D-128: a toast on their reward feed, and Message). | ||
Show Quest on Map (ShowQuestOnMap) | function | RPG Saga|UI|PartyMenu | Quest: URSEQuestData* | bool | Closes the menu and opens the area map on Quest's objective (journal "Show on map", D-092). |
Toggle Battle Party (ToggleBattleParty) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | bool | Moves Member into / out of the ATB party. |
Toggle Pact Binding (TogglePactBinding) | function | RPG Saga|UI|PartyMenu | Pact: URSEPactData*Member: URSECharacterData* | bool | Binds Pact to Member, or unbinds it when Member holds it already. |
Toggle Row (ToggleRow) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData* | bool | Front row <-> back row. |
Track Quest (TrackQuest) | function | RPG Saga|UI|PartyMenu | Quest: URSEQuestData* | bool | Tracks Quest (null = stop tracking). |
Unequip (Unequip) | function | RPG Saga|UI|PartyMenu | Member: URSECharacterData*SlotId: FName | bool | Unequip |
Use Item (UseItem) | function | RPG Saga|UI|PartyMenu | Item: URSEConsumableData*Target: URSECharacterData*FromBag: URSECharacterData* = None | bool | Uses a consumable on Target (null = the whole party when the item allows it). Returns true when used. |
Use Key Item on Target (UseKeyItemOnTarget) | function | RPG Saga|UI|PartyMenu | Item: URSEItemData* | bool | Uses a key item on the object the player stands at (the menu closes; the object answers). |
Use Save Item (UseSaveItem) | function | RPG Saga|UI|PartyMenu | Item: URSEConsumableData* | bool | Uses a save-anywhere item (D-010): opens the save screen. Returns true when the screen opened. |
Use Status Action (UseStatusAction) | function | RPG Saga|UI|PartyMenu | Action: FRSEStatusActionView (ref)Target: URSECharacterData* | bool | Uses a Status page action on Target (an ability through its caster, an item from the party). Returns true when sent. |
Zoom Map (ZoomMap) | function | RPG Saga|UI|PartyMenu | Steps: float | bool | Zooms the Map tab's map by Steps (the camera zoom input: wheel, triggers). Returns true when the Map tab is shown. |
URSEPartySubsystem
Module RSECore. Owns the player's party state for the whole game session (survives level changes).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Attribute Registry (GetAttributeRegistry) | pure | RPG Saga|Party|Attributes | URSEAttributeRegistry* | Attribute and resource definitions of the game's rules profile. | |
Get Member Attribute (GetMemberAttribute) | pure | RPG Saga|Party|Attributes | Character: URSECharacterData*Attribute: FGameplayTag | float | Final attribute of Character at its current level with its current equipment (derived attributes included). |
Get Member Resource (GetMemberResource) | pure | RPG Saga|Party|Attributes | Character: URSECharacterData*Resource: FGameplayTag | float | Current value of a persistent resource (HP, MP, custom ones marked Persists After Battle). |
Get Member Resource Max (GetMemberResourceMax) | pure | RPG Saga|Party|Attributes | Character: URSECharacterData*Resource: FGameplayTag | float | Maximum of a member's resource at its level with its equipment. |
Modify Member Resource (ModifyMemberResource) | function | RPG Saga|Party|Attributes | Character: URSECharacterData*Resource: FGameplayTagDelta: float | Adds Delta to a resource (see SetMemberResource). | |
On Ability Learned (OnAbilityLearned) | event | RPG Saga|Party | Character: URSECharacterData*Ability: URSEAbilityData*bLearned: bool | A character of this party learned or forgot an ability for good (Learn Ability / Forget Ability, scrolls; D-082). | |
On Member Resource Changed (OnMemberResourceChanged) | event | RPG Saga|Party|Attributes | Character: URSECharacterData*Resource: FGameplayTagOldValue: floatNewValue: float | A member's resource changed through SetMemberResource / ModifyMemberResource (battles report theirs on URSEBattle::OnResourceChanged). | |
Set Member Resource (SetMemberResource) | function | RPG Saga|Party|Attributes | Character: URSECharacterData*Resource: FGameplayTagValue: float | Sets a resource (clamped to [0, max]); HP 0 marks the member KO, HP above 0 clears KO. Fires OnMemberResourceChanged. Sends the Set Member Resource command (D-137; host only). |
URSEPassiveModifier
Module RSECore, display name Passive Modifier. A conditional passive bonus (D-055): while every condition holds (the AI condition classes, e.g.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Active For (IsActiveFor) | override | RPG Saga|Abilities|Passives | Battle: URSEBattle*UnitId: int32 | bool | Custom rule on top of the conditions (Blueprint subclasses). Default: true. |
URSEPlatformUserSubsystem
Module RSECore. The platform user layer (D-170, docs/product/platforms.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Connected Input Devices (GetConnectedInputDevices) | pure | RPG Saga|Platform | User: FPlatformUserIdOutDevices: TArray<FInputDeviceId> (out) | Input devices of User that are connected now (the platform's mapping). | |
Get Primary User (GetPrimaryUser) | pure | RPG Saga|Platform | FPlatformUserId | The user that plays (and owns the saves). | |
Get Primary User Index (GetPrimaryUserIndex) | pure | RPG Saga|Platform | int32 | The primary user's local user index (index-based platform APIs). | |
Has Selected Primary User (HasSelectedPrimaryUser) | pure | RPG Saga|Platform | bool | The primary user was picked by a "press start" (false until then, and again after Reset Primary User Selection). | |
Is App Suspended (IsAppSuspended) | pure | RPG Saga|Platform | bool | The app is suspended (between Report App Suspended and Report App Resumed). | |
Is Primary User Signed In (IsPrimaryUserSignedIn) | pure | RPG Saga|Platform | bool | Is Primary User Signed In | |
Is User Signed In (IsUserSignedIn) | pure | RPG Saga|Platform | User: FPlatformUserId | bool | User is signed in (users are signed in unless the platform reported a sign-out). |
On App Resumed (BP_OnAppResumed) | event | RPG Saga|Platform | |||
On App Suspended (BP_OnAppSuspended) | event | RPG Saga|Platform | |||
On Controller Connection Changed (BP_OnControllerConnectionChanged) | event | RPG Saga|Platform | User: FPlatformUserIdDevice: FInputDeviceIdbConnected: boolbPrimaryUser: bool | ||
On Primary User Changed (BP_OnPrimaryUserChanged) | event | RPG Saga|Platform | NewUser: FPlatformUserId | ||
On User Login Changed (BP_OnUserLoginChanged) | event | RPG Saga|Platform | User: FPlatformUserIdbSignedIn: boolbPrimaryUser: bool | ||
Report App Resumed (ReportAppResumed) | function | RPG Saga|Platform | The app is back in the foreground. | ||
Report App Suspended (ReportAppSuspended) | function | RPG Saga|Platform | The app goes to the background (suspend): save writes in flight are flushed (Save -> Suspend Flush Timeout). | ||
Report Controller Connection Changed (ReportControllerConnectionChanged) | function | RPG Saga|Platform | User: FPlatformUserIdDevice: FInputDeviceIdbConnected: bool | An input device of User connected or disconnected (IPlatformInputDeviceMapper). | |
Report User Login Changed (ReportUserLoginChanged) | function | RPG Saga|Platform | User: FPlatformUserIdbSignedIn: bool | A user signed in or out (FCoreDelegates::OnUserLoginChangedEvent, or the buyer's online login flow). | |
Reset Primary User Selection (ResetPrimaryUserSelection) | function | RPG Saga|Platform | Back to the title screen: the next "press start" picks the user again (the current one stays until then). | ||
Select Primary User (SelectPrimaryUser) | function | RPG Saga|Platform | User: FPlatformUserId | bool | Makes User the primary user (selected). Returns false for an invalid user. |
Select Primary User from Input Device (SelectPrimaryUserFromInputDevice) | function | RPG Saga|Platform | Device: FInputDeviceId | bool | "Press start": the user of Device (the platform's device-to-user mapping) becomes the primary user. An invalid device keeps the current user but still counts as the selection. Returns true when the primary user is now set. |
URSEPlayerProvider
Module RSE. Lists the players of a world for URSEPlayers (D-134).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Host Controller (GetHostController) | override | RPG Saga|Players | World: UWorld* | APlayerController* | The host's controller (slot 0): the player who owns the party leader, counts the random-encounter steps and leads zone travel (D-124 §6). Null on a network client (the host's controller lives on the server). |
Get Player Controllers (GetPlayerControllers) | override | RPG Saga|Players | World: UWorld*OutControllers: TArray<APlayerController*> (out) | Every player controller of World this machine knows, host first. | |
Get Player Slot (GetPlayerSlot) | override | RPG Saga|Players | World: UWorld*Controller: APlayerController* | int32 | The player's slot (0 = host), or -1 when the controller is not a known player. |
URSEPlayers
Module RSE. The players registry (D-134, docs/design/networking.md §3.8): the one place RSE asks "who are the players".
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Controller For (GetControllerFor) | pure, static | RPG Saga|Players | WorldContext: UObject*PlayerId: FRSEPlayerId | APlayerController* | The controller of a player id (the instigator of a command), or null. |
Get Controller for Slot (GetControllerForSlot) | pure, static | RPG Saga|Players | WorldContext: UObject*Slot: int32 | APlayerController* | The controller of a player slot, or null. |
Get Host Controller (GetHostController) | pure, static | RPG Saga|Players | WorldContext: UObject* | APlayerController* | The host's controller (slot 0, owns the party leader). Null on a network client. |
Get Host Pawn (GetHostPawn) | pure, static | RPG Saga|Players | WorldContext: UObject* | APawn* | The host's pawn (the party leader in exploration), or null. |
Get Local Player Controllers (GetLocalPlayerControllers) | function, static | RPG Saga|Players | WorldContext: UObject*OutControllers: TArray<APlayerController*> (out) | The players of this machine (local controllers), in local player order. | |
Get Nearest Player Pawn (GetNearestPlayerPawn) | function, static | RPG Saga|Players | WorldContext: UObject*Location: FVectorOutDistance: float (out) | APawn* | The player pawn closest to Location (null without players); OutDistance in cm (-1 without players). |
Get Pawn For (GetPawnFor) | pure, static | RPG Saga|Players | WorldContext: UObject*PlayerId: FRSEPlayerId | APawn* | The pawn of a player id, or null. |
Get Player Controllers (GetPlayerControllers) | function, static | RPG Saga|Players | WorldContext: UObject*OutControllers: TArray<APlayerController*> (out) | Every player controller this machine knows (server: all players; client: its own), host first. | |
Get Player Id (GetPlayerId) | pure, static | RPG Saga|Players | Controller: APlayerController* | FRSEPlayerId | The player id (D-133) of a controller: its slot; None for a controller that is not a player. |
Get Player Pawns (GetPlayerPawns) | function, static | RPG Saga|Players | WorldContext: UObject*OutPawns: TArray<APawn*> (out) | The pawns of every player (players without a pawn are skipped). | |
Get Player Slot (GetPlayerSlot) | pure, static | RPG Saga|Players | Controller: APlayerController* | int32 | The player's slot (0 = host), -1 for a controller that is not a player. |
Get Primary Local Controller (GetPrimaryLocalController) | pure, static | RPG Saga|Players | WorldContext: UObject* | APlayerController* | This machine's first local player: for presentation that has no better owner (screens, camera, sounds). |
Has Authority (HasAuthority) | pure, static | RPG Saga|Players | WorldContext: UObject* | bool | This machine runs the game logic (single-player: always). Logic timers and world-state changes check it. |
Is Any Player Within (IsAnyPlayerWithin) | pure, static | RPG Saga|Players | WorldContext: UObject*Location: FVectorRadius: float | bool | Some player's pawn stands within Radius cm of Location. |
Is Multiplayer Session (IsMultiplayerSession) | pure, static | RPG Saga|Players | WorldContext: UObject* | bool | Several players share the world: the co-op rules apply (no world pause, no world time dilation, no tutorials). |
Is Player Pawn (IsPlayerPawn) | pure, static | RPG Saga|Players | Pawn: APawn* | bool | Pawn is controlled by a player (any player, local or remote). |
Resolve Player Controller (ResolvePlayerController) | pure, static | RPG Saga|Players | WorldContext: UObject*Instigator: UObject*bFallbackToLocal: bool = true | APlayerController* | The player behind Instigator: a controller itself, a pawn's controller, a widget's owning player, a local player's controller, an actor's instigator or owner, a component's owner. Falls back to the primary local controller when bFallbackToLocal is set and nothing resolves (presentation that must show somewhere). |
URSEPuzzleSubsystem
Module RSECore. The puzzle actions on the authority (D-039, D-138): code attempts and item combinations arrive as commands from any player and are applied here, headless.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Code Lock Outcome (BP_OnCodeLockOutcome) | event | RPG Saga|Puzzles | Outcome: FRSECodeLockOutcome (ref) | ||
On Combine Outcome (BP_OnCombineOutcome) | event | RPG Saga|Puzzles | Outcome: FRSECombineOutcome (ref) |
URSEQuestPresentationSubsystem
Module RSE. Presents the quest system in game worlds (docs/design/quests.md): creates the quest HUD (tracker + toasts) for the first local player and feeds it from FRSEQuestEvents.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Battle Active (IsBattleActive) | pure | RSE|Quests | bool | A Tactics or ATB battle is running (deployment included). | |
Set Tracker Suppressed (SetTrackerSuppressed) | function | RSE|Quests | Reason: FNamebSuppressed: bool | Hides the tracker while any reason is set (e.g. "Dialog", "Cutscene"). Battles are handled automatically. |
URSEQuestSubsystem
Module RSECore. Runs quests (D-027, docs/design/quests.md) on top of the narrative state and the shared conditions/effects.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Abandon Quest (AbandonQuest) | function | RPG Saga|Quests | Quest: URSEQuestData* | bool | Abandons an active quest that allows it (CanAbandonQuest). |
Can Abandon Quest (CanAbandonQuest) | pure | RPG Saga|Quests | Quest: URSEQuestData* | bool | Active, bCanAbandon and a side quest (D-029: only side quests can be abandoned). |
Can Local Player Abandon Quest (CanLocalPlayerAbandonQuest) | pure | RPG Saga|Quests | Quest: URSEQuestData* | bool | CanAbandonQuest, and this machine's player may send Abandon Quest (co-op: host only by default, D-139). For the UI. |
Complete Objective (CompleteObjective) | function | RPG Saga|Quests | Quest: URSEQuestData*Objective: FName | bool | Completes an objective of the current stage of an active quest. |
Complete Quest (CompleteQuest) | function | RPG Saga|Quests | Quest: URSEQuestData*Outcome: FName = None | bool | Finishes an active quest with an outcome (None = default success). A failure outcome fails it. |
Confirm Point Of No Return (ConfirmPointOfNoReturn) | function | RPG Saga|Quests | bool | Sets the point-of-no-return flag: at-risk quests fail and the ending locks (if the set says so). | |
Evaluate Ending (EvaluateEnding) | pure | RPG Saga|Quests | FGameplayTag | The ending the story leads to now (the locked one after the point of no return, when the set locks it). | |
Fail Quest (FailQuest) | function | RPG Saga|Quests | Quest: URSEQuestData*Outcome: FName = None | bool | Fails an active quest (Outcome None = default failure; must be a failure outcome otherwise). |
Get Available Quests (GetAvailableQuests) | pure | RPG Saga|Quests | OutQuests: TArray<URSEQuestData*> (out) | Known quests that could be started now. | |
Get Current Stage (GetCurrentStage) | pure | RPG Saga|Quests | Quest: URSEQuestData* | FName | The stage an active quest is at (its last stage once finished). |
Get Ending Score (GetEndingScore) | pure | RPG Saga|Quests | int32 | Hidden score variable plus key choices made. | |
Get Journal (GetJournal) | pure | RPG Saga|Quests | Quest: URSEQuestData*OutEntries: TArray<FRSEQuestJournalEntry> (out) | bool | Journal entries of the stages entered, then the outcome's. |
Get Known Quests (GetKnownQuestsBP) | pure | RPG Saga|Quests | TArray<URSEQuestData*> | Every quest the system knows (registered or started), in evaluation order. | |
Get Objective Views (GetObjectiveViews) | pure | RPG Saga|Quests | Quest: URSEQuestData*OutObjectives: TArray<FRSEQuestObjectiveView> (out) | bool | Objectives of the current (or last) stage the player may see: active ones and completed ones; hidden ones once completed. |
Get Outcome (GetOutcome) | pure | RPG Saga|Quests | Quest: URSEQuestData* | FName | The outcome a finished quest ended with (None while it runs). |
Get Quest Status (GetQuestStatus) | pure | RPG Saga|Quests | Quest: URSEQuestData* | ERSEQuestStatus | Status of a quest: not started, active, completed, failed, missed or abandoned. |
Get Quests (GetQuests) | pure | RPG Saga|Quests | Status: ERSEQuestStatusOutQuests: TArray<URSEQuestData*> (out) | Quests with Status, in start order (finish order for Completed / Failed / Missed). NotStarted = known quests never started. | |
Get Quests Failing At Point Of No Return (GetQuestsFailingAtPointOfNoReturnBP) | pure | RPG Saga|Quests | OutQuests: TArray<URSEQuestData*> (out) | Active quests that fail at the point of no return (for a custom warning screen). | |
Get Tracked Quest (GetTrackedQuest) | pure | RPG Saga|Quests | URSEQuestData* | The quest on the HUD tracker, or none. | |
Is Objective Complete (IsObjectiveComplete) | pure | RPG Saga|Quests | Quest: URSEQuestData*Objective: FName | bool | Whether an objective of a quest is complete. |
Is Point Of No Return Passed (IsPointOfNoReturnPassed) | pure | RPG Saga|Quests | bool | The story passed its point of no return (the ending may be locked). | |
Is Quest Available (IsQuestAvailable) | pure | RPG Saga|Quests | Quest: URSEQuestData* | bool | Not active or finished and AvailableWhen passes (e.g. show a marker over the giver). |
On Ending Changed (OnEndingChanged) | event | RPG Saga|Quests | OldEnding: FGameplayTagNewEnding: FGameplayTag | The ending the story leads to changed (hidden from the player; story tools). | |
On Objective Updated (OnObjectiveUpdated) | event | RPG Saga|Quests | Quest: URSEQuestData*Objective: FName | An objective completed, or its counter changed. | |
On Point Of No Return Passed (OnPointOfNoReturnPassed) | event | RPG Saga|Quests | The point of no return was confirmed: at-risk quests failed, the ending locked. | ||
On Point Of No Return Requested (OnPointOfNoReturnRequested) | event | RPG Saga|Quests | Warning: FText (ref)QuestsThatWillFail: TArray<URSEQuestData*> (ref) | Show Warning (and the quests that will fail); call Confirm Point Of No Return on "yes". | |
On Quest Finished (OnQuestFinished) | event | RPG Saga|Quests | Quest: URSEQuestData*Status: ERSEQuestStatusOutcome: FName | Completed, Failed, Missed or Abandoned (Outcome None when abandoned or without an outcome). | |
On Quest Started (OnQuestStarted) | event | RPG Saga|Quests | Quest: URSEQuestData* | A quest started. | |
On Stage Changed (OnStageChanged) | event | RPG Saga|Quests | Quest: URSEQuestData*OldStage: FNameNewStage: FName | An active quest moved to another stage. | |
On Tracked Quest Changed (OnTrackedQuestChanged) | event | RPG Saga|Quests | Quest: URSEQuestData* | The HUD tracker's quest changed (Quest may be none). | |
Refresh Quests (RefreshQuests) | function | RPG Saga|Quests | Re-evaluates every quest now (objectives, transitions, failures, auto-start, ending). | ||
Request Point Of No Return (RequestPointOfNoReturn) | function | RPG Saga|Quests | bool | Asks the presentation to confirm the point of no return (OnPointOfNoReturnRequested). False if already passed or not configured. | |
Set Stage (SetStage) | function | RPG Saga|Quests | Quest: URSEQuestData*Stage: FName | bool | Moves an active quest to a stage (scripted advance). |
Set Tracked Quest (SetTrackedQuest) | function | RPG Saga|Quests | Quest: URSEQuestData* | bool | Quest on the HUD tracker (null = none). Only active quests can be tracked. |
Start Quest (StartQuest) | function | RPG Saga|Quests | Quest: URSEQuestData*bIgnoreAvailability: bool = false | bool | Starts a NotStarted or Abandoned quest. Checks AvailableWhen unless bIgnoreAvailability. |
URSERPGCameraArm
Module RSE. The spring arm of the RPG cameras (D-113): the tactical exploration camera and the Free Tactics camera.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Terrain Lift (GetTerrainLift) | pure | RPG Saga|Camera | float | How far the camera is lifted over the terrain now (cm; debugging, tests). | |
Reset Smoothing (ResetSmoothing) | function | RPG Saga|Camera | Forgets the follow lag and the terrain lift (after a cut or a hand-off: no glide from a stale place). |
URSEReconnectViewModel
Module RSE. The reconnect screen (D-170): shown while the primary user's controller is disconnected.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Continue (Continue) | function | RPG Saga|Platform | bool | Dismisses the screen when allowed (the lifecycle subsystem resumes the game). Returns true when it closed. |
URSEResultsViewModel
Module RSE. Victory results (D-030): rewards, member cards and battle statistics.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Continue (Continue) | function | RPG Saga|UI|Results | Ends the screen (the battle continues to the world). |
URSERewardFeedSubsystem
Module RSE. Presents rewards without a blocking screen (D-128, docs/design/battle-rewards.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Playing (IsPlaying) | pure | RPG Saga|Rewards | bool | A feed still shows something. | |
Present Battle Rewards (PresentBattleRewards) | function | RPG Saga|Rewards | Rewards: FRSEBattleRewards (ref) | Shows a battle's rewards as the feed (floating texts and toasts) on every local player's screen. | |
Push Floater (PushFloater) | function | RPG Saga|Rewards | Floater: FRSERewardFloater (ref)Over: AActor*Delay: float = 0.000000 | Floating texts (experience, level up) over Over, for every local player. | |
Push Toast (PushToast) | function | RPG Saga|Rewards | Toast: FRSERewardToast (ref)Player: APlayerController* = None | Adds a toast to Player's feed (null = every local player). | |
Skip (Skip) | function | RPG Saga|Rewards | Hurries every feed off the screen. |
URSERewardToastProvider
Module RSE. Makes toasts from a battle's rewards (D-128).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Gather Toasts (GatherToasts) | override | RPG Saga|Rewards | Context: FRSERewardFeedContext (ref)OutToasts: TArray<FRSERewardToast> (out) | Adds this provider's toasts for Context. |
URSERulesProfile
Module RSECore. A set of gameplay-rule overrides (D-035, docs/design/rules-profiles.md): e.g.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Add Section (AddSection) | function | RPG Saga|Rules | Class: TSubclassOf<URSEDeveloperSettings> | URSEDeveloperSettings* | Adds an override section of Class, initialised from the global settings (or returns the existing one). Null if Class is not a profile section class. Marks the asset dirty; the caller saves it. |
Get Own Section (GetOwnSection) | pure | RPG Saga|Rules | Class: TSubclassOf<URSEDeveloperSettings> | URSEDeveloperSettings* | This profile's own section of Class, for editing (null if none). |
Remove Section (RemoveSection) | function | RPG Saga|Rules | Class: TSubclassOf<URSEDeveloperSettings> | bool | Removes the section of Class. Returns false if there was none. Marks the asset dirty. |
URSERulesSubsystem
Module RSECore. The game-level rules resolver (D-035): holds the game's active profile (runtime-switchable, saved by id in the "Rules" section) and resolves the profile of a battle (encounter override -> active profile -> global).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Active Profile (GetActiveProfile) | pure | RPG Saga|Rules | URSERulesProfile* | The game's rules profile: the one set by the story, else the default from the settings. None = the global rules. | |
Get Active Profile Id (GetActiveProfileId) | pure | RPG Saga|Rules | FPrimaryAssetId | Id of the profile set by the story (invalid = the default is used). | |
On Rules Profile Changed (BP_OnProfileChanged) | event | RPG Saga|Rules | NewProfile: URSERulesProfile* | The game's rules profile changed (story, load, new game). | |
Resolve for Encounter (ResolveForEncounter) | pure | RPG Saga|Rules | Encounter: URSEEncounterData* | URSERulesProfile* | The profile a battle of Encounter uses (encounter override -> active profile -> global). Encounter may be none. |
Set Active Profile (SetActiveProfile) | function | RPG Saga|Rules | Profile: URSERulesProfile* | Switches the game's rules profile (none = back to the default profile). Running battles keep theirs. Saved. A player's choice (D-139): sends Set Rules Profile, host only in co-op. Game logic (the Set Rules Profile effect, a new game) uses ApplyActiveProfile. |
URSESaveFlowSubsystem
Module RSE. The save/load user flow in the world (D-010), on top of RSECore's URSESaveSubsystem: - fills GatherLocation (map, save point id or pawn transform, area name); - load: LoadGame applies the save, then opens its map; the exploration game mode calls ApplyPendingLocation when the player spawns there, whi...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Save Now (CanSaveNowBP) | pure | RPG Saga|Save | Source: ERSESaveRequestSourceOutReasons: TArray<FName> (out) | bool | Whether a save from Source is allowed now (save blocks, plus no battle running); OutReasons lists why not. |
Close Save Screen (CloseSaveScreen) | function | RPG Saga|Save | Closes the save screen. | ||
Decode Thumbnail (DecodeThumbnail) | function, static | RPG Saga|Save | Bytes: TArray<uint8> (ref) | UTexture2D* | A texture from a save's thumbnail bytes, or null. |
Find Continue Slot (FindContinueSlot) | pure | RPG Saga|Save | OutSlotName: FString (out) | bool | Most recent loadable slot (Continue). Returns false when there is none. |
Get Result Text (GetResultText) | pure, static | RPG Saga|Save | Result: ERSESaveResultbLoading: bool | FText | Player-facing text for a save / load result (empty for Ok). |
Has Any Save (HasAnySave) | pure | RPG Saga|Save | bool | At least one loadable save exists (main menu Load / Continue). | |
Is Save Item (IsSaveItem) | pure, static | RPG Saga|Save | Item: URSEItemData* | bool | Item is the save item (the party menu routes it to UseSaveItem instead of a use ability). |
Is Save Screen Open (IsSaveScreenOpen) | pure | RPG Saga|Save | bool | The save screen is open. | |
Load Game (LoadGame) | function | RPG Saga|Save | SlotName: FStringbDeferTravel: bool = false | ERSESaveResult | Loads SlotName (state applied at once, in the game instance) and opens its map. With bDeferTravel the map opens only on TravelToLoadedGame (the main menu fades out first). Loads started elsewhere (URSESaveSubsystem::LoadFromSlot) travel immediately. |
Open Save Screen (OpenSaveScreen) | function | RPG Saga|Save | Request: FRSESaveRequest (ref) | bool | Opens the save screen for Request over the current world. |
Save to Slot (SaveToSlot) | function | RPG Saga|Save | SlotName: FStringRequest: FRSESaveRequest (ref) | ERSESaveResult | Saves the current game with the flow's location info. Used by the save screen and dev commands. |
Travel to Loaded Game (TravelToLoadedGame) | function | RPG Saga|Save | bool | Opens the map of the last loaded save. Returns false if nothing is pending. | |
Use Save Item (UseSaveItem) | function | RPG Saga|Save | Item: URSEItemData* | ERSESaveResult | The save item was chosen (party menu hook, dev command). Blocked in battles, dialogs, cutscenes and no-save zones; otherwise opens the save screen. The item is removed only after a successful save. |
Use Save Point (UseSavePoint) | function | RPG Saga|Save | SavePointId: FName | ERSESaveResult | A save point was used: restores the party (setting), autosaves (setting) and requests a save, which opens the save screen. |
URSESaveInteropLibrary
Module RSECore. Save interop (D-165): the state of any RPG Saga Engine save section (narrative flags, dialog, quests, inventory, party, map, time...) as bytes or JSON, so a project that has its own SaveGame can keep our state inside it, and put it back when its game loads.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Export Section To Bytes (ExportSectionToBytes) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*SectionId: FNameOutBytes: TArray<uint8> (out)OutVersion: int32 (out) | bool | One section's current state in its own save format, with its format version. Returns false when no system owns that section. |
Export Section To JSON (ExportSectionToJson) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*SectionId: FNameOutJson: FString (out) | bool | One section as JSON (the same text format, one entry). |
Export Sections To Bytes (ExportSectionsToBytes) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*SectionIds: TArray<FName> (ref)OutBytes: TArray<uint8> (out) | int32 | Several sections in one byte array. SectionIds empty = every section. Returns how many sections were written. |
Export Sections To JSON (ExportSectionsToJson) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*SectionIds: TArray<FName> (ref)OutJson: FString (out) | int32 | Several sections as a JSON text (data in Base64), for a text based SaveGame, a cloud save or a log. SectionIds empty = every section. |
Get Save Section Ids (GetSectionIds) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*OutSectionIds: TArray<FName> (out) | Ids of the save sections the running game has, in load order (Party, Narrative, Quests...). Session-only sections are left out. | |
Import Section From Bytes (ImportSectionFromBytes) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*SectionId: FNameBytes: TArray<uint8> (ref)Version: int32 | bool | Replaces one section's state with bytes written by Export Section To Bytes. Returns false when the section is unknown or the data cannot be read. |
Import Section From JSON (ImportSectionFromJson) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*Json: FString | bool | Applies a JSON text that holds a single section. Returns false unless exactly that text applied. |
Import Sections From Bytes (ImportSectionsFromBytes) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*Bytes: TArray<uint8> (ref)OutImported: TArray<FName> (out) | int32 | Applies a byte array written by Export Sections To Bytes. Returns how many sections were applied; OutImported lists them. |
Import Sections From JSON (ImportSectionsFromJson) | function, static | RPG Saga|Save|Interop | WorldContextObject: UObject*Json: FStringOutImported: TArray<FName> (out) | int32 | Applies a text written by Export Sections To JSON. Returns how many sections were applied; OutImported lists them. |
URSESaveSessionPolicy
Module RSECore. Who may save and load during a co-op session (D-124 §4, D-139), and what a refused player reads.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Load (CanLoad) | override | RPG Saga|Save | Query: FRSESaveSessionQuery (ref)OutReason: FText (out) | bool | Whether this load may happen; false with a reason. Default: not on a guest; the host only with bAllowLoadInSession. |
Can Save (CanSave) | override | RPG Saga|Save | Query: FRSESaveSessionQuery (ref)OutReason: FText (out) | bool | Whether this save may happen; false with a reason the player reads. Default: not on a guest. |
On Loaded in Session (OnLoadedInSession) | override | RPG Saga|Save | SlotName: FString | A save was loaded on the host while a session runs (after every system applied it). Default: nothing; RSENet also listens to URSESaveSubsystem::OnLoadedInSession to re-send the state and move everyone to the loaded map. |
URSESaveSlotsViewModel
Module RSE. The save / load slot screen (D-010, D-045): one row per slot, autosave first, with thumbnail, area, party, play time, money and date.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Answer Overwrite (AnswerOverwrite) | function | RPG Saga|UI|Save | bYes: bool | Answers the overwrite question. | |
Choose (Choose) | function | RPG Saga|UI|Save | Chooses the selected slot (asks first when saving over a save; answers the question when it is open). | ||
Choose Slot (ChooseSlot) | function | RPG Saga|UI|Save | Index: int32 | Selects a slot and chooses it (a click). | |
Leave (Leave) | function | RPG Saga|UI|Save | Leaves the screen (or the overwrite question). | ||
Move Selection (MoveSelection) | function | RPG Saga|UI|Save | Direction: int32 | Move Selection | |
Refresh Slots (RefreshSlots) | function | RPG Saga|UI|Save | Re-reads the slots, keeping the selected one. | ||
Select (Select) | function | RPG Saga|UI|Save | Index: int32 | Select |
URSESaveSubsystem
Module RSECore. Saves and loads the whole game (D-010).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Autosave (Autosave) | function | RPG Saga|Save | SavePointId: FName | ERSESaveResult | Writes to the next autosave slot (called by save points before the slot menu; SavePointId may be None). |
Can Save Now (CanSaveNowBP) | pure | RPG Saga|Save | Source: ERSESaveRequestSourceOutReasons: TArray<FName> (out) | bool | Whether a save from Source is allowed now; OutReasons lists the blocks that apply (battle, dialog, no-save zone...). |
Delete Slot (DeleteSlot) | function | RPG Saga|Save | SlotName: FString | bool | Deletes a save slot (its file and backup). |
Does Slot Exist (DoesSlotExist) | pure | RPG Saga|Save | SlotName: FString | bool | A save exists in the slot. |
Flush Pending Writes (FlushPendingWrites) | function | RPG Saga|Save|Platform | TimeoutSeconds: float | bool | Waits at most TimeoutSeconds for writes in flight (app suspend). Returns true when nothing is left. |
Get Autosave Slot Name (GetAutosaveSlotName) | pure | RPG Saga|Save | FString | Name of the (first) autosave slot. | |
Get Autosave Slot Names (GetAutosaveSlotNames) | pure | RPG Saga|Save | OutSlots: TArray<FString> (out) | Every autosave slot in rotation order (empty without autosave). | |
Get Backend Type (GetBackendType) | pure | RPG Saga|Save|Platform | ERSESaveBackendType | Which backend the project uses. | |
Get Last Save Result (GetLastSaveResult) | pure | RPG Saga|Save | ERSESaveResult | Result of the last save that finished (async saves: once they complete). | |
Get Play Time Seconds (GetPlayTimeSeconds) | pure | RPG Saga|Save | double | Play time of this game in seconds. | |
Get Save User (GetSaveUser) | pure | RPG Saga|Save|Platform | FRSESaveUser | Whose saves are read and written: the primary platform user (URSEPlatformUserSubsystem keeps it current). | |
Get Seconds Since Last Autosave (GetSecondsSinceLastAutosave) | pure | RPG Saga|Save | double | Seconds since the last successful autosave in this session (a large value when none). | |
Get Slot Info (GetSlotInfo) | pure | RPG Saga|Save | SlotName: FStringOutInfo: FRSESaveSlotInfo (out) | bool | Metadata of one slot. Returns false if the slot is empty or unreadable (a damaged slot without a readable backup reports bExists and bCorrupt; one read from its backup reports bFromBackup). |
Get Slot Infos (GetSlotInfos) | pure | RPG Saga|Save | OutInfos: TArray<FRSESaveSlotInfo> (out) | Metadata of every manual slot (and the autosave slot first, when enabled), empty slots included. | |
Get Slot Name (GetSlotName) | pure | RPG Saga|Save | SlotIndex: int32 | FString | Name of manual save slot N (0-based). |
Get State Section Revision (GetSectionRevision) | pure | RPG Saga|Save | SectionId: FName | int32 | How many times SectionId changed this session (0 = never). |
Get Stored Slot Names (GetStoredSlotNames) | pure | RPG Saga|Save|Platform | OutSlots: TArray<FString> (out) | Every slot the backend stores for the current user (also slots outside the configured slot names). | |
Is Autosave Slot (IsAutosaveSlot) | pure | RPG Saga|Save | SlotName: FString | bool | SlotName is one of the autosave slots (protected from manual saves). |
Is Busy (IsBusy) | pure | RPG Saga|Save | bool | An asynchronous save or load is running. | |
Is Play Time Running (IsPlayTimeRunning) | pure | RPG Saga|Save | bool | The play time clock runs (paused in menus). | |
Load from Slot (LoadFromSlot) | function | RPG Saga|Save | SlotName: FString | ERSESaveResult | Reads and applies a save to every system. In the game prefer Load Game (Save library), which also opens the saved map. |
Load from Slot Async (LoadFromSlotAsync) | function | RPG Saga|Save | SlotName: FString | ERSESaveResult | Same as LoadFromSlot with the file read on a worker thread; OnLoaded or OnLoadFailed report the outcome. |
Mark State Section Changed (MarkSectionChanged) | function | RPG Saga|Save | SectionId: FName | SectionId's state changed: its revision grows now; OnSectionChanged follows once per frame (coalesced). | |
On Load Failed (BP_OnLoadFailed) | event | RPG Saga|Save | SlotName: FStringResult: ERSESaveResult | A load failed (the slot and why). | |
On Loaded (BP_OnLoaded) | event | RPG Saga|Save | SlotName: FString | A save was applied to every system (the saved map opens next). | |
On Save Failed (BP_OnSaveFailed) | event | RPG Saga|Save | SlotName: FStringResult: ERSESaveResult | A save failed: the slot and why (No Space, User Signed Out, Failed). Async saves report when they complete. | |
On Save Requested (BP_OnSaveRequested) | event | RPG Saga|Save | Request: FRSESaveRequest (ref) | A save was requested and is allowed now (the save screen opens). | |
On Saved (BP_OnSaved) | event | RPG Saga|Save | SlotName: FStringbSuccess: bool | A save finished (async saves report later). | |
On State Section Changed (BP_OnSectionChanged) | event | RPG Saga|Save | SectionId: FNameRevision: int32 | A state section changed (once per frame per section). | |
Pick Autosave Slot (PickAutosaveSlot) | pure | RPG Saga|Save | FString | Where the next autosave goes: the first empty autosave slot, else the oldest one. | |
Pop Save Block (PopSaveBlock) | function | RPG Saga|Save | Reason: FName | Lifts one save block pushed with the same reason. | |
Push Save Block (PushSaveBlock) | function | RPG Saga|Save | Reason: FNameScope: ERSESaveBlockScope = All | Blocks saving until the matching Pop. Reasons are counted, so overlapping zones stack. | |
Request Save (RequestSave) | function | RPG Saga|Save | Request: FRSESaveRequest (ref) | ERSESaveResult | Validates a request (blocks) and broadcasts OnSaveRequested so the RSE module can show the slot menu. |
Reset All for New Game (ResetAllForNewGame) | function | RPG Saga|Save | New game for everything that is saved: every participant resets (IRSESaveParticipant::ResetForNewGame, in registration order) and play time restarts. The single entry point of New Game (D-045). | ||
Save to Slot (SaveToSlot) | function | RPG Saga|Save | SlotName: FStringRequest: FRSESaveRequest (ref) | ERSESaveResult | Builds and writes a save now, without the save screen. In the game world prefer Save Game (Save library), which also records the location. |
Save to Slot Async (SaveToSlotAsync) | function | RPG Saga|Save | SlotName: FStringRequest: FRSESaveRequest (ref) | ERSESaveResult | Same as SaveToSlot, but the file is written on a worker thread. The state is captured immediately. |
Set Play Time Running (SetPlayTimeRunning) | function | RPG Saga|Save | bRunning: bool | Pauses the clock (main menu, pause menu). | |
Set Save User (SetSaveUser) | function | RPG Saga|Save|Platform | User: FRSESaveUser (ref) | Switches whose saves are used (the platform user layer calls it on user changes and sign-in / sign-out). |
URSESceneOverlayViewModel
Module RSE. The overlay of a story scene (D-043): letterbox bars, the skip key hint and the skip confirmation.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Answer Skip (AnswerSkip) | function | RPG Saga|UI|Scene | bSkip: bool | Answers the question. | |
Request Skip (RequestSkip) | function | RPG Saga|UI|Scene | Asks to skip (the skip key outside the question). | ||
Select Answer (SelectAnswer) | function | RPG Saga|UI|Scene | Index: int32 | Moves the cursor of the question. |
URSEScenePlayerSubsystem
Module RSE. Plays story scenes (D-043, docs/design/scenes.md): URSESceneData assets requested by the Play Scene effect (FRSENarrativeEvents::OnSceneRequested) or directly (PlayScene, the scene trigger, the theater later).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Local Player Skip (CanLocalPlayerSkip) | pure | RPG Saga|Scenes | bool | Whether this machine's player may ask to skip the scene on screen (the host, a voter, anyone, by the rule). | |
Get Current Scene (GetCurrentScene) | pure | RPG Saga|Scenes | URSESceneData* | The scene on screen, or none. | |
Get Num Pending (GetNumPending) | pure | RPG Saga|Scenes | int32 | Scenes waiting behind the current one. | |
Is Scene Playing (IsScenePlaying) | pure | RPG Saga|Scenes | bool | A scene is on screen (from its start to the end of the camera return). | |
On Scene Playing Changed (BP_OnScenePlayingChanged) | event | RPG Saga|Scenes | bPlaying: bool | A scene started (true) or ended, camera back (false). Blueprint. | |
Play Scene (PlayScene) | function | RPG Saga|Scenes | Scene: URSESceneData*bReplay: bool = false | bool | Queues Scene (plays at once when nothing else runs). Replays run no end effects. Returns false if refused (duplicate, no sequence). |
Request Skip (RequestSkip) | function | RPG Saga|Scenes | bool | Skip key: opens the confirmation (or skips at once, see URSESceneSettings::bConfirmSkip). Returns true if handled. | |
Skip Now (SkipNow) | function | RPG Saga|Scenes | Skips now: drops the dialogs, jumps to the end, returns the camera. | ||
Submit Skip (SubmitSkip) | function | RPG Saga|Scenes | bool | Asks to skip the scene on screen through the command bus (Skip Scene): the authority's skip policy decides (the host, a vote, anyone) and the skip reaches every machine. Single player: skips at once. Returns whether it was sent or applied. |
URSESceneSkipPolicy
Module RSE. Who may skip a story scene in co-op (D-094: the host, or a vote).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Decide (Decide) | override | RPG Saga|Scenes|Co-op | Player: FRSEPlayerIdScene: URSESceneData*bMultiplayer: bool | ERSESceneSkipDecision | What Player's request to skip Scene does. bMultiplayer: several players share the world. |
Get Votes Needed (GetVotesNeeded) | override | RPG Saga|Scenes|Co-op | Players: int32 | int32 | Votes needed to skip with Players players in the session. Default: Co-op Flow -> Scene Skip Vote Share of them (at least 1). |
URSEScreenLayout
Module RSE. Base of the screen layouts (D-162 P61, docs/product/ui-styles.md "Layouts"): one class per arrangement of a screen.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Arrange (Arrange) | override | RPG Saga|UI Layout | Context: URSEScreenLayoutContext* | Places the screen's parts (Context: the parts and the helpers). | |
Get Layout Name (GetLayoutName) | pure | RPG Saga|UI Layout | FText | The name in menus (Display Name, else the class name). |
URSEScreenLayoutContext
Module RSE. What a screen hands its layout (D-162 P61): the canvas, the screen's parts by name (built by the screen with the active UI style) and a few helpers to place or group them.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Canvas (GetCanvas) | pure | RPG Saga|UI Layout | UCanvasPanel* | Get Canvas | |
Get Canvas Size (GetCanvasSize) | pure | RPG Saga|UI Layout | FVector2D | The canvas size in layout units (the last drawn size; 1920 x 1080 before the first frame). | |
Get Margin (GetMargin) | pure | RPG Saga|UI Layout | float | The screen margin (UI -> Screen Margin), in layout units (1080p reference). | |
Get Part (GetPart) | pure | RPG Saga|UI Layout | Part: FName | UWidget* | The part with this name (null when the screen has none, e.g. a part only some variants use). |
Get Part Names (GetPartNames) | pure | RPG Saga|UI Layout | TArray<FName> | Every part name, in stacking order. | |
Get Safe Insets (GetSafeInsets) | pure | RPG Saga|UI Layout | FMargin | D-180: the safe-area insets every Place helper keeps parts inside (notch, rounded corners, home indicator; zero on PC), in layout units. Full-screen parts ignore them. | |
Get Screen (GetScreen) | pure | RPG Saga|UI Layout | URSEHUDWidgetBase* | The screen widget being arranged. | |
Group Parts (GroupParts) | function | RPG Saga|UI Layout | GroupName: FNameParts: TArray<FName> (ref)bHorizontal: boolSpacing: floatHAlign: TEnumAsByte<EHorizontalAlignment>VAlign: TEnumAsByte<EVerticalAlignment>bFramed: bool = falseFrameKind: ERSEPanelKind = HudFillPart: FName = None | UWidget* | Puts parts side by side (or one under the other) in a new part GroupName, Spacing apart, optionally in the style's frame of FrameKind. Missing parts are skipped. FillPart (optional) takes the room left in the group (a bar stretched across the screen: the parts after it end at the far edge). Returns the group (place it like any part). |
Has Flag (HasFlag) | pure | RPG Saga|UI Layout | Flag: FName | bool | Has Flag |
Has Part (HasPart) | pure | RPG Saga|UI Layout | Part: FName | bool | Has Part |
Hide Part (HidePart) | function | RPG Saga|UI Layout | Part: FName | Keeps a part off screen (the screen still updates it). | |
Place Part (PlacePart) | function | RPG Saga|UI Layout | Part: FNameAnchor: FVector2DAlignment: FVector2DOffset: FVector2D | UCanvasPanelSlot* | Places a part at a normalized point of the screen (Anchor 0..1), its own point Alignment there, moved by Offset; it keeps its own size. Placing a part again moves it (it keeps its stacking order). |
Place Part Fitted (PlacePartFitted) | function | RPG Saga|UI Layout | Part: FName | UCanvasPanelSlot* | Centers a part at its own size; on a screen too small for it, it shrinks as a whole (menus of a fixed size). |
Place Part Full Screen (PlacePartFullScreen) | function | RPG Saga|UI Layout | Part: FName | UCanvasPanelSlot* | A full-screen part (backdrops, dims). |
Place Part Stretched (PlacePartStretched) | function | RPG Saga|UI Layout | Part: FNameAnchors: FAnchorsOffsets: FMarginAlignment: FVector2DbAutoSize: bool = false | UCanvasPanelSlot* | Places a part with anchors that may stretch (Anchors min != max: Offsets are margins from the anchors). |
URSEScreenLibrary
Module RSE. Theme, palette, key prompts and UI sounds for Widget Blueprints (D-052).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Text Role (ApplyTextRole) | function, static | RPG Saga|UI|Theme | Text: UTextBlock*Role: ERSETextRole | Applies a text role (font, shadow, the role's color) to Text. | |
Apply Text Role Color (ApplyTextRoleColor) | function, static | RPG Saga|UI|Theme | Text: UTextBlock*Role: ERSETextRoleColor: FLinearColor | Applies a text role with a palette color. | |
Fill Member Cards (FillMemberCards) | function, static | RPG Saga|UI|Lists | Panel: UPanelWidget*CardClass: TSubclassOf<URSEMemberCardWidget>Members: TArray<FRSEMemberView> (ref) | Fills Panel with one CardClass card per member (cards already there are reused, extra ones removed). The card Widget Blueprint derives from RSEMemberCardWidget and names its widgets NameText, HPBar... (see there). | |
Get Action Key Label (GetActionKeyLabel) | pure, static | RPG Saga|UI|Prompts | Player: APlayerController*Action: UInputAction* | FText | Label of the key mapped to an Enhanced Input action for the device in use. Player may be null. |
Get Generic Action Text (GetGenericActionText) | pure, static | RPG Saga|UI|Prompts | MenuKey: ERSEMenuKey | FText | Generic action names of the theme (Confirm, Back, Select, Page, Close). |
Get Key Label (GetKeyLabel) | pure, static | RPG Saga|UI|Prompts | Key: FKey | FText | Label of a key ("Enter", "A", "✕" in the PlayStation label set). |
Get Key Prompt Icon (GetKeyPromptIcon) | function, static | RPG Saga|UI|Prompts | Key: FKeyIcon: FRSEKeyPromptIcon (out) | bool | D-176: the key prompt provider's icon for Key on the device in use (Common UI controller data with the companion plugin). Returns false: show the text label (Get Key Label). |
Get Keys Label (GetKeysLabel) | pure, static | RPG Saga|UI|Prompts | Keys: TArray<FKey> (ref) | FText | Label of the primary key of Keys for the device in use (empty when it has none). |
Get Menu Key Label (GetMenuKeyLabel) | pure, static | RPG Saga|UI|Prompts | MenuKey: ERSEMenuKey | FText | Label of a generic menu key for the device in use. |
Get Panel Brush (GetPanelBrush) | pure, static | RPG Saga|UI|Theme | Kind: ERSEPanelKind | FSlateBrush | The brush of a panel kind (rounded gradient box with the theme's outline). |
Get Panel Style (GetPanelStyle) | pure, static | RPG Saga|UI|Theme | Kind: ERSEPanelKind | FRSEUIPanelStyle | The style of a panel kind (colors, padding, corner radius). |
Get Row Style (GetRowStyle) | pure, static | RPG Saga|UI|Theme | FRSEUIRowStyle | The list row style (selected / active / hover fills, cursor). | |
Get Spacing (GetSpacing) | pure, static | RPG Saga|UI|Theme | Step: ERSEUISpacing | float | A spacing step of the theme. |
Get Tag Label (GetTagLabel) | pure, static | RPG Saga|UI|Theme | Tag: FGameplayTag | FText | Name of a stat or resource tag for menus (UI -> TagLabels, else the attribute registry's display name). |
Get Theme Font (GetThemeFont) | pure, static | RPG Saga|UI|Theme | Role: ERSETextRoleSizeOverride: int32 = 0 | FSlateFontInfo | Font of a text role (UI Theme -> Fonts). SizeOverride > 0 replaces the role's size. |
Get Theme Text Color (GetThemeTextColor) | pure, static | RPG Saga|UI|Theme | Role: ERSETextRole | FLinearColor | Default color of a text role. |
Get UIColor (GetUIColor) | pure, static | RPG Saga|UI|Theme | Color: ERSEUIColor | FLinearColor | A palette color. |
Is Using Gamepad (IsUsingGamepad) | pure, static | RPG Saga|UI|Prompts | bool | The player uses a gamepad now (prompts show gamepad buttons). | |
Join Menu Entries (JoinMenuEntries) | pure, static | RPG Saga|UI|Lists | Entries: TArray<FRSEMenuEntryView> (ref) | FText | Menu entries as one text, one per line, the selected one marked with the theme's cursor glyph. |
Join Text Lines (JoinTextLines) | pure, static | RPG Saga|UI|Lists | Lines: TArray<FRSETextLineView> (ref) | FText | Lines as one text, one per line ("Text Detail"). |
Join Texts (JoinTexts) | pure, static | RPG Saga|UI|Lists | Texts: TArray<FText> (ref)Separator: FText (ref) | FText | Texts joined with Separator (a line break when empty). |
Make Menu Prompt (MakeMenuPrompt) | pure, static | RPG Saga|UI|Prompts | MenuKey: ERSEMenuKeyAction: FText | FRSEKeyPromptView | A prompt for a menu key (skip it when Key is empty). |
Play UISound (PlayUISound) | function, static | RPG Saga|UI|Sound | WorldContextObject: UObject*Sound: ERSEUISound | Plays a UI sound (Audio.UI.* in the sound catalog). |
URSEScreenPresenter
Module RSE. RSE Screen Presenter
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Dismiss Screen (DismissScreen) | override | RPG Saga|UI|Host | Screen: URSEScreenWidget* | Screen presented by this presenter is closing (it leaves its parent right after). | |
Present Screen (PresentScreen) | override | RPG Saga|UI|Host | Screen: URSEScreenWidget*Player: APlayerController*ZOrder: int32 | bool | Shows Screen for Player (ZOrder: the screen's viewport order, a hint). Returns false to let the screen add itself to the viewport. |
URSEScreenViewModel
Module RSE. The data and the actions of one screen, for the screen's widget (D-052, docs/design/umg-screens.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Back (Back) | override | RPG Saga|UI|ViewModel | bool | Back / cancel (Esc, gamepad B). Returns true when the view-model used it. | |
Close (Close) | function | RPG Saga|UI|ViewModel | Closes the screen: OnClosed fires once, the host removes the widget. | ||
Confirm (Confirm) | override | RPG Saga|UI|ViewModel | bool | Confirm / accept (Enter, gamepad A). Returns true when the view-model used it. | |
Get Owning Player (GetOwningPlayer) | pure | RPG Saga|UI|ViewModel | APlayerController* | Get Owning Player | |
Get Revision (GetRevision) | pure | RPG Saga|UI|ViewModel | int32 | Change counter: grows on every NotifyChanged (widgets can skip rebuilds when it did not move). | |
Is Closed (IsClosed) | pure | RPG Saga|UI|ViewModel | bool | The screen was closed (Close ran). Actions do nothing after it. | |
Navigate (Navigate) | override | RPG Saga|UI|ViewModel | Direction: FIntPoint | bool | Cursor movement: X = right, Y = down (one step per press). Returns true when used. |
On Changed (OnChanged) | event | RPG Saga|UI|ViewModel | The data changed: widgets rebuild what they show. | ||
On Closed (OnClosed) | event | RPG Saga|UI|ViewModel | The screen is done (the host removes the widget). Fired once. | ||
Page (Page) | override | RPG Saga|UI|ViewModel | Direction: int32 | bool | Previous (-1) / next (+1) page, tab or category. Returns true when used. |
Play UISound (PlayUISound) | function | RPG Saga|UI|ViewModel | Sound: ERSEUISound | Plays a UI sound in the owner's world. Actions play their own feedback (Confirm, Error...), so every screen of the view-model sounds the same; bSilent view-models (tests, previews) play nothing. |
URSESeedSource
Module RSECore. The game's source of seeds (D-124 §3.6, D-133): every random roll with an effect on the game draws its seed here instead of FMath::Rand, so a game is reproducible from its world seed (tests, replays) and the host is the only one deciding (co-op).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Draw Count (GetDrawCount) | pure | RPG Saga|Seeds | Stream: FName | int32 | How many seeds Stream has drawn. |
Get World Seed (GetWorldSeed) | pure | RPG Saga|Seeds | int32 | The game's root seed. | |
Next Seed (NextSeed) | function | RPG Saga|Seeds | Stream: FName | int32 | The next seed of Stream (never 0). Use one per random event: a battle, an encounter roll, a match. |
Set World Seed (SetWorldSeed) | function | RPG Saga|Seeds | Seed: int32 | Starts every stream again from Seed (replays, tests). 0 = a new random world seed. |
URSESessionAsyncAction
Module RSEOnline. Latent Blueprint nodes for the session flow (D-135): Host Session, Find Sessions and Join Session with success and failure pins.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Find Sessions (Async) (FindSessionsAsync) | function, static | RPG Saga|Online | WorldContextObject: UObject* | URSESessionAsyncAction* | Searches for sessions. Succeeds with the results (possibly none). |
Host Session (Async) (HostSessionAsync) | function, static | RPG Saga|Online | WorldContextObject: UObject*Params: FRSEHostSessionParams | URSESessionAsyncAction* | Hosts a session (Project Settings -> RPG Saga Engine -> Online; Params override some). Succeeds when hosting. |
Join Session (Async) (JoinSessionAsync) | function, static | RPG Saga|Online | WorldContextObject: UObject*ResultIndex: int32 | URSESessionAsyncAction* | Joins a search result and travels to the host. Succeeds when connected (after the map loaded). |
On Failure (OnFailure) | event | RPG Saga|Online | Results: TArray<FRSESessionSearchResult> (ref)Error: FRSESessionErrorInfo (ref) | The operation failed or was refused; Error says why (its Message is for the player). | |
On Success (OnSuccess) | event | RPG Saga|Online | Results: TArray<FRSESessionSearchResult> (ref)Error: FRSESessionErrorInfo (ref) | Hosting, connected, or the search finished. Results: the sessions found (Find only). |
URSESessionLibrary
Module RSEOnline. Helpers for session screens.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Session Error Message (GetSessionErrorMessage) | pure, static | RPG Saga|Online | Error: ERSESessionError | FText | The player-facing (localized) message of a session error. |
Get Session State Text (GetSessionStateText) | pure, static | RPG Saga|Online | State: ERSESessionState | FText | A session state in words ("Hosting", "Searching for sessions..."). |
Is Session Joinable (IsSessionJoinable) | pure, static | RPG Saga|Online | Result: FRSESessionSearchResult (ref) | bool | The result can be joined now (same game version, a free place). |
URSESessionProvider
Module RSEOnline. The one interface between the session flow and an online service (D-135).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cancel Find Sessions (CancelFindSessions) | override | RPG Saga|Online|Provider | Stop a running search (no answer needed; a late ReportFindComplete is ignored). | ||
Find Sessions (FindSessions) | override | RPG Saga|Online|Provider | Request: FRSEProviderFindRequest (ref) | Search for sessions. Answer: ReportFindComplete. | |
Get Display Name (GetDisplayName) | override | RPG Saga|Online|Provider | FText | Short name for logs and the lobby screen ("LAN", "Steam"). | |
Get Local Player Name (GetLocalPlayerName) | override | RPG Saga|Online|Provider | FString | The local player's name on the service (empty = unknown). | |
Get Local Player Net Id (GetLocalPlayerNetId) | override | RPG Saga|Online|Provider | FString | The local player's id on the service (string form; empty when unknown). | |
Host Session (HostSession) | override | RPG Saga|Online|Provider | Request: FRSEProviderHostRequest (ref) | Create and advertise a session. Answer: ReportHostComplete. | |
Invite Friend (InviteFriend) | override | RPG Saga|Online|Provider | FriendNetId: FString | bool | Invite one friend to the current session. Returns false when the invitation could not be sent. |
Is Available (IsAvailable) | override | RPG Saga|Online|Provider | OutReason: FString (out) | bool | The service can host and find sessions now. OutReason explains why not (logs). |
Join Session (JoinSession) | override | RPG Saga|Online|Provider | ResultIndex: int32 | Join the search result ResultIndex (or the accepted invitation's index). Answer: ReportJoinComplete. | |
Leave Session (LeaveSession) | override | RPG Saga|Online|Provider | Leave (client) or end (host) the session. Answer: ReportLeaveComplete. | ||
Query Friends (QueryFriends) | override | RPG Saga|Online|Provider | Read the friends list. Answer: ReportFriends. | ||
Register Player (RegisterPlayer) | override | RPG Saga|Online|Provider | PlayerNetId: FStringbJoined: bool | Host: a player joined (bJoined) or left the game; services that track members register them. No answer. | |
Report Connection Lost (ReportConnectionLost) | function | RPG Saga|Online|Provider | Error: ERSESessionErrorDetail: FString | The service lost the session (not the game connection; the engine reports that one). | |
Report Find Complete (ReportFindComplete) | function | RPG Saga|Online|Provider | bSuccess: boolResults: TArray<FRSESessionSearchResult> (ref)Error: ERSESessionErrorDetail: FString | Report Find Complete | |
Report Friends (ReportFriends) | function | RPG Saga|Online|Provider | Friends: TArray<FRSEFriendInfo> (ref) | Report Friends | |
Report Host Complete (ReportHostComplete) | function | RPG Saga|Online|Provider | bSuccess: boolError: ERSESessionErrorDetail: FString | --- Answers to the manager --- | |
Report Invite Accepted (ReportInviteAccepted) | function | RPG Saga|Online|Provider | Result: FRSESessionSearchResult (ref) | The player accepted an invitation (overlay or launch command line); Result is joinable with JoinSession(Result.ResultIndex). | |
Report Join Complete (ReportJoinComplete) | function | RPG Saga|Online|Provider | bSuccess: boolConnectAddress: FStringError: ERSESessionErrorDetail: FString | ConnectAddress: what the client travels to (an IP:port, or the service's own address form). | |
Report Leave Complete (ReportLeaveComplete) | function | RPG Saga|Online|Provider | Report Leave Complete | ||
Show Invite UI (ShowInviteUI) | override | RPG Saga|Online|Provider | bool | Open the service's own invite overlay. Returns false when it has none. | |
Supports Invites (SupportsInvites) | override | RPG Saga|Online|Provider | bool | The service has friends and invitations. | |
Update Lobby (UpdateLobby) | override | RPG Saga|Online|Provider | Lobby: FRSELobbyData (ref) | Host: advertise the changed lobby (slots, characters, battle flag). No answer. |
URSESessionRulesSubsystem
Module RSECore. Owner of the session's rules of play (D-139).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Change Rules (CanChangeRules) | pure | RPG Saga|Rules | bool | Whether this machine's player may change the session rules now (single player and the host: yes). | |
Get Rule Value (GetRuleValue) | pure | RPG Saga|Rules | OptionId: FNameOutValue: int32 (out) | bool | The session's value of a rule; false when none was published yet (then the machine's own setting holds). |
Is Session Rule (IsSessionRule) | pure, static | RPG Saga|Rules | OptionId: FName | bool | OptionId is a session rule (Rules Profiles -> Co-op -> Session Rule Options). |
On Session Rule Changed (BP_OnRuleChanged) | event | RPG Saga|Rules | OptionId: FNameValue: int32 |
URSESessionSubsystem
Module RSEOnline. Online sessions for Blueprints and the game (D-135, docs/product/online-sessions.md): Host / Find / Join / Leave, invitations, the lobby (slots, characters, join-in-progress admission) and reconnecting, with the provider chosen in Project Settings -> RPG Saga Engine -> Online.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can Invite (CanInvite) | pure | RPG Saga|Online | bool | Invitations are possible now (the service has them and a session is running). | |
Close Lobby Screen (CloseLobbyScreen) | function | RPG Saga|Online | Closes the lobby screen when it is open. | ||
Find Sessions (FindSessions) | function | RPG Saga|Online | bool | Searches for sessions. OnSessionsFound brings the results (also when there are none). | |
Get Last Error (GetLastError) | pure | RPG Saga|Online | FRSESessionErrorInfo | Get Last Error | |
Get Lobby (GetLobby) | pure | RPG Saga|Online | FRSELobbyData | Host: the live lobby. Client: the lobby the host advertised when it was joined. | |
Get Local Admission (GetLocalAdmission) | pure | RPG Saga|Online | ERSEJoinAdmission | Get Local Admission | |
Get Preferred Character (GetPreferredCharacter) | pure | RPG Saga|Online | FPrimaryAssetId | Get Preferred Character | |
Get Provider Name (GetProviderName) | pure | RPG Saga|Online | FText | The provider's name ("LAN", "Steam"). | |
Get Search Results (GetSearchResults) | pure | RPG Saga|Online | TArray<FRSESessionSearchResult> | Get Search Results | |
Get Selectable Characters (GetSelectableCharacters) | pure | RPG Saga|Online | TArray<FPrimaryAssetId> | The characters players can choose (main party members). | |
Get Session Role (GetSessionRole) | pure | RPG Saga|Online | ERSESessionRole | Get Session Role | |
Get Session State (GetSessionState) | pure | RPG Saga|Online | ERSESessionState | --- State --- | |
Host Session (HostSession) | function | RPG Saga|Online | Params: FRSEHostSessionParams (ref) | bool | Hosts a session with the settings of Project Settings -> RPG Saga Engine -> Online (Params override some). On success the host listens on the current map (or opens Host Map) and OnStateChanged reports Hosting. Returns false when refused at once (busy, already in a session, service unavailable); OnSessionError tells why. |
Invite Friend (InviteFriend) | function | RPG Saga|Online | FriendNetId: FString | bool | Invites one friend (its Net Id from the friends list) to the current session. |
Is Host (IsHost) | pure | RPG Saga|Online | bool | This machine hosts the session. | |
Is in Session (IsInSession) | pure | RPG Saga|Online | bool | Hosting, connected, or reconnecting to a session. | |
Is Multiplayer (IsMultiplayer) | pure | RPG Saga|Online | bool | The session has more than one connected player (co-op rules apply: no tutorials, encounters in live battles). | |
Is Using Fallback Provider (IsUsingFallbackProvider) | pure | RPG Saga|Online | bool | The chosen provider was unavailable and LAN is used instead (Online -> Fallback To LAN). | |
Join Session (JoinSession) | function | RPG Saga|Online | ResultIndex: int32 | bool | Joins a search result (its Result Index) and travels to the host. OnStateChanged reports Connected on arrival. |
Leave Session (LeaveSession) | function | RPG Saga|Online | bool | Leaves (client) or ends (host) the session; also cancels a search or a reconnect. | |
On Friends Received (OnFriendsReceived) | event | RPG Saga|Online | Friends: TArray<FRSEFriendInfo> (ref) | ||
On Invite Accepted (OnInviteAccepted) | event | RPG Saga|Online | Invite: FRSESessionSearchResult (ref) | The player accepted an invitation; the subsystem joins it (leaving the current session first). | |
On Lobby Changed (OnLobbyChanged) | event | RPG Saga|Online | Lobby: FRSELobbyData (ref) | ||
On Local Admission Changed (OnLocalAdmissionChanged) | event | RPG Saga|Online | Admission: ERSEJoinAdmission | Client: the host's admission for this player changed (SetLocalAdmission). | |
On Player Admission Changed (OnPlayerAdmissionChanged) | event | RPG Saga|Online | Slot: FRSELobbySlot (ref)Admission: ERSEJoinAdmission | Host: a spectating player may play now (the battle ended). The co-op rules give them their character here. | |
On Player Joined (OnPlayerJoined) | event | RPG Saga|Online | Slot: FRSELobbySlot (ref)Admission: ERSEJoinAdmission | Host: a player entered, with their slot and what they may do (play, or spectate until the battle ends). | |
On Player Left (OnPlayerLeft) | event | RPG Saga|Online | Slot: FRSELobbySlot (ref) | Host: a player left (their slot is kept for a reconnect when Online -> Keep Slots For Reconnect is on). | |
On Session Error (OnSessionError) | event | RPG Saga|Online | Error: FRSESessionErrorInfo (ref) | ||
On Sessions Found (OnSessionsFound) | event | RPG Saga|Online | Results: TArray<FRSESessionSearchResult> (ref) | ||
On State Changed (OnStateChanged) | event | RPG Saga|Online | NewState: ERSESessionStateOldState: ERSESessionState | --- Events --- | |
Open Lobby Screen (OpenLobbyScreen) | function | RPG Saga|Online | Player: APlayerController* | URSELobbyViewModel* | Opens the lobby screen (Online -> Lobby Widget Class, else the built-in screen) for Player. |
Query Friends (QueryFriends) | function | RPG Saga|Online | bool | Reads the friends list. OnFriendsReceived brings it. | |
Set Battle in Progress (SetBattleInProgress) | function | RPG Saga|Online | bInProgress: bool | Host: a battle started or ended. Joiners during a battle follow Online -> Join In Progress Policy; when the battle ends, spectating players get OnPlayerAdmissionChanged (Play). Once called, the game owns the flag; until then it follows the party's battle flag at each join. | |
Set Host on Next Map (SetHostOnNextMap) | function | RPG Saga|Online | bHost: bool | The next game map this machine opens hosts a session on arrival (the main menu's Host Game, D-142). | |
Set Local Admission (SetLocalAdmission) | function | RPG Saga|Online | Admission: ERSEJoinAdmission | Client: what the host allows this player now (the co-op transport sets it from the host's answer). | |
Set Preferred Character (SetPreferredCharacter) | function | RPG Saga|Online | Character: FPrimaryAssetId | bool | The party character the local player wants to play. The host's slot takes it at once (when free); a client sends it when joining and the host gives it when free (else another free character). |
Set Slot Character (SetSlotCharacter) | function | RPG Saga|Online | SlotIndex: int32Character: FPrimaryAssetId | bool | Host: gives a lobby slot another character. Returns false when taken or not selectable. |
Show Invite UI (ShowInviteUI) | function | RPG Saga|Online | bool | Opens the online service's invite overlay (Steam, EOS). | |
Will Host on Next Map (WillHostOnNextMap) | pure | RPG Saga|Online | bool | Will Host on Next Map |
URSEShopViewModel
Module RSE. The shop (D-042): buy / sell tabs, item categories, the list with prices and stock, the quantity step, the party's money and an equipment comparison per member.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin Quantity (BeginQuantity) | function | RPG Saga|UI|Shop | Opens the quantity step for the selected row (or says why it cannot be bought / sold). | ||
Buy (Buy) | function | RPG Saga|UI|Shop | RowIndex: int32Count: int32 | bool | Buys Count of a row of the Buy tab directly. Returns true when bought. |
Cancel Quantity (CancelQuantity) | function | RPG Saga|UI|Shop | Cancel Quantity | ||
Confirm Quantity (ConfirmQuantity) | function | RPG Saga|UI|Shop | Buys / sells Quantity of the selected row. | ||
Get Selected Row (GetSelectedRow) | pure | RPG Saga|UI|Shop | OutRow: FRSEShopRowView (out) | bool | Get Selected Row |
Leave (Leave) | function | RPG Saga|UI|Shop | Leaves the shop. | ||
Move Selection (MoveSelection) | function | RPG Saga|UI|Shop | Direction: int32 | Move Selection | |
Refresh (Refresh) | function | RPG Saga|UI|Shop | Rebuilds the data from the party and the shop (after outside changes). | ||
Select (Select) | function | RPG Saga|UI|Shop | Index: int32 | Puts the cursor on a row (closes the quantity step). | |
Sell (Sell) | function | RPG Saga|UI|Shop | RowIndex: int32Count: int32 | bool | Sells Count of a row of the Sell tab directly. Returns true when sold. |
Set Category (SetCategory) | function | RPG Saga|UI|Shop | Index: int32 | Set Category | |
Set Mode (SetMode) | function | RPG Saga|UI|Shop | InMode: ERSEShopMode | --- Actions --- | |
Set Quantity (SetQuantity) | function | RPG Saga|UI|Shop | InQuantity: int32 | Set Quantity | |
Step Category (StepCategory) | function | RPG Saga|UI|Shop | Direction: int32 | Step Category | |
Step Quantity (StepQuantity) | function | RPG Saga|UI|Shop | Delta: int32 | Changes the quantity: single steps wrap (1 <-> max), big steps clamp. | |
Switch Mode (SwitchMode) | function | RPG Saga|UI|Shop | Switch Mode |
URSESpeakerComponent
Module RSE. Binds an actor to a dialog speaker (dialog-proposal.md 6.6): camera cues frame it, emotes play on it, barks float above it.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Speaker Tag (GetSpeakerTag) | pure | RPG Saga|Dialog | FGameplayTag | SpeakerTag, or the Speaker asset's tag. |
URSEStatSourceLibrary
Module RSECore. The registered stat sources (D-169).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Gather Stats (GatherStats) | function, static | RPG Saga|Characters|Stat Source | Spawn: FRSEBattleUnitSpawn (ref)Battle: URSEBattle*UnitId: int32OutStats: FRSEExternalUnitStats (out) | URSEUnitStatSource* | The stats the registered sources supply for Spawn (the first source, by Priority, that applies). Used by the battle when it builds a unit; Blueprint may call it to preview. Returns the source used, or null when none applies. |
Get Stat Sources (GetStatSources) | pure, static | RPG Saga|Characters|Stat Source | TArray<URSEUnitStatSource*> | The registered stat sources still alive, highest Priority first. | |
Has Stat Sources (HasStatSources) | pure, static | RPG Saga|Characters|Stat Source | bool | Whether any stat source is registered (battles skip the lookup otherwise). | |
Register Stat Source (RegisterStatSource) | function, static | RPG Saga|Characters|Stat Source | Source: URSEUnitStatSource* | Adds a stat source for every battle built from now on (until unregistered or destroyed). Registering twice does nothing. | |
Unregister Stat Source (UnregisterStatSource) | function, static | RPG Saga|Characters|Stat Source | Source: URSEUnitStatSource* | bool | Removes a stat source. Returns true when it was registered. |
URSEStatusBehavior
Module RSECore. What a status does to how its bearer acts (D-167): control effects such as Confuse, Charm and Berserk.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Allows Ability (AllowsAbility) | override | RPG Saga|Status Behavior | Ability: URSEAbilityData* | bool | Whether the unit may still use Ability (abilities and consumables alike; a consumable passes its Use Ability). Default: yes. |
Can Target Self (CanTargetSelf) | override | RPG Saga|Status Behavior | bool | Whether Redirect Target may send the action back at its own user. | |
Get Control Team (GetControlTeam) | override | RPG Saga|Status Behavior | Battle: URSEBattle*UnitId: int32SourceId: int32 | FGameplayTag | The team the unit fights for while the status lasts (Team.*). Empty = its own. SourceId = the unit that applied the status (INDEX_NONE if none). |
On Turn Started (OnTurnStarted) | override | RPG Saga|Status Behavior | Battle: URSEBattle*UnitId: int32 | The bearer's turn starts (after its status ticks): custom behaviors may act on the battle here. | |
Redirect Target (RedirectTarget) | override | RPG Saga|Status Behavior | Battle: URSEBattle*UnitId: int32Ability: URSEAbilityData*TargetId: int32Candidates: TArray<int32> (ref) | int32 | Where a single-target action of the unit really goes. Candidates = the units the action could reach in this battle mode (any side, the user excluded unless Self Allowed). Return TargetId to keep it. Use the battle's Roll Int / Roll Percent. |
Redirects Targets (RedirectsTargets) | override | RPG Saga|Status Behavior | bool | Whether this behavior ever redirects targets (the battle skips building candidates otherwise). |
URSEStealthAmbushSubsystem
Module RSE. Stealth ambushes on the live map (D-151): the detection shapes on the ground (ARSEStealthOverlay, local), the takedown and ambush prompts, the Strike and Place keys, the takedowns, placing the members before an ambush, the alarm during the ambush battle and the return to stealth after a silent one.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Is Placed (IsPlaced) | pure | RPG Saga|Stealth | Pawn: APawn* | bool | Whether Pawn holds a spot for an ambush. |
Request Place (RequestPlace) | function | RPG Saga|Stealth | Pawn: APawn* | bool | The player's Place (input, scripts): sneaking = hold this spot and take the next member; else regroup. |
Request Strike (RequestStrike) | function | RPG Saga|Stealth | Pawn: APawn* | bool | The player's Strike (input, scripts): sends the Stealth Strike command for Pawn. Returns true when sent or applied. |
Was Last Battle Silent (WasLastBattleSilent) | pure | RPG Saga|Stealth | bool | The last battle ended silently (the party went back to sneaking). |
URSEStealthRules
Module RSECore. D-151: the stealth rules a game may change (Stealth -> Rules Class): takedowns, the noise of battle actions, who answers an alarm, the return to stealth.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Answers Alarm (AnswersAlarm) | override | RPG Saga|Stealth | Source: FVector (ref)Radius: floatListener: FRSEAlarmListener (ref) | bool | Whether Listener answers an alarm from Source reaching Radius. Default: inside the radius and able to answer. |
Evaluate Takedown (EvaluateTakedown) | override | RPG Saga|Stealth | Input: FRSETakedownInput (ref) | FRSETakedownResult | How a takedown goes. Default: RSETakedown::Evaluate. |
Get Action Noise Radius (GetActionNoiseRadius) | override | RPG Saga|Stealth | Ability: URSEAbilityData*bUserIsSilent: bool | float | How far an action is heard in an ambush battle (cm; 0 = silent). Default: RSEAmbush::GetActionNoiseRadius. |
Should Return to Stealth (ShouldReturnToStealth) | override | RPG Saga|Stealth | Tracker: FRSEAmbushTracker (ref)Outcome: ERSEBattleOutcomebAnyOutsideAware: bool | bool | Whether the party goes back to sneaking after the battle. Default: RSEAmbush::ShouldReturnToStealth. |
URSETacticsHUDViewModel
Module RSE. The Tactics battle HUD (D-021, D-052): turn order and objective, active unit panel, command menu, attack forecast (D-033), path cost label, deployment panel and start confirmation (D-018), log, banner, key prompts.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Answer Start Confirm (AnswerStartConfirm) | function | RPG Saga|UI|Battle HUD | bStart: bool | Answers the start confirmation (true = start now). | |
Choose Command (ChooseCommand) | function | RPG Saga|UI|Battle HUD | Index: int32 | Runs command Index (like pressing Confirm on it). | |
Hover Command (HoverCommand) | function | RPG Saga|UI|Battle HUD | Index: int32 | Moves the command cursor (mouse hover). | |
Hover Start Confirm (HoverStartConfirm) | function | RPG Saga|UI|Battle HUD | Choice: int32 | Hover Start Confirm | |
Run Deploy Action (RunDeployAction) | function | RPG Saga|UI|Battle HUD | Action: ERSEDeployAction | Run Deploy Action | |
Select Roster Entry (SelectRosterEntry) | function | RPG Saga|UI|Battle HUD | Index: int32 | Select Roster Entry |
URSETacticsInputHost
Module RSE. RSE Tactics Input Host
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Host ATBCommands (GetHostATBCommands) | override | RPG Saga|Battle | URSEATBCommandComponent* | The classic (ATB) battle commands of this controller (null = none). | |
Get Host Target Preview (GetHostTargetPreview) | override | RPG Saga|Battle | ARSETargetPreview* | The target preview actor (rings and areas under the units), or null. | |
Get Tactics Director (GetTacticsDirector) | override | RPG Saga|Battle | ARSETacticsBattleDirector* | The Tactics battle this controller plays now (null = none). | |
Is Host Party Menu Open (IsHostPartyMenuOpen) | override | RPG Saga|Battle | bool | The party menu is open and reads this controller's (forwarded) input. | |
Reset Host for New Encounter (ResetHostForNewEncounter) | override | RPG Saga|Battle | A retried battle starts over: drop the selection, the previews and the menus. | ||
Set Tactics Director (SetTacticsDirector) | override | RPG Saga|Battle | Director: ARSETacticsBattleDirector* | bool | Switches to Director's Tactics battle. Returns false while another battle of this controller still runs. |
URSETeacherViewModel
Module RSE. The teacher screen (D-144): the lessons (price, requirements), who may learn the selected one, a respec row when the teacher offers it, a Yes / No before paying.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cancel Pending (CancelPending) | function | RPG Saga|UI|Growth | Cancel Pending | ||
Confirm Pending (ConfirmPending) | function | RPG Saga|UI|Growth | bool | Confirm Pending | |
Get Row Count (GetRowCount) | pure | RPG Saga|UI|Growth | int32 | Get Row Count | |
Get Teacher (GetTeacher) | pure | RPG Saga|UI|Growth | URSETeacherData* | Get Teacher | |
Is Respec Row (IsRespecRow) | pure | RPG Saga|UI|Growth | bool | The respec row is under the cursor. | |
Refresh (Refresh) | function | RPG Saga|UI|Growth | Refresh | ||
Request Learn (RequestLearn) | function | RPG Saga|UI|Growth | bool | Asks Yes / No for the selected lesson (or respec) for the selected learner. | |
Select Learner (SelectLearner) | function | RPG Saga|UI|Growth | Index: int32 | Select Learner | |
Select Row (SelectRow) | function | RPG Saga|UI|Growth | Row: int32 | Select Row |
URSETimeControlSubsystem
Module RSE. The only place that pauses the world or changes its time dilation (D-134).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Are Tutorials Allowed (AreTutorialsAllowed) | pure | RPG Saga|Players|Time | bool | Tutorial screens may show now (the policy). | |
Get Requested Time Dilation (GetRequestedTimeDilation) | pure | RPG Saga|Players|Time | float | The dilation the requests ask for now (1 without requests). | |
Is Dilation Held By (IsDilationHeldBy) | pure | RPG Saga|Players|Time | Requester: UObject* | bool | Is Dilation Held By |
Is Pause Held By (IsPauseHeldBy) | pure | RPG Saga|Players|Time | Requester: UObject* | bool | Is Pause Held By |
Release Pause (ReleasePause) | function | RPG Saga|Players|Time | Requester: UObject* | Drops Requester's pause; the world unpauses when no holder is left. | |
Release Time Dilation (ReleaseTimeDilation) | function | RPG Saga|Players|Time | Requester: UObject* | Drops Requester's dilation request. | |
Request Pause (RequestPause) | function | RPG Saga|Players|Time | Requester: UObject*ForPlayer: APlayerController* = None | bool | Pauses the world for Requester (ForPlayer: whose screen asks, for the policy). Returns true when Requester now holds the pause; false when the policy refuses or the world was already paused by someone else (then nothing to release). |
Request Time Dilation (RequestTimeDilation) | function | RPG Saga|Players|Time | Requester: UObject*Dilation: float | bool | Sets Requester's world time dilation (clamped to 0.0001..1; the smallest request wins). Returns false when the policy refuses (nothing changes: dilate your own actors with CustomTimeDilation instead, or skip the effect). |
URSETimePolicy
Module RSE. Decides who may stop or slow the whole world (D-134, docs/design/networking.md §3.9).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply World Pause (ApplyWorldPause) | override | RPG Saga|Players|Time | World: UWorld*bPaused: bool | bool | Pauses or unpauses the world once the request is allowed (default: the engine's game pause). Returns true on success. |
Are Tutorials Allowed (AreTutorialsAllowed) | override | RPG Saga|Players|Time | World: UWorld* | bool | May tutorial screens show at all? |
Can Dilate World (CanDilateWorld) | override | RPG Saga|Players|Time | World: UWorld*Requester: UObject* | bool | May Requester (hit-stop, block slow motion, the live battle's entry slow motion) change the world's time dilation? |
Can Pause World (CanPauseWorld) | override | RPG Saga|Players|Time | World: UWorld*Requester: UObject*ForPlayer: APlayerController* | bool | May Requester (a tutorial screen, a pause menu) pause the whole world for ForPlayer? |
Is World Paused (IsWorldPaused) | override | RPG Saga|Players|Time | World: UWorld* | bool | The world is paused now (default: the engine's game pause). |
URSETimeSubsystem
Module RSECore. The game clock and the weather (D-101, docs/design/time-weather.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Advance Time (AdvanceTime) | function | RPG Saga|Time | Hours: float | Moves the clock forward by Hours at once (a wait, a journey). | |
Get Behavior Modifiers (GetBehaviorModifiers) | pure | RPG Saga|Time | EnemyTags: FGameplayTagContainer (ref) | FRSETimeBehaviorModifiers | Multipliers for a roaming enemy now (Time & Weather Rules of the game's rules profile): every rule whose phases, weather and target tags match multiplies in. EnemyTags: the enemy's tags (character / behavior), for rules that target some enemies only. The roaming code multiplies its detection, chase and density by these. |
Get Clock Pause Reasons (GetClockPauseReasons) | pure | RPG Saga|Time | TArray<FName> | Why the clock is not moving (empty = it is): Stopped, Disabled, Battle, Dialog, Cutscene, PlayTime, Level, or pushed reasons. | |
Get Day (GetDay) | pure | RPG Saga|Time | int32 | --- Clock: queries --- | |
Get Day Text (GetDayText) | pure | RPG Saga|Time | FText | "Day 3" in the settings' format. | |
Get Environment Tags (GetEnvironmentTags) | pure | RPG Saga|Time | FGameplayTagContainer | Phase of day + weather, as tags (battles take these as their environment). | |
Get Game Hours Per Real Second (GetGameHoursPerRealSecond) | pure | RPG Saga|Time | float | Game hours per real second at the current speed. | |
Get Game Time (GetGameTime) | pure | RPG Saga|Time | FRSEGameTime | Get Game Time | |
Get Hour (GetHour) | pure | RPG Saga|Time | float | Hour of the day with fractions (13.5 = 13:30). | |
Get Hour and Minute (GetHourAndMinute) | pure | RPG Saga|Time | Hour: int32 (out)Minute: int32 (out) | The whole hour (0..23) and the minute (0..59). | |
Get Phase (GetPhase) | pure | RPG Saga|Time | FGameplayTag | The phase of the day now (Time.Phase.Dawn / Day / Dusk / Night, or the project's own). | |
Get Phase Display Name (GetPhaseDisplayName) | pure | RPG Saga|Time | FText | The phase's name from the settings. | |
Get Previous Weather (GetPreviousWeather) | pure | RPG Saga|Weather | FGameplayTag | The weather fading out during a transition (empty when settled). | |
Get Season (GetSeason) | pure | RPG Saga|Time | FGameplayTag | The season now (empty without seasons). | |
Get Time Scale (GetTimeScale) | pure | RPG Saga|Time | float | The story's clock speed (1 = normal). | |
Get Time Text (GetTimeText) | pure | RPG Saga|Time | FText | "14:05" (or "2:05 PM") in the settings' format. | |
Get Weather (GetWeather) | pure | RPG Saga|Weather | FGameplayTag | The weather now (during a transition, the incoming one). | |
Get Weather Blend (GetWeatherBlend) | pure | RPG Saga|Weather | float | Transition progress: 0 = all the previous weather, 1 = settled. | |
Get Weather Display Name (GetWeatherDisplayName) | pure | RPG Saga|Weather | FText | The weather's name (its type's Display Name). | |
Get Weather Table (GetWeatherTable) | pure | RPG Saga|Weather | URSEWeatherTableData* | Get Weather Table | |
Get Weather Type (GetWeatherType) | pure | RPG Saga|Weather | Weather: FGameplayTag | URSEWeatherTypeData* | The type data of a weather tag (null = not listed in the Weather settings). |
Is Clock Running (IsClockRunning) | pure | RPG Saga|Time | bool | The clock is moving now (enabled, not stopped by the story, not paused by a battle, dialog, scene, menu or level). | |
Is Phase (IsPhase) | pure | RPG Saga|Time | Phase: FGameplayTag | bool | The phase is Phase (or a child of it). |
Is Weather (IsWeather) | pure | RPG Saga|Weather | Weather: FGameplayTag | bool | The weather is Weather or a kind of it (Weather.Rain holds in a storm). |
Is Weather Locked (IsWeatherLocked) | pure | RPG Saga|Weather | bool | Is Weather Locked | |
Lock Weather (LockWeather) | function | RPG Saga|Weather | Weather: FGameplayTagTransitionSeconds: float = -1.000000 | Forces the weather: no rolls until Unlock (saved). Weather empty = keep the current one. | |
On Day Changed (OnDayChanged) | event | RPG Saga|Time | Day: int32 | ||
On Hour Changed (OnHourChanged) | event | RPG Saga|Time | Day: int32Hour: int32 | --- Events --- | |
On Phase Changed (OnPhaseChanged) | event | RPG Saga|Time | OldPhase: FGameplayTagNewPhase: FGameplayTag | ||
On Time Skipped (OnTimeSkipped) | event | RPG Saga|Time | From: FRSEGameTimeTo: FRSEGameTime | ||
On Time State Changed (OnTimeStateChanged) | event | RPG Saga|Time | Loaded, new game, pause / speed / lock changed. | ||
On Weather Changed (OnWeatherChanged) | event | RPG Saga|Weather | OldWeather: FGameplayTagNewWeather: FGameplayTagTransitionSeconds: float | ||
Pop Clock Pause (PopClockPause) | function | RPG Saga|Time | Reason: FName | Pop Clock Pause | |
Push Clock Pause (PushClockPause) | function | RPG Saga|Time | Reason: FName | Pauses the clock for Reason until the matching Pop (reasons are counted; not saved). | |
Query Schedule (QuerySchedule) | pure | RPG Saga|Time | Schedule: FRSETimeSchedule (ref)Activity: FGameplayTag (out)Location: FName (out)EntryIndex: int32 (out) | bool | What an NPC does now: the first schedule entry that holds (hours or phase, weather, story conditions). Returns false when none does (use the schedule's defaults, filled in Activity / Location). |
Resolve Encounter Pool (ResolveEncounterPool) | pure | RPG Saga|Time | Pool: URSEEncounterPoolData* | URSEEncounterPoolData* | The encounter pool to use instead of Pool now (night creatures...): Pool when no swap applies. |
Roll Weather (RollWeather) | function | RPG Saga|Weather | bInstant: bool = false | Rolls the next weather from the table now (unless locked). | |
Set Clock Stopped (SetClockStopped) | function | RPG Saga|Time | bStopped: bool | Stops or starts the clock for the story (saved: stays stopped until started). | |
Set Day (SetDay) | function | RPG Saga|Time | Day: int32 | Sets the day number (the hour stays). | |
Set Time (SetTime) | function | RPG Saga|Time | Hour: floatMode: ERSESetTimeMode = NextOccurrence | Moves the clock to Hour (NextOccurrence: forward to the next time it shows Hour; SameDay: that hour today). | |
Set Time Scale (SetTimeScale) | function | RPG Saga|Time | Scale: float | The story's clock speed (0.5 = half speed, 2 = double). Saved. | |
Set Weather (SetWeather) | function | RPG Saga|Weather | Weather: FGameplayTagTransitionSeconds: float = -1.000000DurationHours: float = 0.000000 | bool | Changes the weather. TransitionSeconds < 0 = the weather type's; DurationHours 0 = rolled from the type / table. Returns false when the weather is not a listed type. |
Set Weather Table (SetWeatherTable) | function | RPG Saga|Weather | Table: URSEWeatherTableData* | The weather table of the current level / zone (null = the settings' default). Levels and weather volumes set it. | |
Unlock Weather (UnlockWeather) | function | RPG Saga|Weather | Unlock Weather |
URSETouchActionResolver
Module RSE, display name Custom (Blueprint). Optional custom resolution of a touch action (Blueprint or C++): replaces the source of an action reference.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Resolve Action (ResolveAction) | override | RPG Saga|Touch | Controller: APlayerController* | UInputAction* | The input action for Controller now (null: the control does nothing). |
URSETouchInputSubsystem
Module RSE. "RSE Touch Input" (D-180, docs/product/mobile.md): one local player's touch controls.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Clear Context Override (ClearContextOverride) | function | RPG Saga|Touch | Goes back to the context the game is in (Set Touch Context Override undone). | ||
Get Active Context (GetActiveContext) | pure | RPG Saga|Touch | ERSETouchContext | The moment of play the controls are for now. | |
Get Active Layout (GetActiveLayout) | pure | RPG Saga|Touch | URSETouchLayout* | The layout in use now (null: no controls, no gestures). | |
Get Control Opacity (GetControlOpacity) | pure, static | RPG Saga|Touch | float | The player's Touch Controls Opacity (multiplies the rest opacity of the controls; Touch -> Control Opacity Range). | |
Get Control Scale (GetControlScale) | pure, static | RPG Saga|Touch | float | The player's Touch Controls Size (multiplies control sizes; Touch -> Control Scale Range). | |
Get Controls Widget (GetControlsWidget) | pure | RPG Saga|Touch | URSETouchControlsWidget* | The widget drawing the controls (null until the first touch layout shows). | |
Get Touch Input (GetFor) | pure, static | RPG Saga|Touch | Controller: APlayerController* | URSETouchInputSubsystem* | The touch subsystem of Controller's local player (null for remote controllers). |
Inject Action (InjectAction) | function | RPG Saga|Touch | Action: UInputAction*Value: FVector | bool | Presses Action once with Value (converted to the action's value type). Returns false without an Enhanced Input subsystem. |
Is Emulating Touch (IsEmulatingTouch) | pure, static | RPG Saga|Touch | bool | The mouse acts as a finger now (Set Emulate Touch, RSE.Input.Touch.Emulate). | |
Is Left Handed (IsLeftHanded) | pure, static | RPG Saga|Touch | bool | The controls are mirrored for left-handed players (anchors, offsets and gesture regions flip left / right). | |
Is Moving to Tap (IsMovingToTap) | pure | RPG Saga|Touch | bool | Tap-to-move is walking the explorer now. | |
Is Touch Available (IsTouchAvailable) | pure, static | RPG Saga|Touch | bool | Touch is a device here: a phone, the touch device in use, emulation or the phone simulation (the options show the touch rows). | |
On Context Changed (OnContextChanged) | event | RPG Saga|Touch | Context: ERSETouchContext | The context changed (Blueprint reactions, tutorials). | |
Press Control (PressControl) | function | RPG Saga|Touch | ControlId: FNamebPressed: bool | bool | Presses (or releases) a control of the active layout as a finger would. Returns false when the layout has no such control. |
Refresh Context (RefreshContext) | function | RPG Saga|Touch | Reads the context again and applies it (layout, widget, hints). | ||
Resolve Context (ResolveContext) | pure | RPG Saga|Touch | ERSETouchContext | The context the game is in now (what the poll finds): an open screen, the battle kind, exploration. | |
Select Radial Item (SelectRadialItem) | function | RPG Saga|Touch | ControlId: FNameItem: int32 | bool | Picks an item of a radial control (presses its action once). |
Set Context Override (SetContextOverride) | function | RPG Saga|Touch | Context: ERSETouchContext | Forces a context (a scripted scene, a minigame of your own); Clear Touch Context Override goes back to the game's. | |
Set Control Axis (SetControlAxis) | function | RPG Saga|Touch | ControlId: FNameAxis: FVector2D | bool | Moves a joystick control (X right, Y up, -1..1; zero releases it). Cancels tap-to-move. |
Set Emulate Touch (SetEmulateTouch) | function, static | RPG Saga|Touch | bEmulate: bool | Mouse as a finger on PC (Slate's fake touch events). | |
Set Layout Override (SetLayoutOverride) | function | RPG Saga|Touch | Context: ERSETouchContextLayout: URSETouchLayout* | Uses Layout for Context instead of the project's (null clears). | |
Should Show Controls (ShouldShowControls) | pure | RPG Saga|Touch | bool | The on-screen controls should show now (Touch -> Show Controls and the device in use). | |
Start Move To (StartMoveTo) | function | RPG Saga|Touch | WorldPoint: FVector | Walks the explorer to WorldPoint through the Move action (what a Move To tap does). | |
Stop Move To (StopMoveTo) | function | RPG Saga|Touch | Stops tap-to-move (the Move action is released). |
URSETravelSubsystem
Module RSE. Zone navigation and fast travel in the world (D-044, docs/design/zones-travel.md).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cancel Group Travel (CancelGroupTravel) | function | RPG Saga|Travel | Stops the group travel countdown (the host changed their mind, a battle started). | ||
Close World Map (CloseWorldMap) | function | RPG Saga|Travel | Closes the world map screen. | ||
Get Areas (GetAreasBP) | function | RPG Saga|Travel | TArray<URSEAreaData*> | Every area the game knows (Asset Manager). | |
Get Block Text (GetBlockText) | pure, static | RPG Saga|Travel | Block: ERSEFastTravelBlock | FText | Player-facing text of a block (empty for None). |
Get Current Area (GetCurrentArea) | pure | RPG Saga|Travel | URSEAreaData* | Area the player is in now (URSETravelWorldSubsystem of the game world), or null. | |
Get Fast Travel Block (GetFastTravelBlock) | pure | RPG Saga|Travel | ERSEFastTravelBlock | Whether the world map can be used now, and why not. | |
Get Group Travel Seconds Left (GetGroupTravelSecondsLeft) | pure | RPG Saga|Travel | float | Seconds left of the group travel countdown (0 when none). | |
Get Travel Destinations (GetDestinationsBP) | function | RPG Saga|Travel | TArray<URSETravelDestinationData*> | Every fast-travel place the game knows (Asset Manager). | |
Is Group Travel Counting Down (IsGroupTravelCountingDown) | pure | RPG Saga|Travel | bool | The host's group travel is counting down. | |
Is Traveling (IsTraveling) | pure | RPG Saga|Travel | bool | A travel is queued, counting down (co-op), fading out or loading. | |
Is World Map Open (IsWorldMapOpen) | pure | RPG Saga|Travel | bool | The world map screen is open. | |
On Group Travel Countdown (BP_OnGroupTravelCountdown) | event | RPG Saga|Travel | Request: FRSETravelRequest (ref)Seconds: float | ||
On Group Travel Requested (BP_OnGroupTravelRequested) | event | RPG Saga|Travel | Request: FRSETravelRequest (ref)Guest: FRSEPlayerId | ||
Open World Map (OpenWorldMapBP) | function | RPG Saga|Travel | OutReason: FText (out) | bool | Opens the world map screen (after a running dialog). Returns false when blocked; OutReason says why. |
Set Group Travel Policy (SetGroupTravelPolicy) | function | RPG Saga|Travel | Policy: URSEGroupTravelPolicy* | Replaces the rule at run time; null = the settings' class. | |
Travel To (TravelTo) | function | RPG Saga|Travel | Request: FRSETravelRequest (ref) | bool | Starts a travel. Waits for a running dialog to close first (an exit that asks, a story effect). Refused while another travel runs or without a map. Returns true when the travel was started or queued. |
Travel to Destination (TravelToDestination) | function | RPG Saga|Travel | Destination: URSETravelDestinationData* | bool | Fast travel to a world map place (must be Available). |
URSETravelWorldSubsystem
Module RSE. The area side of a game map (D-044): which area the player is in (an ARSEAreaVolume with an Area, else the map's area), its discovery (narrative state), its no-save restriction (a NoSaveZone block, like ARSENoSaveVolume), and the arrival presentation: the fade-in after a travel and the area banner.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Current Area (GetCurrentArea) | pure | RPG Saga|Travel | URSEAreaData* | Area the player is in (null = the map has none). | |
Get Map Area (GetMapArea) | pure | RPG Saga|Travel | URSEAreaData* | The map-level area. | |
Show Banner (ShowBanner) | function | RPG Saga|Travel | Area: URSEAreaData* | Shows Area's banner now (dev command, scripted moments). |
URSETraversalComponent
Module RSE. Plays a body's traversal (D-121, docs/design/traversal.md): holds its FRSETraversalState (small, serializable; a replicated property later, D-124) and derives the position and the animation from it, never from input.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get State (GetState) | pure | RPG Saga|Traversal | FRSETraversalState | The current state (None when not traversing). | |
Is on Link (IsOnLink) | pure | RPG Saga|Traversal | bool | Whether the body is on a link now. | |
Is Swimming (IsSwimming) | pure | RPG Saga|Traversal | bool | Whether the body swims now. |
URSETraversalKindData
Module RSECore. A kind of traversal (D-121, docs/design/traversal.md): what every ladder, rope, swim area or jump of that kind shares.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Can be Used By (CanBeUsedBy) | override | RPG Saga|Traversal | Tags: FGameplayTagContainer (ref) | bool | Whether a unit or character with these tags may use it (Required / Blocked Tags by default). |
Get Prompt (GetPrompt) | pure | RPG Saga|Traversal | Direction: ERSETraversalDirection | FText | The prompt for a direction. |
URSETraversalLinkKindData
Module RSECore, display name Traversal Link Kind. A link between two standable points (D-121): ladders, ropes, jumps across gaps, vaults over low ledges, controlled drops, zip-lines, rope swings, rope bridges.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Anims (GetAnims) | pure | RPG Saga|Traversal | Direction: ERSETraversalDirection | FRSETraversalLinkAnims | The animation slots for a direction (backward falls back slot by slot to forward). |
Get Battle Cost (GetBattleCost) | override | RPG Saga|Traversal | A: FVector (ref)B: FVector (ref)CostMultiplierOverride: float | float | Movement (meters) a battle unit pays to go from A to B (battle space). Default: 3D length x multiplier + extra, never below the ground distance. |
Get Motion Seconds (GetMotionSeconds) | pure | RPG Saga|Traversal | MotionLengthMeters: float | float | Seconds the motion takes over a path of MotionLength meters (mount and dismount not included). |
URSETraversalMotion
Module RSECore, display name Traversal Motion. How a body moves along a traversal link (D-121, docs/design/traversal.md): pure math on the link's path (its points, from start to end), no world.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Evaluate Location (EvaluateLocation) | override | RPG Saga|Traversal | Path: TArray<FVector> (ref)Alpha: floatUnitsPerMeter: float | FVector | Where the body is at Alpha (0 = the first point, 1 = the last). Path has at least two points. |
Get Length (GetLength) | override | RPG Saga|Traversal | Path: TArray<FVector> (ref)UnitsPerMeter: float | float | Length of the motion along Path (in the path's units): the time a traversal takes is this over the kind's speed. |
Sample (Sample) | pure | RPG Saga|Traversal | Path: TArray<FVector> (ref)Count: int32UnitsPerMeter: floatOutPoints: TArray<FVector> (out) | Samples the motion: Count + 1 points from Alpha 0 to 1 (path previews). |
URSETraversalMotion_Arc
Module RSECore, display name Arc. A parabola from the first point to the last (the points in between are ignored): jumps, vaults, drops, swings.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Arc Height Meters (GetArcHeightMeters) | pure | RPG Saga|Traversal | HorizontalMeters: float | float | Arc height in meters for a horizontal length in meters. |
URSETraversalSubsystem
Module RSE. Traversal in the world (D-121, docs/design/traversal.md): the single place that validates and applies traversal commands (who takes which link, who starts or stops swimming).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Check Command (CheckCommand) | pure | RPG Saga|Traversal | Command: FRSETraversalCommand (ref) | ERSETraversalCheck | Validates a command without applying it. |
Complete All (CompleteAll) | function | RPG Saga|Traversal | Ends every traversal at once (the bodies land where they were going; swimmers stop swimming). A battle starting calls it. | ||
Get State (GetState) | pure | RPG Saga|Traversal | Pawn: APawn* | FRSETraversalState | The traversal state of a body (None when it is not traversing). |
Is Blocking Save (IsBlockingSave) | pure | RPG Saga|Traversal | bool | Whether the subsystem holds the save block now (someone is on a kind that forbids saving). | |
Is on Link (IsOnLink) | pure | RPG Saga|Traversal | Pawn: APawn* | bool | Whether a body is on a link (a ladder, a jump) right now. |
On Swim Changed (OnSwimChanged) | event | RPG Saga|Traversal | Pawn: APawn*bSwimming: bool | ||
On Traversal Finished (OnTraversalFinished) | event | RPG Saga|Traversal | Pawn: APawn*Link: ARSETraversalActor* | ||
On Traversal Started (OnTraversalStarted) | event | RPG Saga|Traversal | Pawn: APawn*Link: ARSETraversalActor*Direction: ERSETraversalDirection | ||
Submit Command (SubmitCommand) | function | RPG Saga|Traversal | Command: FRSETraversalCommand (ref) | ERSETraversalCheck | Validates and applies a command. Returns Ok when applied (nothing changes otherwise). |
URSETutorialSubsystem
Module RSECore. Contextual tutorials (D-047).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Are Tutorials Available (AreTutorialsAvailable) | pure | RPG Saga|Tutorials | bool | Whether tutorials may be requested and marked seen now: the bound query (RSE: the time policy, which hides tutorials in multiplayer sessions), else only outside a network session (authority mode Standalone). | |
Get Seen Tutorials (GetSeenTutorialsBP) | pure | RPG Saga|Tutorials | TArray<URSETutorialData*> | Seen tutorials in Help order. | |
Is Seen (IsSeen) | pure | RPG Saga|Tutorials | Tutorial: URSETutorialData* | bool | The tutorial was shown already. |
Mark Tutorial Seen (MarkSeenBP) | function | RPG Saga|Tutorials | Tutorial: URSETutorialData* | bool | Marks a tutorial seen without showing it. Returns true when it was not seen before. |
Notify Tutorial Trigger (NotifyTriggerBP) | function | RPG Saga|Tutorials | Trigger: FGameplayTag | URSETutorialData* | A game event happened (Tutorial.Trigger.*): shows the first unseen tutorial with that trigger whose conditions pass. Custom triggers are just new tags fired from Blueprint. Returns the tutorial shown, or none. |
On Tutorial Requested (BP_OnTutorialRequested) | event | RPG Saga|Tutorials | Tutorial: URSETutorialData* | A tutorial is requested: the presentation shows it (seen state already updated). | |
Request Tutorial (RequestTutorialBP) | function | RPG Saga|Tutorials | Tutorial: URSETutorialData*bEvenIfSeen: bool = falsebIgnoreOption: bool = false | bool | Shows a tutorial now and marks it seen (bEvenIfSeen shows a seen one again; bIgnoreOption shows it with tutorials off). |
URSETutorialViewModel
Module RSE. A tutorial (D-047): its pages (title, optional picture, text with dialog markup, key prompts of the page's actions).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Advance (Advance) | function | RPG Saga|UI|Tutorial | Next page, or close on the last one. | ||
Dismiss (Dismiss) | function | RPG Saga|UI|Tutorial | Closes the tutorial (Close with its sound). | ||
Refresh (Refresh) | function | RPG Saga|UI|Tutorial | Rebuilds the key hints (the player switched devices). | ||
Turn Page (TurnPage) | function | RPG Saga|UI|Tutorial | Direction: int32 | Turn Page |
URSEUIHost
Module RSE. RSE UI Host
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Host ATBHUD (GetHostATBHUD) | override | RPG Saga|UI|Host | URSEATBHUDViewModel* | The classic battle HUD's view-model (null = none). | |
Get Host Party Menu (GetHostPartyMenu) | override | RPG Saga|UI|Host | URSEPartyMenuViewModel* | The party menu's view-model (open / close, pages, actions). | |
Get Host Party Menu Screen (GetHostPartyMenuScreen) | override | RPG Saga|UI|Host | URSEScreenWidget* | The party menu's screen (ours or a Widget Blueprint). | |
Get Host Tactics HUD (GetHostTacticsHUD) | override | RPG Saga|UI|Host | URSETacticsHUDViewModel* | The Tactics battle HUD's view-model (null = none). |
URSEUIStyle
Module RSE. A UI style (D-162, docs/product/ui-styles.md): the colors, fonts, frames, rows, controls, gauges, key caps, icons, sounds and motion of every screen built on URSEHUDWidgetBase.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Style Name (GetStyleName) | pure | RPG Saga|UI Style | FText | The name in menus (Display Name, else the id). |
URSEUIStyleLibrary
Module RSE. UI styles in Blueprint (D-162): read colors, fonts and frame brushes of the active style in your own UMG screens, switch styles at runtime.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
End UIStyle Preview (EndUIStylePreview) | function, static | RPG Saga|UI Style | Context: UObject* | End UIStyle Preview | |
Fill UIStyle from Legacy Theme (FillUIStyleFromLegacyTheme) | function, static | RPG Saga|UI Style | Target: URSEUIStyle* | Fills Target from the legacy theme settings (the look from before UI styles), as DA_UIStyle_Classic was made. For tools and editor scripts. | |
Get Active UIStyle (GetActiveUIStyle) | pure, static | RPG Saga|UI Style | Context: UObject* | URSEUIStyle* | The active UI style of Context's local player (the project's default without one). Null = made from the legacy theme. |
Get Selectable UIStyle Ids (GetSelectableUIStyleIds) | pure, static | RPG Saga|UI Style | TArray<FName> | The ids of the styles players can pick (for Set UI Style and the style picker of your own options screen). | |
Get Selectable UIStyles (GetSelectableUIStyles) | pure, static | RPG Saga|UI Style | TArray<URSEUIStyle*> | The styles players can pick (UI Theme -> Selectable Styles). | |
Get UIAccessibility (GetUIAccessibility) | pure, static | RPG Saga|UI Style | Context: UObject* | FRSEUIAccessibility | Context's accessibility options: color vision, high contrast, text scale, reduce motion (the player's saved ones without a local player). |
Get UIColor (GetUIColor) | pure, static | RPG Saga|UI Style | Context: UObject*Token: FNameShade: ERSEUIShade = BaseAlpha: float = 1.000000 | FLinearColor | A token color of the active style (Primary, Accent, Surface0, TextMuted, a custom token...). |
Get UIFont (GetUIFont) | pure, static | RPG Saga|UI Style | Context: UObject*Role: ERSETextRoleSize: int32 = 0 | FSlateFontInfo | The font of a text role in the active style (Size > 0: that size, scaled like the role). |
Get UIFrame Brush (GetUIFrameBrush) | pure, static | RPG Saga|UI Style | Context: UObject*Kind: ERSEPanelKind | FSlateBrush | The brush of a panel kind in the active style (for a Border or Image of your own screen). |
Preview UIStyle (PreviewUIStyle) | function, static | RPG Saga|UI Style | Context: UObject*Style: URSEUIStyle* | Shows Style on Context's local player without saving it (a preview in a style picker). End UI Style Preview goes back to the player's choice. | |
Resolve UIColor (ResolveUIColor) | pure, static | RPG Saga|UI Style | Context: UObject*Color: FRSEUIColor (ref) | FLinearColor | A UI color (token or fixed) against the active style. |
Set UIAccessibility (SetUIAccessibility) | function, static | RPG Saga|UI Style | Context: UObject*Accessibility: FRSEUIAccessibility (ref) | Sets all the accessibility options at once, applies them to every open screen of Context's local player and saves them. | |
Set UIColor Vision (SetUIColorVision) | function, static | RPG Saga|UI Style | Context: UObject*ColorVision: ERSEColorVision | Changes one accessibility option and keeps the others. | |
Set UIHigh Contrast (SetUIHighContrast) | function, static | RPG Saga|UI Style | Context: UObject*bHighContrast: bool | Set UIHigh Contrast | |
Set UIReduce Motion (SetUIReduceMotion) | function, static | RPG Saga|UI Style | Context: UObject*bReduceMotion: bool | Set UIReduce Motion | |
Set UIStyle (SetUIStyle) | function, static | RPG Saga|UI Style | Context: UObject*StyleId: FName | bool | Switches Context's local player to the style with this id (saved as the player's choice). Returns false when unknown. |
Set UIText Scale (SetUITextScale) | function, static | RPG Saga|UI Style | Context: UObject*TextScale: float | Text Scale 0.8..1.5 (1 = the style's own sizes; texts never go below the theme's minimum size). |
URSEUIStyleSubsystem
Module RSE. The UI style of one local player (D-162): which style is active, its accessibility options and the resolved style every widget of that player reads.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
End Preview (EndPreview) | function | RPG Saga|UI Style | End Preview | ||
Get Accessibility (GetAccessibility) | pure | RPG Saga|UI Style | FRSEUIAccessibility | Get Accessibility | |
Get Active Style (GetActiveStyle) | pure | RPG Saga|UI Style | URSEUIStyle* | The active style asset (null = the legacy theme settings). | |
Get Active Style Id (GetActiveStyleId) | pure | RPG Saga|UI Style | FName | Get Active Style Id | |
Get UI Style Subsystem (GetFor) | pure, static | RPG Saga|UI Style | Player: UObject* | URSEUIStyleSubsystem* | The style subsystem of the local player behind Player (a controller, pawn, widget or local player), or null. |
On Style Changed (OnStyleChanged) | event | RPG Saga|UI Style | The active style changed (another style, its asset edited, accessibility). Rebuild what caches colors, fonts or brushes. | ||
Preview Style (PreviewStyle) | function | RPG Saga|UI Style | Style: URSEUIStyle* | Shows Style without saving it (a preview in a style picker). EndPreview goes back to the player's choice. | |
Set Accessibility (SetAccessibility) | function | RPG Saga|UI Style | InAccessibility: FRSEUIAccessibility (ref)bSaveChoice: bool = true | Applies the accessibility options (color vision, high contrast, text scale, reduce motion) to every open screen of this player; saved as the player's choice. | |
Set Style (SetStyle) | function | RPG Saga|UI Style | StyleId: FNamebSaveChoice: bool = true | bool | Switches to the style with this id (Default Style, Selectable Styles, or any style asset with that id). Returns false when unknown. |
Set Style Asset (SetStyleAsset) | function | RPG Saga|UI Style | Style: URSEUIStyle* | Switches to a style asset directly (previews, the style editor). Null = the project's default. |
URSEUnitBubbleComponent
Module RSE. A screen-space speech bubble over a unit (D-117): the "calling for help" icon and bark, the lines of scripted battle events.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Hide (Hide) | function | RPG Saga|Battle | Hide | ||
Is Shown (IsShown) | pure | RPG Saga|Battle | bool | Is Shown | |
Show (Show) | function | RPG Saga|Battle | Icon: FText (ref)Line: FText (ref)IconColor: FLinearColor (ref)Seconds: float | Shows Icon (may be empty) and Line for Seconds of real time (0 = until Hide). |
URSEUnitStatSource
Module RSECore, display name Unit Stat Source. A system outside the framework that supplies a battle unit's stats (D-169): a GAS character's attribute set (the RPGSagaEngineGAS companion plugin), a buyer's own stat component, a save from another game...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Applies To (AppliesTo) | override | RPG Saga|Characters|Stat Source | Spawn: FRSEBattleUnitSpawn (ref)Battle: URSEBattle*UnitId: int32 | bool | Whether this source supplies the stats of Spawn in Battle. UnitId is the unit's id in that battle, or -1 when the battle only builds a hypothetical unit (summon damage estimates): answer the same way, but do not bind to it. Default: false (override it). |
On Unit Built (OnUnitBuilt) | override | RPG Saga|Characters|Stat Source | Battle: URSEBattle*UnitId: int32 | The battle finished building the unit (UnitId >= 0 only): a presenter may now bind to Battle's events for that unit, for example to mirror its damage back. Default: nothing. | |
Provide Stats (ProvideStats) | override | RPG Saga|Characters|Stat Source | Spawn: FRSEBattleUnitSpawn (ref)Battle: URSEBattle*UnitId: int32OutStats: FRSEExternalUnitStats (out) | Fills OutStats for the unit (see Applies To for UnitId). Leave a part empty to keep the framework's value. |
URSEVisualStyleSubsystem
Module RSE. Chooses and applies the visual style of a game world (D-037, docs/design/visual-style.md): area override (the highest-priority ARSEAreaVolume with a VisualStyle containing the player) -> the player's choice (GameUserSettings.ini, by PrimaryAssetId; dev hotkey / console / options) -> URSEVisualStyleS...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Cycle User Style (CycleUserStyle) | function | RPG Saga|Visual Style | Direction: int32 | Moves the player's choice through the preset list (Direction +1 / -1) and shows the toast. | |
Find Style (FindStyle) | function, static | RPG Saga|Visual Style | Name: FString | URSEVisualStyle* | A preset whose asset name or display name matches Name (exact first, then partial; case-insensitive). |
Get Active Style (GetActiveStyle) | pure | RPG Saga|Visual Style | URSEVisualStyle* | The style applied now (null = none). | |
Get Area Style (GetAreaStyle) | pure | RPG Saga|Visual Style | URSEVisualStyle* | The style the player's area forces (none = no area override). | |
Get Cycle Styles (GetCycleStyles) | function, static | RPG Saga|Visual Style | OutStyles: TArray<URSEVisualStyle*> (out) | The presets in cycle order (settings list, else every RSEVisualStyle asset by name), loaded. | |
Get Default Style (GetDefaultStyle) | pure | RPG Saga|Visual Style | URSEVisualStyle* | The project's default style (Visual Style settings). | |
Get User Style (GetUserStyle) | pure | RPG Saga|Visual Style | URSEVisualStyle* | The player's chosen style (none = the default). | |
On Visual Style Changed (BP_OnStyleChanged) | event | RPG Saga|Visual Style | NewStyle: URSEVisualStyle* | The applied style changed (area, player choice, default; Blueprint). | |
Set Area Style (SetAreaStyle) | function | RPG Saga|Visual Style | Style: URSEVisualStyle* | Area override (null = none). Set by the area check; scripts and tests may set it directly. | |
Set User Style (SetUserStyle) | function | RPG Saga|Visual Style | Style: URSEVisualStyle*bSave: bool = true | The player's choice (null = the default). Saved per user when bSave. Ignored while the settings disallow it. |
URSEWeaponPresentation
Module RSE. How attacks with a weapon look (D-184), in every battle mode (grid, live, ATB, turn-based through the cue timelines; action battles through the combat presentation): the stance's swing or fire animations, the muzzle flash and shell ejection, tracers or projectiles, impacts per surface with decals, t...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Effective Stance (GetEffectiveStance) | pure | RPG Saga|Weapons | ERSEWeaponStance | The stance used when it is Auto: from the kind. | |
Is Ranged (IsRanged) | pure | RPG Saga|Weapons | bool | Fires (tracers or projectiles) rather than swings. |
URSEWeatherPresenterComponent
Module RSE, display name Weather Presenter. The weather's presentation (D-101): precipitation around the camera (Niagara, the Low systems on Low effects quality), the global material parameters (Wetness, SnowCover, Wind, RainAmount...), weather sounds (SFX channel), lightning and thunder, roofs and no-weather volumes.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Get Presentation (GetPresentation) | pure | RPG Saga|Weather | FRSEWeatherPresentation | Get Presentation | |
On Lightning Strike (OnLightningStrike) | event | RPG Saga|Weather | ThunderDelaySeconds: float | A lightning strike (the sky flashes now; thunder follows after the delay). | |
Strike Lightning (StrikeLightning) | function | RPG Saga|Weather | Strikes lightning now (dev command, story). |
URSEWorldEffect_Custom
Module RSECore, display name Custom (Blueprint). An effect written in Blueprint: create a Blueprint class from it, override On Execute and change the game through the "Context" nodes (RPG Saga\|Narrative\|Context: flags, items, party...) or any other node (sounds, actors: the class reports the game's world).
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
On Execute (OnExecute) | override | RPG Saga|Effects | Context: FRSEEffectContext (ref) | Applies the effect. Use the Context nodes so the change is reported (quests, HUD) and deferred like the built-in effects. |
URSEWorldMapViewModel
Module RSE. The world map (D-044): discovered places as markers on a map picture and as a list.
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Choose (Choose) | function | RPG Saga|UI|WorldMap | Travels to the selected place (or says why not). | ||
Click Place (ClickPlace) | function | RPG Saga|UI|WorldMap | Index: int32 | A click on a place: selects it, a second click travels. | |
Leave (Leave) | function | RPG Saga|UI|WorldMap | Leave | ||
Move Selection (MoveSelection) | function | RPG Saga|UI|WorldMap | Delta: int32 | Move Selection | |
Select (Select) | function | RPG Saga|UI|WorldMap | Index: int32 | Select |
URSEWorldReactionSubsystem
Module RSE. Abilities on the world (D-157): the registry of reactive objects in this world and the one place that applies the World Reactions rules to them: from the party menu (the Cast On World command: checked, paid only when something reacts), from a Free Tactics ability that lands among them (the director...
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Apply Ability At (ApplyAbilityAt) | function | RPG Saga|World Reactions | Ability: URSEAbilityData*Center: FVectorRadius: floatInstigator: AActor* | int32 | Applies Ability's tags (element, type, roles, World Tags) around Center. Returns the objects that reacted. |
Cast on World (CastOnWorld) | function | RPG Saga|World Reactions | Pawn: APawn*Member: URSECharacterData*Ability: URSEAbilityData*OutReason: FText (out) | bool | Casts Ability on the surroundings as the player of Pawn, by Member, through the command bus: applied at once in single player and on the host. OutReason says why not. Returns true when it was applied (or sent). |
Would React (WouldReact) | pure | RPG Saga|World Reactions | Ability: URSEAbilityData*Pawn: APawn* | bool | Whether anything around Pawn would react to Ability now (the party menu offers "on the surroundings" only then). |
URSEWorldStreamingSubsystem
Module RSE. World Partition and level streaming support (D-174, docs/design/save-system.md "World Partition").
| Node | Kind | Category | Parameters | Returns | Description |
|---|---|---|---|---|---|
Begin Battle Streaming (BeginBattleStreaming) | function | RPG Saga|World Partition | Center: FVectorAreaRadius: float | Keeps the cells within AreaRadius (+ the settings' margin, at least their minimum radius) of Center loaded until End Battle Streaming. Replaces a running one. Does nothing outside a partitioned world or with the setting off. | |
End Battle Streaming (EndBattleStreaming) | function | RPG Saga|World Partition | Lets the battle's cells unload again (when no player is near). | ||
Get Data Layer State (GetDataLayerState) | pure | RPG Saga|World Partition | DataLayer: UDataLayerAsset* | ERSEDataLayerState | The layer's state now: the engine's effective state in a partitioned world that has it, else the state the story recorded, else Unloaded. |
Is Battle Area Streamed (IsBattleAreaStreamed) | pure | RPG Saga|World Partition | bool | The battle's cells finished loading (true outside a partitioned world and when no battle keeps cells). | |
Is Battle Streaming Active (IsBattleStreamingActive) | pure | RPG Saga|World Partition | bool | A battle keeps cells loaded now. | |
Set Data Layer State (SetDataLayerState) | function | RPG Saga|World Partition | DataLayer: UDataLayerAsset*State: ERSEDataLayerState | bool | Sets a data layer's runtime state for the story (a bridge built, ruins after the attack) and records it in the World section, so it is applied again after a load. Returns false when the layer is not in this world (the state is recorded anyway). |