You can drop a player's own details straight into the text you author, so a dialogue step reads "Nice work, Sam — you're level 6" rather than something generic. These are called tokens.
The Syntax
Write the token in double curly braces:
{{ player.nickname }}— inserts the player's nickname{{ player.nickname | Explorer }}— inserts "Explorer" instead if that player has no nickname set
Spaces inside the braces are optional — {{player.nickname}} works identically. Always use the fallback form for anything a player might not have filled in; a sentence that reads "Welcome back, !" is worse than one that says "Welcome back, Explorer!"
What You Can Reference
Tokens are grouped into five families:
player.*— the player's own profile: nickname, name, email, and the rest of their details.progress.*— live numbers for this Adventure:level,xp,bloo,ep,tnl(XP to next level),gpa,completed,total, andpercent.guild.*— their guild'sname,code,members,capacity, andxp.meta.*— any custom profile field you've configured for the Adventure. Add a field and it's immediately usable in your text, with no development work.adventure.*— the Adventure's owntitleandid.
Sensitive fields — passwords, secret codes, payment identifiers, API keys — are deliberately excluded and can never be rendered by a token, no matter how you spell it.
Where Tokens Work
- Step content, across every step type — dialogue, open text, puzzles, branch choices, and the rest
- Item descriptions, in the Item Shop and in a player's backpack
- Challenge success messages
Worked Examples
Welcome back, {{ player.nickname | Explorer }}.You're level {{ progress.level }} with {{ progress.tnl }} XP to the next one.{{ guild.name | Your guild }} has {{ guild.members }} members.You've finished {{ progress.completed }} of {{ progress.total }} milestones ({{ progress.percent }}%).
If You Migrated From the WordPress Version
The old [player_data field="..."] shortcode still resolves, so existing content keeps working — you don't have to rewrite anything to migrate. New content should use the {{ }} form, which reaches progress, guild, meta, and adventure values the old shortcode never could.
If you previously saw the literal text [player_data field="player_nickname"] appearing to players instead of their name, that's fixed — those steps now render the real value.
A Note on Safety
Token values are escaped automatically when they're inserted. A player whose nickname contains stray characters or markup can't break your page layout or inject anything into it — you can use tokens freely in any text without worrying about what someone typed into their profile.