This version is still in development, and may miss some features and documentation.
Hell, I am still working on adding some features from previous versions.
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!
-
NEW: Themes; You can now switch the way your system looks by loading up a theme. (In fact, you can entirely change how the system works with themes, exactly the same way as if youâd add simple functions to the module!)
-
BETA: Quick Actions; You can now create easily accessible tools without even opening the console or typing in chat.
-
Slash Commands support; Run commands you make with Redefine:A using slash commands in TextChatService!
-
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.
-
Optionally receive auto-updates. (In an opt-out fashion. I mean, who wouldnât want to receive updates?)
-
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.
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?
"Ban";
"Mute";
};
};
{
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.
end;
-- Runs this code when the module loads.
OnLoad = function(env)
-- You can use this to add functions to the environment.
end;
-- 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.
}
end;
}
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)
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!
Getting the loader is currently only available in the Discord server, or the GitHub releases page.
Temporarily, you can only get the Module source code from here;
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!
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;
"SezeiXD";
253925749;
{
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!