A Guide to CorePanel


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 :robux: 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 to false, 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

Info

This page purely credits the necessary people.


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).

image

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:

image

image

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 to true, administrators (settings.RankName and settings.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 if settings.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 a Player 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 a Server 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 if settings.AntiTeleport is set to true. 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 to true).
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
10 Likes