# Game Configuration Files

### Default Options

These options are found in all files. Below are comments on each of the options and what they do.

```yaml
# Set whether the game is visible in the game menu and can be played.
Enabled: <Boolean>

# Set what item should represent the game mode in the main menu.
MenuItem:
  Material: <Material>
  Name: <String>
  Lore:
  - <StringList>
  Slot: <Integer>
  Page: <Integer> #WIP

# The scoreboard that is shown during the game.
Scoreboard:
  Enabled: <Boolean>
  # A scoreboard line can be a maximum of 32 characters including formatting.
  # Placeholders are translated before they're displayed e.g.
  #   " &eLines Sent On This Side: &a%LinesLeft%" is 41 characters, but only 31-32 once translated.
  #
  # Longer lines are cut off to avoid unexpected behavior/bugs.
  Title: <String>
  Lines:
  - <StringList>
  
# The title that is displayed once the game finishes.
GameOverTitle:
  FadeIn: <Integer>
  Stay: <Integer>
  FadeOut: <Integer>
  Title: <String>
  Subtitle: <String>

# There are two default game settings.
GameSettings:
  # This is the duration in seconds the game lasts. Set to -1 for infinite.
  GameDuration: <Integer>
  # This is the speed the tetrominoe moves. Fastest is 1 i.e. 1 move per tick.
  TetrominoeSpeed: <Integer>
```

### Placeholders

| Placeholder     | Description                                   | Usage                      |
| --------------- | --------------------------------------------- | -------------------------- |
| %PlayerLeft%    | Name of Player1                               | Scoreboard & GameOverTitle |
| %ScoreLeft%     | Player1's score                               | Scoreboard & GameOverTitle |
| %LinesLeft%     | The number of lines Player1 has sent          | Scoreboard & GameOverTitle |
| %KOsLeft%       | The number of times Player1 has KO'ed Player2 | Scoreboard & GameOverTitle |
| %PlayerRight%   | Name of Player2                               | Scoreboard & GameOverTitle |
| %ScoreRight%    | Player2's score                               | Scoreboard & GameOverTitle |
| %LinesRight%    | The number of lines Player2 has sent          | Scoreboard & GameOverTitle |
| %KOsRight%      | The number of times Player2 has KO'ed Player1 | Scoreboard & GameOverTitle |
| %Winner%        | The winner of the multiplayer game            | GameOverTitle              |
| %TimeRemaining% | Seconds until the game is over                | Scoreboard                 |
| %TimeElapsed%   | The number of elapsed seconds                 | Scoreboard                 |

### Custom Options

Some game modes have more game settings. These are specified below:

{% tabs %}
{% tab title="Marathon" %}

| Placeholder | Description                                                                                                                                           | Usage      |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- |
| %level%     | Shows the level the player has reached during this game. The level reflects how fast the tetrominoes drop. The higher the level the faster they drop. | Scoreboard |

```yaml
GameSettings:
  # Every x lines sent the game will get harder.
  LinesPerLevel: <Integer>
```

{% endtab %}
{% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tetrisfriends.benzoft.com/game-configuration-files.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
