# Syncro Catch
**Throw a Poké Ball at a player who's morphed as a Pokémon, and catch them.**
Syncro Catch is a server-friendly add-on for *Cobblemon: Synchro Machine*. Players who morph into Pokémon can be weakened, caught with a real Cobblemon ball, and kept in a realm of their own. Their trainer can then send them out, call them back, and work with them. It's built for roleplay servers.
---
## Features
### Catching
- Throw any Cobblemon Poké Ball at a morphed player. The catch plays Cobblemon's own animation: the ball absorbs the Pokémon, drops, shakes, and either clicks shut or breaks free.
- Odds come from Cobblemon's own catch formula, so a player morphed as a legendary is nearly impossible to catch, and better balls really are better.
- A player can only be caught when they're **at or below 75% HP** (configurable).
### The caught realm
- Caught players are sent to a private overworld-style dimension: **no mobs, no block breaking, but placing blocks and using chests are allowed**, so a trainer's Pokémon can build and store items together.
- Every trainer's team gets its own plot far from everyone else's. Teammates see each other, and nobody else does.
- Caught players stay morphed. They can't un-morph or switch Pokémon while caught.
### Your caught Pokémon, in a ball
- Catching a player gives the trainer a **copy of the ball they used**, labelled with the player's name.
- **Throw it** at the ground: the trainer gets the ball back, and the player is sent out where it landed.
- **Right-click it** to call them back to their realm.
- If a sent-out player faints, they're returned automatically. If the trainer logs out, everyone they have out is recalled.
### Chat
- **Proximity chat:** normal messages reach 40 blocks.
- **Yelling:** a message in ALL CAPS reaches 60 blocks.
- **Team chat:** `/t <message>` (or `/tc`) is a private channel for a trainer and everyone they've caught.
- All radii are configurable.
### Roles
- `/role <name>` lets a player play as a different trainer, changing their **name** (chat, tab list, and above their head) and **skin**. `/role reset` undoes it.
- Roles are defined in the config as `id;Display Name;wide|slim`, and each role's skin is a PNG at `assets/syncrocatch/textures/skins/<id>.png` (a resource pack works too).
---
## Commands
| Command | What it does |
|---|---|
| `/t <message>`, `/tc` | Team chat |
| `/role <name>`, `/role reset` | Switch your trainer role |
| `/release <player>` | *(operators)* Free a caught player and send them back to where they were caught |
---
## Planned
- Forced battles after a catch
- Chances to escape (trainer defeated, or release by the trainer)
- Bonus XP for the caught Pokémon when it wins battles
---
## Requirements
- Minecraft **1.21.1**, **NeoForge**
- **Cobblemon** 1.8 or newer
- **Cobblemon: Synchro Machine**
- Architectury API
- Kotlin for Forge
Install the mod on **both the server and every client**.
---
## Credits
This mod is an unofficial add-on and does not include or redistribute any code from *Cobblemon: Synchro Machine*. Huge thanks to SappyEddie for the Synchro Machine and to the Cobblemon team.
## Notes
This is an early version. Please report bugs, with your log, in the issues section.

