Quest Game Mode Prototype

Overview

Quest Fetcher is a competitive game mode where two teams race to complete quests and earn points.

The goal is to fill up a team-specific bank by completing both Main and Side Quests. Each team has a base of operations that serves as a spawn point and safe zone. Quests are issued by a central figure called the Quest Giver and are designed to encourage both competition and strategic play between teams.

For a longer read, here is the full Concept Document

Game Mode

Components that makes the objectives work. Communication between interactable actors, their responsibly components. This also includes the modified Game Mode, UI Widgets and Timer which associates with objective scoring rather than default Lyra player elimination.

Video example shows: Collection, Completion and Point Scoring

Blueprints and descriptions

B_ShooterGameScoring_Base

  • Disables eliminations from contributing to score; only Stack points from objectives are used. “Allow kills contribute to TDM scoring” is off by default but can be enabled.

B_Scoring_PointsAndTimer_TwoTeams

  • Custom Game Mode scoring system based on objective completions via B_Objective_Count_Score, not kills.

  • Checks every second if a team reached the win condition.

  • Scoring threshold is set in the GameStarted event via the “Set w/ Notify” Int variable, updating W_TeamQuestScoring.

W_TeamQuestScoring

  • UI showing completed objectives and win threshold per team. Driven by B_Scoring_PointsAndTimer_TwoTeams.

B_Objective_Count_Score

  • Central hub for collecting gameplay tag messages from objective components.

  • Sends updates to W_ObjectiveCounter (UI) and B_Scoring_PointsAndTimer_TwoTeams (score check).

    • Team Objective Score: Score threshold for win (acts as bool).

    • Score Count: Amount needed for one Stack Point. Set per child component.

W_ObjectiveCounter

  • UI showing remaining resource progress for the local team. Resets after each objective completion. Data comes from B_Objective_Count_Score.

Objective Components (Children of B_Objective_Count_Score):

  • Each listens to gameplay tag events and counts toward scoring:

    • B_Objective_ResourcePickup: Collect X resources.

    • B_Objective_ShootingTarget: Destroy X targets.

    • B_Objective_Checkpoint: Complete X checkpoints.

  • Each component defines its own Team Objective Score (needed to earn 1 Stack Point), configurable in Class Defaults.

Resource Collection

Abstract Resource Gathering

  • Locate and collect X amount of resources to score a team point

  • Can be set to a team specific pickups or a universal pickup.

  • Manager Actor (B_RandomSpawner_ItemInWorld) counts the total amount of pickup actors placed automatically, runs on construct. Can directly set as team based or a universal pickup. Has also the ability to limit the spawn count with random spawn locations. Has a placeholder objective collection amount modifier within the manager for quick design testing.

Blueprints and descriptions

B_ItemInWorld_Resource

  • Predefined Cube Actor item definition that can be placed in the world and picked up. Used as a spawnable actor within “B_RandomSpawner_ItemInWorld” based on “B_SpawnLocation” coordinates in the world.

B_SpawnLocation (Childs, SpawnLocation_Team0, 1 and 2)

  • B_SpawnLocation is the Parent and is not used. SpawnLocation_Team is used to place into the world for the “B_RandomSpawner_ItemInWorld” to identifty the type of pickup. On Beginplay it replaces the SpawnLocation actors with the actual pickup actor “B_ItemInWorld_Resource”.

B_RandomSpawner_ItemInWorld

  • This actor handles the spawning of the pickups. It uses the “B_SpawnLocation” child actors to identify the type of pickup to spawn.

  • It also has more designer options such as knowing how many are placed in the world currently. What types of each pickups are identified and the option to limit the spawn count, as well as randomizing the spawn locations. Additional it has the ability to pick team based pickups only and can directly modify the “B_Objective_ResourcePickup” component for the amount needed to collect by the teams.

Shooting Targets

Abstract Shooting Targets

  • Locate and destroy X amount of Shooting Targets to score a team point.

  • Can not be set to a team specific objective, it’s a universal ShootingTarget.

  • Manager Actor (B_RandomSpawner_ShootingTarget) counts the total amount of ShootingTarget actors placed automatically, runs on construct. Has also the ability to limit the spawn count with random spawn locations. Has a placeholder objective destroyed amount modifier within the manager for quick design testing.

Blueprints and descriptions

B_ShootingTarget

  • A target that awaits hit gameplay effects. When hit, it applies damage to self. When Health is depleted, it sends a gameplay tag to the ShootingTarget component which updates the objective progress. Afterwards the actor is destroyed.

DT_ShootingTarget_Health

  • DataTable that includes the amount of health “B_ShootingTarget” should have.

  • Modify this table to increase or decrease the amount of health the Shooting Targets should have.

B_SpawnLocation_ShootingTarget

  • SpawnLocation_ShootingTarget is used to place into the world for the “B_RandomSpawner_ShootingTarget” to identifty the type of ShootingTarget.

  • On Beginplay it replaces the SpawnLocation actors with the actual ShootingTarget actor “B_ShootingTarget”.

B_RandomSpawner_ShootingTarget

  • This actor handles the spawning of the ShootingTargets. It uses the “B_SpawnLocation_ShootingTarget” actor to identify the type of ShootingTarget to spawn.

  • It also has more designer options such as knowing how many are placed in the world currently and the option to limit the spawn count, as well as randomizing the spawn locations. It does not have the ability to pick team based Targets (out of scope) but the variable is present. It can however, directly modify the “B_Objective_ShootingTarget” component for the amount needed to destroy.

Checkpoints

Abstract Checkpoints racing objective

  • Locate and complete Checkpoint racing objectives within a given time.

  • Can be set to a team specific Checkpoint or a universal Checkpoint.

  • Manager Actor (B_CheckPoints_Manager) counts the total amount of CheckPoints actors placed, manual setup by designers. Has also the ability to reorder CheckPoints within a List and the Timer it should take to clear each Checkpoint individually.

Blueprints and descriptions

B_Checkpoint_Abstract

  • Actor that only includes the necessary components and collision profiles.

B_PlaceInWorld_CheckPoint

  • Child actor of “B_Checkpoint_Abstract”. Includes replicated events for different checkpoint states.

  • Placed in the world, both for the player to interact with but also as a reference for “B_CheckPoints_Manager” to handle collisions and trigger replicated events. Without the manager, the CheckPoint will not function.

B_CheckPoints_Manager

  • The Actor handles the “B_PlaceInWorld_CheckPoint setup in the world using Tmap. It has the ability to manually specify which checkpoints should be referenced and the associated order and Timer it should take to clear a Checkpoint as well as triggering the checkpoint events based on player collision overlaps.

  • This Actor can also set Checkpoints as team based or universal.