Exe 5 (Product: exe V5) | Most Stunning Admin Panel Yet

wow, this is so cool. I love it :grin:

1 Like

Yeah, that does sound pretty important. Thanks

Is it possible to do a custom jail? I want to do another jail but there isn’t a guide without having to edit essential files

You could probably just replace the model with your own, and just name it the same.

1 Like

Is it just me messing something up?
Getting an error when using the /resetexe command.


Exe (Build 508).rbxm
Also happened with the previous one I had, which was something like Exe 5.rbxm.


move is not a valid member of Frame "Players.Sun_Battery23238.PlayerGui.exe.frame.window_controls.controls" - Client - window_handler:356

2 Likes

EDIT 30/10/2024 (UK Format)
Legacy Chat is being removed!

Alrighty, here we go!
At the time of making, the /resetexe command is making an error when using, even when not using LegacyChatService. Do not be surprised if it shows up for you.


Option 1 - Modifying the previous remote event

First step, which is actually optional, is changing the remote event’s name to make more sense.
If you named the remote “admin_panel_open” like I did, then that’s not really making sense, as it will do more than that.
This helps avoid confusion in the future. :wink:
image


After that change however, we need to make edits to the code we have made earlier, as that broke it.
Remember the normal Script we made? The one that runs on the Server?
There is only one line you might have to change.

local remote = game:GetService("ReplicatedStorage").exe_storage.events.admin_panel_open
might have to change to
local remote = game:GetService("ReplicatedStorage").exe_storage.events. -- whatever you called your remote event.


Good, you made it! Since we are working with the Server Script, we might as well implement reset functionality to it!

The beginning to that is to duplicate the toggleExe function and rename it to resetExe.
Simple enough? Might say so.

local function toggleExe(plr: string, msg: string)
	if msg == nil then return false end
	if string.sub(msg, 1, 4) == "/exe" then
		remote:FireClient(game:GetService("Players")[plr])
		return true
	end
	return false
end

local function resetExe(plr: string, msg: string)
	if msg == nil then return false end
	if string.sub(msg, 1, 4) == "/exe" then
		remote:FireClient(game:GetService("Players")[plr])
		return true
	end
	return false
end

The next step is to change the line which checks if the message is “/exe” into “/resetexe”, inside of the resetExe function.
We can do this by changing the third value of the string.sub to be 9 (The length of “/resetexe”) and changing the string to be “/resetexe” itself.
You should result in having

if string.sub(msg, 1, 9) == "/resetexe" then

The second-last thing we need to do is to add false and true when calling the remote event in both functions, but in that order. I have probably chosen the worst way to say that but…


toggleExe

remote:FireClient(game:GetService("Players")[plr], false)

resetExe

remote:FireClient(game:GetService("Players")[plr], true)

I will explain why we should do this later.


The last step to the Server Script is to add this line to the script.

ChatService:RegisterProcessCommandsFunction("resetexe", resetExe)

This makes the chat actually recognize that this is a command.


Now we are moving onto the window_handler Client Script.
It will be a bit easier because we will have to copy and paste a few things that make the command actually work, instead of making our own code.

After the first change we made, we need to make edits to the code we have made, as that broke it.
There is only one line you might have to change.

local remote = game:GetService("ReplicatedStorage").exe_storage.events.admin_panel_open
might have to change to
local remote = game:GetService("ReplicatedStorage").exe_storage.events. -- whatever you called your remote event.

You might have maybe thought I copy and pasted a lot of the things in the last few sentences from the start. I am telling you right now I did not! :innocent: :rofl:

You might remember us putting in true and false when sending a signal using the remote event. This is where that comes into use. Us sending those values over the remote event actually tells the script if we want it to perform a reset or a toggle! Well actually, not yet. We have to add code in to make that work! Afterall, that’s what scripting is about… Adding and adding for things to work… Alright, we’re going too deep.

Change
remote.OnClientEvent:Connect(function()
into
remote.OnClientEvent:Connect(function(reset: boolean)

There we go!
reset will be equal to what we send in the Server Script. (true/false)

The first if statement after that should be changed.

if not db then
to
if not reset and not db then

Lastly, after db = false, insert this.

elseif reset then
		storage.fullscreen.Value = false
		controls.restore.icon.Image = "rbxassetid://11422140434"
		blur.Enabled = false

		if not storage.fullscreen.Value then
			controls.move.Visible = true
		end

		tween_service:Create(main_frame, info, {Position = UDim2.fromScale(.5, .5), Size = UDim2.fromOffset(min_size.X, min_size.Y)}):Play()
		tween_service:Create(main_frame.corner, info, {CornerRadius = UDim.new(0, 20)}):Play()

		-- SETTING CORNERS

		main_frame.menu_frame.corner.CornerRadius = UDim.new(0, 20)
		main_frame.assets_panels.corner.CornerRadius = UDim.new(0, 20)
		main_frame.confirmation_prompt.corner.CornerRadius = UDim.new(0, 20)
		main_frame.direct_action_panels.corner.CornerRadius = UDim.new(0, 20)
		main_frame.profile_panel.corner.CornerRadius = UDim.new(0, 20)
		main_frame.resyncing_screen.corner.CornerRadius = UDim.new(0, 20)
		main_frame.tools_panels.corner.CornerRadius = UDim.new(0, 20)
		main_frame.window_controls.corner.CornerRadius = UDim.new(0, 20)

That should be all! Quite a long time it takes to make these changes!


Option 2 - Making a brand new remote event
I might make an edit with this.

Let me know if it doesn’t work

*There is one error that might appear for you which is not my fault as far as I am aware.

1 Like

In-Depth Video Tutorial. Exe 5.

This video covers the demonstration, installation, and registration of custom commands of Exe 5. Thank you for making this great informative video, @Cookie_DevX.

Timestamps.


Simple & Quick Exe Installation.

This video covers the simple installation of Exe by just quickly adding your UserId. Thank you for making this simple and understandable video, @Ashi_Division.

2 Likes

This looks amazing. I hope this gets used in various games!

1 Like

The UI, I love that awesome UI, nice work

2 Likes

Nice one by the way :sweat_smile:
But like I said it is an Admin System you are 100% bound to edit that config, so nothing wrong here as long as it isn’t hidden inside of the code somewhere.

2 Likes

Oops… read the comment :sob:

That’s an error in the version control, I had removed it and it came back seemingly. It will be removed and published today (i’m away from my PC and don’t have remote access on my main PC), thank you for reminding me

This is a very useful admin panel!

1 Like

Man oh man, is this awesome! Great job! Absolutely amazing! It’s absolutely awesome that you included Roblox’s new Ban API.

1 Like

Thank’s you for this fantastic tool for developers :smiley:

1 Like

so uh it gives the error but what exactly is it supposed to do? when i type it, it doesn’t rescale or do anything

exe_module modification

optimized for most comfortable to adding new profile buttons and frames and good reading of code
strokes: 1183 >>> 394
changes:

  • groupings logic
  • rewrote functions:
module:prompt_resync(state, label, loading_name)
module:direct_panels(panel_name, state, plr)
module:tools_panels(panel_name, state)
module:assets_panels(panel_name, state, plr, object_reference)	

HOW TO REMAKE IT CORRECTLY?

So, you must rename all panels and screens in:

StarterGui.exe.frame.resyncing_screen
StarterGui.exe.frame.direct_action_panels
StarterGui.exe.frame.tools_panels
StarterGui.exe.frame.assets_panels

, like that demonstrated on screenshots:
image
image
image
image

FILE OF NEW EXE_MODULE

exe_module.rbxm (4.6 KB)

ReplicatedStorage > exe_storage > exe_module
If you detected some bugs, that notify me about it.
1 Like

I’m honestly shocked on how well this has been made. I’ve been using Exe since v2 or v3 and I am loving it. The simplicity comes in clutch. Not to mention the stunning GUI! This makes me wonder everyday how a product like this is free.

1 Like

That happens even without my modifications.

then what is it supposed to do?

It’s a bug I’m pretty sure.
It’s normally supposed to reset the size and position of the admin panel in case you ever get it somewhere where you can’t resize it.

1 Like