Getting started
A pixel-art field where every viewer who chats gets their own tiny horse. The horses wander, graze, gallop, nap and get up to things while you're away or asleep. No Twitch login, no bot account, nothing to install: the page reads your chat anonymously and never posts anything.
- Open horses.corard.tv. After the splash screen, press S or move the mouse and click the ⚙ cog.
- Type your Twitch channel name and click Connect. The pill in the bottom-left turns green once it has joined chat, and your own horse walks in straight away.
- Press F for fullscreen. The UI hides itself after a few seconds; move the mouse to bring it back.
https://horses.corard.tv/?channel=your_channel_name
The channel, checkboxes and ignore list are saved in the browser, so next time it reconnects on its own.
OBS setup
- Add a Browser Source.
- URL:
https://horses.corard.tv/?channel=your_channel&nosplash=1 - Set width and height to your canvas, e.g. 1920 × 1080.
- Optional: tick "Shutdown source when not visible" if you want it to reset between scenes.
Settings
Quick panel S
| Control | What it does |
|---|---|
| Twitch channel + Connect | Which chat to watch |
| Fullscreen | Same as pressing F |
| 🧹 Clear | Send every horse home and forget them (asks first) |
| Show names | Name labels above horses |
| Show chat bubbles | Speech bubbles for chat messages, Twitch emotes included. Off by default |
| Ignored horses | Users who never get a horse. Prefilled with the common bots. Adding someone who already has a horse sends it home |
Advanced panel Shift+S
Every knob there is. Everything applies live and is saved in this browser; the quick panel shows a subset of the same settings so the two stay in sync. The broadcaster and Corard can also change any of these from chat with !set (see chat commands).
| Group | Settings |
|---|---|
| Connection & chat | Channel · sub alerts · raid celebrations · ! commands on/off and who can use them (mods or everyone) · single-letter controls · who can use !race / !event / !weather · who can pick exclusive coats · the broadcaster's royal look on/off · the creator login (Corard) · ignored users |
| Population | Max horses · seconds between new horses · idle leave · how many hours horses are remembered · spawn queue bar |
| Display | Names · bubbles · bubble duration · text size · pixel size · splash screen · UI hide delay · debug overlay |
| World & time | Day length · a fixed time of day · weather on/off · which weather types can happen · weather frequency · birds, butterflies and fireflies |
| Events | Minutes between events · which event types can happen |
| Horse behaviour | Activity multiplier (walking, running, tricks) · night sleepiness · demo horses |
At the bottom: Export JSON and Import JSON to back up or move settings, Copy URL to build a link with every non-default setting, and Reset (keeps the channel).
! commands for mods, the broadcaster and Corard only.
Keyboard
How the field works
Events
Every 6 minutes or so something happens. Some events only show up at the right time of day. The little light on the barn roof is your subtle indicator: yellow normally, blinking a colour while an event runs, back to yellow after.
Weather
A spell of weather turns up roughly every two or three game days.
Watch the windmill on the hills: it whips round in a storm, turns briskly in rain, and barely moves in snow or fog.
Letter controls
Quiet controls for everyone that don't look like commands. A message must be one letter repeated, with or without spaces, so ordinary words never trigger them. More repeats do more: w w w w walks four steps up, aaaaaa six steps left (four or more and the horse trots).
| Letters | Effect |
|---|---|
w a s d | Step up, left, down, right. Repeat for further |
g | Gallop the way the horse is facing. Repeat for further |
j | Jump |
r | Rear |
o | Roll over |
e | Eat. Repeat for longer |
l | Look around |
c | Celebrate (dance). Repeat for longer |
z | Lie down and sleep |
x | Wake up |
Letter messages never show a bubble. Switch them off in advanced settings if you like.
Chat commands
By default the ! commands work only for mods, the broadcaster and Corard; everyone else steers with the letters above. Open them up to everyone in advanced settings. Not case-sensitive. The broadcaster and Corard also get !set for changing settings, further down.
Moving & idling
| Command | Effect |
|---|---|
!gallop !run !zoom | Gallop across the field |
!trot !walk | Trot or wander somewhere |
!sleep !nap | Lie down and sleep for a good while |
!wake !up | Get back up |
!graze !eat | Graze |
!look !shake | Look around · shake it off |
Tricks
| Command | Effect |
|---|---|
!roll !rear !jump !dance | Roll over · rear up · jump · dance with music notes |
!hug @name !nuzzle | Walk over and nuzzle another horse (random if no name). They may nuzzle back |
!neigh | A big NEIGH and a rear |
!leave !bye | Walk off the field |
Mods & broadcaster
| Command | Effect |
|---|---|
!race | Everyone lines up on the left, 3-2-1-GO, first across wins a crown and confetti |
!event | Trigger a random event now, or a specific one: !event ufo (carrots, zoomies, disco, visitor, naptime, race, ufo, meteors, balloon, tractor) |
!weather | Start weather now: !weather storm, rain, snow, fog, or clear |
!party! | Confetti and everyone does a trick |
!clear | Broadcaster only. Send every horse home and forget them |
Settings from chat broadcaster & Corard
Any advanced setting can be changed live from chat and confirms with a banner, so it works even with bubbles off. Send just the name to see the current value.
| Command | Effect |
|---|---|
!set <setting> <value> | e.g. !set bubbles on, !set spawn 30, !set eventtypes carrots,ufo, !set hour 22 (!set hour auto to cycle again) |
| Shorthand | Most settings work as their own command: !bubbles on, !names off, !spawn 30, !daylength 10, !events 5, !max 150, !idle 120, !activity 1.5, !letters off, !subalerts on, !debug on |
!settings | Lists every setting name |
Setting names are the URL option names from the table below. Booleans take on/off; lists are comma separated or all.
Outfits & coats
Each slot takes a name, random, or none. A name that doesn't exist makes the horse list the options.
| Command | Options |
|---|---|
!hat | cowboy, tophat, party, crown, beanie, flower, halo, propeller, wizard, bow, cap |
!glasses | sunglasses, glasses, monocle, eyepatch |
!scarf | scarf, bandana, bell, bowtie, lei, tie |
!saddle | saddle, blanket, wings |
!style / !naked | Reroll the whole outfit / remove everything |
Handy aliases: top → tophat, tiara king queen → crown, hat baseball → cap, angel → halo, birthday → party, witch → wizard, shades → sunglasses, patch → eyepatch, collar → bell, rug → blanket.
Coats
!coat name (also !colour). random for a lucky dip.
| Who | Coats |
|---|---|
| Everyone | bay, chestnut, black, grey, white, palomino, buckskin, dun, cremello, roan, pinto, appaloosa, dapple, liver, pink, blue, mint, lavender, zebra |
| Subs, VIPs & mods | unicorn, golden, rainbow, shadow (they sparkle, and glow in fog). Anyone can roll one randomly, very rarely |
Aliases: brown → bay, red ginger → chestnut, purple → lavender, green → mint, gold → golden, yellow → palomino, cream → cremello, spotted → appaloosa, paint → pinto, silver → dapple, dark → black.
URL options
Add after ?, joined with &. Booleans take 1 or 0; lists are comma separated. The easiest way to get the exact link you want is Copy URL in the advanced panel. These names double as the !set setting names in chat.
| Option | Meaning |
|---|---|
channel=name | Twitch channel to watch |
nosplash=1 | Skip the splash screen (good for OBS) |
max=150 | Maximum horses on the field |
spawn=40 | Seconds between new horses entering |
idle=180 | Minutes of silence before a horse can be sent home when over 80% full. 0 = never |
remember=12 | Hours horses are remembered after a refresh |
names=0 bubbles=1 | Name labels · speech bubbles |
textscale=1.2 bubbletime=1.5 | Text size · bubble duration multipliers |
pix=3 | Screen pixels per game pixel. Bigger is chunkier; 0 = auto |
daylength=8 | Minutes per in-game day. 0 follows your real clock |
hour=22 | Freeze the time of day, 0 to 24 |
weather=0 weathertypes=rain,fog weatherrate=2 | Weather on/off · allowed types · frequency multiplier |
events=6 eventtypes=carrots,ufo | Minutes between events (0 = off) · allowed types |
activity=1.5 sleepiness=0.5 | Behaviour multipliers |
subalerts=1 raidalerts=1 | Sub banner · raid celebration |
commands=0 commandsfor=everyone letters=0 | ! commands on/off · who can use them · letter controls |
modcmds=broadcaster exclusivefor=mods | Who can use mod commands · who can pick exclusive coats |
royal=1 special=login | Royal look on/off · extra login that gets it |
ignore=nightbot,otherbot | Users who never get a horse |
critters=0 spawnbar=0 hudhide=5 | Birds and butterflies · spawn queue bar · UI hide delay |
demo=1 or demo=80 | Fake horses and fake chat, no Twitch needed |
debug=1 | Overlay with FPS, frame timings, counts, clock, weather and event state |
Testing without a live chat
Turn on Demo horses in advanced settings (or add ?demo=1) for fake horses and chat. For specific things, open the browser dev tools (F12, Console tab) and use the mock helper:
| Command | What it does |
|---|---|
mock.sub("name") | A new subscriber (also "resub", "subgift" as a second argument) |
mock.raid("name", 42) | An incoming raid with 42 viewers |
mock.chat("name", "hello!") | A chat message. Add {mod: true} for mod powers (sub, vip, broadcaster too) |
mock.event("ufo") | Start a field event now. No name for random |
mock.weather("storm") | Start weather: rain, storm, snow, fog, clear |
mock.horses(20) | Drop 20 fake horses straight in |
mock.help() | Lists these |
Press C or use Clear afterwards to tidy up.
Troubleshooting
| Problem | Fix |
|---|---|
| Pill stays red | Check the channel name for typos. The game reconnects on its own if Twitch drops the connection |
| Bots getting horses | Add them to the ignored horses box |
| Too crowded | Lower max horses, raise the spawn interval, or press C to clear the field |
| Text too small or large | Change text size or pixel size in the advanced panel |
| Something looks stuck | Add ?debug=1 and send a screenshot of the overlay |