Documentation
WebShield – How To Guide
Complete setup and user guide for the WebShield Discord dashboard. Learn how to log in, add the bot to your server, and configure moderation, community tools, commands, economy, voice events, logging and Twitch live alerts from your browser.
Contents
Use the links below to jump directly to the section you need.
- Opening the website
- Logging in with Discord
- Adding the bot to your server
- Choosing and switching servers
- Fixing the bot's role position (important)
- Finding your way around the dashboard
- Bot Settings page
- Linking your Twitch account
- Unlinking or re-linking Twitch
- Logging out
- Auto Roles
- Welcome and Goodbye messages
- Reaction Roles
- Tickets
- Giveaways
- Polls
- Self-Promo Live Posts
- Moderation overview
- Monitored Channels
- Strike System
- Word Filters (Strike Words and Banned Words)
- Cross-Channel Spam Detector
- Advanced Protection
- Honeypot
- Anti-Nuke (lockdown and recovery)
- Commands
- Economy and Games
- Voice Events
- Webhooks
- Social Notifications (Twitch live alerts)
- Logging
- Dashboard activity and status
- Diagnostics page
- Backup, Snapshot, Import and Reset
- Permissions and Access
- Privacy and Data
- Troubleshooting
- Help and Support
1. Opening the website
What it is: WebShield lives at a web address, so there is nothing to download or install. You open it in your normal browser on a computer, tablet or phone.
Steps
- Open any modern browser (Chrome, Edge, Firefox, Safari).
- Go to https://webshield.snapten.uk
- You'll see the WebShield landing page with a Login with Discord button.
- Bookmark the page so you can get back to it quickly.
2. Logging in with Discord
What it is: WebShield doesn't use separate usernames or passwords. You sign in with your Discord account, and WebShield uses that to work out which servers you're allowed to manage.
What WebShield asks for: your Discord name and avatar, and the list of servers you're in. It does not read your messages or your DMs.
Steps
- On the landing page, click Login with Discord.
- Discord opens an authorisation page. If you aren't signed in to Discord in this browser, log in first.
- Check the permissions shown, then click Authorise.
- You're sent back to WebShield and land on your server list.
Who can use the dashboard for a server? Only members who have Manage Server or Administrator permission in that server. Servers where you don't have one of those permissions won't appear.
3. Adding the bot to your server
What it is: The dashboard can only change settings for a server once the WebShield bot is a member of it. This step invites the bot.
Steps
- From the server list, find your server. Servers without the bot show an Add WebShield button.
- Click Add WebShield.
- On Discord's page, confirm the server in the drop-down and click Continue.
- Review the permissions the bot is asking for and click Authorise. Leave them all ticked. The bot needs them to work.
- Complete the captcha if Discord asks.
- Discord sends you straight back to that server's dashboard.
4. Choosing and switching servers
What it is: If you manage more than one server, each has its own separate settings. Changing one never affects another.
Steps
- After logging in, click the server you want to manage in the server list.
- To move to a different server later, click the server name box at the top of the left sidebar (it says "Switch server").
- Pick another server from the list.
5. Fixing the bot's role position (important)
What it is: Discord only lets a bot give out or take away roles that sit below the bot's own highest role in your role list. If WebShield's role is too low, features such as Auto Roles, Reaction Roles, quarantine and strike roles will fail even though everything looks set up correctly.
Steps
- In Discord, open Server Settings → Roles.
- Find the role named WebShield.
- Drag it above every role you want it to give or remove (for example your member roles, quarantine role and any strike roles).
- Keep it below your admin/moderator roles.
- Back in WebShield, open Diagnostics and check that Role Position shows OK.
6. Finding your way around the dashboard
What it is: The left sidebar is your menu. Each entry is one area of the bot.
| Menu item | What you do there |
|---|---|
| Dashboard | See at a glance which protections are on, plus recent activity |
| Bot Settings | Check connection and permissions, link Twitch |
| Community | Auto roles, reaction roles, welcome messages, tickets |
| Moderation | Strikes, word filters, spam detection, advanced protection, honeypot |
| Commands | Chat commands and the games list |
| Economy | Virtual currency, games and leaderboard |
| Voice | Actions when people join or leave voice channels |
| Webhooks | Saved Discord webhooks |
| Logging | Choose what gets logged and where |
| Social Notifications | Twitch "went live" alerts |
| Diagnostics | Health check, backups and reset |
At the bottom of the sidebar you'll see your name, a Log out button and the version number.
How saving works: make your changes on a page, then press that page's Save button. A short confirmation message appears. Changes apply to the bot straight away. You don't need to restart anything.
7. Bot Settings page
What it is: The control room for this server's connection. It shows whether the bot is online, whether it has all the permissions it needs, and lets you link a Twitch account.
What's on the page
- Connection: whether the bot is online in this server.
- Twitch account (optional): link or unlink a Twitch account.
- Required permissions: a checklist where ✔ means the bot has that permission and ✖ means it's missing.
- Where your settings live: a reminder that this server's settings are stored as plain JSON files, with no database.
Steps to check permissions
- Click Bot Settings in the sidebar.
- Scroll to Required permissions.
- If any line shows ✖, click Re-invite / update permissions and authorise the bot again, or tick the missing permission for the WebShield role in Discord's Server Settings → Roles.
- Refresh the page. Everything should now show ✔.
8. Linking your Twitch account
What it is: Linking Twitch is optional. It unlocks two things for your server:
- Social Notifications: automatic "went live" announcements in Discord.
- Twitch chat messages from voice events: for example, posting "Snapten joined the Waiting channel" in your Twitch chat.
Each Discord server links its own Twitch account. You never need to type a password into WebShield. Twitch handles the login on its own page.
Steps
- Open Bot Settings in the sidebar.
- Find the Twitch account (optional) card and click Link Twitch account.
- A short code appears on screen, along with a link to twitch.tv/activate.
- Open twitch.tv/activate in a new tab. Log in to Twitch if asked, using the account you want to link.
- Type in the code shown in WebShield and click Activate.
- Twitch lists what WebShield is asking for (reading who you follow and sending chat messages). Click Authorize.
- Go back to the WebShield tab. It checks automatically, and within a few seconds the card changes to show your Twitch name and avatar as linked.
Check chat permission (optional)
- On the same card, click Send test chat message.
- Look in your Twitch chat. You should see the test message appear from your account.
9. Unlinking or re-linking Twitch
Unlink (remove the connection)
- Open Bot Settings.
- On the Twitch card, click Unlink.
- Confirm. WebShield forgets the account and tells Twitch to revoke access. Live alerts and Twitch chat messages stop working until you link again.
Re-link (refresh the connection) You need to re-link when the card says "Re-link to enable chat messages" or "needs re-authorisation". This happens if your account was linked before chat messages were available, or if you removed WebShield's access on Twitch's side.
- Open Bot Settings.
- Click Re-link.
- Follow the same steps as in Linking your Twitch account.
10. Logging out
Steps
- Click Log out at the bottom of the left sidebar.
- You're returned to the landing page. Your login on this browser ends, but your server settings stay exactly as they were.
11. Auto Roles
What it is: Automatically gives new members one or more roles the moment they join, such as "Member" or "Newcomer". It saves you from adding roles by hand.
Steps
- Click Community in the sidebar, then open the Auto Roles tab.
- Under Roles to assign on join, tick every role you want new members to receive.
- Click Save.
- Test it by joining with a second account, or ask a friend to join.
Notes
- The WebShield role must sit above these roles (see step 5).
12. Welcome and Goodbye messages
What it is: Posts a friendly message in a channel when someone joins your server, and another when someone leaves.
Steps
- Click Community, then open the Welcome tab.
- Tick Enable welcome messages.
- Choose the Channel the messages will be posted in.
- Write your Welcome message.
- Write your Goodbye message (leave it blank if you don't want one).
- Click Save.
Variables you can use in your text
| Write this | It becomes |
|---|---|
{mention} | An @mention of the member |
{username} | The member's name |
{server} | Your server's name |
{member_count} | How many members the server has |
Example: Welcome {mention} to {server}! You are member number {member_count}.
13. Reaction Roles
What it is: A message with an embed and emoji where members click an emoji to get a role (and click again to remove it). Great for pronouns, game roles, notification roles and colour roles.
Steps
- Click Community, then open the Reaction Roles tab.
- Under Emoji → Role Mappings, type an emoji (for example 🎮), choose the role it should give, and click Add Mapping. Repeat for every emoji and role pair you want on the panel.
- Open Embed Settings and fill in how the panel will look. Everything here is optional:
- Channel: where the panel will be posted
- Title and Description
- Colour
- Author name and Author icon URL
- Thumbnail image URL and Large image URL
- Footer text
- Choose a Selection Mode:
- Multiple roles: members can hold as many of the panel's roles as they like.
- Single role: picking one role removes their other roles from this panel.
- Click Send Role Message. WebShield posts the panel and adds the emoji reactions.
- To check, react to the message with a test account.
Managing existing panels: all posted panels are listed under Existing Reaction Role Panels. Select one to Load Into Form (to edit it), Modify Existing Message (to update the posted panel) or Delete Role Panel. Clear Form empties the builder.
Notes
- The WebShield role must be above every role used here.
- Custom server emoji work as long as they come from your server.
14. Tickets
What it is: A private support system. A member presses a button, WebShield creates a private channel visible only to them and your support staff, and the conversation happens there. When it's finished the ticket is closed and (optionally) saved as a transcript.
Steps to set it up
- Click Community, then open the Tickets tab.
- Tick Enable ticket system.
- Fill in the options:
- Ticket Category (optional): a Discord category where new ticket channels are created.
- Support Role (optional): the role that can see and answer tickets.
- Transcript Channel (optional): where a copy of the conversation is saved when a ticket closes.
- Channel Name: the naming pattern, for example
ticket-{username}. You can use{username}and{userid}. - Auto-close: close inactive tickets after this many hours.
0means never.
- Click Save.
Steps to post the ticket panel
- In the Ticket panel card, choose the Channel where members will see the panel.
- Set the Title, Description, Colour and any optional images or footer.
- Click Send Ticket Panel to selected channel.
- Members now click the button on the panel to open a ticket.
Closing tickets
- Tickets can be closed from inside a ticket channel, by the person who opened it or by authorised support staff.
- The close command only works inside ticket channels.
Tips
- Make the category private to everyone except your support role, so tickets stay private.
- Set a transcript channel if you want a record of support conversations.
15. Giveaways
What it is: Run giveaways right inside Discord, with embeds. A mod starts one with a command (or the dashboard), people join with a button or !join, and when the timer ends WebShield picks a random winner who claims the prize with !win.
Steps – setting it up
- Click Community, then the Giveaways tab.
- Scroll to Giveaway settings and tick Enable giveaways.
- Choose a Giveaway channel (where the embeds are posted). Leave it empty to use whichever channel the start command is typed in.
- Optionally choose a moderator role (people with Manage Messages or Administrator can already run giveaways), a role needed to enter, and a role to ping when one starts.
- Set Winner must claim within (default 60 seconds; 0 means the pick is final straight away) and a minimum account age if you want to keep brand-new accounts out.
- Click Save.
Starting one
- From the dashboard: type the prize, a time limit (like
5m,30s,1h30m, or empty for no limit) and click Start giveaway. - From chat:
!giv start 5m Super Awesome Prize. For no time limit use!giv start Long Giveaway. - Paid entry:
!giv startredeem 500 5m Super Awesome Prizemakes entering cost 500 WebShield economy coins (the Economy must be on). This is the Discord version of a channel-point giveaway; Twitch channel points can't be used from Discord.
Mod commands (the word !giv can be renamed in the settings)
| Command | What it does |
|---|---|
!giv start [time] <prize> | Start a giveaway |
!giv startredeem <cost> [time] <prize> | Start one that costs coins to enter |
!giv pick | Pick a winner now (or re-roll – the previous winner is skipped) |
!giv time 1m | Change the time left |
!giv pause / !giv resume | Pause or resume the timer |
!giv reset | Cancel it (paid entries are refunded) |
!giv reopen | Reopen entries without starting over |
!giv ignore @user / unignore | Keep someone out of this giveaway |
!giv ban @user / unban | Ban someone from all giveaways until you unban them |
!giv status / !giv help | Show the state / the command list |
Viewer commands (all four can be renamed): !join, !unjoin, !win (claim the prize), !skipme (pass on it). They only work in the giveaway's channel. The embed also has Join and Leave buttons.
How winners are picked: randomly, from people who are still in the server and aren't ignored, banned or already picked in this giveaway. If the winner doesn't claim in time or uses !skipme, someone else is picked automatically (you can turn this off). When nobody is left, WebShield tells you and you can reopen or reset.
Notes
- One giveaway can run per server at a time.
- Coins for a paid giveaway are returned if someone leaves or the giveaway is reset before a prize is claimed. Once a prize is claimed the coins stay spent.
- A banned person stays banned until you use
!giv unban(or the Unban button). - Giveaway starts, picks and claims appear in the Logging page under "Giveaways".
- A running giveaway keeps going if the bot restarts.
16. Polls
What this is: Polls let you ask your community a quick question and see the answers as they arrive. Members vote with one click, and the results update live as votes come in.
Why you'd use it: to gather opinions fast, from feature ideas to community decisions, without anyone needing to set anything up first.
How it works
- A poll is posted in a channel of your server.
- Members vote by clicking the option they want. No extra setup is needed to vote.
- The results update live as votes come in, so everyone can see how the vote is going.
17. Self-Promo Live Posts
What this is: Self-Promo lets your members share their own Twitch channels in a promo channel. WebShield now posts an approved streamer in that channel while they are live, and removes the post when they go offline.
Before you start: link a Twitch account to the server on Bot Settings (see Linking your Twitch account). Self-Promo works like Social Notifications, so it needs a linked Twitch account. Without one, the Self-Promo tab shows a warning and nothing is posted.
How live posts work
- Live posts: an approved channel is posted in the self-promo channel while it is live. The post shows the stream title, the game, the viewer count and a preview image.
- New stream: if the same streamer starts a new stream, the old post is replaced.
- Going offline: when the streamer goes offline, their post is deleted.
- How often: WebShield checks about every 2 minutes. It also checks straight away when a channel is added or approved, so someone who is already live appears immediately.
- Dashboard status: each channel in the dashboard shows 🔴 live now or offline.
Choose where the button goes
By default the "how to apply" message and the Add my channel button are posted in the self-promo channel. If you want people to apply in one channel while the live posts go to another, use the optional setting Channel for the Add my channel button.
- Open the Self-Promo settings.
- Choose the channel under Channel for the Add my channel button.
- Click Save. WebShield moves the how-to message to that channel.
If you leave it empty, both the button and the live posts use the self-promo channel.
Unchanged settings
Approval, channel limits, the unlimited role and the !promo commands all work as before.
18. Moderation overview
What it is: WebShield's moderation tools work together as layers. You can switch on as many or as few as you like:
| Layer | Best for |
|---|---|
| Strike System | Escalating punishments for repeat offenders |
| Word Filters | Blocking specific words or phrases |
| Spam Detector | Scam and hacked-account messages spread across channels |
| Advanced Protection | Mention spam, invite links, caps, repeats, emoji spam, brand-new accounts |
| Honeypot | Trapping bots and compromised accounts |
All of these live under Moderation in the sidebar, as tabs along the top. The Dashboard page shows which of them are currently on.
19. Monitored Channels
What it is: Chooses which text channels WebShield actively watches for rule-breaking (word filters, strikes and so on). Channels you don't pick are left alone.
Steps
- Click Moderation, then the Channels tab.
- Tick every channel you want monitored.
- Click Save.
Tip: leave staff-only channels unticked so moderators can talk freely.
20. Strike System
What it is: A "three strikes" style ladder. Each time a member breaks a rule that earns a strike, their strike count goes up, and when they reach a level you've defined the bot takes the action you chose, such as a warning, a timeout, a kick or a ban. You can build as many levels as you want.
Available actions at each level
- Warning: the member is sent your message.
- Timeout: the member is muted for the duration you choose.
- Kick: removed from the server (they can rejoin).
- Ban: removed and blocked from rejoining.
- Give Role: the member is given a role you pick (for example "Muted" or "Probation").
Steps to build the ladder
- Click Moderation, then the Strike System tab.
- In Add / Update Strike Level, set:
- Strike Number: which strike this level applies at (1, 2, 3 …).
- Action: one of the actions above.
- Timeout Duration: only for Timeout.
- Role to Give: only for Give Role.
- Message: a message DMed to the member explaining what happened.
- Add the level. It appears in Configured Strike Levels.
- Repeat for each level.
Example ladder
| Strike | Action |
|---|---|
| 1 | Warning |
| 2 | Timeout, 10 minutes |
| 3 | Timeout, 1 day |
| 4 | Kick |
| 5 | Ban |
When a member goes past your last level, the harshest action repeats.
Automatic strike reset Strikes can expire so a member isn't punished forever for an old mistake.
- In Automatic Strike Reset, tick Automatically clear all strikes on a schedule.
- Set Reset every to the number of hours you want.
- Click Save.
Notes
- Members who have DMs closed won't receive the message, but the action still happens.
- Strikes are earned through the Strike Words list (see Word Filters). Advanced Protection filters use their own action and don't add strikes.
21. Word Filters (Strike Words and Banned Words)
What it is: Two lists that react to specific words in messages.
| List | What happens when a member uses a word from it |
|---|---|
| Strike Words | The message is handled and the member earns a strike (see the Strike System) |
| Banned Words | An immediate action: Kick, Ban or Give Role. No ladder, no second chances |
Use Strike Words for things like swearing or mild rule-breaking. Use Banned Words for severe things like slurs or scam phrases.
Steps
- Click Moderation, then the Word Filters tab.
- In Strike Words, type the words or phrases you want to count as strikes, one at a time, and add them.
- In Banned Words, add the words that should trigger the immediate action.
- Under Banned word action, choose Kick, Ban or Give Role (and pick the role if you chose Give Role).
- Click Save.
Tips
- Matching ignores capital letters.
- Start with a small list and review the Logging page to see what it catches.
- Make sure the channel is ticked under Channels, otherwise the filter won't see it.
22. Cross-Channel Spam Detector
What it is: Catches the classic hacked-account and scam pattern: someone posts the same message in many channels within seconds. WebShield deletes those messages, quarantines the member (gives them a restricted role), and alerts your team.
Steps
- First create a Quarantine role in Discord (Server Settings → Roles) that can't see or post in your normal channels. Place the WebShield role above it.
- In WebShield click Moderation, then the Spam Detector tab.
- Tick Enable cross-channel spam detection.
- Set Minimum Channels: how many different channels the same message must appear in to count as spam (for example 3).
- Set Time Window: how quickly that has to happen (for example 30 seconds).
- Choose the Quarantine Role you created.
- Choose a Security/Audit Channel. Alerts are posted here.
- Optionally choose a Notify Role to be pinged on every alert.
- Click Save.
What happens when it triggers: the spam messages are deleted, the member gets the quarantine role, and an alert appears in your security channel. A moderator can then review and restore the member if it was a mistake.
23. Advanced Protection
What it is: Six independent filters. Each can be switched on separately, with its own action and its own exemptions.
Actions you can choose for any filter Delete the message · Warn (deletes the message and posts a short public warning that disappears after a few seconds) · Timeout · Kick · Ban
Whatever the action, the offending message is always removed first.
| Filter | What it catches | Setting you adjust |
|---|---|---|
| Mention spam | Messages that @mention too many people | Maximum mentions |
| Invite protection | Discord invite links to other servers | Allow Discord invites switch and Allowed domains list |
| Caps detection | SHOUTING in capital letters | Minimum message length and Uppercase percentage |
| Repeated messages | The same message sent again and again | Maximum repeats and Detection window |
| Emoji spam | Walls of emoji | Maximum emojis |
| New account filter | Brand-new Discord accounts (often throw-away or raid accounts) | Minimum account age |
Steps (the same for every filter)
- Click Moderation, then the Advanced Protection tab.
- Find the filter you want and switch it on.
- Adjust its setting (see the table above).
- Choose the Action. If it is Timeout, also set the Timeout duration.
- Add Exempt roles (for example Moderators) and Exempt channels (for example a spam or bot-commands channel) so those are never affected.
- Click Save.
Recommended starting setup
- Mention spam: on, maximum 5, action Delete
- Invite protection: on, action Delete (add partner domains to Allowed domains)
- Repeated messages: on, 3 repeats in 10 seconds, action Delete
- Exempt your moderators and any bot channels
Tip: start with Delete or Warn to see how a filter behaves before using Kick or Ban.
24. Honeypot
What it is: A trap. You create a channel that no real member has any reason to post in. Spam bots and hacked accounts that post in every channel they can see walk straight into it. The moment someone posts there WebShield deletes the message, removes their roles, and quarantines them. It's one of the most effective protections against compromised accounts.
Steps
- In Discord, create a new text channel (for example
#do-not-post). Place it near the top so bots find it. - Create or reuse a Quarantine role that blocks access to your normal channels.
- In WebShield click Moderation, then the Honeypot tab.
- Tick Enable the honeypot trap.
- Choose the Trap Channel.
- Choose the Quarantine Role.
- Choose a Security/Audit Channel where alerts will be posted.
- Optionally choose a Notify Role to ping.
- Click Save.
- WebShield automatically posts a "DO NOT POST IN THIS CHANNEL" warning in the trap channel the first time you save it. Use Resend Warning Message if you ever need it again.
Notes
- The warning tells genuine members what happens if they post, so real users don't trigger it by accident.
- Do not let your moderators use the channel for anything else.
- A quarantined member can be restored by a moderator after you check what happened.
25. Anti-Nuke (lockdown and recovery)
What it is: Protection against a "nuke" – someone (or a hacked admin, or a rogue bot) mass-deleting channels and roles or mass-banning members. When WebShield spots it, it stops the attacker, locks the server down, and then rebuilds what was destroyed – roles, categories, channels, permissions, role assignments and recent messages.
What happens during an attack
- The attacker is quarantined – every role they can lose is removed and the Quarantine role is added. This applies to admins and moderators too.
- A bot that was added is quarantined (or kicked, your choice) and so is whoever invited it.
- Lockdown starts: slow mode on every text channel, accounts younger than the minimum age (default 7 days) can't post, every new member is kicked at the door, invites are paused, and anyone who spams is wiped and quarantined.
- An embedded "ANTI NUKE ENABLED" message explaining all of this is posted in your announcement channel (and security channel).
- Recovery: deleted roles, categories and channels are rebuilt with their permissions, members get their roles back, messages saved before the attack are reposted, and things the attacker created are removed.
Who can change it: only the server owner and people on the Trusted list. A hijacked plain admin can't switch it off.
Steps – turning it on
- Click Anti-Nuke in the left menu.
- On the Quarantine tab or Protection tab choose the Quarantine Role (a role with no access to your normal channels) and the Security Channel. Optionally an Announcement Channel and a Notify Role.
- On the Trusted tab add the user IDs of people allowed to add bots or do large clean-ups, and any bot IDs you trust. Do this first – an untrusted admin who adds a bot will be quarantined.
- On Protection, review the limits (how many deletes/bans inside how many seconds count as an attack). Defaults suit most servers.
- On Lockdown, set slow mode seconds, minimum account age, and whether new joins are kicked and invites paused.
- On Recovery, keep Back up messages and Restore messages on if you want chat history rebuilt.
- Tick Enable Anti-Nuke and click Save.
- Check the readiness checklist at the top of the page – every line should be green.
Buttons on the status card
- Lock down now / Stand down – start or end a lockdown by hand (stand down puts slow mode and invites back as they were).
- Restore now – rebuild everything still in the graveyard.
- Refresh backup – take a fresh structure snapshot immediately.
- Preview announcement – post the embed so you can see it.
- Release (Quarantine tab) – give a quarantined person their roles back after you've checked.
Important notes
- Re-invite the bot once if it was added before this feature, so it gets View Audit Log, Manage Server and Manage Webhooks. The readiness checklist tells you what's missing.
- The bot's role must sit above the roles it needs to remove, and above the attacker's top role. If the attacker outranks the bot it cannot quarantine them – put the WebShield role near the top.
- What can't be restored: Discord gives rebuilt things new IDs (old links and mentions break), attachments hosted on Discord's CDN may be gone, edits made after the last backup aren't reverted, and kicked members must rejoin.
- Privacy: the message backup keeps only the most recent messages per channel for the restore and is cleared when you turn backup off.
- Test it with a spare server before relying on it.
26. Commands
What it is: Commands are short messages starting with a symbol (the prefix, ! by default) that make the bot respond, for example !ping.
Built-in commands !help · !ping · !server · !userinfo · !avatar · !roll · !8ball
Steps to change the prefix
- Click Commands, then the Commands tab.
- Under Command Prefix, type the new prefix (for example
!or?). - Click Save.
Steps to adjust a built-in command
- Find it under Configured Commands.
- Turn it on or off with the Enabled switch.
- Change Permission (who may use it), Cooldown (seconds before it can be used again) or Response (the text it replies with).
- Click Save.
Steps to create your own command
- In Custom / Basic Command, enter the Command name (for example
!rules). - Add any Aliases, which are alternative names for the same command (for example
!rule). - Choose the Permission and Cooldown.
- Type the Response the bot should send. You can use
{user},{server}and{member_count}. - Optionally add Actions, extra things that happen when the command runs:
- Discord message: post a message in a chosen channel (blank means the same channel).
- Add role / Remove role: change the member's roles.
- Timeout (seconds): time the member out.
- Save the command. It now appears under Configured Commands.
Example: a !verify command that replies "You're verified!" and runs Add role → Verified.
27. Economy and Games
What it is: A fun, virtual-currency system with casino-style games. It uses made-up coins only. There is no real money involved.
Member commands: !balance (or !bal) · !daily · !slots · !blackjack · !roulette · !higherlow
Steps
- Click Economy in the sidebar.
- Tick Enable Discord economy.
- Set:
- Starting balance: coins each new player begins with
- Daily reward: coins given by
!daily - Maximum bet: the highest bet allowed
- Game cooldown: seconds between plays
- Click Save.
Turning individual games on or off
- Click Commands, then the Games tab.
- Use the switches for 🎰 Slots, 🃏 Blackjack, 🎡 Roulette and 📈 Higher/Lower.
- Optionally adjust the default bet.
- Click Save.
Leaderboard: the Top Players card on the Economy page shows who's richest. Resetting balances: see Diagnostics → Reset.
28. Voice Events
What it is: Lets the bot react when someone joins or leaves a voice channel, by posting messages, giving roles, or even sending a message in your Twitch chat.
Steps
- Click Voice in the sidebar.
- In Voice events, tick Enable voice events.
- Tick Run Join action chain and/or Run Leave action chain.
- Optionally pick a Default Discord channel for Discord messages.
- Under Monitor these channels, tick the voice channels to watch. If you tick none, all are watched.
- Under Ignore these channels, tick any voice channels that should never trigger anything (for example an AFK channel).
- In the Join action chain and Leave action chain cards, build the actions (below).
- Click Save Voice Settings.
Building an action chain An action chain is a list of steps that run one after another.
- Choose an Action:
- Discord message: posts text in a Discord channel.
- Twitch chat message: posts text in your linked Twitch account's own chat.
- Add role / Remove role: changes the member's role.
- Delay only: waits before the next step.
- Fill in the Message or Role.
- Optionally choose a Channel (blank means the default).
- Set a Delay in seconds if you want a pause first.
- Click Add Action. Repeat for more steps. Use Remove to delete one.
Variables: {user} · {mention} · {channel} · {server}
Example (Twitch chat): add a Twitch chat message to the Join chain with the text {user} joined the {channel} channel. When Snapten joins the Waiting channel, your Twitch chat shows: Snapten joined the Waiting channel.
For Twitch chat messages you need: a linked Twitch account with chat permission. The Voice page warns you if it isn't set up. See Linking your Twitch account.
29. Webhooks
What it is: A webhook is a special Discord URL that lets something post into a channel. Here you can save your webhook URLs under friendly names and send a test message to check they work.
Steps to add a webhook
- In Discord, open Channel Settings → Integrations → Webhooks, create a webhook and click Copy Webhook URL.
- In WebShield click Webhooks in the sidebar.
- In Add webhook, type a Name and paste the Webhook URL.
- Click Save Webhook. It appears under Saved webhooks.
Steps to test
- Type a Test message and click Send Test for the saved webhook.
- The message should appear in the Discord channel.
Note: only real discord.com webhook URLs are accepted. Treat webhook URLs like passwords, because anyone who has one can post to that channel.
31. Logging
What it is: A record of what's happening in your server and what WebShield has done, posted into a channel of your choice.
Steps
- Click Logging in the sidebar.
- Choose a Log Channel. A private staff channel works best.
- Under Log settings, tick the events you want recorded:
- Member joins and leaves
- Deleted and edited messages
- Strikes, timeouts, kicks and bans
- Auto roles
- Social notifications
- Spam detector, honeypot, quarantine and advanced moderation actions
- Click Save.
Tip: if your log channel gets too busy, switch off the events you don't need, such as joins and leaves.
32. Dashboard activity and status
What it is: The Dashboard page is your at-a-glance summary.
- Moderation Status: shows each protection (Spam Detector, Honeypot, Strike Auto-Reset, Mention Spam Filter, Invite Protection, Caps Detection, Repeated Message Filter, Emoji Spam Filter, New Account Filter, Banned Word Action) as on or off, with a short detail such as how it's set.
- Recent Activity: the latest things the bot did, such as strikes, timeouts, quarantines and errors, so you can see it working.
Use it to: quickly confirm that the protections you meant to switch on really are on.
33. Diagnostics page
What it is: Diagnostics is WebShield's health check. If something isn't working, such as a role not being given, a message not posting or the bot seeming quiet, start here. It tests the things that most often go wrong and tells you in plain language what to fix.
What it checks
| Check | What it tells you | If it fails |
|---|---|---|
| Discord Gateway | Whether the bot is connected and online | The bot is offline. Wait a minute and re-run. If it persists, contact the site administrator. |
| Bot Permissions | Whether the bot has every permission it needs in this server | Use Re-invite / update permissions on Bot Settings, or tick the missing permission on the WebShield role in Discord. |
| Role Position | Whether WebShield's role is above the roles it needs to give out (auto roles, reaction roles, quarantine, strike roles) | Drag the WebShield role higher (step 5). |
| Twitch Account | Whether a Twitch account is linked and still valid | Link or re-link it from Bot Settings. |
Steps to run a check
- Click Diagnostics in the sidebar.
- Click Run Diagnostics. Click it again after you've fixed something.
- Read the summary at the top. It says whether everything is healthy.
- Work through any items marked with a problem and follow the suggested fix.
- Run it again until everything is green.
When to use it: after first adding the bot, after changing roles in Discord, whenever a feature doesn't behave, and before asking for help.
The same page also holds your backup tools. See the next section.
34. Backup, Snapshot, Import and Reset
What it is: Tools for keeping your settings safe, moving them between servers, or starting fresh. They sit on the Diagnostics page.
| Tool | What it does |
|---|---|
| Backup | Downloads this server's settings as a file. Linked Twitch logins are not included. |
| Snapshot | Downloads a snapshot file of this server's configuration. |
| Import Settings | Loads a backup or snapshot file into this server. |
| Reset All Settings | Returns every setting to its default. |
Steps to back up
- Open Diagnostics.
- Click Backup (or Snapshot).
- Your browser downloads a file. Store it somewhere safe.
Steps to restore or copy settings to another server
- Switch to the server you want to change.
- Open Diagnostics and click Import Settings.
- Choose your backup file.
- Confirm the prompt. Matching settings will be overwritten.
- A message tells you how many settings groups were imported.
Steps to reset
- Open Diagnostics and click Reset All Settings.
- Read the warning and confirm.
- Every setting returns to its default. Reaction-role panels, player balances, strikes and open tickets are kept.
35. Permissions and Access
What this is: this section explains who can use the WebShield dashboard, which permissions the WebShield bot needs in your Discord server, and how each server's settings are kept separate.
Who Can Use the Dashboard
Members with Manage Server or Administrator permission on a Discord server can open that server's WebShield dashboard.
- WebShield rechecks this permission live.
- If you remove someone's Manage Server or Administrator permission, they lose access to that server's dashboard.
- If someone has just been given the permission, they should log out of WebShield and log back in.
What the Bot Needs
The permissions WebShield needs are listed on the Bot Settings page as a live checklist. They include, for example:
- Manage Roles
- Manage Channels
- Kick, Ban and Timeout Members
- Manage Messages
- Read and Send Messages
- View Audit Log
If anything is missing, use Re-invite / update permissions on the Bot Settings page.
Privileged Intents
The WebShield application also needs two privileged intents enabled in the Discord Developer Portal:
- Server Members intent
- Message Content intent
Server Isolation
Each server's settings are separate. A setting changed in one server can never affect another server, even if you manage several servers from the same WebShield account.
Troubleshooting
- If your server is missing from the list, check that you have Manage Server or Administrator there, then log out and back in.
- If a feature fails, open Bot Settings and look for items marked ✖ in the Required permissions checklist.
- If roles are not being given, move the WebShield role above the roles it needs to manage.
36. Privacy and Data
What this is: this section explains what data WebShield stores, where it is kept, and how it is protected.
What WebShield Stores
- Server settings are stored as JSON files, one folder per server, on the host that runs WebShield, in
data/guilds/<server id>/. WebShield does not use an external database. - Login details: when you log in with Discord, WebShield stores your Discord ID, name, avatar and server list. This is how it knows which dashboards you can open.
- Linked Twitch tokens stay on the server and are never sent to your browser.
Message Content
WebShield reads message content only for the features you enable in your server, such as commands, word filters, spam detection and logging.
How Access Is Protected
- The site uses a signed session cookie to keep you logged in.
- Changes to settings are protected by a CSRF header and an origin check.
- Every setting is validated on the server before it is saved.
- Logging in with Discord only asks for your identity and server list. It never reads your messages or direct messages.
Backups
A backup downloaded from the Diagnostics page contains your server's settings. Linked Twitch tokens are not included in backups.
37. Troubleshooting
I can't see my server in the list. You need Manage Server or Administrator on it. If you've just been given the permission, log out and back in.
The bot says it's offline. Open Diagnostics. If the Discord Gateway check shows offline, wait a minute and re-run it. Your settings are safe and apply as soon as the bot is back.
Roles aren't being given (auto roles, reaction roles, quarantine, strikes). Drag the WebShield role above those roles (step 5) and confirm Manage Roles shows ✔ on Bot Settings.
Moderation isn't catching anything. Make sure the channel is ticked under Moderation → Channels, the filter is switched on and saved, the member isn't in an exempt role, and the bot has Manage Messages.
Welcome messages aren't posting. Check Enable welcome messages is ticked, a Channel is chosen and the bot can send messages in that channel.
Twitch won't link. Codes expire after a few minutes. Click Link Twitch account for a fresh code and enter it at twitch.tv/activate straight away.
Twitch chat messages from voice events aren't appearing. Open Bot Settings and look at the Twitch card. If it says Re-link to enable chat messages, click Re-link. Then use Send test chat message. Also check Enable voice events and Run Join action chain are ticked on the Voice page.
Live alerts aren't appearing. Check Twitch is linked and valid (the Diagnostics Twitch check), the streamer's username is spelled correctly, and the bot can post in the announcement channel.
A command doesn't respond. Check the prefix, that the command is Enabled, and its cooldown and permission settings.
I saved but nothing changed. Look for the confirmation message after pressing Save. If you see an error instead, the message explains what to correct (for example a missing channel).
Still stuck? Run Diagnostics, note any item that isn't green, and send that to the site administrator along with what you were trying to do.
38. Help and Support
Need assistance? If you've worked through the guide and still need help, there are several ways to diagnose issues and get support with your WebShield server configuration.
Before Requesting Support
Taking a few minutes to gather information can greatly reduce the time needed to resolve an issue.
- Run Diagnostics and review any warnings.
- Check the relevant Logging channels.
- Confirm the bot is online.
- Verify bot permissions and role hierarchy.
- Test the feature again.
Useful Information to Provide
- The Discord server where the issue occurs.
- The feature that is not working.
- Any error message displayed.
- Screenshots of the problem.
- The steps that reproduce the issue.
- Diagnostics results.
Common Questions
| Question | Answer |
|---|---|
| Why aren't roles being assigned? | Check Manage Roles permissions and role hierarchy. |
| Why did Twitch notifications stop? | Verify the Twitch account is still linked and authorised. |
| Why can't users create tickets? | Check channel permissions and ticket category settings. |
| Why are commands not responding? | Verify the command exists, is enabled and uses the correct permissions. |
Best Practice
- Create backups regularly.
- Run Diagnostics after major changes.
- Review logs frequently.
- Keep moderation settings up to date.
- Monitor protection systems after server growth.
Thank You for Using WebShield
Thank you for choosing WebShield to help manage and protect your Discord community. We hope this guide has helped you get the most from the platform and build a safer, more engaging server for your members.
30. Social Notifications (Twitch live alerts)
What it is: When a streamer you're tracking goes live on Twitch, WebShield posts an announcement in a Discord channel, with an optional role ping.
Before you start: link your Twitch account (step 8). The page tells you if you haven't.
Steps
@Stream Alerts).Notes