Turns, Phases, and Rounds

You can use the turn system in Tabletop Playground to help players keep track of the state of your game. There are three concepts to remember when using the turn system:

  • Rounds: Each game consists of a number of rounds, which can be made up of phases. By default, there are no phases, and only rounds exist.
  • Phases: A phase has a name, a list of player slots, and two options: taking turns and restricting interactions. You can configure a list of phases, and in each round the game will move through the phases in order. When a phase is configured for taking turns, each active player in an associated player slot will get a turn. If restricting interactions is selected, only the players in associated slots will be able to interact with game objects during the phase. If both restricting interactions and taking turns are on, only the player whose turn it is will be able to interact.
  • Turns: Turns are active within phases with taking turns configured, with only one player going at a time.

You can define phases in the session options. They can be modified during play, but only as the host. Use the main context menu to move to the next/previous turn, phase, or round.

Defining Phases

Switcher Object

Switchers are different from other object types: they don’t have their own appearance and instead always look like the currently active switchable object. You don’t create switchable objects in the editor, but in-game: in the context menu for multiple selected objects, click “Create Switcher”. The selected objects will be combined into one switcher object.

The order of states in the new switcher is determined by the order in which you select the object to combine, and which object you right click to create the switcher. If you care about the order of states in the switcher, the easiest way to ensure the order of selected objects is to hold Ctrl and click the objects one by one to add them to the selection. Then make sure that you right click the object which should become the first state to bring up the context menu.

Switcher objects have custom actions to switch to the next or previous state, and to pick a random state. Each state corresponds to one of the objects that the switcher was created with. Finally, there’s the “Remove Switcher” option which will just keep the current state object and remove the switcher along with all other states. If the current state object doesn’t define a primary or secondary action, the respective hotkeys can be used to switch to the next or previous state object.

You can still modify each state object (for example by changing their color) and the modified state will remain when you switch ot another state and back. You can do most actions with objects that are part of a switcher that you could do with regular objects, with a few exceptions: switcher objects can’t become parts of new switchers, and switchable cards can’t go into other card stacks (but other cards can be added to the switchable card stack). Switchable cards in card holders can’t change their state while in the holder.

Changing the location of mod.io installs

If you want to change where the packages that are downloaded from mod.io are stored, you need to enter the path you want to use in a file to tell mod.io where to save the downloaded packages. Here’s how to find the file (globalsettings.json) depending on your platform:

  • Windows Open an explorer window and type %localappdata% in the address bar. Then, go to the mod.io folder.
  • Mac In the finder menu, click on “Go”, then “Go to Folder…” and enter ~/Library/Application Support/mod.io
  • Linux In your home directory, go to the mod.io folder

In the file, you will see an entry that looks like this: {"RootLocalStoragePath":"C:/Users/Public/mod.io/"}
Change the path inside the brackets to the folder you want. On Windows, take care that you use / instead of \ to separate the path. For example, you can modify the file to look like this: {"RootLocalStoragePath":"E:/Game Data/mod.io/"} to store your downloaded packages in the folder E:\Game Data\mods\. If the file contains multiple entries, you can delete all except one.

Tags

You can attach tags to various entities in order to modify their behavior. Tags have three main uses:

  • For snap points, tags can define what objects can snap to a particular snap point.
  • For containers, tags can define what objects can be inserted into the container.
  • In the container explorer, stack explorer, and object library, the search will find objects where a tag matches the search term in addition to objects where the name matches.
Editing tags

There are a couple of places where you can edit tags:

  • In the in-game object properties, you can set which tags an object has.
  • In the in-game object properties for a container, you can also set the container tags: they determine what objects can be inserted into the container. If the container tags are not empty, only object that have at least one matching tag can be inserted.
  • In the editor object properties pane, you can set the default tags for objects of this type. A newly created object will have these tags, but they can be modified in the in-game object properties.
  • In the editor snap points pane, you can set tags for each snap point. If tags for a snap point are not empty, only objects that have at least one matching tag can snap to the snap point.
  • In the editor for card objects and similar types like tiles or tokens, you can set tags for each image index in the deck. Card tags are used in the card stack explorer window to quickly find cards with a tag that matches the search term. If an object is a single card (and not a stack of cards), the tags used for snapping and containers will be combined from both the object tags and the card tags for this card.
    When you use tags from scripting, myCard.getTags() returns only the object tags, and the card tags are accessible using CardDetails.tags, for example myCard.getCardDetails().tags for a single card.

The tag editor always shows all tags that are in use for the current game (when used in-game or in preview mode) or the current package (when used in the editor). This allows you to quickly find and activate tags that are already used elsewhere. To create a new tag, enter the name in the search field and press enter or the “Plus” button.

Playtesting and playing with private packages

Not all games you create should be accessible for everyone, or you may have a prototype that you want to test that isn’t ready to go public yet. You can make your package private by checking the “Private” checkbox when you upload you package in the editor. If you want to make it public later, uncheck the checkbox when uploading a new version or change the visibility in the Edit section of the mod.io page of your mod.

If you want to play with others while your package is still private, you can use preview feature of mod.io. It allows you to add other users who will have access to your package directly, or generate a preview link that others can use to subscribe. To add other users to for your mod, open the mod.io page, go to “Package Admin”, then “Preview”, and change the “Enable preview link” option to “Users with access only” and press Update. You can then add users by their mod.io username (identical to their Steam or Epic username if they haven’t changed it). They can then subscribe to the package through the mod.io page when they are logged in with their Steam/Epic account, or in-game when they try to join a game that uses your private package.

Instead of adding users manually, you can also use preview links: Change the “Enable preview link” option to “Anyone with preview URL” and press Update. You’ll see a link below that you can share with your players. If they are logged in using their Steam account (or Epic if they own Tabletop Playground on Epic Games Store or Microsoft store), they can subscribe and the package will be downloaded in-game. Since the preview links work through the regular browser, make sure that your players are logged in to mod.io with their Steam/Epic account! If they have already created an account using their mail address, they can link it with their Steam/Epic account by clicking on their user name in the upper right and selecting “My Account”. At the bottom of the page there’s a “Connected Accounts” section, switching on the Steam or Epic icon will open a prompt asking them to log in with their account.

You can find more information about previews in the mod.io blog post: https://blog.mod.io/insider-invite-now-live-on-mod-io-c3c2d6568d3f