# In-game commands

> Start a system when a player types your own command in ER:LC, with arguments, aliases, who may use it and a wait between uses.

ER:LC takes a command typed with `:` or `;` in front. A system started by **Someone runs an in-game command** can be written with either (`:duty` or `;duty`) and hears both.

```erlc
;report Sam_RP Random deathmatch at the bank
```

## Arguments

A command can take up to **5 arguments**: the words typed after it, in order, used in blocks as `{arg.name}`. The **last one takes the rest of the line**, so it can be a reason or a message.

| Typed | `{arg.player}` | `{arg.reason}` |
| --- | --- | --- |
| `;report Sam_RP Random deathmatch at the bank` | `Sam_RP` | `Random deathmatch at the bank` |

Required arguments come first. When one is missing the system doesn't run, and it can tell the player how to use it with a `:pm`:

<CodeGroup>
```text Jellyn's words
Use it like this: :report <player> <reason>
```

```text Your own words
Reports need a player and a reason. {usage}
```
</CodeGroup>

`{usage}` is where how to use it goes in your own words.

## The other settings

<Field name="Other commands that start it" type="up to 4">
  Aliases, like `:r` for `:report`. `:` and `;` count as the same.
</Field>
<Field name="Who can use it" type="everyone · verified · staff">
  Everyone in game, players who verified their Roblox account on Jellyn, or staff (players whose verified Discord account is on your server's staff).
</Field>
<Field name="Wait between uses" type="0 to 3600 seconds">
  Each player waits this long before it runs for them again.
</Field>

## Sending commands back

The **Run an in-game command** block sends any `:` command ER:LC runs (`:h`, `:m`, `:pm`, `:kick`, `:tp`, `:weather` and the rest): one line, with the command written out and values after it.

```erlc
:pm {player} Thanks, your report is in. Staff will look at it soon.
```

<Warning>
  A system started by an in-game command can't send another in-game command. That stops two systems from setting each other off forever. And Lab never sends rank changes or commands on everyone at once.
</Warning>

<Note>
  Jellyn sends `:` commands only. `;` commands are what players type, and reach Jellyn through your server's [events webhook](/developers/erlc-webhooks).
</Note>
