Skip to main content

Functions

Quests define structured gameplay progression using states, branches, tasks, and requirements.

This page documents only the functions and events that are exposed to Blueprints, allowing designers to:

  • Control quest flow
  • React to quest state changes
  • Track progress
  • Implement custom requirements and behaviors

Quest Completion State

Represents the current completion state of a quest.

StateDescription
Not StartedQuest has not yet begun
StartedQuest is currently active
SucceededQuest has been completed successfully
FailedQuest has failed

Get State

Returns a quest state by ID.

Output

NameTypeDescription
Return ValueUQuestStateThe quest state with the given ID

Get Branch

Returns a quest branch by ID.

Output

NameTypeDescription
Return ValueUQuestBranchThe quest branch with the given ID

Get Quest Name

Returns the display name of the quest.

Output

NameTypeDescription
Return ValueFTextThe quest name

Get Quest Description

Returns the quest description.

Output

NameTypeDescription
Return ValueFTextThe quest description

Set Quest Name

Sets the display name of the quest.

Inputs

NameTypeDescription
New NameFTextThe new quest name

Set Quest Description

Sets the quest description.

Inputs

NameTypeDescription
New DescriptionFTextThe new quest description

Fail Quest

Marks the quest as failed.

This immediately transitions the quest into a failed state.

Inputs

NameTypeDescription
Quest Failed MessageFTextMessage shown to the player

Succeed Quest

Marks the quest as succeeded.

This is used when manually completing a quest outside of the quest graph.

Inputs

NameTypeDescription
Quest Succeeded MessageFTextMessage shown to the player

Set Tracked

Sets whether the quest is tracked.

Tracked quests typically:

  • Show navigation markers
  • Appear prominently in the UI

Inputs

NameTypeDescription
TrackedboolWhether the quest should be tracked

Enter State

Forces the quest to enter a specific state.

This bypasses normal branch logic and should be used carefully.

Inputs

NameTypeDescription
New StateUQuestStateThe state to enter

Spawn Quest Actor

Spawns an actor that is owned and managed by the quest.

When the quest ends, all spawned quest actors are automatically destroyed.

Inputs

NameTypeDescription
Actor ClassTSubclassOf<AActor>Actor class to spawn
Actor TransformFTransformSpawn transform

Output

NameTypeDescription
Return ValueAActorThe spawned quest actor

Add Quest Requirement

Adds a requirement to the quest.

Requirements define constraints such as:

  • Stay near an NPC
  • Keep an NPC alive
  • Maintain a condition or state

Inputs

NameTypeDescription
RequirementUQuestRequirementThe requirement to add

Remove Quest Requirement

Removes a previously added quest requirement.

Inputs

NameTypeDescription
RequirementUQuestRequirementThe requirement to remove

Get Quest Start State

Returns the starting state of the quest.

Output

NameTypeDescription
Return ValueUQuestStateThe quest’s start state

Get States

Returns all states in the quest.

Output

NameTypeDescription
Return ValueTArray<UQuestState>All quest states

Get Branches

Returns all branches in the quest.

Output

NameTypeDescription
Return ValueTArray<UQuestBranch>All quest branches

Get Nodes

Returns all quest nodes (states and branches).

Output

NameTypeDescription
Return ValueTArray<UQuestNode>All quest nodes

Get Quest Completion

Returns the quest’s current completion state.

Output

NameTypeDescription
Return ValueEQuestCompletionCurrent quest completion state

Get Owning Controller

Returns the controller that owns this quest.

Output

NameTypeDescription
Return ValueAPlayerControllerOwning controller

Get Owning Pawn

Returns the pawn that owns this quest.

Output

NameTypeDescription
Return ValueAPawnOwning pawn

Get Owning Narrative Component

Returns the Narrative Component managing this quest.

Output

NameTypeDescription
Return ValueUNarrativeComponentOwning Narrative Component

Is Tracked

Returns whether the quest is currently tracked.

Output

NameTypeDescription
Return ValueboolWhether the quest is tracked

Get Group Members

Returns all players participating in this quest.

  • For shared quests: all group members
  • For solo quests: the owning controller only

Output

NameTypeDescription
Return ValueTArray<APlayerController>Group members

Blueprint Events

These events allow Blueprints to react to quest lifecycle changes.


On Quest Post Load

Called when the quest is loaded from disk.

Use this to restore runtime-only state.


Pre Quest Started

Called before the quest officially begins.

Useful for setting up dependent systems or data tasks.


On Quest Started

Called when the quest starts.


On Quest Failed

Called when the quest fails.


On Quest Succeeded

Called when the quest succeeds.


On Quest New State

Called when the quest enters a new state.


On Quest Objective Progress Made

Called when a quest task makes progress.


On Quest Task Completed

Called when a quest task is completed.


On Branch Taken

Called when a quest branch is taken.


On Tracked Changed

Called when the quest tracking state changes.