Skip to content

Add a tutorial card

Designer · 15 min · No code · Last tested: 2026-10-10

Result: a tutorial card that pops up, pausing the game, the first time the player meets a mechanic. It shows a title, a few lines of text, an optional picture, and button prompts that show the player's real bindings. A pages through the cards and B skips the rest. Once a card has been seen it never shows again in that save, and it is listed under Main Menu › Tutorials.

XenoCore ships three combat cards: Engaging Enemies (row Targeting), Auto-Attacks and Arts (ArtsBasics) and Break and Topple (BreakTopple).

Before you start

  • Know what a gameplay tag is: a card's triggers are tags.
  • To trigger a card on your own event, you need a tag of your own. Add it in Project Settings › Project › GameplayTags (for example MyGame.Tutorial.Crafting).

Where the cards live

What Where
The cards, one row each UserInterface/Tutorials/DT_XenoCore_Tutorials (row structure XenoCoreTutorialRow)
The button glyphs the cards draw UserInterface/Foundation/DT_XenoCore_Actions, the rows named Tutorial*
Which table, the card widget, and the trigger distances Project Settings › Game › XenoCore UI › Tutorials
The Tips on/off switch The Tutorials entry on the main menu

Steps

1. Add the card

  1. In the Content Browser, open UserInterface/Tutorials/DT_XenoCore_Tutorials.
  2. Click Add in the Data Table editor's toolbar. Rename the new row, for example Crafting. The row name is the card's identity: a save remembers seen cards by row name, so renaming a row later shows that card again to everyone.
  3. In the Row Editor below, fill in Title and Body. Keep the body to two or three short sentences: it wraps, and a long card gets skipped.
  4. Optionally set Image to a texture.

2. Add the button prompts

  1. Under Prompts, click + once per line of prompts.
  2. In each entry, set Label (for example Open the crafting menu).
  3. Under Actions, click + and pick a row of DT_XenoCore_Actions. Add more than one action to draw several buttons side by side on one line.

If the button you want has no Tutorial* row yet, see Add a button glyph for a new prompt below.

3. Say when it appears

Under Triggers, add one or more tags. The card shows the first time any of them happens:

Trigger Happens when
XenoCore.Tutorial.Trigger.EnemyNear An enemy comes within Tutorial Enemy Near Distance (25 m) of the leader
XenoCore.Tutorial.Trigger.BattleStarted The party enters battle
Any tag that can be on an enemy, for example Status.XenoCore.Reaction.Topple An enemy within Tutorial Enemy Status Radius (30 m) has that tag
Any other tag, for example your MyGame.Tutorial.Crafting A Blueprint calls Trigger Tutorial (category XenoCore › Tutorial) with it

A tag fired by Trigger Tutorial must match the card's trigger exactly: firing MyGame.Tutorial.Crafting.Bench does not show a card that lists MyGame.Tutorial.Crafting. Cards triggered at the same moment show as one sequence, in table order. To change the order, drag rows in the Data Table editor.

4. Fire your own trigger (only for your own tags)

In the Blueprint where the moment happens (for example the crafting bench's On Interact), place a Trigger Tutorial node and set its Trigger to your tag. Calling it again after the card has been seen does nothing, so it is safe to call every time.

5. Save

Save the Data Table.

Add a button glyph for a new prompt

A glyph is drawn from a row of UserInterface/Foundation/DT_XenoCore_Actions. That row only draws a button; the button itself is bound in the game's input mapping. So the row must name the same keys as the input it stands for.

  1. Open Input/Mappings/IMC_XenoCore (or Lyra's IMC_Default for movement, look and jump) and find the input action your card talks about. Note its keyboard key and its gamepad key.
  2. Open DT_XenoCore_Actions. Right-click an existing Tutorial* row and choose Duplicate. Name the copy Tutorial<Something>.
  3. In the copy, set Keyboard Input Type Info › Key and Default Gamepad Input Type Info › Key to the keys you noted. Set Display Name to what the button does.
  4. Save, then pick the row in your card's Actions.

Fails silently: a prompt that names the wrong key

Nothing checks that a glyph row matches the real binding. A row with a typed-in key draws a perfectly good button that does nothing when pressed. Always copy the keys from the input mapping context, and re-check your rows whenever you rebind an input.

Test it

  1. Open Maps/L_XenoCore_Gym and press Play.
  2. Open the console (`) and type XenoCore.Tutorial.Reset to forget every card already seen.
  3. Type XenoCore.Tutorial.Show Crafting (your row name). The card appears and the game pauses. Check the title, body, picture and button glyphs. Press A to close it.
  4. Type XenoCore.Tutorial.Reset again, then cause the trigger for real: walk towards an enemy for EnemyNear, or reach your Trigger Tutorial node. The card appears once.
  5. Cause the trigger again. Nothing shows: the card has been seen.
  6. Open the main menu and choose Tutorials. Your card is listed.

Other console helpers: XenoCore.Tutorial.Trigger <Tag> fires a trigger as the node does, and XenoCore.Tutorial.Tips 0 / 1 turns popups off or on.

If it doesn't work

Fails silently: the card never appears

Check in this order. The card was already seen in this save (run XenoCore.Tutorial.Reset). Tips is off on the Tutorials screen (XenoCore.Tutorial.Tips 1). Triggers is empty, or names a tag nothing ever fires. Project Settings › Game › XenoCore UI › Tutorials › Tutorial Table has been cleared or points at a different table.

Fails silently: tips off still marks cards as seen

With Tips off, a card whose trigger happens is recorded as met and never shown. The Tutorials menu fills up either way, and turning tips back on does not replay them.

XenoCore.Tutorial.Show says "no such card". The row name you typed doesn't match the Data Table's row name. Row names are exact.

XenoCore.Tutorial.Trigger says the tag is not registered. Add the tag in Project Settings › Project › GameplayTags first.

The card waits and shows late. A card never covers a menu, a conversation, the loading screen or the Change Time fade; it waits until the screen is free. That is intended.

Good to know

  • Tips on/off is a player setting, saved per machine. Seen cards are per save, so a New Game shows them all again.
  • To restyle the card, make a Blueprint child of XenoCore Tutorial Card and set it as Tutorial Card in Project Settings › Game › XenoCore UI › Tutorials. Optional parts your child can name: BodyBox, PageText, NextLabel, SkipGroup. See Restyle the menus.