CorePanel is a Roblox administration portal for game owners who wish to make rule enforcement easier and more effective. Our aim is to innovate moderation and game management, starring features such as:
- A sign-in system (w/ custom password)
- A database section which allows you to search up any player and ban them, warn them, unban them, view their total play time and previous punishments
- A user display section (w/ search bar) to keep you in control of everything
- Full protection from exploiters who try using your admin portal without being whitelisted in your settings script
- Live chatlogs and admin logs (w/ search bar)
- Lots of live statistics
- A variety of commands (global, server-based, and player-based)
- Full support on all devices, including but not limited to mobile, desktop and tablet/iPad
- 25+ easily configurable settings to fully customize your experience
- Automatic updates so you don’t have to worry about downloading an updated version every week
CorePanel. The core to moderation.
CorePanel is currently priced at 800. Whether you think this is reasonable or not, I’ve put countless hours of work into this project, staying up until 4am on most nights. I simply cannot put in to words how much patience this has taken me. So, if you do plan on buying it, please keep this in mind.
To make a purchase, click here. Once purchased, follow the provided steps to get your admin portal up and running.
Pages
Home
This page consists of a greeting (will change depending on what time it is for you) and 4 live statistics!
- Server Uptime: displays how long ago the server started (updates every second)
- Total Bans: displays how many people are banned from the game (updates every 5 seconds)
- Total Players: displays how many players are in your server (updates every second)
- Staff Online: displays how many staff are signed into the admin portal in your server (updates every second). If in the settings script,
settings.ProtectWithPassword
is set tofalse
, this will just display how many people are in your server that are whitelisted in the settings script
Players
This live page consists of a scrolling frame with a search bar. Each player in the server is represented by one black bar which consists of their:
- Username (highlightable & copyable)
- User ID (highlightable & copyable)
- Rank in group (if an ID is inputted in
settings.GroupId
of the settings script)If the player is an administrator (is whitelisted in the settings script), they’ll also have a gavel icon on the far-left of the black box.
When using the search bar, you can either enter a user ID or a username.
Logs
This live page consists of 2 sections, chatlogs and admin logs, each having their own scrolling frame (newest logs at the top) and search bar. I went above and beyond with this feature, to the point where when you join an old server, your page will be updated with the already existing logs!
When using the search bar, you can either enter a username or a phrase.
Commands
This page consists of 2 sections, server commands and player commands.
Server Commands
- Global Announce: sends a global announcement to every server
- Server Announce: makes an an announcement in your server
- Global Shutdown: shuts down every server
- Server Shutdown: shuts down your server
- Lock Server: locks your server (only whitelisted people who have access to your admin portal can join when a server is locked)
- Unlock Server: unlocks your server
Player Commands
- Bring: brings the specified player a few studs behind your position
- Respawn: respawns the specified player
- View: views the specified player and displays a GUI telling you who you’re viewing (also has an X for you to stop viewing the player)
- To: teleports to a few studs behind the specified player’s position
- Kick: kicks the specified player from the server
- Mute: prevents the specified player from being able to send chats
- Unmute: unmutes the specified player
This section has a box where you can enter the player’s name that you want to run the command on. I also added predictive text. To automatically complete the player’s username, click
Ctrl
on your keyboard.Note that all command usage is logged to the
Logs
page of the admin portal.
Database
This page consists of 2 sections, a ‘search’ section and a ‘display’ section.
Search
Consists of a textbox, an avatar viewer (when you type a valid user), and a search button. When you search a valid player, you’ll be taken to the ‘display’ section.
Display
Consists of:
- Username (highlightable & copyable)
- User ID (highlightable & copyable)
- Rank in group (if an ID is inputted in
settings.GroupId
of the settings script)- 3 buttons to ban, warn or unban the user
- 2 live statistics (total play time and total bans)
- Return button
- Punishments list
Miscellaneous
Custom Open/Close System
So that the admin portal can be opened and closed, I used Topbar Plus v2. You can either click the button next to your chat, or you can use the designated keybind (configurable in the settings script).
Notification System
I implemented a custom notification system module for ease of access. Here are a few examples of possible notifications you may receive whilst using the admin portal:
Time
Wherever you are in the admin portal, as long as you have it enabled (configurable in the settings script), you’ll always be able to see the current time in your own timezone!
Sign-in System
There are two reasons why I implemented a sign-in system:
- For aesthetics.
- For security. If one of your administrator’s accounts gets compromised, access to the admin portal cannot be gained if the password isn’t known (configured in the settings script). Additionally, there’s a 5-second cooldown to prevent people from guessing your password.
Draggable
To drag around the admin portal, simply click anywhere along the top and drag!
Cross-Platform Support
Although we recommend you use a desktop-sized screen, CorePanel is fully accessible and properly scaled on every single device!
Exploit Protection
CorePanel comes with full protection from exploiters who use exploit clients to access unauthorized remotes.
Automatic Updates
No need to worry about downloading an updated version of CorePanel every week!
To configure the settings for your admin portal, locate a ModuleScript called ‘Settings’ in
ServerScriptService
. Don’t worry if you don’t have any coding knowledge, I’ll guide you through each setting, tell you what each of them do, and explain how to edit them.
Setup
Activation Key
Line: 15
Name:settings.ActivationKey
Default:""
Description: The activation key provided when you bought CorePanel. You can only use one activation key per game.
Type: String
Group ID
Line: 16
Name:settings.GroupId
Default:""
Description: The ID of the group which your game is for.
Type: String
Toggle Key
Line: 17
Name:settings.ToggleKey
Default:Enum.KeyCode.P
Description: The key which must be pressed for the admin portal to be toggled. Click here for an API reference on KeyCodes. To keep it simple, to change the toggle key, change the last character of the setting (default is P) to whatever you like.
Type: Enum
Access
Protected With Password
Line: 21
Name:settings.ProtectWithPassword
Default:false
Description: Whether or not to protect your admin portal with a password. If set totrue
, administrators (settings.RankName
andsettings.Users
) will have to enter the configured password (settings.AccessId
) to be able to use it.
Type: Boolean
Access ID
Line: 22
Name:settings.AccessId
Default:""
Description: The code which your admins must input when signing into your admin portal. Will only work ifsettings.ProtectWithPassword
is set to true.
Type: String
Ranks
Line: 23
Name:settings.Ranks
Default:{}
Description: A table of ranks (strings) from your group (settings.GroupId
) which you want to be able to use your admin portal.
Type: Table
Users
Line: 24
Name:settings.Users
Default:{"476512066"}
Description: A table of people (strings) who you want to be able to use your admin portal (can be usernames or user IDs).
Type: Table
Logging
Low-Class Commands Webhook Link
Line: 28
Name:settings.LowClassCommandsWebhookLink
Default:""
Description: The Discord webhook link which we will post to when an administrator uses aPlayer Command
.
Type: String
High-Class Commands Webhook Link
Line: 29
Name:settings.HighClassCommandsWebhookLink
Default:""
Description: The Discord webhook link which we will post to when an administrator uses aServer Command
.
Type: String
Database Actions Webhook Link
Line: 30
Name:settings.DatabaseActionsWebhookLink
Default:""
Description: The Discord webhook link which we will post to when an administrator bans, warns or unbans a user via the database.
Type: String
Player Joins Webhook Link
Line: 32
Name:settings.PlayerJoinsWebhookLink
Default:""
Description: The Discord webhook link which we will post to when a player joins your game (won’t work in Roblox Studio).
Type: String
Player Leaves Webhook Link
Line: 33
Name:settings.PlayerLeavesWebhookLink
Default:""
Description: The Discord webhook link which we will post to when a player leaves your game (won’t work in Roblox Studio).
Type: String
Chatlogs Webhook Link
Line: 34
Name:settings.ChatlogsWebhookLink
Default:""
Description: The Discord webhook link which we will post to when a player sends a chat in your game (won’t work in Roblox Studio).
Type: String
Modules
Time
Line: 38
Name:settings.Time
Default:true
Description: Whether or not to show your local time in the top-right of the admin portal.
Type: Boolean
Players
Line: 39
Name:settings.Players
Default:true
Description: Whether or not to display the ‘Players’ button.
Type: Boolean
Logs
Line: 40
Name:settings.Logs
Default:true
Description: Whether or not to display the ‘Logs’ button.
Type: Boolean
Commands
Line: 41
Name:settings.Commands
Default:true
Description: Whether or not to display the ‘Commands’ button.
Type: Boolean
Database
Line: 42
Name:settings.Database
Default:true
Description: Whether or not to display the ‘Database’ button.
Type: Boolean
Anti-Exploits
Anti-Teleport
Line: 46
Name:settings.AntiTeleport
Default:true
Description: Whether or not to enable anti-teleport detection. Do not enable this if your game has teleport systems.
Type: Boolean
Anti-Teleport Punishment
Line: 47
Name:settings.AntiTeleportPunishment
Default:Move
Description: The punishment for exploiters who teleport. Will only work ifsettings.AntiTeleport
is set totrue
. Valid inputs:Move
(will teleport the player back to their original position),Kick
(will kick the player from the server),Ban
(will permanently ban the player).
Type: String
Anti-Teleport Bypass Ranks
Line: 48
Name:settings.AntiTeleportBypassRanks
Default:{}
Description: A table of ranks (strings) from your group (settings.GroupId
) which can bypass anti-teleport detection.
Type: Table
Anti-Teleport Bypass Users
Line: 49
Name:settings.AntiTeleportBypassUsers
Default:{}
Description: A table of people (strings) who can bypass anti-teleport detection (can be usernames or user IDs).
Type: Table
Bans
Ban Reason Required
Line: 53
Name:settings.BanReasonRequired
Default:true
Description: Whether or not a reason is required when banning users.
Type: Boolean
Ban Evidence Required
Line: 54
Name:settings.BanEvidenceRequired
Default:true
Description: Whether or not evidence is required when banning users.
Type: Boolean
Maximum Ban Evidence
Line: 55
Name:settings.MaxBanEvidence
Default:6
Description: The maximum amount of evidence you can input for bans.
Type: Number, must be whole and more than or equal to 0
Other
Warn Reason Required
Line: 59
Name:settings.WarnReasonRequired
Default:true
Description: Whether or not a reason is required when warning users.
Type: Boolean
Unban Reason Required
Line: 60
Name:settings.UnbanReasonRequired
Default:true
Description: Whether or not a reason is required when unbanning users.
Type: Boolean
Ban Exploiters
Line: 61
Name:settings.BanExploiters
Default:true
Description: Whether or not to ban exploiters who access unauthorized remotes (if you don’t know what this means, we recommend you keep this setting totrue
).
Type: Boolean
Announcement Time
Line: 62
Name:settings.AnnouncementTime
Default:10
Description: How long (in seconds) announcements should stay on everyone’s screen for.
Type: Number, must be more than 0
Thank you for reading. If you have any issues, there are various ways to contact me:
- Discord:
ethan.#4188
- DevForum Private Messages
- Roblox Private Messages