Text, Quests & Icons
Text in the UI
See Dialogue in our Narrative Design resources for information about creating engaging dialogue that fits within the technical limits, and communicating plans with a team.
See Playability for tips to make your Experience Page and game UI more polished.
Apply Text via Objects

Speaker component (object)
Detect players, "bark" to get attention (can send player source data)
Simulate a conversation between NPCs

Asker behavior (object)
Player dialogue with NPCs (can send player source data)
Quizzes

Indicator (object text), toggled on and off with Actor Property Switcher behaviour

Crowd Event (object)
Title (with colour selection)
Description per Element (how to earn points)
Apply Text via Objectives

Objectives - New quest name appears in a temporary banner (fixed duration)

Objectives UI - Quest descriptions (right)
Type
\nto add a line breakPlayers scroll UI with ⬆️ and ⬇️ keys
Apply Text via Game Rules

Game Rules - Banner rule (display a short text variable in the banner for a custom duration)

Game Rules - Popup window (display a medium title and long text in the body)

Game Rules - HUD slot names and variable values
1 top center slot, 5 slots on the left side, 5 slots on the bottom
Experience Name & Description

Start Screen Experience title and description

Map & Experience Page
Game Client loading screen

Share an Experience in the Game Maker Gallery
Text Formatting
Modifying the text format can add character, make it more readable, or emphasise hints or instructions for players. Simply add opening and closing tags around the text to be formatted.
Formatting does not work in HUD slots, but works in most other text fields.
Formatting tags count against the character limits different text fields have.
Supported Languages & Special Characters
Game Client & Game Maker UI
Software UI is only available in English (e.g., menus) at this time.
Sprites (Emoji-Like Icons)
There are 37 available sprites that may be used in many text fields by typing the tag <sprite=1> with a sprite number from 1 to 37. There is no closing tag for sprites. Learn more (video)

Display Player Usernames in Text
Type <PLAYER> (case sensitive) to include the player's username in a string of text. This can make an Experience more personal and immersive.
Example:
Welcome, <PLAYER>! Let's get started!
Welcome, Pandapops! Let's get started!
Display Player Usernames in a Variable
Create a text variable and save the player name in it with the Store Player Name rule in Game Rules.
Supported Colours
TEST COLOURS FOR READABILITY
Block and asset colours in your Experience may make some colours difficult to read.
black
#000000FF
![]()
grey
#808080FF
![]()
silver
#C0C0C0FF
![]()
white
#FFFFFFFF
![]()
red
#FF0000FF
![]()
orange
#FFA500FF
![]()
yellow
#FFFF00FF
![]()
lime
#00FF00FF
![]()
aqua / cyan
#00FFFFFF
![]()
fuchsia / magenta
#FF00FFFF
![]()
purple
#800080FF
![]()
maroon
#800000FF
![]()
brown
#A52A2AFF
![]()
olive
#808000FF
![]()
green
#008000FF
![]()
teal
#008080FF
![]()
navy
#000080FF
![]()
darkblue
#0000A0FF
![]()
blue
#0000FFFF
![]()
lightblue
#ADD8E6FF
![]()
Quests
Visit the 0.11 Upgrade Guide to migrate to the new Objectives system and adapt quest design for multiplayer compatibility.
It is possible to build a game without quests, but quest UI and icons make the same gameplay feel much more responsive and polished.
Purpose
Quests are one-time-use player objectives that can be used for:
Tutorials for your unique Experience mechanics
Meeting important characters or Worldbuilding
Points of interest or large scale item collection to encourage exploration
Linear game flow, optional side quests, or branching logic based on player actions
(Partners) Track player progression in Seasons and Events to earn rewards
and more
See Quest Types for use cases per quest type.
Tutorial Templates
Open Game Maker and find tutorials in the Templates tab for hands-on learning. For more details on each quest type, see Objectives.



Gameplay Structures
Multiple quests can be triggered in ways to structure different types of play:
Linear (Narrative) Players must complete all quests in a specific order to progress a story or flow
Branching (Replay value) Players choose which optional quests to trigger, for a more open world feel
Both Linear & Branching Players unlock optional side quests or "quest lines" (choose your own adventure)
While players can scroll through quests in the UI, it is still more user friendly to limit how many quests can be triggered at a time (4-5 maximum recommended).
With Game Maker 0.11, you may also design varied gameplay with dependencies, where a logic flow can be built to allow only certain players to trigger and complete a quest.
Multiplayer Compatible Quests (0.11)
In multiplayer Experiences, quests are now managed on the server. Messages sent to Objectives must include player source data, so [SP] logic will not work.
In singleplayer Experiences, [SP] and [MP] logic will trigger quests.
The new Objectives system opens up possibilities for quests to be triggered depending on which player(s) should experience a quest in multiplayer games.
In this first version, feature continuity for solo questing is the main design focus. However, many creators may explore building logic for multiple players to experience quests at nearly the same time.
It isn't as simple as using the Game Rules system, where dependencies for variables are built in (player, team, and global), so we've provided some options to try out. Some are simple, and some a bit more advanced.
USING THIS RESOURCE In the generalized suggestions below, Step 1 should trigger Step 2, and so on, to send player source data and trigger Objectives for intended players. Please test thoroughly and share what you learn in the Forum!
Quest Alone
First Player There
[MP] trigger (options):
Collectablecomponent (Global = TRUE)
Trigger Volume(destroy this object after one use)
Button(destroy this object after one use or spawn a
Speakerto inform players that they weren't first)
Asker(Only once = TRUE or apply
Toggleto turn off after one use)[MP]
Message Broadcaster(Broadcast only once = TRUE if trigger in step 1 can't be removed or prevented)
Objectives
Use Cases
Quests with rewards or incentives
Special roles, side-quests, or branching narrative options
Every Player (Self-Paced)
[MP] trigger (options):
Collectable(Global = FALSE)
Trigger Volume
Button
Asker
Objectives
Use Cases (gameplay without rules criteria)
Social hub quests
Competitive solo narrative questing
Side quests any player can complete
One Player: Player Variable Value
[MP] trigger (options):
Collectable(Global = TRUE)
Trigger Volume(destroy this object after one use)
Button(destroy this object after one use or spawn a
Speakerto inform players that they weren't first)
Asker(Only once = TRUE or apply
Toggleto turn off after one use)
Rules(player variable used as a criteria to send a message)[MP]
Message Broadcaster(Broadcast only once = TRUE or apply
Toggleto turn off after one use)
Objectives
Use Cases
MVP quest after earning the top time, score, etc.
Tutorial quest for player with the lowest time, score, etc.
Every Player: Player Variable Value (Self-Paced)
[MP] trigger (options):
Collectable(Global = FALSE)
Trigger Volume
Button
Asker
Rules(player variable as a criteria to send a message)
Objectives
Use Cases (gameplay with Rules criteria)
Social hub quests
Competitive solo narrative questing
Side quests any player can complete
Quest Together
The examples below do not use built in features. Since there is a break in logic flow and quests do not trigger at the exact moment, test your design thoroughly to ensure it works consistently. More developments are on the way to make multiplayer quest design easier.
Cooperative: All Players Trigger (Almost) Simultaneously
Trigger options:
All players enter a location:
[MP]
Trigger Volume(Detection = EveryAvatarInRange)
Rules(global variable as a criteria to send a message)
Asset Spawnerspawns [MP]
Trigger Volume(Detection = EveryAvatarInRange)
Objectives
Use Cases
Cooperative Escape Room, etc.
Players vs Enemy quests (PVE)
Collaborative Play Without Quests
If you're new to creating multiplayer Experiences, try adding a collaborative goal with Crowd Event behaviour. It's easier to set up than quests and has its own UI!
Competitive: All Team Members Trigger (Almost) Simultaneously
Trigger options:
Enter a location:
Per team, [MP]
Trigger Volume(Detection = TeamInRange, set team name)
Rules criteria:
Rules(team variable as a criteria to send a message)Per team,
Send Messagerule (Broadcast = Team, set team name) triggered by which team met the criteriaPer team, [MP]
Asset Spawnerspawns [MP]
Trigger Volume(Detection = TeamInRange)
Objectives
Use Cases
Multi-phase gameplay as quests every team may complete
Secret team missions (e.g., spy games)
Teams as gameplay roles with unique quests (e.g., RPGs)
Bonus challenges or rewards for top teams
Quick tutorials for struggling teams
Quest Icons
The Objectives system sets up the structure of quests, which have a beginning, middle, and end. Use the Indicator component to set quest icons to appear on objects related to your quest.
Giver - Starts the Quest
PLAYER ICON - EXCLAMATION MARK

Directs players to start a quest
Appears when a quest is unlocked
Disappears when a quest is launched
BUILDER SETUP
Objectives - set the quest conditions
Indicator - apply this component to an object
Click Add+ next to Giver and select the quest name from the dropdown list to make the icon appear above the object during play
Objective - Meets the Condition
PLAYER ICON - TARGET

Directs players to locations, collectable objects, enemies to kill, objects to interact with (to send a message), etc.
Appears when a quest is launched
Disappears when a quest condition is met
BUILDER SETUP
Objectives - set the quest conditions
Indicator - apply this component to one or more objects, which are the condition set in Step 3 of the Quest setup (Quest Type)
Click Add+ next to Objective and select the quest name from the dropdown list to make the icon appear above object(s) during play
Receiver - Closes the Quest
PLAYER ICON - QUESTION MARK

Directs players to an object to close the quest
Appears when a quest condition is met
Disappears when a quest is complete
BUILDER SETUP
Objectives - set up quest conditions
Indicator - apply this component to an object
Click Add+ next to Receiver and select the quest name from the dropdown list to make the icon appear above the object during play
Dialogue States for Quests
Why Create Dialogue States?
One NPC may need to say different dialogue depending on the state of a quest:
Beginning State - An NPC informs players about the quest so they can accept it
Middle State - An NPC reminds players they haven't finished the quest yet and may provide a hint
End State - Congratulate players if the quest is complete (may suggest where to find a new quest)
Dialogue Use Per NPC
Dialogue can flow using Speaker components and/or Asker behaviours triggered in a chain.
"Bark"
The player gets close enough to an NPC to see a Speaker component pop up a box of text.
Note: A "bark" may be used instead of a quest giver.
Dialogue - Inform/Hint
One or more Asker behaviours may be set with a question or statement and up to four answers.
Note: Answers can send messages to trigger other Askers. Toggle should be applied to turn Askers on/off when necessary. Don't forget to set the Toggle's initial state for each Asker!
Dialogue Strings
What is a Dialogue String?
A dialogue string is a series of logic events used to:
display a conversation between an NPC and a player (with answer options)
display quiz questions (with answer options)
display a "read only" conversation between NPCs (using Speaker component)
An object may only have one Asker behaviour and one Speaker component. This means that multiple objects are needed to create a dialogue string. That usually includes objects with visibility turned off.
Asker behavior may be triggered in a linear sequence or may trigger different paths of gameplay.
Last updated
Was this helpful?

