Check out our Guardian BOT https://guardian.thedevszone.xyz last say for the deal LIFETIME SLOTS $75 for all fivem vehicles now and future
New Features
Applications
Full application-panel system: create panels with up to 10 questions
Discord only allows 5 fields per popup, so 6-10 questions splits into two popups with a 'Continue' button between them (originally tried chaining modals directly — that didn't work reliably, so it got rebuilt around a proven button-to-modal pattern instead)
Live preview on the panel-builder page (was missing at first, added later)
Approve/Deny with required reasons, DMs both ways
Channel Management
/lock, /unlock, /lockall, /unlockall, /lockdown, /removelockdown
Unlocking restores each channel to its exact prior permission state, not just 'turned back on'
Immune categories so staff-only areas never get swept up in a bulk action
/lock later upgraded to verify the change actually took effect with Discord before reporting success, instead of just assuming the API call worked
AutoMod
Banned words/phrases, invite-link blocking (with a whitelist), a mass-mention limit, and spam/flood detection — independent, optional rules
Anti-Raid
Watches for a burst of new joins and automatically triggers a full lockdown (reusing the exact same mechanism as manual /lockdown)
Warning Escalation
Configurable 'X warnings = auto-kick, Y = auto-ban,' hooked directly into /warn
Ban Appeals
Banned members get DM'd an appeal link before the ban completes (has to be before — Discord won't let a new DM open once there's no shared server left)
Public dashboard page to submit an appeal, reviewed with Approve (auto-unbans) / Deny buttons, both requiring a typed reason
Per-server cooldown so a denied appeal can't be immediately resubmitted
/weather
Free, no API key required — uses Zippopotam.us for geocoding and Open-Meteo for the actual weather data
/remindme
Plain-language durations (10m, 2h, 1d), DMs when due, falls back to pinging in the original channel if DMs are closed
/addxp
Manually add or subtract a user's XP; correctly triggers the full level-up flow (announcement, role rewards) if it crosses a threshold
/checkperms
Diagnostic command showing Discord's own computed answer for why a member can or can't do something in a channel — built specifically after a permission mystery that turned out to need real data, not another guess
/announce
Owner-only broadcast to every server Guardian is in — genuinely blocked if the bot is only running in one server, since there'd be nothing to broadcast across
Bot Nickname (per-server)
Each server can set its own nickname for the bot — the one part of 'how the bot looks' that Discord actually allows to vary per server (avatar, username, and online/idle status are all global to the bot's account, not something any bot can make per-server)
Bot Personalizer
Restricted to the bot's owner only, since it controls things shared across every server the bot is in
My Rank Card
Personal dashboard page: live preview, admin-curated background gallery, custom URL option, color swatches — all per-server, matching how leveling itself works
Default Card Background (per-server)
Server-wide fallback background for anyone who hasn't set their own, with sizing guidance (900×300) after the first upload looked badly cropped
Legal Pages
Privacy Policy & Terms of Service, written specifically for what Guardian actually does (not generic boilerplate) — editable with a live preview, public pages, linked in the footer of every page
Help Page
Public dashboard page, no login required, pulling the exact same command list /help uses in Discord so the two can never drift out of sync
Dashboard quality-of-life
Emoji picker added to every emoji field across the dashboard
Mobile responsive layout overhaul (sidebar collapses behind a menu button, form rows stack, touch-friendly sizing)
Success toast when enabling/disabling a plugin
'Open in Discord' upgraded from a members-only deep link to a real, working invite — plus a config.js option to pin it to one specific link
Welcome/Goodbye variables reference added to the dashboard, plus new placeholders ({avatar}, {username}, {everyone}, {here})
Real Bugs Found and Fixed
module.exports accidentally deleted during an edit — caught by the syntax check before it ever shipped
All-emoji Discord usernames would've produced a broken ticket-channel name (sanitizeName now falls back to 'applicant')
MySQL: TIMESTAMP DEFAULT NULL without the explicit NULL keyword — rejected by MySQL as an invalid default, crashed the bot on startup
MySQL: a TEXT column with a literal string default — MySQL/MariaDB don't allow that; found and fixed the same way
Missing PermissionsBitField import — an earlier 'remove unused imports' pass used a search pattern that missed a constructor-style usage, crashing the invite-link generator
Broken onclick HTML in the rank card gallery — a quote/parenthesis ordering mistake that would've silently made clicking a gallery image do nothing; caught by actually rendering and inspecting the output, not just reading the code
guild.appealBaseUrl referenced as if it were a real property of the Discord guild object — caught and fixed before shipping
Removed
/restart — removed entirely at your request, since it couldn't reliably restart the bot without a process manager watching it
Every feature above was tested before being delivered — either by directly running the underlying logic against realistic inputs, or by rendering the actual dashboard output and checking it for correctness, not just checking that the code has no syntax errors.
Initial release.