# Say Command

The !say command allows you to send a text-to-speech message to be displayed on screen. The engine supports a few voices and has a few commands that can manipulate the appearance of the text on screen as well as how it sounds.

## Voices

To change your voice, use the `[voice <voice>]` command.

### appr-high

My voice (and the default voice), pitched to mimic the voices from Animal Crossing. It pronounces your text phoneme-by-phoneme.

### apprehentice

My voice, unpitched. This is useful for applying your own pitch modifications. It pronounces your text phoneme-by-phoneme.

### appr-low

My voice, pitched down to mimic cranky villagers from Animal Crossing. It pronounces your text phoneme-by-phoneme.

### bebebese

A soft popping sound that plays for every letter. Useful for adding a little character in the middle of other voices.

### silence

No sound

### vox

The Black Mesa Research Facility Automatic Diagnostic and Announcement System. This voice pronounces your text word-by-word.

Visit [https://half-life-vox.com/](https://half-life-vox.com/) to test out a sentence before sending it to !say, but remember to remove underscores before sending it.

### scratch

Record scratches, similar to the voices in the Katamari series. This voice speaks continuously until it runs out of text.

### sounds

Uses keywords to embed sounds into the phrase. Text in this voice will not be displayed on screen.

**Previews temporarily unavailable**

Available sounds are:

| Sound Name | Preview |
| --- | --- |
| bewoowoowoo |  |
| clothflap |  |
| explosion |  |
| fart1 |  |
| fart10 |  |
| fart11 |  |
| fart2 |  |
| fart3 |  |
| fart4 |  |
| fart5 |  |
| fart6 |  |
| fart7 |  |
| fart8 |  |
| fart9 |  |
| headknock |  |
| meow1 |  |
| meow2 |  |
| meow3 |  |
| meow4 |  |
| oof |  |
| quack |  |
| sirenwhistle |  |
| smallfart1 |  |
| smallfart10 |  |
| smallfart11 |  |
| smallfart12 |  |
| smallfart13 |  |
| smallfart2 |  |
| smallfart3 |  |
| smallfart4 |  |
| smallfart5 |  |
| smallfart6 |  |
| smallfart7 |  |
| smallfart8 |  |
| smallfart9 |  |
| toilet |  |
| trumpet |  |
| whistledown |  |
| whistleup |  |

## Commands

Commands are executed by wrapping the command and its parameters in square brackets (Ex. `[command param1 param2 ... paramN]`). Slick will attempt to validate commands before they’re processed, but there’s a chance it could fail to get to the overlay. If something doesn’t work, check your commands and try again.

### Frame

**Usage**: \[frame <frame name>\]

Change the dialogue box in which your message appears. This can be changed in the middle of your message, too. When changed mis-message, the text box contents will be preserved.

To set your default frame, do `!set say frame &lt;frame name&gt;`

Available frames:

- ac (Animal Crossing)
- stardew (Stardew Valley)
- king (King of All Cosmos)
- undertale

### Color

**Usage**: \[color <red> <green> <blue>\]

Sets the text color. Values are 0-255.

### Font

**Usage**: \[font <family>\]

Change the font to one of pre-approved font families:

- sans-serif
- comic-sans
- papyrus
- stardew-valley

### Opacity

**Usage**: \[opacity <value>\]

Sets the text opacity. The value is 0-1.

### Stroke

**Usage**: \[stroke <red> <green> <blue>\]

Sets the text stroke color. Values are 0-255.

Use `[stroke off]` to reset.

### Size

**Usage**: \[size <value>\]

Sets the text size. Possible values are:

- littlest
- smallest
- tiniest
- tiny
- little
- small
- normal
- medium
- middle
- default
- big
- large
- xx-large
- biggest
- largest
- xxx-large

Use `[size off]` or `[size default]` to reset.

### Clear

**Usage**: \[clear\]

Clears the text box. Useful to avoid scrolling. Pairs well with the pause and frame commands for changing frames mid-message.

### Rainbow

**Usage**: \[rainbow\]

Toggles hue shift for the text.

### Wave

**Usage**: \[wave\]

Toggles the wave effect for the text.

### Shake

**Usage**: \[shake\]

Toggles the shake effect for the text.

### Dancing

**Usage**: \[dancing\]

Toggles dancing letters

> That's amusing, but also impossible to read
> 
> — TASAgent
>
> This pleases me, it is money well spent
> 
> — HechoInMexico
>
> Esto me complace, fue dinero bien gastado
> 
> — ProductoDeMexico
>
> Why are you asking me about this?
> 
> — PrototypeFate

### Grow

Toggles the grow effect. Text and images will start small, shrink out, and then grow back in, creating a sort of bouncing wave effect as they appear.

### Rate

**Usage**: \[rate <value>\]

Sets the rate at which the text is read. This affects pitch. Possible values range from 0.25-3.

### Pitch

**Usage**: \[pitch <value>\]

Sets the pitch at which the text is read. Possible values range from 0.25-3.

### Tempo

**Usage**: \[tempo <value>\]

Sets the tempo at which the text is read. This does not affect pitch. Possible values range from 0.25-3.

### Voice

**Usage**: \[voice <voice>\]

Sets the voice for the text after the command.

### Volume

**Usage**: \[volume <value>\]

Sets the volume for the voice. Possible values are 0-1. Default volume is 0.5.

### Filter

**Usage**: \[filter <filter>\]

Toggles the specified audio filter. There are currently no available filters.

### Pause

**Usage**: \[pause <time>\], \[silence <time>\]

Pauses for the specified time in milliseconds.

### Sine

**Usage**: \[sine <frequency> <time> \[text\]\]

Generates a sine tone with the specified frequency for the specified duration, displaying the specified text in its place. **I will revoke your permissions if you abuse this.**

### Triangle

**Usage**: \[triangle <frequency> <time> \[text\]\]

Generates a triangle tone with the specified frequency for the specified duration, displaying the specified text in its place. **I will revoke your permissions if you abuse this.**

### Sawtooth

**Usage**: \[sawtooth <frequency> <time> \[text\]\]

Generates a sawtooth tone with the specified frequency for the specified duration, displaying the specified text in its place. **I will revoke your permissions if you abuse this.**

### Square

**Usage**: \[square <frequency> <time> \[text\]\]

Generates a square tone with the specified frequency for the specified duration, displaying the specified text in its place. **I will revoke your permissions if you abuse this.**

### Noise

**Usage**: \[noise <frequency> <time> \[text\]\]

Generates a white noise with the specified frequency for the specified duration, displaying the specified text in its place. **I will revoke your permissions if you abuse this.**
