# ER:LC webhooks

> Send your private server's events to Jellyn the moment they happen, and let Jellyn read ER:LC's own posts in Discord.

Jellyn reads your linked server through the ER:LC API about once a minute. Two kinds of webhooks make it react within seconds instead. Both are set up on **Game features**, with the **ER:LC connection** permission.

## The events webhook

ER:LC can send what happens in your private server to an address you give it. Jellyn gives each server a **secret address** for that.

<Steps>
  <Step title="Copy your address">
    On **Game features**, under **ER:LC events webhook**, copy the address. Treat it like a password.
  </Step>
  <Step title="Paste it in ER:LC">
    In your private server's settings in ER:LC, paste it as the events webhook.
  </Step>
  <Step title="Check it">
    The ER:LC page says whether the events webhook is in use, with the last event Jellyn got.
  </Step>
</Steps>

What it makes possible:

| Typed in game | Does |
| --- | --- |
| `;refresh` or `;rf` | Refreshes the player's own character |
| `;vc name` | Moves them to a voice channel (see [Game features](/erlc/game-features#players-and-voice)) |
| `;priority` | Asks for a priority (see [Priority](/erlc/playtime-priority#priority)) |
| Your own `;` commands | Start [Jellyn Lab systems](/developers/lab/in-game-commands) |

<Check title="Signed, so nobody can pretend">
  ER:LC signs everything it sends (Ed25519, over the timestamp and the body). Jellyn checks the signature with ER:LC's public key and refuses anything unsigned, wrongly signed or too old. A retried event is only handled once.
</Check>

## ER:LC's webhooks in Discord

ER:LC can also post its own logs in your Discord through Discord webhooks: command logs (with joins and leaves), and kicks and bans. Tell Jellyn which channels they post in, under **ER:LC webhooks in Discord**:

- When you save, Jellyn checks the channel's last 50 messages for ER:LC's posts.
- After that, it reads new posts as they arrive: `:log`, logged kicks and bans and command alerts happen within seconds.
- A command is handled once, whether it came from these posts or from the ER:LC API.

<Note>
  Jellyn needs **View Channel** and **Read Message History** in those channels. ER:LC doesn't document these posts, so Jellyn reads them loosely: Roblox profile links say who, and the text after *used the command* says what.
</Note>
