Skip to main content
In a few minutes your game has a guard the player can talk to. The guard decides whether to open the gate, and your game opens it.
Using a coding agent? Paste this: Add a Summer Router character to my game (https://docs.summerengine.com/router/quickstart.md): a gate guard called "guard" who opens the gate when the player gives a good reason.
1

Publish your game on Summer Games

Summer Router serves games published on Summer Games, and it is on for every game, with caps from the start. If your game is not there yet, see publish on Summer Games. Calls are paid from your paid Summer credits, from your plan or top-ups.
2

Make the character

In Summer Studio, open your game, then Grow > Summer Router, and add a character:Try the character in the tab’s test conversation right away. Your agent can do this step too: on the Summer MCP it saves the character with the router.save_character operation, and you approve the change.
3

Add the character to your scene

Add a SummerRouterCharacter node, name it Guard, and set Character ID to guard, Mode to text and Show UI on. Show UI gives the player a bar with the guard’s words and a text field. Then give the guard its tool and an offline line:
level.gd
Turn Speak on and each answer is also spoken in the guard’s voice.
4

Play it

Upload the build to Summer Games and play it in the Summer app or on summer.games, signed in. The bar shows the guard’s first message; type an answer. When you convince the guard, the gate opens.In the editor, Summer Router calls answer unavailable and the guard uses its offline line, so your game always runs. Shape the character in Studio’s test conversation, and play the real thing on Summer Games.

One call instead of a node

The node runs a whole conversation. For a single line, call the router directly:
Pass the same conversation_id from r.conversation_id on the next call, and the guard remembers what was said.

More you can do

  • A voice line: await Summer.client.router.speak("Welcome, traveller!", {"character": "narrator"}) returns audio to play. See speech.
  • An image: await Summer.client.router.generate("image", {"prompt": "a flower made of glass", "size": "512x512"}) returns a texture. See image.
  • What the character knows: variables fill the character’s declared {{variables}}, such as the player’s name, when the character lists variables in its overridable fields. context tells it what just happened in the game.

Server and client

Multiplayer: let the server check a reply before it changes the world.

Limits and caps

The caps every game starts with, and how to change them.

Errors

Every error tag and what to do.