Index

1 Miscellaneous
1.1 Dependencies
1.2 UI
2 Preferences
2.1 Settings
2.2 Configurations
2.3 Setups
3 Networking
3.1 Client
3.2 Server
4 Game
4.1 Setup
4.2 Match

1 Miscellaneous

1.1 Dependencies

This list refers to the provided binaries, not strictly the source code.

Android

Emscripten

Linux

macOS

Windows

1.2 UI

Widgets that can be interacted with or have tooltips are highlighted when the user hovers the mouse cursor over them. The "Escape" and "Back" keys always perform a given menu's "exit" action. "Return" and "Enter" perform a popup's or selection's "confirm" action.

Checkbox

Can be toggled with either the left or the right mouse button.

Scroll area

Can be scrolled with either a scroll bar on the right, the mouse wheel or by left click holding and dragging inside the area.

Slider

Most sliders' changes will be fully applied only once the dragging is done.

2 Preferences

All preferences are stored in INI files.
If the game was built for Android or with the "EXTERNAL" define, it'll default to saving preferences outside of the game's directory.
These external locations are:

Android/storage/sdcard0/Android/data/org.duravia.thrones/files
Linux~/.config/thrones
macOS~/Library/Preferences/Thrones
Windows%AppData%/Thrones

If the game was built without the "EXTERNAL" define, it'll default to saving preferences in the game's assets directory:

Linux/WindowsThrones/data
macOSThrones.app/Contents/Resources
WebIndexed DB /data

Either behavior can be explicitly set by running the game with the "-e 0|1" option:

0don't save externally
1save externally

2.1 Settings

Game client settings are stored in "setting.ini" and can be edited in the "Settings" menu.

Address

The server's address to connect to when clicking "Connect".

Port

The server's port to connect to when clicking "Connect".

Display

The index of what display to place the window on. Choosing a non-primary display can break the rendering on some systems.

Screen

windowregular decorated window
borderlessborderless window
fullscreenfullscreen with custom mode
desktopfullscreen with the standard screen mode

Size

Window size when "Screen" is set to "window" or "borderless".

Mode

The screen mode to use when "Screen" is set to "fullscreen".

Multisamples

Set to "0" to turn off. Doesn't work with OpenGL ES.

Shadow resolution

The width/height of the light's shadow cubemap texture. Shadows are disabled if set to 0 or under OpenGL ES.

Soft shadows

Blur the edges of shadows.

Texture scale

Scale of texture sizes.

VSync

immediateoff
synchronizedregular on
adaptiveadaptive on (works on fewer systems)

Gamma

Aka. brightness. Doesn't work on some systems.

Volume

Volume of sound effects. Disabled by default because the sound effects are terrible and annoying.

Color ally

Color of own pieces.

Color enemy

Color of the opponent's pieces.

Scale tiles

When enabled, the amounts of home and middle tiles will be adjusted accordingly when changing the homeland size. "New_amount_of_each_tile = old_amount * new_area / old_area", the area values referring to either the homeland area for homeland tiles or the width of the board for middle row tiles.

Scale pieces

When enabled, the amounts of a player's pieces will be adjusted accordingly when changing the homeland size. "New_amount_of_each_piece = old_amount * new_area / old_area" floored, the area values referring to the homeland area.

Show tooltips

Display widgets' tooltips when hovering over them with the cursor.

Chat line limit

Maximum number of line breaks in a chat widget.

Deadzone

Deadzone of all controllers' axes.

Resolve family

anyUse any family for resolving host addresses.
IPv4Use only IPv4 for resolving host addresses.
IPv6Use only IPv6 for resolving host addresses.

Regular font

The standard font is Romanesque and the alternative is Merriweather, which supports a larger character set.

Key bindings

A table of all key bindings. The first column lists keyboard bindings, the second lists joystick bindings and the third lists gamepad bindings. A binding can be edited by left clicking the field or deleted by right clicking it. The plus buttons on the right can be used to add new key bindings.

UpMove the selection/cursor up. When editing text, jump to the start.
DownMove the selection/cursor down. When editing text, it can be used in combination with Alt to jump to the next word end or with Ctrl to jump to the end.
LeftMove the selection/cursor left. When editing text, jump to the end.
RightMove the selection/cursor right. When editing text, it can be used in combination with Alt to jump to the previous word start or with Ctrl to jump to the start.
Text backspaceDelete the left character when editing text. It can be used in combination with Alt to delete to the left word start or with Ctrl to delete everything to the left.
Text deleteDelete the right character when editing text. It can be used in combination with Alt to delete to the right word end or with Ctrl to delete everything to the right.
Text homeMove the cursor to the start when editing text.
Text endMove the cursor to the end when editing text.
Text pastePaste text from the clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text copyCopy all to clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text cutCut all to clipboard when editing text. Must be used in combination with Ctrl when using a keyboard.
Text revertRevert to the original when editing text. Must be used in combination with Ctrl when using a keyboard.
ConfirmPerform the current confirm action.
CancelPerform the current abort action.
FinishUse the finish button.
HastenToggle the hasten icon.
AssaultToggle the assault icon.
ConspireToggle the conspire icon.
DeceiveToggle the deceive icon.
Move cameraToggle moving the camera with the mouse.
Reset cameraReset the camera position.
EngageToggle the engage button.
DeleteDelete a tile or piece.
Destroy holdTurn the destroy button on or off.
Destroy toggleToggle the destroy button.
SurrenderUse the surrender button.
ChatToggle the chat overlay.
Frame counterCycle through the frame counter overlay's modes. Those being frames per second, tick duration in ms and off.
Select nextSelect the next icon.
Select prevSelect the previous icon.
Select 0Select the first icon.
Select 1Select the second icon.
Select 2Select the third icon.
Select 3Select the fourth icon.
Select 4Select the fifth icon.
Select 5Select the sixth icon.
Select 6Select the seventh icon.
Select 7Select the eighth icon.
Select 8Select the ninth icon.
Select 9Select the tenth icon.
Camera upMove the camera up.
Camera downMove the camera down.
Camera leftMove the camera left.
Camera rightMove the camera right.
Scroll upScroll the current menu's main list up.
Scroll downScroll the current menu's main list down.

2.2 Configurations

Game configurations are stored in "game.ini" and can be edited in the "Host" menu or when hosting a room on a server.

Victory Points

Use the victory points game variant. The input field determines how many points each player needs to collect to win. If the checkbox is set, middle row fortresses will be placed in the center. If it isn't checked, middle row fortresses will be placed in the remaining free spaces.

Ports

Use the ports game variant.

Row balancing

Use the row balancing game variant.

Homefront

Use the homefront game variant.

Set piece battle

Use the set piece Battle game variant. The input field determines how many pieces each player can use.

Homeland size

widthIs equal to the number of tile columns of the board. The minimum is 5 and the maximum is 101.
heightIs the number of tile rows of each player's homeland, which is "board_height / 2 - 1". The minimum is 2 because a fortress can't be placed in the bottom row and the maximum is 50, amounting to a maximum board height of 101.

Battle win chance

Probability of winning a battle.

Fate's favor maximum

Can be set to a value in the range of 0 to 16383. Its effect is described by "Fate's favor total".

Fate's favor total

If enabled, "Favor maximum" will be the limit of how many times each player can use each type of fate's favor in one match. If disabled, "Favor maximum" will be the limit of how many of each type of fate's favor each player can stock up.

First turn engage

Controls whether players can attack or fire during their first turn.

Terrain rules

Controls whether to use terrain related rules. This setting doesn't affect the breaching of tiles or rules inherent to the pieces' movement range.

Dragon place late

If enabled, dragons don't have to be placed during setup and can be placed later on homeland fortresses during the match.

Dragon move straight

If enabled, a dragon can only move in a straight line. Otherwise one move's steps will be treated separately and the dragon will use the shortest path to a destination.

Capturers

A list of pieces which will be able to capture a fortress. If the list is empty, it'll be filled with all piece types.

Homeland tiles

A list of the amounts of each player's homeland tiles. The minimum amount for each tile type other than a fortress is the homeland height and the maximum of each is the number of remaining free tiles. Sliders' ranges are set accordingly. The amount of fortresses is set to the amount of the remaining free tiles on a homeland. The number of fortresses is limited to "homeland_height * 2 + board_width - 2" and when exceeded, other tile amounts will be increased with the priority being the order of the listed tile types.

Fortresses captured

The number of enemy fortresses that need to be captured in order to win. This value is limited to the number of homeland fortresses.

Middle tiles

A list of the amounts of middle row tiles per player. The total amount is limited to the range of 0 to "board_width / 2" floored. The amount of fortresses is set to the amount of the remaining free tiles, that is "board_width - total_amount_of_tiles_per_player * 2". The sliders work like the homeland tile amount sliders.

Pieces

A list of the amounts of each piece type per player. The total amount of pieces is limited to the range of 1 to the homeland tile count. If there's 0 pieces, the amount of thrones will be set to 1. The sliders work like the tile amount sliders.

Thrones killed

The number of enemy thrones that need to be killed in order to win. This number is limited to the number of a player's thrones. If both winning conditions are set to 0, this one will be set to 1. If the amount of thrones is set to 0, it'll be incremented and if the piece limit has been reached, one other piece amount will be decremented in turn, the priority being the reverse order of the listed piece types.

2.3 Setups

Game setups are stored in "setup.ini" and can be edited, saved and loaded in the "Host -> Setup" menu or during the in-game setup phase. The offline editor works the same as setting up a game online, except any checks for proper tile and piece placement will be ignored.
When loading a setup, it only overwrites the current tiles/pieces of each stage when the loaded setup's corresponding stages' tile/piece data is present.
The same setup can be loaded for different configurations, but some tiles and pieces may not get placed due to exceeding limits.

3 Networking

3.1 Client

A game client can be used as a server by going into the "Host" menu, optionally setting an appropriate port and the configuration that'll be used for the game rules, and clicking "Open". Once another client successfully connects to the server, a game will start immediately.
A client can set an address and port of a server and connect by clicking the "Connect" button in the main menu. When connecting to a regular server program, a list of open rooms will be displayed. A room can be joined by left clicking its name or a new one can be created by clicking "Host". Only a room's host can edit the configuration and start the game.

3.2 Server

The server program can be used to host multiple players. The maximum number of rooms is the limit of players halved and rounded up.
If the program has been compiled without the "SERVICE" define, the following keys can be used when running it in the foreground:

Plist players
Rlist rooms
Qquit program

Command line arguments:

-p <port>port to use (default is 39741)
-4resolve host only with IPv4 family (default is unspec)
-6resolve host only with IPv6 family (default is unspec)
-c <number>maximum number of connected players (default is 1024)
-vwrite output to console
-l <directory>write output to log files in the specified directory
-m <number>set the maximum number of kept log files (default is 8)

4 Game

Every game starts with the setup stage where players place their tiles and pieces. Once both players confirm their setups, the actual match starts.

4.1 Setup

The setup stage is a sequence of three phases of placing homeland tiles, middle row tiles and pieces.
Tiles/pieces can be placed by selecting an icon in the bottom panel and left click holding on a free tile and optionally dragging the cursor across other occupied tiles to replace them. A type can be selected by pressing the icon, using the mouse wheel or pressing a number key.
It's possible to drag a tile/piece with the left mouse button and place it somewhere else or switch places with another. Tiles/pieces can be removed by using the "Delete" button or right click holding on them and optionally dragging the cursor across other ones.
Fortress tiles will be placed automatically, where no tiles were placed.
After the setup the middle row tiles will be rearranged if necessary and the match starts.

Buttons

ExitExit the game.
ConfigView the current game configuration.
SaveSave current setup.
LoadLoad a setup.
ChatToggle the chat overlay.
DeleteWhen selected, the left mouse button will remove tiles/pieces instead of placing them.
BackGo to the previous phase.
NextGo to the next phase.
FinishConfirm setup and wait for the other player.

4.2 Match

Pieces can be moved by dragging them with the left mouse button.
Pieces can attack or fire by dragging them with the right mouse button or using the "Engage" button.
A turn ends by pressing the according button or when the limit of actions has been reached.

Buttons

ExitExit the game.
SurrenderSurrender to the opponent. If playing on a multi-room server, this button will just finish the match, rather than abort it and exit the room.
ConfigView the current game configuration.
ChatToggle the chat overlay.
EngageWhen selected, the left mouse button will perform what the right mouse button would do.
DestroyWhen selected and moving a rangers piece off a forest tile, that tile will be turned into plains.
FinishEnd the turn. Disabled for the first action of a turn.
EstablishEstablish a farm or city.
RebuildRebuild a breached/destroyed fortress/farm.
SpawnRespawn a piece on the according tile.
Fate's favor iconsAn icon can be selected to start a fate's favor and deselected to abort or finish it.
Dragon iconIf during the setup stage a dragon wasn't placed, this icon can be dragged onto a homeland fortress to place said piece.