Redefine:A Rebooted | Modern, Easy and Open Administrative System

The new version is still in development, and may miss some features and documentation.

Please report any bugs you might find, as it will help a lot!

Redefine:A (Version 5 // Rebooted)

Redefine:A Rebooted is a modern community-based administrative system / engine, made with a powerful developer-first mindset, and for the ease of use for the users who want to explore variations of other systems in the market without risking the game security.

Redefine:A catches the best of all worlds with a syntax-highlighted command bar, extreme ease of creating new commands, and an easily-learnable environment system.

The best part? You don’t even have to use Redefine:A as is; The engine itself is powerful enough to create your own systems without even touching the MainModule!

What makes Redefine:A unique in terms of competition?

  • BETA/WIP: Quick Actions; You can now create easily accessible tools without even opening the console or typing in chat.

  • NEW: Hooks that can modify the command before it even is ran!

  • Native support for Custom Chats, such as SocialChat v2. disclaimer: only SocialChat v2 for now

  • Security&Development-First Environment; No amount of external force can break inside.

  • Lightweight; Loads flamingly fast, Commands take almost half the time to execute compared to other systems, and even has an option to load even faster (with sacrifice of a tiny bit of functionality). not a joke

  • Bloat-less; Everything within the system is used; and is being kept that way for a while!

  • Extendable, modern UI. Don’t like how it comes by default? You can change it without the need of forking the MainModule. (in fact… you don’t even need to fork the MainModule at all, you can already do mostly all things by putting modules in the Functions folder…)

  • Semi-frequent updates; I cannot promise a schedule for updates, but it won’t take 3 months to fix a bug. I promise you that.

  • Supports UI-based systems, as it sends the commands to the client. nano is a good example lol

  • Plenty of useful (even for out-of-the-admin) libraries, such as the PlaceholderAPI, the ColorLib, and even BetterBasics.

  • Native support for commands from Nano.

  • Most of the important features of the pre-reboot are here too, of course.

All that being listed, I’m sure you can see why this is one of the best choices in the “indie market” as of now.

The Lego-Like System

As mentioned, Redefine:A is a system that lets you ‘just plop modules’, just like Nano. What does that mean? It means you can just place a module you want to use in a command into the Functions folder, point the command to the module with env.ModuleName, and woah, it works!

Heck, even the commands themselves can be considered modules thanks to the OnLoad function!

In fact, let me paste the template for the commands real quick, so you can judge it yourself…

The Commands Template
return {
    -- Set this to true if you don't want people to use the command temporarily.
    Disabled = false;

    -- Main variables.
    Name = "Template"; -- The name of the command; Displayed in !commandslist.
    Description = "A Template Command."; -- The description of the command.
    Arguments = {
            Name = "Victim"; -- When creating the code, you can use Arguments.Victim for this specific node.
            Type = "Player";
            Required = true;
            Name = "PunishmentType";
            Type = "String";
            Required = true;
            Options = {
                -- Which punishment do you want to give the player?
            Name = "Length";
            Type = "Number";
            Required = false;
            Minimum = 0;
            Maximum = math.huge
        -- There are more types other than the ones mentioned here, so feel free to look into the RunCommand module-
        -- -for more of these types.
    }; -- Which arguments are expected.
    Keys = { 
        -- Used to change the functionality of the command. Example; --all, --server, etc.
        -- Do NOT use Keys as if they're the arguments! You *can* but really shouldn't.

        ["examplekey"] = true; 
        -- = "--examplekey" -> Keys.examplekey = true; "--examplekey=5" -> Keys.examplekey = 5; "--examplekey=hi" -> Keys.examplekey = "hi" 
    Level = 0; -- Minimum admin level to execute the command.
    AbuseValue = 0; -- Adds 'abuse score' to the player when the command is ran.
    Aliases = {}; -- Alternative ways to call the command.

    -- Secondary variables.
    Credits = {}; -- Who made the command? (UserIds)
    Visible = true; -- Is the command visible for those who can't use it?
    Cooldown = 0; -- Global Command Cooldown (Delay between the command being used by any user)
    UserCooldown = 0; -- User Cooldown (Delay between the command being used by a single user)
    Dependencies = {}; -- Dependencies are env variables that are required to be present for the command to run; Example; {GetLevel = true} will require the env variable GetLevel (env.GetLevel) to be present

    -- Checks who can run the command; Use @env and @Player to determine if the player has the ability to run it.
    RunCapability = function(env, Player) -- Checks if the users can even run the command in the first place. Return true to allow. (Replaces Level)
        -- This function replaces the Level value; Use this to determine if the player can run this command.
        return true; -- Must return true or false.

    -- Runs this code when the module loads.
    OnLoad = function(env)
        -- You can use this to add functions to the environment.

    -- Runs this code when the player executes the command.
    OnRun = function(env, Executor, Arguments, Keys)
        return {
            Success = true;
            Message = env.format("Hello <player_name>, thank you for checking out Redefine:A 5!",{},Executor) -- When using the PlaceholderAPI, you can point it towards a specific player to have a specific result.

Not impressed? well… uhh… shuffles notes about how sam created the simpleadmin thread here’s how the UI looks!

Kate is still awful at showcasing UI

The lists UI; Compact-able, minimize-able, and just good enough to look at.

The notifications framework;

The syntax-highlighted commandbar;

The HINT; (smoll emotional damage still remaining over this)

How To Install?

Installation is rather simple, really; Just grab the model (if you don’t have it from the previous posts), plop it into your game(s), and viola! You have a working system!

GetItNow OR GetSource

Got commands or functions you want to share and/or get? We too have it! Join our Discord server and feel free to share your creations with the community!

I got errors?!

If you got errors, you should probably read what they say.
If the error does not mention a way to fix it, this part is useful.

How do I use the settings?

Each setting is commented with what it does, with the only real issue I could find after some feedback being the Admins part, so I’ll explain it this way;

Press CTRL + F and search for settings.Admins; You would see something like this:

settings.Admins = {
	[5] = {
		-- Admin group name
		GroupName = "Root";

		-- When setting a Single-User, you cannot mark them as temporary and they'll count as BaseAdmins (Their levels will -
		-- - be permanently set as the level here and cannot be changed in-game.)

		-- Single User; "Username"/UserId

		-- "Temporary" means they can be changed in-game, or even removed entirely.
		-- All boolean values here mean whether or not they are marked as temporary.

		-- Group; {GroupId = 0; MarkAsTemporary = true/false; [Rank] = true}
		-- Gamepass; {GamepassId = 0; MarkAsTemporary = true/false}
		-- Default; Default = true/false
		-- Donator; Donator = true/false

		--[=[ Example;
			GroupId = 3984407;
			MarkAsTemporary = false;
			[255] = true;
			Gamepass = 0;
			MarkAsTemporary = true;

		253925749; -- 0bBinary (Creator of the Engine)
	[4] = {
		GroupName = "Super Admin";		
	[3] = {
		GroupName = "Administrator";
	[2] = {
		GroupName = "Moderator";
	[1] = {
		GroupName = "VIP";

		-- You can also set a group as a default donator rank.
		--Donator = true;
	[0] = {
		GroupName = "Non-Admin";

		-- Alternatively, you can set a group as the default rank.
		Default = true;

Fear not! That’s basically how the system reads the admin levels in the system, and is, in fact, heavily customisable to your own liking! Just add your desired user’s UserId (can be found by copying the numbers part of their profile URL), and you’re done!

The rest is explained within the admin itself, so if you have trouble with that, let me know.

Studio Datastore / Error 502 - 7

In order to fix this, open Game Settings;

Click on Security and make sure Enable Studio Access to API Services is enabled!

After confirming, click on the blue button saying Save, and it should work from there.

I gave my friend admin in-game but it didn't save!

Currently, the system does not save settings and/or in-game data into the datastore unless the datastore is being used (such as MetaPlayer’s Player:Save()).

This is currently intentional and is just in preparation for a bigger update which will allow to modify settings in-game.

I have encountered an error that isn't listed here!

In the (not so) rare case stuff like this happens, the Discord server is always open for people to join to report bugs and such!


There should be a setting to prevent players from joining the experience if this error occurs, in such a case where there’s a hiccup in Roblox’s DataStoreService, an exploiter who is banned can join the game without issues.

I do appreciate the thought, but here’s where it’s wrong to do so;

Assuming everyone is an exploiter when there was one error will cause more trouble than it’s supposed to fix, mainly because it happens rather often.

You’d kick the player who just joined because of a datastore issue, and there’s a good chance they’re going to think they’re banned (regardless of the kick message), resulting in a player loss.

I can add the setting if more people want it, but it’s not at all recommended to take this course of action.

1 Like

Updated the thread since I have started to heavily re-focus on this project;

A lot of things have been added to the rebooted version of Redefine:A while the thread was gathering dust, so here’s a quick list of features we added, including but not limited to;

The list would go on forever since a lot of stuff has been added, but I’d rather keep it short.

can you continue working on nano admin too?

It is in the process; We are planning to release a big update once we finish with getting Redefine:A5, which is the underlying engine of Nano, out of the beta.

oh thanks! anyways, this post is really good! keep it up!

Apologies for the late bump! (again)

I have added some stuff since I couldn’t do the other stuff.

  • Added RawInput command types; Activate by changing Arguments = {} to Arguments = 'rawinput'. This disables a few features, but enables full control over the command at the cost of 0 help.

  • Added preparations for subcommand and custom types.

  • Added support for SocialChat v2 without the need of an external module

  • Changed the Optional: Argument of type {arg.Type} to Optional: {arg.Name} of type {arg.Type}. Looking for feedback for this specific change.

  • Multiple micro-optimization stuff; Reduced loading times from ~0.05 seconds to ~0.02 seconds in studio. (Huge achievement for me)

No, I’m not joking.


1 Like

Released an update that can be seen in R:A5’s GitHub, but I’ll make it short for those who can’t bother with technical stuff;

  • Added Semi-Native Support to Nano commands
  • Added Command.Color support
  • Added a shit-ton of commands imported from Nano into the loader so you won’t have to (and because im too lazy to rewrite these commands with R:A’s framework. dw, they’re all tested and they work fine.)

This doesn’t mark the end of the Beta phase of R:A5; In fact, there is still a lot of things to do such as get Datastore to save player levels, get new UI elements, etc.

Added some stuff which may be helpful for some of you. Can be viewed in Github because I am too lazy to rewrite all of the stuff.

  • Now using MIT licensing
  • BetterBasics > Added table.invert
  • Added a new MessagingService wrapper
  • Command.RunCapability > You can now return a string to act as an error when relying on it

Added even more stuff which can make the system more powerful and even comparable to Cmdr. Yes, you can view it in Github.

  • Added hooks to change stuff (or even cancel) before they are ran.

  • Added a Quick Actions menu thing where you can quickly do stuff without the need of running commands using the console or chat. [Beta; API for this will be made later]

  • Notifications can now be given a .Sound option.

  • Deprecated the ‘Processed’ signal due to the new hooks update; The loader has been updated to show the new method to send webhooks if needed.