Skip to main content
Sequence runs several games back to back as one call. Every stage must pass; the first failure or cancel ends the run there and the rest are never played. You get a single true/false back. The stages can be different games - that’s the whole point. A vault door can be “pick the lock, breach the panel, patch the wires” without your resource writing any glue, tracking state between games, or handling a player who cancels halfway.
This is different from multi-stage games, where one game repeats N times via stages. A Sequence chains different games; a game’s own stages repeats the same game.

The call

Export: exports['awoken_minigames']:Sequence(opts) - returns true only if every stage passed.
The game is the game’s name (the same one used in config/games/): lockpick, hexBreach, wires, snake, and so on. config is that game’s own options - the same ones on its config page. Leave config out to use your server defaults for that game.

What it handles for you

  • The player flows straight from one game into the next - no “press to start” between stages.
  • Games can mix keyboard and mouse freely: the cursor is handled for each stage, so { snake, aimTest, keys } (keyboard, mouse, keyboard) just works.
  • A typo in a game name is skipped with a console warning rather than breaking your script.

Reward getting partway

Sequence gives you true or false. If you’d rather reward a player for the stages they did clear, use SequenceResult instead - same run, but it tells you how many they finished:
You get back result.stagesCompleted (how many they cleared), result.totalStages (how many there were), and result.success (true only if they cleared them all).

Checking a sequence on your server

A chain counts as one thing. If you verify the win on your server, the game name to use is 'sequence':
Test chains from the dev menu - it has a Sequences section with ready-made presets, including a Mixed Input chain (keyboard → mouse → keyboard) that exercises the cursor swap. Open it in-game with /awoken_minigames.