Setting Metro up
Setup takes about five minutes. The owner, or a member with the Discord permission Manage Server, does it once per Discord server.
Step 1: Add Metro to Discord
Add the bot with the "Add to Discord" button on https://metrobot.app. Metro asks for these Discord permissions: view channels, send messages, embed links, attach files, create public threads, manage nicknames and manage roles. It never asks for Administrator.
When Metro joins, it posts a welcome with three steps and a dashboard link in the server's system channel. If it cannot post there, it DMs whoever added it, then the server owner.
What failure looks like: no welcome message usually means Metro cannot see or post in the system channel. Nothing is broken; carry on with /setup.
Step 2: Run /setup
/setup key:<Server-Key> log_channel:<#channel> [template:<name>]
keyis the ER:LC Server-Key. In ER:LC, open your private server settings, then the API section, and create a key if you have none.log_channelis a text channel, usually a staff channel, where Metro logs payouts, purchases, fines and staff events.templateis the economy to start from: Light, Standard, Full RP, Civilian City or Strict RP. Standard is the default.
What happens:
- Metro checks the key with PRC before anything is saved.
- Metro stores the key encrypted and never shows it again, not even partly.
- Metro posts a "Metro is connected" test card in the log channel.
- Metro applies the template, but only on a server that has never been set up or when you pick a template on purpose. A server with settings keeps them.
- The reply lists the next steps: the webhook URL, a test job, the ER:LC authorize link and telling players.
The Dashboard Setup page (/g/<server id>/manage/setup) does the same in the browser.
What failure looks like:
- "Only the server owner or a manager can run /setup." You need Manage Server.
- "PRC says that Server-Key is wrong or expired." Make a new key in ER:LC under Settings, then API, and run
/setupagain with it. - "PRC is having trouble right now. Try again in a minute." PRC is down or busy. Wait and retry.
- "Metro can't see #channel." Give the Metro role View Channel in the log channel, or pick another channel.
- "Metro can see #channel but can't post there." Give the Metro role Send Messages and Embed Links.
When the test card cannot be posted, nothing is saved.
Step 3: Turn on in-game commands (webhook)
The /setup reply contains a webhook URL. Paste it into your ER:LC private server settings as the webhook URL. This lets players type ;verify CODE in game chat to link their account, and lets officers use ;cad commands. The Setup page shows the URL again and can make a new one; the old one then stops working.
What failure looks like: the Setup page and the go-live checklist say "No in-game command has reached Metro yet" until a ; command arrives. Once one does, they show "In-game commands working" with the time it was last received.
Step 4: Authorize Metro in ER:LC
PRC asks the server owner to approve Metro once, so Metro can send in-game messages and commands. Only the Roblox account that owns the private server can approve it; co-owners and staff cannot.
- Sign in at https://api.erlc.gg/server-owners with the Roblox account that owns the private server.
- Open the authorize link from the
/setupreply or the Setup page, and approve.
What failure looks like: if PRC shows a server list or "No servers found" instead of the approve screen, you are signed in with the wrong Roblox account, or the server does not have the API pack. Without this approval Metro still reads the server and pays players, but cannot send in-game messages or commands.
Step 5: Get paid once yourself
Run /verify to link your Roblox account, join your server in game on the Civilian team, get in a vehicle, run /job start in Discord and drive to the address Metro DMs you. The money arrives when you get there.
Step 6: Tell your players
/help commandslists every command./channels setpicks where Metro posts the season board, election news, the 911 panel, new 911 calls and alerts.- Players start with
/verify, then/walletand/job start.
The go-live checklist
The Dashboard Overview shows a checklist until the first player is paid. Each step and what it says when stuck:
| Step | Done when | When it is stuck |
|---|---|---|
| Server-Key stored | A key PRC accepted is saved | PRC refuses the stored key: paste a working one on Setup |
| Template chosen | A starting economy is applied | Pick one on Setup or Templates |
| First poll received | Metro has read the server once | Usually within a minute. Stuck states: the key was refused, the server needs a restart, or reading stalled ("It keeps trying by itself") |
| In-game commands working | A ; command reached Metro | "No ; command has reached Metro yet": show the webhook URL on Setup, paste it in ER:LC, then type ;verify in game |
| First player paid | A player was paid for a job | Make sure a verified player on the Civilian team in a vehicle runs /job start |
Setup reminders
If your server has no paid jobs a week after install, the owner gets a DM with the checklist. Stop these or Dashboard > Grow > Owner reminders turns it off. Set it up for me opens a support ticket.
Launch offer
While launch spots last, a server that finishes setup gets 30 days of Plus free, with no card and nothing to cancel. The first 25 servers count. Each server gets it once; running setup again or re-adding Metro does not give a second month. metrobot.app shows how many spots are left and stops mentioning the offer when they are gone.
Vote trial
A server that never had Plus can get 7 days free, once: the owner runs /plus trial and votes for Metro on top.gg with the button it shows. Plus starts within a minute of the vote. No card is taken and nothing is charged unless the owner subscribes.
Vote perks
Grow > Vote perks: set the monthly goal, turn streak bonuses on or off, and optionally paste a role id for the Voter role. The role must sit below Metro's role. It is cosmetic: nothing is locked behind votes.
Removing Metro
When Metro is removed from a Discord server, it stops reading that ER:LC server at once and deletes the stored Server-Key. The rest of the economy is kept. Add Metro back and run /setup again with a key, and everything returns.
Next: Slash commands