Nano | The Non-intrusive Admin Panel

I could make the command and send it to you privately, as the commands are all based on what you have in the loader.

That sounds great! I would like that if you could do so!

About the “NANO” button on the screen, does it show it to everyone or only admins?

1 Like

The Nano button is only visible to those who have the UI permission set to true. Those who have it disabled will not be able to use the UI, but they will still get all notifications, messages and hints, and may be able to use the (work in progress) Game Settings UI if they have the Chat permission.

Hey ya’ll, thanks for waiting (if you did).

BETA_PRE2 has just been released, introducing a few new features as well as the most anticipated one; the Game Settings panel.

The panel is still work in progress, so the UI for it is experimental.

Remember, you can join either of our Discord Community servers in order to get updates as soon as they happen. [ SME | Axelius ]

With all that said, here’s the PRE2 GitHub commit for the tinkerers here.

Changelogs
+ Added new 'Open Game Settings' button for those who have permission to do so.
The specific permission is 'Nano.GameSettings'

+ Added a separator for BaseSettings (settings that are in the 'Settings' module) and other settings (stuff that might come from functions and/or commands)
For those of you who might want to add editable settings in-game ;P

+ Added 'Settings Corrupted' message for datastore-based settings.
Basically for those who messed around with the settings in way they shouldn't have.
- note: might have false positives

+ Added negative permissions.
Adding a minus infront of a command will disable it, for example; "folder.*;-folder.Command" -> Command will be disabled for the user.

+ Added Private Message assets.
Already scripted and all, just no command yet. (coming soon-ish :L)
To initiate a private conversation, simply fire the API's remote like this:
event:FireClient(target,"PrivateMessage",{sender.UserId,"message"})
+ Added 'NanoWorks' UI framework for the Settings panel of the system.
Custom built, from the ground up!

--- Fixed Settings.ChatCommands.Active not really doing it's job.
apparently this bug happened for some reason. idk.


+ ... and a handful more of QoL patches and updates which can be found in the GitHub commit.

“Change display name” doesn’t work.

I’ve fixed this, I had to recode it entirely because apparently in a recent update or something roblox has changed the permission level to change DisplayName from Server (Identity 2) to Core (Identity 4) so you can no longer change it with a script, bummer… It will be fixed and pushed with the next update :smiley: (it only changes the name shown above the player’s character unfortunately)

1 Like

you should take a gif of the tweens ngl

also great stuff i think ill use this in my game

There have been a few newer ‘candidate’ builds for BETA_PRE2, which are as follows;

Beta2 Candidates 2 and 3

@ShhhhhhhhhhhBro

+ New MCheat module thanks to ShhhhhhhhhhhBro. (Mentioned above)
Now using .self and better code readability.

! Fixed the Ban command.
It was broken. I don't even know what to say.

! Fixed the Time asset not being recognised by the Server. (Always returns "")
It now always returns a number, rather than an empty string.
Beta2 Candidate 4
+ New UI assets for the Game Settings UI.
Yes.

+ New warn() system.
It now shows the error code as well as an explanation for the error.

! Credits section will now prioritise people who contributed more commands before alphabetically sorting the other contributors.
now gigs is no longer above the system creators because of a single command lol

! Updated loader with a few fixes to some commands.
Get the new loader, NOW!

- Removed unnecessary warnings that occasionally happened.
Primarily because of the Notifications queue.
Beta2 Candidate 5
+ Added MetaPlayer as an argument for commands; You can now use 'MetaPlayer' instead of 'Player' to gain better access to the player's functions.
player:Kill(), anyone? .-.

+ Added 'Mute' and 'Unmute' events for the players.
A reason to use the MetaPlayer module.

+ Added AccentColor influence on the "Open Game Settings" button in the client.
pink open game settings button? :flushed:

! Fixed Nano breaking if AccentColor.Forced is selected to be true for whatever reason.
The asset was missing I guess. Hey, at least now it's easier to change the color itself.

! New loader technique is now used.
Roblox fights with free model devs now. >:L
2 Likes

100% this is just me I reckon - sorry, I must be as blind as a bat, I can’t see anything in your Post, Settings, or Main Script that tells me how I could open the GUI? Just wanted to ask what key-bind or message, or whatever it is! :sweat_smile:

Also, when I try to run a chat command, I receive this error:

required_asset_9215279390.MainModule.MetaPlayer:122: attempt to index nil with 'Muted'

What have I done wrong now?

Sorry again.

Hey, thanks for reporting the issue with the MetaPlayer module, I may have skipped that part. (it has been fixed)

In regards to opening the UI, you should be able to see this button at the bottom left side of your screen.
image

Clicking it will open the menu. If you don’t see it, check your settings module to see if your player flag is in there.

In your case, the player flag would be something like this (if it’s not there);
{UserId = 882959246; FlagGroup = "Game Owner"};

seems easy to add commands, I already have, but it seems that the sliders are having a bit of a problem, the text label above it wont change and only stays as “Label” and the maximum amount stays at 100 no matter what I put it at in the script, this also occurs for already existing commands like Speed

Sometimes, this admin system kicks me for no reason. reason: you have been kicked for suspected cheat
last time seen cheating: Abnormal ping. if this can’t be fixed then can you tell me how to disable it

Thanks for the reports, I’ll answer each of them separately;

@proudCdthekitten I’ve found the bug and the patch will be released some time soon, so stay tuned for that. (The maximum value was not ported to the NanoWorks framework properly for some reason, sorry!)

@SilverProKills The built-in anticheat gets triggered if it finds player with a very high ping, aka 500ms or more. If you are using a Wifi connection, try moving closer to the router. If it still isn’t solved, send me a DM on either the forums or join one of our discord servers listed in the topic. (if you’re 13+, that is.)

As of now, there isn’t really a way to disable MCheat since it was deemed rather accurate, so I’ll think of something and might update the post.

Update: I’ve raised the ping check to 600ms and made the reasoning more clear. If it still kicks you, please let me know. As for the slider report, I have ported it correctly into the framework now. Let me know if it still doesn’t work for you.

Alright, I’ll see about it. I’ll let you know if it doesn’t work.

Once again, a lot of updates (or, ‘candidate’ builds) have been released for BETA_PRE2. I’ll just summarize all of the edits at once without going into each version individually to save all o’ us’ time.

Added Stuff
+ Added Ping Delta check to MiniCheat (if ping difference between last check and current ping is higher than 150ms, this triggers the delta score.)
+ Added click effect on a lot of the UIs being used.
+ Added more info on player hover.
+ Code readability optimisations.
+ Added command-send debounce. (Negatable by adding permission 'Nano.NoDebounce')
Fixes and other, more technical changes
+ Added GetPlayerDataFromId.
+ Added function format(originstring:string, replacementdata:table{[old:string] = new:string}) to the MainModule.
! The client is now relying on the server to catch a command error.
! Fixed string flaggroups.
! Fixed a few errors related to Nano Sounds and NanoWorks.
! Fixed Targeting Mode spamming. (somehow we didn't think someone would spam it .-.)
! Fixed permission negating.
! Dropdowns now affect the inner command size.
! Wrapped RunIntro with task.spawn()
! MiniCheat is now a bit more lenient as the cost of more time to deduce score. (Score to kick is now 15 (was 10), time to deduce score is now 240 seconds (was 120)).
! Fixed Shutdown in BaseCommands to show who actually shut the server down.
! Ported most of the UI assets into the NanoWorks framework. (not yet of a library level doe :L)
! Enhanced MetaPlayer functions to use player.self rather than check if player is in-game.

As always, if you have issues arising with Nano, DM us (@0bBinary or @Cytronix) on either Devforums or join our discords;

SME Discord; SME Community (Redefine:A | Nano)
Axelius Discord; Discord

dev note: at this rate it almost feels like nano will not get beta 2 lol

Yo, this is an amazing project, thank you and everyone who made it and worked on it.

I was thinking about using it in my game, but I have 2 questions:
1- You said something about not inserting malicious scripts into the environment; can you explain it a bit more? I’m making a game and want to make sure that I’m staying on the safe side.
2- When I read the settings module, it said that I can place a token in there. Is there any way to get the token right now? And if so, is it paid or free?

Thanks,
Shield

Hey there, both are good questions so I’ll explain them both;


1 - Nano (or NxEngine in general) has a unique way of loading modules/commands: It will take the returned value and insert that value into itself. This can be seen in the source where I simply put a module and it would already work with Nano as a table value in it; The exceptions for it would be when the module has a wrapper function, namely _NanoWrapper, which is expected to give the actual stuff Nano would need to use.

This pretty much gives a ‘lego’-like system, where everything can be swappable easily by forking an existing module into the ‘Functions’ folder of the loader.

The reason why I mentioned not inserting malicious scripts is basically because of that same _NanoWrapper I mentioned: A simple modulescript that does env = nil, and the entire system would be gone.

Thankfully it doesn’t read modulescripts after the initial load, which is why it has more of an immunity regarding those kind of stuff as long as you didn’t insert malicious modules into it beforehand (pre-init).


2 - The token is something that will be used in the future in order to allow Game → API → Platform integration, hence I have planned ahead and put it before we even started working on it. The plan for it right now is to make it free, but it might be changed to take a small fee if something won’t work with the amount of players. (Note; If it won’t be free, it’ll be open-source so you could host it yourself.)

1 Like

Hey there, apologies for the late post (as always :P);

The beta versions have reached the 3rd phase, where we focus on separating the Chat and UI while adding more Datastore options, including the already mentioned Token API. As always, all changes are visible in the GitHub project so I won’t spam the thread with more of those ‘added stuff’ and ‘fixes’ posts.

You’re everywhere, aren’t you Binary :joy:

Anyway, amazing resource, nice work!

1 Like