# Summary

## Table of Contents

* [Installation](/dawnshade-docs/docs/dawn-tournaments/summary/installation.md)
* [Configuration](/dawnshade-docs/docs/dawn-tournaments/summary/configuration.md)
* [Commands](/dawnshade-docs/docs/dawn-tournaments/summary/commands.md)
* [GUIs](/dawnshade-docs/docs/dawn-tournaments/summary/guis.md)
* [Formats & Rules](/dawnshade-docs/docs/dawn-tournaments/summary/formant-and-rules.md)

## Pricing

CobbleTournaments currently cost $45. If you'd like to purchase the mod, please visit our [Discord](https://discord.gg/effncBde4W)!&#x20;

## Mod Summary:

Server-side tournament mod for Cobblemon (Fabric-only). Run automated single-elimination tournaments with GUI registration, team validation, check-in, arena teleports, a move timer, and configurable rewards.

### Requirements

* Java 21
* Fabric server + Cobblemon `1.7.1` on Minecraft `1.21.1`

### Files & Folders

All configs auto-merge on load (missing keys are filled; you don’t need to delete the folder between updates).

* Config folder: `config/CobbleTournaments/`
  * `config.json` - main settings (tournament formats, timers, locations, move timer, check-in, storage, debug, language)
  * `messages.json` - all player-facing text (supports `{prefix}` and placeholders)
  * `clauses.json` - Smogon-style clause toggles
  * `guis.json` - GUI layouts, items, and slot positions
* Data folder: `config/CobbleTournaments/data/`
  * `cobbletournaments.db` - SQLite DB (stats, saved parties, history, etc)
  * `exports/` - optional JSON exports (if enabled)

### Core Gameplay

* One active tournament at a time; tournament names must be unique.
* Single-elimination bracket with BYEs (a “BYE” is an automatic advance when the bracket needs a filler slot).
* Team sources:
  * Current party
  * Saved party slots (up to 3 per player)
  * Import from Showdown / PokePaste (supports nicknames, shinies, forms like `galarian=true`, and move/item/ability parsing)
  * Randoms (server generates teams; still respects bans/clauses)
* Validation happens before a player is accepted (levels, banned species/items/abilities/moves, and enabled clauses). If multiple problems exist, the rejection message lists them all.
* Match flow:
  * Countdown + (optional) Check-in GUI with a timer
  * Teleport players to arena positions (arena 1 / arena 2)
  * Start the battle
  * Teleport back to the lobby
  * Heal both teams after the match
* Move timer (optional): per-turn timer; if the active player doesn’t act in time, they forfeit.
* Spectators:
  * “Click to spectate” from the bracket GUI
  * Teleport to spectator location, movement locked
  * Teleported back to their original position after the match (or via leave command)
* Anti-abuse:
  * Alt/IP cap per tournament (configurable)
  * Temporary teams are always restored (disconnects, cancellations, server crashes/restarts, etc)
  * Tournament battles do not drop loot

### Commands

Players generally use the GUI: `/cobbletourney open`

#### Player

* `/cobbletourney open` - open the main menu GUI
* `/cobbletourney checkin` - reopen the check-in GUI (when a check-in is active)
* `/cobbletourney spectate leave` - leave spectate mode (alias: `/cobbletourney leavespectate`)
*
* `/cobbletourney register leave` - exit the active tournament queue

#### Admin

* `/cobbletourney create <formatId> <name>` - create a tournament
* `/cobbletourney cancel <name>` - cancel tournament by name (restores swapped parties)
* `/cobbletourney start` / `/cobbletourney forcestart` - start tournament (force bypasses requirements)
* `/cobbletourney reload` - reload configs at runtime
* `/cobbletourney status` - show tournament/config status
* `/cobbletourney setarena <1|2>` / `/cobbletourney setlobby` / `/cobbletourney setspectator` - set locations to your current position
* `/cobbletourney bracket` / `/cobbletourney leaderboard` / `/cobbletourney top` - open GUIs directly

### Placeholders & Formatting

`messages.json` supports:

* `{prefix}` - message prefix
* Format placeholders vary per message (example: `{seconds}`, `{winner}`, `{opponent}`)

### Notes

* “Clauses” only validate the team/moveset being used in the tournament; they do not change Pokémon learnsets outside the tournament.

## Troubleshooting

### “No suitable driver found for jdbc:sqlite:...”

This indicates the SQLite JDBC driver was not available at runtime. This should be bundled; if it happens, check:

* You are running the latest jar you built.
* Your console shows the mod boot message without errors.

### The match won’t start

Common causes:

* Arena/lobby/spectator locations not set.
* Players didn’t complete check-in in time.
* A player’s team failed validation.

Enable debug mode in `config.json` (if present) and watch server logs for the reason.

### “My party didn’t restore” / desync

Party restore relies on backup/restore + a resync. If a player appears desynced:

* Rejoin the server to force a full sync.
* If something goes wrong (disconnect/crash), the mod attempts to restore backups automatically.


---

# 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://dawnshade.gitbook.io/dawnshade-docs/docs/dawn-tournaments/summary.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.
