# Bevy Genre Party

Bevy 0.20 party router: local seats, shared scores, and minigame swaps as ECS data.

- Repository: https://github.com/thedivergentai/Game-Dev-Agentic-Skills (917 stars)
- Category: Engineering
- License: LGPL-3.0
- Last updated: 2026-10-16
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-party -g -a claude-code -y`
Codex: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-party -g -a codex -y`
Cursor: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-party -g -a cursor -y`
Gemini CLI: `npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-genre-party -g -a gemini-cli -y`

## Description

Bevy 0.20 party router: local seats, shared scores, and minigame swaps as ECS data. Use when routing a local party game. Keywords: Bevy, Party, minigame, score, ECS, router.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Bevy Party (thin router)

Genre router. Domain work lives in the Bevy skills below.

## When to use

Load this for local minigame swaps and shared scores.

## ECS shape

- **Components** hold the genre's per-entity flags as plain data. This file does not name new engine types.
- **Resources** hold run-wide counters (score, wave index, seed) via bevy-data-resources.
- **Systems** read those components on `Update` or the fixed timestep from bevy-master. Order them with `.chain()` when a later system must see the result.
- **Schedule:** gameplay mode changes go through bevy-state-machines. This file registers only seat scores and the minigame swap.

## Routing

- [bevy-state-machines](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-state-machines/SKILL.md) - Minigame mode.
- [bevy-input-handling](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-input-handling/SKILL.md) - Local devices. Gamepad exists.
- [bevy-game-loop-time-trial](https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/main/skills/bevy-game-loop-time-trial/SKILL.md) - When a minigame is timed.

## Scope

Local seats, the shared board, and the current minigame are plain data. Mode machines, devices, and timed rounds stay in the skills linked above.

| Call | Owner here | Leave to the linked skill |
| --- | --- | --- |
| One seat earns the round | `PartyBoard.award_pending`, then clear it | Input devices in bevy-input-handling |
| Hub opens a race | `CurrentMinigame` on a just-pressed key | The state machine in bevy-state-machines |
| Score mode ends | bump `round` and the active seat, then return to hub | The timer in bevy-game-loop-time-trial |

```toml
[dependencies]
bevy = "0.20"
```

```rust
#[derive(Component)]
struct LocalSeat {
    index: u8,
    score: i32,
}

#[derive(Resource)]
struct PartyBoard {
    active: u8,
    round: u32,
    award_pending: bool,
}

The rest: https://github.com/thedivergentai/Game-Dev-Agentic-Skills/blob/HEAD/skills/bevy-genre-party/SKILL.md
