# Bot Commands

DiceBot lives in the IRC channels and responds to commands. Type these in any game channel or in a DM to the bot.

## Dice Rolling

Roll a pool of d10s against a difficulty. Ones subtract successes; net negative means a botch.

| Command | Description |
|---------|-------------|
| `!roll <pool> <diff> [spec] [reason]` | Roll dice. Pool = number of d10s, diff = target number (2-10) |
| `!r` | Shorthand alias for `!roll` |

**Options:**
- `spec` - Specialty mode: 10s count as 2 successes
- `reason` - Freeform text appended to the result

**Examples:**
```
!roll 6 6
  dorje rolls 6d10 diff 6: [8, 4, 6, 2, 9, 1] - 2 successes

!roll 5 7 spec Klaive strike
  dorje rolls 5d10 diff 7 (spec): [10, 7, 3, 5, 10] - 4 successes (Klaive strike)

!roll 3 8
  dorje rolls 3d10 diff 8: [1, 1, 3] - BOTCH! [2 ones]
```

## Initiative

Roll 1d10 + modifier for initiative order. Your modifier is Wits + Dexterity, plus any bonuses or penalties (gifts, wound penalties, etc).

| Command | Description |
|---------|-------------|
| `!init <mod>` | Roll initiative. Aliases: `!inits`, `!initiative` |

**Example:**
```
!init 7
  dorje rolls initiative: 13 (6+7)
```

## Moon Phase

| Command | Description |
|---------|-------------|
| `!moon` | Current real-world moon phase and WtA auspice |

## Weather

| Command | Description |
|---------|-------------|
| `!weather` | Current weather in Vail, CO |
| `!time` | Current date and time in Vail (aliases: `!date`, `!datetime`) |

The bot fetches real weather data and generates an atmospheric prose description. Updates every 30 minutes.

## Pool Spending

Spend a point from one of your pools. Requires your nick to be bound to a character (ask your ST).

| Command | Description |
|---------|-------------|
| `!rage` | Spend 1 Rage |
| `!gnosis` | Spend 1 Gnosis |
| `!wp` | Spend 1 Willpower |

**Example:**
```
!rage
  StormRunner spends 1 Rage (now 4/7)
```

These work in any channel or in a DM to the bot.

## Description

Set a short scene description (outfit, vibe, visible details) that other players can view. Requires your nick to be bound to a character.

| Command | Description |
|---------|-------------|
| `!desc <text>` | Set your IRC description |
| `!desc` | Clear your description |
| `!look <nick>` | View someone's description |

**Examples:**
```
!desc Leather jacket, cold stare, smells like ozone
  StormRunner set their description: Leather jacket, cold stare, smells like ozone

!look StormRunner
  Storm Runner: Leather jacket, cold stare, smells like ozone

!desc
  StormRunner cleared their description.
```

`!look` works for anyone — no binding required. You can look up a player by nick, character slug, or download token.

These work in any channel or in a DM to the bot.

## Deed Names

The spirits whisper deed names freely. Check your own or look up another character's deed names in any channel or DM.

| Command | Description |
|---------|-------------|
| `!deednames` | Show your own deed names |
| `!deednames <nick or slug>` | Show another character's deed names |

**Examples:**
```
!deednames
  Storm Runner: Wyrmbreaker, Voice of Thunder

!deednames Notch
  Notch: Shadowfoot
```

These work in any channel or in a DM to the bot.

## Rest

End your RP day with `!sleep`. This bundles the end-of-day effects into one command: you earn a beat toward XP, recover Willpower and Rage, and heal. There's an 18-hour real-time cooldown between sleeps.

`!meditate` is a companion command that lets you restore Gnosis through meditation, once per sleep cycle.

| Command | Description |
|---------|-------------|
| `!sleep` | End-of-day rest |
| `!meditate <pool> <diff> [spec]` | Meditate to restore Gnosis (once per sleep) |

### What !sleep does

- **+1 beat** — When you accumulate 2 beats, they auto-convert to 1 XP
- **+1 Willpower** — Capped at your permanent rating
- **Rage recovery** - Based on the moon (new=1, waning=2, half/waxing=3, full=4). If the moon matches your auspice, rage restores to full
- **Healing** — All bashing and lethal damage clears, plus 1 aggravated heals
- **Resets meditation** — You can `!meditate` again after sleeping

**Examples:**
```
!sleep
  StormRunner sleeps: +1 beat, WP 6/8 → 7/8, Rage 3/7 → 4/7, healed 2B 1L

!sleep
  StormRunner sleeps: +1 XP (2 beats), WP 8/8 (full), Rage → 7/7 (auspice moon!), healthy
```

### Meditation

Meditation rolls restore Gnosis equal to the number of successes (capped at your max). You choose your pool and difficulty, but the bot shows a suggested difficulty that escalates each time you meditate (base 8, +1 per meditation). The suggested difficulty resets every 7 sleeps.

You can only meditate once between sleeps.

**Examples:**
```
!meditate 4 8
  StormRunner meditates (suggested diff 8): 4d10 diff 8: [10, 7, 3, 9] - 2 successes -- Gnosis +2 (2/4 → 4/4)

!meditate 4 8
  You've already meditated since your last sleep.
```

### Rest cycle in !stats

`!stats` shows your rest cycle and meditation status:

```
Rest: never slept, meditation available (diff 8)
Rest: 3/7 days, meditation available (diff 10)
Rest: 3/7 days, meditated
```

These work in any channel or in a DM to the bot.

## Character Queries (DM Only)

Send these commands in a **direct message** to DiceBot. They only work if your nick is bound to a character.

| Command | What You Get |
|---------|-------------|
| `!stats` | Identity, pools, health, and renown summary |
| `!attributes` or `!attrs` | All 9 attributes (Physical, Social, Mental) |
| `!abilities` | Non-zero talents, skills, and knowledges |
| `!gifts` | Your gifts organized by category |
| `!rites` | Your rites |
| `!carried` | Items you're carrying |
| `!owned` | Items you own |
| `!form <form>` | Your stats in a Garou form (with traits) |
| `!specs` | Attribute and ability specialties |
| `!notes` | Your ST notes |
| `!token` | Your download token and links to your character sheet |
| `!token web` | Web link to your character sheet |
| `!token gemini` | Gemini link to your character sheet |
| `!token gopher` | Gopher link to your character sheet |

## Garou Forms

Check the stat modifiers for each Garou form. `!form` alone shows the modifier summary. `!form <form>` in a DM shows your character's modified stats and the form's special traits.

| Command | What You Get |
|---------|-------------|
| `!form` | Modifier summary for all five forms |
| `!form <form>` | Your stats in that form + traits |

**Forms:** Homid, Glabro, Crinos, Hispo, Lupus

**Examples:**
```
!form
  Homid: no modifiers
  Glabro: Str +1, Sta +1, App -1, Man -1
  Crinos: Str +4, Dex +1, Sta +3, App 0, Man -3
  Hispo: Str +3, Dex +2, Sta +3, Man -3
  Lupus: Str +1, Dex +2, Sta +2, Man -3

!form crinos
  Storm Runner (Crinos): Str 5→9, Dex 3→4, Sta 4→7, Man 1→0, App 0
  War form. Causes Delirium in humans. Bite +1 damage.
  Claws/bite do aggravated. Diff to resist frenzy -1. No Social except Intimidation.
```

`!form` works in any channel. `!form <form>` with your stats requires a DM.

## News

Read announcements and events from IRC.

| Command | What You Get |
|---------|-------------|
| `!news` | Show titles from all categories |
| `!news a` | List announcement titles |
| `!news e` | List event titles |
| `!news a 2` | Read announcement #2 in full |
| `!news e 1` | Read event #1 in full |

These work in any channel or in a DM to the bot.

## Getting Help

| Command | Where | What |
|---------|-------|------|
| `!help` | Channel | Brief command summary |
| `!help` | DM | Full command list for your role |
