Using the editor

How to create links between nodes?

All links are created by simply keeping CTRL pressed (on a Mac) when clicking on the node where the link starts and then dragging the line drawn onto the node where the link should lead to. This is for “positive” links; links for when the condition fails are created by also pressing SHIFT together with CTRL / .

Where is the start of my flow? I lost it, I have just an empty screen!

Use CTRL J or ⌘J, or open the map and click on the start node.

What are projects, flows, dialogues in Homer?

Each user can work on a set of projects, either created by themselves or ones on which they have been invited. After logging in to Homer, you always get the list of the projects you can work on. A project is composed of several flows: a flow is a set of connected nodes, and these nodes can represent a logical flow, a dialogue flow, a narrator sequence of descriptions, or a mix of all those things.

What are the operations supported on variables?

All operations are supported but not in the form of an assignment operator. So if you want to add 3 to a variable, be it global or local you have to write:


Notice that the web-based editor will actually work also with +=, ++ but this will break the clients.

How do global and local variables work?

Global variables start with “$” and are kept in a list shared across your project. They are available for the game to fill them and read them typically outside the narrative engine. Local variables start with “%” and are created “on the fly” while the flow is running, and are not available outside the scope of a running flow. They are very useful in order not to fill up your globals with stuff that makes sense only in context.

What are “fixed”” variables?

These are variables that have a finite, definite set of possible values. This makes is almost impossible to configure values in the game’s content that are not defined when the content is used by the client. When used by the game client, they are available as a fixed enumeration.

How do I write variations inside text?

Variations in text have this format:

[[LIST a|b|c]]

This means that the first time the node is presented, “a” is shown, then “b” then “c” from the third case onwards. Looping options are LOOP, LIST and SRND (smart random that exclude used options).


ZAPPPPP!!! You've been [[LOOP zapped|destroyed|disintegrated]]!!!

How do I write conditionals inside text?

The format for in-text conditionals is this:

[IF BOOLRESULT ? "First output" : "Second output"]

And this is an example of usage:

[IF $PLAYER_SIDE=="GREEKS" ? "Greek" : "Trojan"]

Notice that you can also use global and local variables as results of the “IF”.

How do I create new nodes in the page view?

The page (or “flat”) view (that you access also using CTRL b or ⌘ b) enables only certain operations focusing on what is practical in keyboard-based usage: 

ENTER while editing a node text: just creates a new line in your current node text content.

SHFT ENTER / ⇧ ENTER  while editing a node text: creates a new line (alternative content) of the same node.

CTRL ENTER / ⌃ ENTER while editing a node text: creates a new text node linked to the one you are focusing on.

This should let you write on the page maintaining your flow.

Where is a list of all shortcuts?

Here Homer Keyboard Shorcuts.

A new feature: if when dragging from a node you also press ALT (CTRL ALT drag on a PC, ⌥ ⌘ drag on Mac, from node to board) if you drop the connection on an empty space, a new node will be automatically created.

How do “in” and “out” links work?

IN: All nodes can get any number of links “into” them.

OUT: Nodes that have a logic can have more then one node “out” of them.

So, text nodes can have only one link out.

Choice nodes should have one out link for every choice, and if they are “consuming” choices, one more for failure.

Conditional nodes have two “out” links: one for when the condition is true (usual CTRL or ⌥ and drag) and one for false (CTRL or ⌥ and SHIFT and drag).

Similarly for other types.

How can I create “nodes from nodes” without losing focus?

You can create connected text nodes from a node via keyboard with CTRL + ENTER – also in the page view editor.

Can I use Homer on Firefox or Safari? And on mobile?

The only browser currently 100% supported is Chrome. We are The only browser currently 100% supported is Chrome for desktop. We are working on getting to 100% Firefox support. Mobile is not supported for the moment as the editing operations used in Homer are meant for the desktop version.


Why is the project locked when I am the only one working on it?

This can happen if you or any of the people managing the project have Homer open in the browser. Try closing all instances of Chrome (not just the tabs where you have Homer open), then reopen the browser, log in Homer and eventually get the project control.

Why is the flow in read-only mode when I am the only one working on it?

This can happen if you or any of the people managing the project have Homer open in the browser. Try closing all instances of Chrome (not just the tabs where you have Homer open), then reopen the browser, log in Homer and eventually get the project control.

Why is the public version of my game not updated?

When you change something in your flow, each time you are ready to share it in the public version of your flow (assuming you have enabled that) you have to issue an “update public preview” from the editor to get the public version up to date.

Can I customise the look of the web-based game?

The downloaded wb version of the project is a standard web/JS page and hence can be completely customized. Once you did that, you should only update the JSON file from the editor (eventually also the variables file).

Maintenance & Support

How to ensure I have updated Homer in the browser?

A trick: open the debug console (press F12), and then right-click on the reload button will reveal a little menu, pick the last choice.

Where are backups?

When inside your project, go to Maintenance/Backups.

How do I restore just a single flow from a backup?

  1. Download the backup as JSON file. 
  2. Create a new empty project, say call it TMP.
  3. Import the downloaded JSON file in this TMP project.
  4. Go to your flow, and select all nodes (CTRL A or ⌘A) and copy them (CTRL C or ⌘C).
  5. Now move back to your current project, go tho the flow you want to restore (or create a new empty one) and paste (CTRL V or ⌘V).

Where can I ask a question?

Check out the Discord channel.


How do I integrate Homer with Unreal (or any other engine)?

From the source code of the Unity (C#) and web (JS) clients it should not be too hard to build a client for any other game engine, e.g. Unreal; in case you decide to do so, just write us for any problem you may have. The exported JSON should be quite readable.

Are Homer and Outspoken data interchangeable?

No. The two data models are different, and actually, Outspoken’s parser is more powerful and extensive with respect to Homer’s.

Can I get game dev support from you?

Yes indeed: see the help us page.