Update log
Everything that changes in Sample Bot, in full, and how to turn each thing on. The announcement in Discord is the short version; this is where every detail lives.
v3.1.1
25 October 2026
Training announcements, a trap channel that removes advertising bots, shift time you can add by hand, and five fixes.
Announce a training before it starts
Run /training announce starts_in:30m and the bot posts that one is happening: who is
hosting, who is co-hosting, a countdown, and whatever you put in the notes, which is usually the join
code. It puts a tick on the post itself, so people can react without hunting for the emoji.
The paragraph underneath, the one about where to stand and what to wear and who not to ping, is
yours to write once in /config rather than retyped every session. The start time is a
live countdown rather than text, so a host in one timezone saying "starts at 8" does not leave half
their staff guessing. It can be designed in the message builder and carries its own banner, like
every other post the bot makes.
- Open
/configTraining and pick Where announcements are posted and who gets pinged. - Press Announcement wording and write your instructions.
- Trainers run
/training announcewith how long until it starts. Addcohost,notesor atypeif you want them.
Honeypot
A channel nobody is supposed to type in. Advertising bots join a server, find the first channel they are allowed to write in, and post their link. They do not read the channel, because they are not a person. So you put a channel at the top of the list that says in large letters not to type in it, and anybody who does is removed before your members ever see the advertisement.
You choose what happens: softban, which removes them and deletes their messages but lets them
rejoin, or a kick, a full ban, a day's timeout, or just a warning. Whichever you pick is filed as a
normal moderation case, so it shows up in /cases and your mod log like anything else,
and they are sent a DM explaining why before they lose the ability to receive one.
Administrators, anybody on a staff board, the server owner and other bots are never touched by it. The sign carries a count of how many it has caught, and can be restyled in the message builder like any other panel.
- Make a channel, name it something obvious, and drag it to the top of your channel list so it is the first one a bot finds.
- Open
/configHoneypot and pick that channel. - Choose what happens to somebody who posts there. Softban is the usual answer.
- Press Post the sign.
Add shift time by hand
Shifts end when somebody presses a button, and sometimes the button does not get pressed: they were
in game for two hours with Discord closed, or they ran an event off their phone. A supervisor who
watched them do it can now credit the hours with
/shift add member: time:2h.
Credited time counts everywhere real time counts, so it shows on the weekly leaderboard and towards
quota. It is recorded as credited rather than worked, with who granted it and why, so the two can
always be told apart. The member is told, since hours appearing on the board with no explanation is
the sort of thing people ask about. /shift removeadded undoes it, and refuses to touch
time that was actually worked.
- Give the boards you trust with it Add shift time in
/configStaff boards. It starts switched on for your top board only. - Run
/shift addwith the member, how long, and optionally why.
Fixed
- The Training page would not open for some servers. Putting a shortcut like
:yourlogo:in a training's emoji box stopped the whole page from loading, because Discord rejects an entire message over one emoji it cannot read. A shortcut is now refused when you type it, with an explanation, and an emoji the bot cannot use is named on the page and left off rather than taking the page down with it. - The CAD threw an error every time a player gained a wanted level, which cut that round of position tracking short. Fixed.
- A 28 day mute broke a server's whole moderation history. The length was stored
in a column too small to hold it, so
/casesand the mod log failed to load for anybody who had one on record. Existing cases are unaffected and load correctly again. - Session vote buttons sometimes said "This interaction failed" even though the vote had counted, because the bot was updating the session dashboard before answering the click. It answers first now.
- Verification refused codes that were plainly there. The code is shown in capitals and the check was case sensitive, so anybody who typed it in lower case into the Roblox app was told it was missing while looking straight at it. Capital letters and spaces no longer matter. The profile is also re-read fresh, since Roblox can serve a cached copy for a moment after you save, and the message now says so instead of insisting the code is absent.
v3.1.0
15 October 2026
Voice chat that follows players around the map, training with a mark sheet, partnerships arranged by the bot in both servers at once, and a Revoke button on every record.
Training
A kind of training is a list of stages. Make one called Patrol ride-along with
Radio discipline, Traffic stop and Pursuit on it,
and a trainer runs /training start to post a live mark sheet in the channel they are in
with the trainee. They mark each stage out of five, with a note on any of them, and the sheet updates
in place as they go. Press Finish and the record is filed in your training channel
with every stage and every mark on it, and the trainee is sent their own copy.
Passing is worked out from the marks rather than decided separately: the average has to reach the
pass mark you set for that type, so a trainer cannot mark every stage a four and then fail somebody.
Each type can be kept to certain staff boards, so the dispatcher sign-off stays with the dispatch
leads. Anybody allowed to run that training can pick a sheet up halfway through, which is what
happens when a trainer goes offline mid ride-along, and whoever finishes it is the name on the
record. /training history shows what a member has been through, which is the thing
nobody could answer before a promotion.
- Open
/configTraining and pick the channel finished records are filed in. - Press New kind of training, name it, and set the pass mark out of 5.
- Press Add a stage for each thing the trainer runs through. Write what good looks like and the trainer sees it when they mark that stage.
- Optionally pick the staff boards allowed to run it, and a channel of its own for its records.
- Give your training team Run training in
/configStaff boards, and your supervisors Read training records.
Partnerships
Partner with another server that runs Sample Bot and the bot arranges the whole thing. You write
your advertisement once, set the smallest server you will deal with, and set how many
representatives a server of a given size has to put in yours. Run
/partnership request, pick the server, and the request lands in their partnership
channel with both sets of terms on it, both advertisements, and your representatives named.
They pick theirs on the request and press Accept, and both advertisements go up in the same moment. Neither side has to trust the other to hold up their end, because neither side is the one posting. Both sets of terms are checked again at that moment too, so a server that has shrunk below the other's minimum since asking cannot slip through.
If any representative leaves the server they represent yours in, the partnership ends on its own: both advertisements come down and both servers are told why. That is the thing nobody notices otherwise, because your own members are all still there.
- Open
/configPartnerships. Pick a channel for partner advertisements and a channel where requests arrive for your staff. - Press Write the advertisement. Put your invite link in it, since this is what a partner server posts about you.
- Press Change the terms to set your minimum member count and the
representative ladder. There is no default for either: until you write one, you ask for no
representatives and turn nobody away. A ladder looks like
200:no, 400:3, 600:2, 1000:1, which refuses anything under 200 members, asks three representatives of a server under 400, two under 600, and one of everything from 600 upward. The last rung has no ceiling, so a server of five thousand owes the same one. - Give whoever handles this Manage partnerships in
/configStaff boards, then run/partnership request.
Photos and clips on an infraction
/infraction issue takes up to three photos or clips, and they are shown on the
record itself, under the reason. The member gets them in their copy as well, which matters because
the infractions channel is usually one they cannot read, and /infraction list marks
every record that has evidence filed with it. They stay on a revoked record too: keeping a revoked
infraction on file is pointless if nobody can see what it was about.
The files are attached to the record rather than linked. A Discord link to an upload stops working within a day, so a record pointing at one would have been a record pointing at nothing by the next morning.
- Nothing to set up. Run
/infraction issueand fill in evidence, and evidence2 and evidence3 if you have more. - Photos and videos up to 10MB each. Anything else is refused by name before the infraction is issued, so you never end up with a record and no evidence on it.
Tickets close when the member leaves
A ticket is a conversation with a member. When they leave the server, their open tickets close, a transcript is saved as usual, and the channel says why. No more channels sitting in the queue looking live for somebody who is not in the member list any more.
This is on in every server with nothing to switch, because it is not a judgement about how long is too long: they have left. A ticket staff pressed Never close on is held open and gets a line saying the member left instead, which is the right answer for a report about the person who just walked out.
- Nothing to set up.
- Press Never close on any ticket you want kept open regardless.
Session boosts can be posted again
/session boost and /session full can be run while the session is
already in that state. A boost is a request for players and a full notice is a warning not to try,
and both are worth saying again half an hour later. Before, the second one was refused because the
first was still the session's status, so staff were switching back to active and boosting again to
say the same thing.
- Nothing to set up. Run
/session boostas often as the session needs it.
Staff votes can be called off
Every open vote has a Cancel button on it now, and /session end
closes open staff votes as well as sessions and public votes. A staff vote started by mistake could
not be stopped at all: it stayed open, blocked the next one, and went on collecting votes for a
session nobody was going to run.
- Nothing to set up. Press Cancel on the vote, or run
/session end.
Revoke straight from the record
Every infraction and every promotion now has a Revoke button on the post itself. Press it, give a reason or leave it blank, and it is done. Before, revoking meant scrolling back to the record to read its ID off it and then typing that ID into a command, which is the same scrolling with extra steps.
Only staff with the matching permission can use it, checked when the button is pressed rather than hidden on the post, because the record is posted once for everybody who can see the channel. Revoking an infraction still lifts any automatic strike it had added up to, exactly as the command does, since the button runs the same thing.
- Nothing to set up for infractions. Whoever has Revoke infractions already sees it work.
- For promotions, give the right boards Revoke promotions in
/configStaff boards. It is a new permission and starts off switched on for your top board only.
Revoking a promotion puts them back
Taking a promotion back now returns the member to the rank they held before it. The bot remembers which rank that was at the moment the promotion was issued, not when it is revoked, so reordering your ladder or promoting somebody twice more in between does not send them to the wrong place.
There is a /promotion revoke command for it as well, matching
/infraction revoke. The record is kept and marked revoked rather than deleted, saying
who revoked it, why, and which rank they went back to. Somebody whose first promotion is revoked
keeps no rank, because they had none to return to, and the record says that too.
- Give the boards you trust with it Revoke promotions in
/configStaff boards. - Press Revoke on any promotion, or run
/promotion revoke id:with the number on the record. - Promotions issued before this update have no remembered rank, so revoking one takes the role off without giving anything back.
Voice chat that follows the game
Members join one voice channel and the bot moves them around based on where their character actually is. Two ways to run it, and you pick: areas, where a region you have drawn gets its own channel, or proximity, where anybody within a set distance of anybody else is put in a channel with them. Two players meet and get a channel, a third walks up and joins it, two groups drift together and become one.
Picking the distance draws it on the real map at true scale, centred on somebody who is online, so you can see what seventy-five studs actually looks like next to a street you recognise rather than guessing. Nobody outside the lobby and the bot's own channels is ever moved, so a staff meeting is safe however close the characters are standing.
- Open
/configVoice chat and pick a mode. - Choose the lobby members join, and a category for the group channels.
- Press Distance & limits to set how close counts, then Preview on the map to see it.
- Give the bot Move Members, and Manage Channels if you want it making the group channels itself.
- For areas, press Areas and give each one a channel.
Fixed
- Self role panels were the one panel in the bot drawn with no banner, no colour and no way to
design them, and they listed every role a second time underneath the heading, as separate lines
repeating the buttons directly below. The panel now carries your banner, can be designed in the
message builder like everything else, and each button wears the role's own emoji if it has one.
Re-post the panel with
/selfroles postto pick up the new look. - A rejected ER:LC key used to report the HTTP status of a request you never made. It now says what is actually wrong and how to fix it: whether the key was regenerated, whether the join code was pasted in by mistake, or whether a global API key is set that should not be. The key is also checked the moment you enter it, so a server can no longer sit for weeks believing ER:LC is connected when it is not.
v3.0.1
3 October 2026
Status panels you switch with a command, tickets that only the boards you pick can see, and an infraction for staff who sit out a vote.
Status panels
A message staff switch with a command. Make a panel called Assistant panel with the command
/assistantpanel, add Staff transfers and Applications,
post it, and staff run /assistantpanel to set each one On (a green
circle), Off (red) or Delayed (orange). Text variables hold
whatever staff type, like who is hosting. The posted message is edited in place every time, so the
channel always shows where things stand. Use the built-in layout, or design it yourself in the
message builder, as an embed or plain text, with {staff_transfers} wherever its status
goes.
- Open
/configStatus panels and press New status panel. Give it a name and a command name. - Press Add on/off/delay or Add text for each thing it shows.
- Optionally pick one of your designs under How it looks. The page shows the
{key}to type for each variable. - Pick a channel to post it in, and the staff boards allowed to update it.
Choose exactly who sees each kind of ticket
A ticket type now has one list: the boards that see it. Pick Moderators and Admins, and only Moderators and Admins can see and handle those tickets. Before, boards with the claim any ticket permission and every pinged board could see them too, whatever was picked. Leave the list empty and every staff board sees them. Pings are chosen from the boards that can see the ticket, and the page says plainly who sees it and who does not.
- Open
/configTickets and pick a ticket type. - Choose Boards that see these tickets, then which of those get pinged.
- Tickets opened from now on follow the new list. Open ones keep who could already see them.
Vote attendance
Staff who are active in the server while a vote is up and do not vote can get an infraction automatically. You choose staff votes, session votes or both, how long after the vote starts the check happens, so nobody is caught before they could click, how far back a message counts as being active, and which infraction. It is posted and escalates like any other. Whoever started the vote, anybody on leave, and everybody when the vote has already passed are never given one.
- Open
/configVote attendance. - Pick which votes it watches and which infraction it gives.
- Press Change the minutes to set when it checks and how far back counts.
v3.0.0, the “Summer” Update
30 September 2026
ER:LC redrew the county, and Sample Bot came with it: the CAD on the new map, department servers run as part of your main one, rules for each channel, self roles, and a long list of things staff can now do for each other.
Never close a ticket
A ticket type decides whether its tickets close themselves after a quiet spell. That is the right rule for most tickets and the wrong one for the ticket that has to stay open while management decides something. Staff can now hold one ticket open, whatever its type says. It stays open however quiet it gets, and the ticket shows it is held. Letting it close again starts the quiet clock from that moment, so it never closes the second it is released.
- Nothing to turn on. In the ticket, press Never close on the panel at the
top, or type
/ticket nevercloseanywhere in the channel. - Press Let it close, or run
/ticket nevercloseagain, to undo it. - Only staff who can claim that kind of ticket can do this. The button only shows on ticket
types that close themselves, set under
/configTickets.
Start and end somebody's leave
A member who tells a manager in DMs that they will be away should not have to be chased into filing a request. Staff with the new Force leave of absence permission can put a member on leave directly, and end anybody's leave early. It is treated exactly like an approved request: it is posted in the LOA channel with who started it, the LOA role goes on and comes off, the member gets a DM, and it ends on its own on the date given. Your maximum leave length still applies.
- Open
/configStaff boards, pick a board, and turn on Force leave of absence under Shifts & leave. - Run
/loa forcestartwith the member, the last day of their leave and a reason. They are shown the reason. - Run
/loa forceendwith the member to bring them back now. Holders of this permission can also press End early on any leave post.
The CAD map, on ER:LC's new county
ER:LC replaced the whole map, and the CAD, staff map and regions editor are now drawn on the new one. Every unit sits where it actually is: the new map was lined up against hundreds of real player positions, and they follow the roads. It also loads far faster than the map images PRC publish, which are around eighteen megabytes each. All four seasons are there, summer, spring, fall and winter, each with or without postal numbers. The CAD relearns where each postal is from players on the new map, so for the first while a dropped pin may not name its postal.
- Nothing to turn on. Open the map and pick a season under Map on the right.
- Regions drawn on the old map now cover the wrong streets. Open the regions editor and draw them again.
Channel rules
Rules for one channel at a time, each with its own punishment. Make your commands channel commands only, so "hey guys" is removed. Make general no media, which catches uploads, stickers and GIF links. Make a screenshots channel media only, or keep links out anywhere with no links. The message is always deleted, and you choose what happens to the sender: nothing more, a warning by DM, a timeout for as long as you set, or a kick. Timeouts and kicks go on their record. Your staff are never caught, and every hit is written to the automod log.
- Open
/configAutomod and press Channel rules. - Pick a channel, then what it is for. Each rule starts on Delete and warn.
- Change what happens to the sender from the menu. For a timeout, press Timeout length and type something like 10m or 1h.
- For a commands channel where your bots use
!or;, press Command prefixes and type them. Leave it empty if the channel is for slash commands only.
Start and end somebody's shift
Staff with the new Force shifts permission can start a shift for a member who is in game and forgot, and end anybody's shift. The member is told by DM either way. A shift can only be started for somebody who is actually in your ER:LC server, because shifts end on their own for anybody who is not.
- Open
/configStaff boards, pick a board, and turn on Force shifts under Shifts & leave. - Run
/shift forcestartwith the member, and optionally the shift type. - Run
/shift forceendwith the member./shift endstill works, for either permission.
Departments
Run a server for each department, police, fire, DOT, as part of your main server. Up to ten. Each department server gets Plus from your main server for as long as you have it. Ranks follow the roles people hold in the main server: give somebody the LSPD Officer role there, and they get Officer in the LSPD server. Anybody given a rank who is not in that server yet is sent a one-use invite, and has the rank the moment they join, which is how accepted applications land in the right place. Bans in the main server reach every department too.
It is one community underneath as well. A department server uses your main server's ER:LC connection, so shifts and sessions work there without entering the key again. Shifts worked in a department count towards the main server's leaderboard and quotas. Leave approved in the main server puts the LOA role on in every department too. Tie a department to Law Enforcement, Fire & EMS, DOT or Dispatch, and its ranks open that part of the CAD. A new department server can be built for you, with its channels made and your ranks copied in and linked.
Pick an ER:LC team for a department and its shifts run themselves: anybody holding one of its ranks who joins the Police team in game is clocked on in the department, and clocked off when they leave it. And every department can have a live roster, one message listing each rank, highest first, and who holds it, kept up to date by itself.
- In your main server, open
/configDepartments and press New department. You will be given a code. - Add Sample Bot to the department's server, open
/configDepartments there, press This server is a department and enter the code. - Back in the main server, open the department. Press Build its channels to set up its server, and pick roles in Copy roles from here to make matching ranks there. Or link a role you already have to one of theirs with Add a rank. Then press Sync everybody now once, for the people who already had the roles.
- Pick which CAD department its ranks open, if any, and which ER:LC team clocks its members on automatically.
- Press Post roster to put a live roster in the department's server.
- Bans are copied by default. Press Stop copying bans to turn that off, or Remove them from the server to have people who lose every rank removed from the department's server.
Self roles
Buttons that give a member a role, and take it away when pressed again: session pings, departments people are interested in, anything opt-in. Design the panel yourself in the message builder, where any button can now Give or remove a role, or post a ready-made one in a single command. A button will never hand out a role that can moderate or manage the server, a staff board's role, or one above the bot's own.
- Quickest: run
/selfroles postwith a channel and up to ten roles. - Or in the message builder, add a button and set what it does to Give or remove: and the role.
Fixed
- Setting a quota for a staff board refused every number, including 0 for no quota. It accepts them now.
- Opening the regions editor sent you to the dispatch sign-in and then into the CAD. It has its own sign-in and asks which server you are drawing for. The map now zooms and pans, so a region can be drawn around a single building on the new county.
v2.6.1
25 September 2026
Verified accounts on the feed, a quota per staff board rather than one for everybody, and a reason when a ticket is closed.
Verified accounts
An account can now be verified, and every post it makes carries a blue tick beside its name. It is how members tell your official fire department account from somebody who named theirs the same, and a staff announcement from an impression of one. Staff decide it, nobody can ask for it, and it can be taken back at any time.
- Open
/configPosts and press Verify accounts. - Pick an account from the list to give it the tick, or press it again to take it back.
- More than 25 accounts? Press Search and type a name, a handle, or the member who made it.
A quota per board
One weekly number for the whole server never fitted: ownership is not doing four hours of
in-game moderation a week, and a rule that punishes them for it is a rule you turn off. Each
board now carries its own quota, or none at all, and everything that shows or judges one asks
for the person's own: /shift, both leaderboards, the staff dashboard, and the
Monday promotion and infraction pass.
- Open
/configStaff boards and pick a board. - Press Quota and type minutes a week. Leave it blank to follow the server default, or type 0 so that board is not held to one at all.
- The server default is still Default Weekly Quota in
/configWording & images, for every board that has not set its own.
Closing a ticket says why
The Close button now asks for a reason, and /ticket close takes one as an
option. Optional in both. Whatever is written is said in the channel before it goes, kept on the
ticket, and sent to the member in the DM that tells them it closed. From their side a ticket
used to simply disappear. A ticket closed through an accepted close request reuses the reason
staff already gave, and one that closes itself says how long it waited.
- Nothing to turn on. Press Close as usual and fill the box, or leave it empty.
Fixed
- Claiming and unclaiming a ticket timed out. Both waited on the channel being renamed, which Discord allows about twice every ten minutes and queues after that, so staff saw "Sample Bot is thinking" and then an error. They answer straight away now, and the colour on the channel name catches up afterwards.
- The session dashboard names the ER:LC server owner instead of showing their Roblox id.
v2.6.0
22 September 2026. Everything since v2.4.0.
The biggest update Sample Bot has had. A rebuilt message builder, a session dashboard, full Discord moderation with automod and ban appeals, merging servers, copying a setup between servers, a social feed, quota promotions, and ticket transcripts you can read on the website. Each section says how to set it up.
The message builder, rebuilt
Design any message the bot posts instead of typing a heading and a body into Discord. It is built so a good-looking message takes about a minute.
- Every message starts from Default, exactly what your bot posts today, with Card, Card with logo, Modern, Just text and Blank beside it.
- Only the parts you use are on screen, and clicking any part of the preview jumps to the box that edits it.
- Fill-ins work everywhere they can. The player count, join code, server name, date and session status now work in every message.
- Banners are edited right there, and they are the same setting as
/configBanners. - Custom messages get their own command, like
/rules, limited to the staff boards you choose.
- Go to samplebot.app/builder and sign in with Discord.
- Pick your server, pick what the message is for, then pick a look.
- Change the words and press Save. Panels and session posts use it straight
away. Sticky messages and auto pings need it picked on their page in
/config. - To let a team design messages without full access, tick Use the message
builder on their board in
/configStaff boards.
Session dashboard
One message in your session channel that keeps itself up to date: whether a session is running, the server name, join code and owner, the player count, online staff, the queue, and how a community vote is going. It has a Game Quick-Join button and a Notifications button that turns the session ping on or off for whoever presses it. It stays at the top of the channel when a session ends.
- The low-player command is now
/session boost. Full and boost post a new message, and a boost pings your session role. - A boost no longer rewrites the original session post into a second copy.
- Staff votes never appear on the dashboard. Only community votes do.
- In
/configChannels, set Session Announcement Channel. - For the Notifications button, set Session Ping Role in
/configRoles. - Optional: in
/configWording & images, write a Session Dashboard Intro. - Run
/send sessiondashboard. Change how it looks in the builder under Session dashboard.
Discord moderation and automod
- Warnings, mutes, kicks, bans and timed bans, each filed as a numbered case with a reason. Timed bans lift themselves.
- Automod, sixteen filters, from spam and scam links to mass pings and zalgo. Each can delete, warn, or both. Every filter is off until you turn it on, and staff are never filtered.
- Automatic punishment decides in advance what happens when somebody keeps collecting cases.
- The moderation dashboard is rebuilt, with one log for Discord, in-game and automod, and a card for every person.
- In
/configStaff boards, give boards the moderation permissions they need: Warn, Mute, Kick and Ban members. - In
/configModeration, pick a log channel and add preset reasons. - Use
/warn,/mute,/kickand/ban. - For automod, turn on the filters you want in
/configAutomod.
Ban appeals
When somebody is banned with /ban, the message telling them why can carry an
Appeal this ban button. What they write lands in a channel you choose, pinging
the boards you choose. Accepting unbans them and sends them an invite back; denying tells them the
ban stands. Only permanent bans made through /ban can be appealed.
- Open
/configModeration and press Ban appeals. - Pick the channel appeals land in. That turns appeals on.
- Optional: pick the boards to ping, and set a fixed invite link. Without one, a single-use invite is made when an appeal is accepted.
- Anybody who can ban can accept or deny an appeal.
Tickets that close themselves
When the member stops replying, the ticket warns them and then closes, per ticket type. Nothing closes before staff have replied, and a ticket where the member spoke last is never closed.
- Open
/configTickets and pick a ticket type. - Press Auto-close and set how many hours of silence close it, how many warnings to send, and how far apart. Zero hours turns it off.
- This is part of Sample Plus+.
Ticket transcripts on the website
Every closed ticket's transcript is kept and can be read at a link after signing in with Discord. Only the person who opened the ticket, staff who can handle that kind of ticket, and whoever runs the server can read it. The member gets the link when their ticket closes.
- Nothing to turn on. Every ticket closed from now on has one.
- Optional: to also post each transcript for staff, set a transcript channel on the ticket
type in
/configTickets. The post carries a View transcript button.
Quota promotions and infractions
Promote whoever reaches two or three times the weekly quota by one rank, onto the next board if that is where the next rank is, and file an infraction of your choice for whoever misses it. It is decided every Monday for the week that just ended. Staff on approved leave are never punished, and a week is only judged if these rules were on for all of it.
- In
/configWording & images, set Weekly Shift Quota (minutes). - To promote, set Promote At 2x Or 3x Quota to 2 or 3.
- To punish a miss, set Infraction For Missing Quota to warning, strike, suspension, demotion or termination.
- Make sure your ranks are set up on each board in
/configStaff boards, with a role for each, and that Promotions Channel and Infractions Channel are set in/configChannels.
Merging two servers
/merge folds two servers into one: the roles, the channels, your Sample Bot setup,
then the members. Nothing happens until the other server's owner reviews the whole list and
accepts. Members who have not moved get reminders on your schedule.
- Merge requests are off by default. Allow the direction you want in
/configMerge settings. - The owner starting it runs
/mergewith the other server's ID and chooses what carries across. - The other owner accepts from the message they are sent.
Copy a setup into another server
Panels, ticket types, automations, applications, FAQ answers, moderation setup, auto pings, sticky messages, roleplay types and the marketplace can be copied to another server. Tickets, shifts and punishment records never travel.
- In the server you are copying from, open
/configExport and import and export it. You get a code. - In the other server, import that code in the same place. Anything that cannot be matched is shown before anything is written.
Staff
- Boards hand out roles. Set them with Roles it gives on the
board in
/configStaff boards. - Duty nicknames in your own words. Set the three Nickname
Tag settings in
/configWording & images. - Demotions say what an accepted appeal hands back. Pick the rank with the
appeal_rankoption on/infraction issue. - Nobody decides their own infraction appeal, and roles the bot owns put themselves back if removed by hand. Both are automatic.
Community
- A social feed. Members make accounts with
/accountand post with/post. Set the forum channel, the log channel and account limits in/configPosts. - Sticky messages and auto pings: set them up in
/configSticky messages and/configAuto pings. Both are part of Sample Plus+. - The marketplace is a shop, with a picture and a Buy button per item. Add
items in
/configMarketplace, then run/send marketplace. - Suggestions can ping boards and limit how many one member has waiting. Set
both in
/configSuggestions. - Counting saves: servers that have reviewed the bot at
samplebot.app/reviews get one save a day. Choose when it is used in
/configCounting. /blacklistkeeps your server's list of servers you will not deal with. Set Server Blacklist Channel in/configChannels, and give boards Blacklist other servers in/configStaff boards.
The assistant works without paying for AI
The ticket assistant, the application reader and the automation builder run on six AI providers: Anthropic, Google Gemini, Groq, OpenAI, xAI and OpenRouter. Gemini and Groq are free with no card.
- Get a key from the provider you want.
- Paste it in
/configConnections. The bot checks it and picks a model that key can use.
Sample Plus+
One payment of $50 USD or 8,000 Robux for one server, with our team setting it up for you. Card payments become your slot the moment they go through, slots stack, and every free server gets three days of Plus to try a week after the bot joins.
- Run
/buy plus, or see the pricing page. - Redeem the slot on the server you want from the same command.
Fixed
- People joining a busy server were welcomed as member number one.
- Buttons failed with "This interaction failed" for over a minute after every restart.
- The staff boards page would not open once a server had about fifteen boards. The same fix covers ticket types, applications, dashboard pages and the marketplace.
- The website took about a minute to load your servers in the CAD and the staff dashboard.
- Tickets that close themselves never actually did once a ticket was claimed.
- Adding a marketplace item failed in every server.
/configAutomod would not open.- Panel wording could not be saved.
- A suggestion with a ping role never posted.
- Continue with verification failed for members who were already verified.
- Live in-game events could not be set up without buying the CAD.
- Voice channels never appeared in the status channel pickers.
- One deleted emoji could take a whole ticket panel down.
- Verify and ticket buttons disappeared the second time a design was saved.
- A panel lost its top banner as soon as it was given a design.