Synthaly Moderation v1.2 — A moderation system from the future

:warning: BE AWARE OF SCAM MODELS THAT IMPERSONATE ‘SYNTHALY MODERATION’. Only use the original model published by Synthaly Games. Other models imitating Synthaly Moderation may contain backdoors!

What is Synthaly Moderation?

Synthaly Moderation is an administrative system created for your roblox game, it has the purpose of giving people powers and giving people commands to do things. Synthaly Moderation is also used to do things you would usually have to make many scripts for, for example, if you want to change a leader board stat Synthaly can do that, if you want to add custom commands, you can script them yourself too.
Synthaly Moderation has a lot of possibility and potential, it is also the best admin system out there.

Images and how it works will be shown in the ‘Showcase’ section below.


How do I install the system?

Synthaly Moderation is 100% free and open-source. Everyone can get it from the ROBLOX library. Get the model now:


If you want the advanced version of Synthaly Moderation and want beta features and updates early, buy it for 100 robux or $4.99 here:


To set Synthaly Moderation up, you will need to own the model above. Once you do, copy/insert the model in your game.

You will now notice a Model named Synthaly Moderation. Inside of that you should also notice a Folder called Ungroup in ServerScriptService, make sure that you place and ungroup it inside of ServerScriptService.

Once all the assets from Ungroup in ServerScriptService are placed inside of ServerScriptService, you will need to enable Allow HTTP Requests and Enable Studio Access to API Services in the Security tab of the Game Settings menu.

Once you have done that, you should also notice a Folder called Ungroup in ChatModules, make sure that you place and ungroup it inside of the ChatModules Folder in the Chat section of Roblox Studio in order to add the advanced chat filter (this is optional).

Once you finish that, you can consider that Synthaly Moderation is installed. The system can now operate, however, you will still want to configure the settings. To do this, open the Settings file in both the Synthaly Admin Folder and the Synthaly Panel Folder located in the Synthaly Moderation Folder inside of ServerScriptService. Customize the settings - everything is explained inside the settings and config script (comments).

Additionally, to enable the extra chat filter, you are required to move the Synthaly Panel Folder from the Synthaly Moderation Folder into ServerScriptService. Make sure you placed and ungrouped the Ungroup in ChatModules Folder in the ChatModules Folder located inside of the Chat section of Roblox Studio. Don’t worry though, the Synthaly Panel will run the exact way it did before.


Synthaly Moderation Security

As you might probably know, ScreenGuis can only be client-sided, meaning that exploiters can modify or even delete them. Does this mean that they can bypass the punishments issued with Synthaly Moderation?
Well, not quite. Synthaly Moderation has several scripts that check the status of the punishment UI. They are linked to each other so that whenever a script is being removed, the others will take action. We have implemented a server-side kicking system, meaning that the kicking request will be handled by the server (so that it cannot be bypassed).

As a disclaimer, the system might still be vulnerable, even though we have checked several times and several different methods to bypass it and patched the vulnerabilities we found.

To avoid unwanted punishment bypasses, we recommend enabling the ‘TempBan Auto-Kick’ and ‘PermBan Auto-Kick’ options in the settings file. This will automatically remove the suspect from the server after the specified amount of time.

With version 1.02 and up, we have added a new security system that will delete the character of the suspect (applies to bans, kicks, slocks, and temporary bans), and disables the chat for them. Meaning that the suspect will be no longer able to interact with the game even if they bypass the punishment screen.

If you find a security vulnerability and wish to report it, please contact me via DevForum, or Synthaly via the website (safe link - Github and Synthaly) linked at the bottom.


Synthaly API & Documentation

Synthaly Moderation’s best feature is that it allows everyone, even with less scripting skills, to integrate the punishment system with their own scripts. Synthaly Moderation has a built-in API that allows you to issue a moderation action by only firing a function. This is the basic usage of the API module:

Require the module: local SynthalyAPI = require(game.ServerScriptService:WaitForChild("Synthaly Moderation")WaitForChild("Synthaly Panel").Data.API)

Fire functions at your will:

  • SynthalyAPI:createWarning(username, reason, moderator)
  • SynthalyAPI:removeWarning(username, reason, moderator)
  • SynthalyAPI:tempBan(username, duration, reason, moderator)
  • SynthalyAPI:permBan(username, reason, moderator)
  • SynthalyAPI:kick(username, reason, moderator)
  • SynthalyAPI:removeBan(username, reason, moderator)
  • SynthalyAPI:slock(reason, group ID, minimum rank to ignore, moderator)
  • SynthalyAPI:unslock(moderator)

username should be a string, duration should be a number, reason should be a string, moderator should be a string.

Synthaly Moderation also comes with a set of RemoteEvents that allow you to take moderation actions via LocalScripts.

Full documentation can be found on Synthaly knowledge base (safe link - Github and Synthaly):

Developers | Synthaly Helpdesk

Get help with Synthaly or our products’ Application Programming Interface.


Synthaly Contributions

You can contribute by reporting system errors, issues, vulnerabilities, etc., or suggesting new features. You can do this via our Discord server, via the Synthaly knowledge base, or via DevForum (messaging me).

Also, you should add credits to Synthaly Games if you remix the model.


Synthaly Moderation Showcase

Once Synthaly is out of Beta, we will add the Synthaly Moderation showcase! :partying_face:


Synthaly Final Notes

ROBLOX’s DataStore Service has a rate limit, meaning that if you create and remove the same punishment within a very short time, the action will be queued.

If Synthaly Moderation can’t currently update automatically, keep an eye on the developer console (output) of your games, as it will automatically print if it is outdated.

We are open to suggestions and critics, but we highly appreciate a friendly tone.

The logo icon is provided by Synthaly Games.


Synthaly Useful links

2 Likes

7e7440977a249c809f68a3fa374bbd631a8a0570

Here we will post the updates that we publish for Synthaly Moderation.

Update log 5/13/2023 @ v1.2

Upgraded to version: 1.2
Released: 5/13/2023

Changes:

[>] Patched a critical error with the panel not being able to issue moderation actions for players that were not in the selected group.
[>] Fixed the panel clock.
Update log v1.1

Update log 3/16/2022 @ v1.1

Upgraded to version: 1.1
Released: 3/16/2022

Changes:

[*] Improved the security system: the suspect can no longer interact with the game
and its players even if they bypass the punishment UI. The suspect character will get
removed by the server, as well as they will get muted by the server.
[+] Added multi-cloned UI. This will clone the punishment UI every 5 seconds until the 
suspect leaves the game.
[*] Improved the security system: the character of the suspect will be checked every 5 seconds if it exists. If it does, it will delete it over and over again.
[>] Fixed the "Security kick" issue caused by the 3 checks - now only one client-sided check, 
and the rest is being handled by the server.
[*] Changed the colors of the Synthaly Panel and added multi-line for the 'reason' field. Also removed the ClearOnFocus option.
[>] Fixed security kick when clicking "I understand" at account warnings.
[>] Reset on respawn issue.
[+] Added a new feature: server locking (slock).
[+] Added new feature: server unlocking (unslock).
[+] Added new feature: kicking/server removal.
[+] Added auto-complete when kicking a player [ONLY WORKS WHEN KICKING] (you only have to fill in the first letters of the player for the script to find it).
[>] Fixed some spelling mistakes.
[+] NEW FEATURE: you can now use the UserId, UserName, and player instance with the API integrations. They are automatically detected (must be a string for UserName, a number for UserId, and an instance for a player).
[+] Added GetService support for all scripts, so that it is optimized for anti-cheat systems.
[+] Added MessagingService - the system now communicates between experience servers. When a user gets banned or temporarily banned, it will take effect immediately, without the suspect rejoining. This is only active for bans and temporary bans.
[+] Added a new feature for bans, kicks, and temporary bans in the Synthaly Panel: there is a new button that allows you to select the target username from the in-server players' list.
[+] Added prevention system to disallow scripts or users to moderate the game owner.
[+] Added a new API option to remove temporary bans (NOT available in the panel, you will want to use the API if you wish to remove a temporary ban).
[+] Added new feature: replicated API can now check permissions so lower ranks cannot punish higher ranks anymore. HTTP Service required.
[>] Changed all :Kick() messages to be compatible with Roblox`s newline character removal update.
[*] Added reason character limit (300 characters).
[+] Added new feature: you can now log errors that are in a Synthaly context to Discord.
[>] Patched a critical error with the panel disappearing on player respawn.
[>] Moderation actions made via Replicated API are now forced to go through the group rank check.
[-] Removed Point API version check due to it causing the Engine not to load.

Thanks to everyone who posted suggestions and feedback!

2 Likes