Commander | Open Sourced Admin Panel

Hey,

In studio I get full list of commands like: bring, heal, tp and etc.

but in the real game I have just: Kick, Ban, Check Ban, Unban, Hand to, and view option

Is it a bug? any idea why It’s happening?

Maybe I’m missing something?

1 Like

Check your rank option ingame, you might’ve set yourself to admin instead of owner

1 Like

Where can I find the different themes for this admin panel? The default I see is “Material”.

1 Like

They’re in the style sheets part somewhere in the folder.
Installing themes | Commander 4 (commander-4.vercel.app)

2 Likes


:wave: Heya! We have just released 1.4.0, which contains new features, fixes, and improvements! Here is a list of them:

New features:

  • We’ve redone our ban system, Commander now bundles with server ban, which is called “Local Ban”, where the actual datastore ban is called “Global Ban”. Unban will work with those two type of bans, there’s no separate command for each type of bans
  • Custom easing, tune Commander’s UI animation to be smoother, or less bouncy
  • Custom corner radius, make it sharp, make it really rounded, your choice!

Fixes:

  • Fixed Mute and Unmute command

Improvements:

  • To avoid unnecessary API calls, some API now uses CollectionService to return data, rather than via the actual API from Roblox
  • We’ve reorganized the builtin folder, should look much cleaner and easier to view now
  • Commander will inform user when HttpService happened to be not enabled
  • For messages, there is now a s unit in the timer

Hope you will like it! If you happen to use the loader to install Commander, there is no need to update Commander manually, as everything are done for you automatically


https://github.com/va1kio/commander/releases/tag/1.4.0

5 Likes

I personally never use this admin system but previously used it before, only because of the how terribly organized it is, tons of inconsistencies in each code, and unnecessary functions. Some parameters have type checking while many others don’t.

Nitpicks: Many functions are declared both global and local for no apparent reason as well, and you have a lot of inconsistent naming and much much more.

Thanks to the optimization from Luau, Commander is faster than ever, so fast that responses are instant, and you will never experience slowdowns coming from Commander! Large game expects high performance and low latency, and with Commander, your game’s culprit to performance issues will no longer be the administration system! (Other popular administration systems still use those nasty code which disables the optimization from Luau)

This “Supercharged” benefit here is completely false. Your code also has quite a lot of flaws which I can’t really show you due to bad picture qualities, other admin systems may have nasty code but only a few use certain functions which disable Luau’s optimization. This one is on the top of having nasty code (not talking about using functions which disable Luau’s optimization).

An example is in of your scripts that use GetAsync, all you do to protect the call from failing is just pcall it and wrap it in a promise, but you never retry if the function fails and do note that GetAsync will return the cached data for the same key if called again in under 5 seconds.

The way Commander handles remote events and caching are terrible and are even leaky in the first place. The general organization is so terrible, which definitely doesn’t give a “ergonomic” feels.

Reading the source for whatever reason is a huge pain due to how inconsistent the code even is and how badly it is written in the first place.

Lastly, the debugging is a solid 0/10. The error messages aren’t verbose enough and only a few functions contain debugging.

Overall, this was just my 2 scents. If I was to rate commander’s source and overall organization out of 10, I would give it a solid 2/10, except +1 star due to the quality of UI’s included.

A much superior admin system versus this is Cmdr, it is 10x more flexible and 10x more controllable than Commander is, and has a way better source code than commander and is much better organized.

2 Likes

Noted, Commander was originally started as a prototype, so code was more like coded in a night rather than actually coded with proper naming convention, coding guidelines, et cetera. However, all these legacy code that does not follow Luau’s styleguide from Roblox, will be deprecated and replaced completely in the future, it’s all about the when we will have time to focus on that section

I must agree that the supercharged section is falsely, which will be adjusted later.

About the GetAsync however, as those are wrapped in a promise, the developer should be using :retry on that part, which will be eventually covered in guidelines in documentation.

About the implementation of remote events, and the caching system, those will be revised soon


We do have a plan to completely recode the server’s core to be much fluent, reactive, flexible, and organized, so using Commander will be much more painless for developers.


Edit: You shouldn’t be comparing an administration panel, with an administration console. While the source code layout may be superior than Commander, comparing something that has a way different design, isn’t anywhere ideal. It’s pretty laughable, if you happen to do so.


2 Likes

In addition to the edited section of your thread, which is about debugging. I agree that the error messages we have for Commander’s core is not so verbose nor informative, but again, Commander was originally coded as a prototype and was not initially made to be for public usage, that’s why those not so major factors, are not prioritized like others.

Thank you for your feedback however, we really appreciate it. Either way, there’s nothing started to be perfect at first, it takes several revises and refinements, and all these are only possible with the feedback we are having, coming from both you, and the rest of the developer community at roblox.com. :pray:

3 Likes

By the way, really late response but, for feedbacks like this, should be posted as an issue in our Github repository, which can be found at https://github.com/va1kio/commander/issues

This also goes to criticisms, bug reports, and feature suggestions.

1 Like

Add a logging system. Currently I do use this, and I trust my mods to log it on discord manually.

Maybe try to create a package so they can just write down what they did and use HttpService to send the webhook

Start from here :
https://commander-4.vercel.app/pages/guides/makepkg/#getting-further

The repository has been archived.
It seems like they won’t continue working on this.

Yep, it was a good run. Still pretty good though.

1 Like

Another user has started to continue the project under a “Commander Reborn” title, ergo, it isn’t going to be discontinued by the community at the moment.

Look at this issue I’ve put a remote spy that exploiters can use (TESTING PORPUSES)

image

Exploiters litterally can execute everything Please obfuscate the remote events

1 Like

Execution is fine, as long as there’s gates preventing the actual execution of the defined functions within the RemoteFunction itself. Which is what we did with Commander.

Commander has a simple if statement to check whether the Player instance has a special and unique tag that can represent their authority in Commander, which will continue running if they do. All this is done with CollectionService, even if the player edited the tag in the client context, it won’t really affect Commander as that’s how FE works.

Back to your suggestion, no. Obfuscation is a huge red flag to both trust, reliability and maintainability. At the end, there’s really no point renaming your remotes into something else. All it matters is gatekeepers and sanity checks in both context.

Since sendModalToPlayer returns a BindableEvent how am I supposed to get the string from the function?

local Response = module.API.sendModalToPlayer(Player).Event:Wait()

or

module.API.sendModalToPlayer(Player).Event:Connect(function(Response)

end)

One’s Async, one’s not.

I would like to mention it would be much nicer and more convenient if the player search bar moved with the scrolling of the player since if you forget you have to scroll all the way to the top

1 Like

Is Commander going to be continued to be worked on?

2 Likes