# Welcome to the MushClient Soundpack for Cosmic Rage!

This soundpack is designed to enhance your gaming experience in Cosmic Rage, providing over **2,000 unique sound effects** (and growing) to make your adventures more immersive. We regularly add new sounds and polish existing ones, ensuring your gameplay is always engaging.

## Features

*   **Extensive Sound Effects**: Covers a wide range of in-game actions and events.
*   **Ambiences and Music**: Adds atmospheric depth to your gameplay.
*   **Automatic Updates**: The pack will download new sounds as you encounter them.
*   **Discover more as you play!**

## Installation

Getting the soundpack up and running is simple:

1.  **Download the Soundpack**: Click [this link](https://gitea.nathantech.net/CosmicRage/Mush-Soundpack/archive/main.zip) to download the soundpack.
2.  **Extract the Files**: Extract the downloaded zip file to a location of your choice.
    *   **Important**: Ensure the extracted folder does not contain any special or non-English characters (e.g., ö, ğ, ü) as this can cause issues with MushClient.
3.  **Run the Installer**: Locate the `installer.bat` file within the extracted folder. Right-click it and select "Run as administrator". Wait for the installation process to complete.
4.  **Update the Soundpack**: To update the soundpack in the future, simply run `updator.bat` as an administrator.
5.  **Restart MushClient**: Close and reopen MushClient for the soundpack to be loaded.

## Connecting to Cosmic Rage

MushClient is a portable client designed specifically for Cosmic Rage. The game world will automatically load, so there's very little setup required on your end.

1.  **Launch MushClient**: Open the MushClient application.
2.  **Connect**: The game world should automatically load. If it doesn't, or if you need to re-establish a connection, you can typically do so through the client's connection menu.

## Hotkeys Reference
## Keybindings

### Buffer Switching
- **Alt + 1** to **Alt + 0**: Switch to buffer 1 through 10
- **Alt + Right**: Next buffer
- **Alt + Left**: Previous buffer
- **Alt + Down**: Buffer down
- **Alt + Up**: Buffer up
- **Alt + PageDown**: Scroll buffer down
- **Alt + PageUp**: Scroll buffer up
- **Alt + End**: Jump to bottom of buffer
- **Alt + Home**: Jump to top of buffer
- **Alt + Delete**: Clear current buffer
- **Alt + Shift + Delete**: Clear all buffers
- **Alt + Shift + Right**: Add buffer
- **Alt + Shift + Left**: Delete buffer

### Sound and Volume Settings
- **F2**: Open settings
- **F4**: Master volume
- **F5**: General volume
- **F6**: Ambiance volume
- **F7**: Communication volume (IC/OOC)
- **F8**: Planetary music volume
- **Ctrl + F5**: Clocks volume
- **Ctrl + F6**: Combat music volume
- **Ctrl + F7**: IC social volume
- **Ctrl + F8**: OOC social volume
- **Alt + F5**: Ground combat volume
- **Alt + F6**: Harvesting activity volume
- **Alt + F7**: Salvage activity volume
- **Alt + F8**: Pilot's Parody (games) volume
- **Shift + F5**: Starship combat volume
- **Shift + F6**: Ship volume
- **Shift + F7**: Ship movement volume
- **Shift + F8**: Vehicle volume
- **F9**: IC social sounds
- **F10**: OOC social sounds
- **Alt + F9**: Sound panning
- **Alt + F10**: Sound pitch shifting
- **Alt + F11**: Toggle ambiance
- **Ctrl + F9**: Toggle planetary music
- **Ctrl + F10**: Toggle space combat music
- **Ctrl + F11**: Toggle weather sounds
- **Shift + Alt + F9**: Interrupt OOC social sounds on next play
- **Ctrl + F1**: Mute/unmute master sound
- **Ctrl + F2**: Master volume down
- **Ctrl + F3**: Master volume up
- **Alt + F3**: Toggle intro music
- **F11**: Stop all currently playing sounds and restart the soundpack
- **Alt + F12**: Stop all currently playing sounds

### Other Functions
- **Shift + F1**: Toggle SP on/off
- **Ctrl + Shift + Enter**: Toggle buffer sounds
- **Ctrl + Shift + V**: Show version
- **Ctrl + S**: Save client-side soundpack settings
- **Alt + Shift + H**: Show local help

### Accessible Output Window
The soundpack mirrors game text into a separate notepad-style window titled "output", useful for reviewing text with a screen reader without losing your place when new lines arrive.

- **Ctrl + Alt + O**: Toggle whether output is mirrored to the output window
- **Ctrl + Alt + J**: Toggle whether switching to the output window jumps you to the newest line
- **Ctrl + Shift + C**: Clear the output buffer
- **Ctrl + Alt + Shift + C**: Clear the output window
- **Ctrl + Shift + I**: Speak the current line
- **Ctrl + Shift + U**: Speak the previous line
- **Ctrl + Shift + O**: Speak the next line
- **Ctrl + Shift + Y**: Jump to and speak the top line
- **Ctrl + Shift + N**: Jump to and speak the bottom line
- **Ctrl + Shift + H**: Announce current line number and total line count
- **Ctrl + Shift + Space**: Start/stop selecting lines (copies with line breaks)
- **Ctrl + Shift + Alt + Space**: Start/stop selecting lines (copies joined by spaces, no line breaks)
- **Ctrl + Shift + Alt + S**: Take a snapshot of the whole buffer into a "snapshot" notepad
- **Ctrl + Alt + Enter**: Toggle stopping speech whenever you press Enter
- **Ctrl + 1** to **Ctrl + 0**: Recall a recent output line by position from the end (tap once to speak it, twice to copy it, three times to paste it into the command line)

### Gag Manager
- **Alt + F2**: Open the Gag Configuration menu (see [Gag Manager](#gag-manager) below)

### Numpad Movement
See [Numpad Movement](#numpad-movement) below for the full breakdown - summary:
- **Alt + Enter**: Toggle numpad movement on/off
- **Numpad 1-9, 0**: Move (with Numpad 5 as look, Numpad 0 as exits)
- **Numpad \* / Ctrl + Numpad \***: In / out
- **Numpad - / Numpad +**: Up / down
- **Ctrl + Numpad 1-9** (except 5): Move up a level in that direction
- **Ctrl + Numpad - / Ctrl + Numpad +**: Upstairs / downstairs
- **Ctrl + Alt + Numpad 1-9**: Move down a level in that direction (Ctrl+Alt+Numpad 5 is "go")
- **Ctrl + Alt + Numpad - / Ctrl + Alt + Numpad +**: Climb up / climb down


## Gag Manager

Gags let you hide or replace lines of game text you don't want to see or hear - spam messages, repetitive room text, anything cluttering your screen or your screen reader. Under the hood a gag is just a MUSHclient trigger, matched against incoming game text the same way any other trigger would be.

### Opening the gag menu

Press **Alt + F2** to open the Gag Configuration menu. From there you can:

*   **Create a new gag** - a 3-step walkthrough: the text to match, how to gag it, and which category to file it under.
*   **Delete an existing gag** - pick from a list of everything you've gagged.
*   **Toggle a whole category on or off** - Activity, Ship, Vehicle, or Misc gags, without deleting anything.

### Creating a gag

1.  **Pattern**: Type the exact text as it appears in-game. Use `*` as a wildcard - e.g. `* hugs you` matches anyone hugging you, `You receive *` matches any "You receive ..." line.
2.  **Method**:
    *   **Voice only**: Hidden from the screen and log, but your screen reader still reads it aloud. Good for things you want to hear but don't need cluttering the screen.
    *   **Full gag**: Removed from both the screen and speech entirely.
    *   **Substitute**: Replaces the matched line with your own text. Use `%1`, `%2`, etc. for wildcard matches and `%0` for the whole original line - e.g. pattern `* hugs you` with substitution `%1 pokes you` turns "warrior hugs you" into "warrior pokes you".
3.  **Category**: Activity, Ship, Vehicle, or Misc. This only controls grouping, so you can toggle a whole category at once - e.g. turn off all Ship gags when you're not flying.

### Sharing gags

Your gags are saved to `gags.lua`, next to your world file (`worlds/Cosmic Rage/gags.lua`). It's a plain, human-readable file, so you can copy it to share your gag list with someone else or keep it as a backup. To load someone else's list, drop their `gags.lua` into your own `worlds/Cosmic Rage/` folder - this replaces your existing gags, so back yours up first if you want to keep it.


## Numpad Movement

The numpad can be dedicated entirely to movement, freeing you from typing full direction commands. It's on by default and works in three layers depending on what modifier you hold.

### Plain numpad - normal movement
- **Numpad 7 / 8 / 9**: Northwest / North / Northeast
- **Numpad 4 / 5 / 6**: West / Look / East
- **Numpad 1 / 2 / 3**: Southwest / South / Southeast
- **Numpad 0**: Exits
- **Numpad \***: In
- **Ctrl + Numpad \***: Out
- **Numpad -**: Up
- **Numpad +**: Down

### Ctrl + numpad - move up a level while heading that direction
- **Ctrl + Numpad 7 / 8 / 9**: Northwest-up / North-up / Northeast-up
- **Ctrl + Numpad 4 / 6**: West-up / East-up
- **Ctrl + Numpad 1 / 2 / 3**: Southwest-up / South-up / Southeast-up
- **Ctrl + Numpad -**: Upstairs
- **Ctrl + Numpad +**: Downstairs

### Ctrl + Alt + numpad - move down a level while heading that direction
- **Ctrl + Alt + Numpad 7 / 8 / 9**: Northwest-down / North-down / Northeast-down
- **Ctrl + Alt + Numpad 4 / 6**: West-down / East-down
- **Ctrl + Alt + Numpad 1 / 2 / 3**: Southwest-down / South-down / Southeast-down
- **Ctrl + Alt + Numpad 5**: Go
- **Ctrl + Alt + Numpad -**: Climb up
- **Ctrl + Alt + Numpad +**: Climb down

### Turning it off

Press **Alt + Enter** to toggle numpad movement on or off - useful if you need the numpad free for typing numbers instead. You'll hear a confirmation sound and a spoken message each time you toggle it. When it's off, the numpad keys behave normally again rather than doing nothing.

## FAQ

**Q: My soundpack isn't working. What should I do?**

A: First, ensure you have correctly installed the soundpack by running `installer.bat` as administrator. Then, make sure the soundpack is enabled within MushClient. You can typically do this through the soundpack's configuration or by typing `sp on` in the MushClient command line if a specific command channel is set up. If issues persist, you can open an issue in the GitHub repository for assistance.

**Q: How do I report a bug?**

A: Type `spbug` in the MushClient command line. This will typically open a way to submit your bug report.

**Q: I have a suggestion for the soundpack. How can I share it?**

A: Use the `spsuggest` command in MushClient to submit your ideas.

**Q: Can I contribute as a soundpack developer?**

A: While direct development positions aren't currently available, you can contribute cool sounds by sending them via the `spsuggest` command with a download link. If your contribution is integrated, you'll be credited in the changelog and may be rewarded.

Happy MUDding!