SYNCRO MS v2 [WIP]

Hello!
So I was getting Kind of bored and just wanted to see if i could make a “Moderation System” or “Admin Panel” Sort of thing, and this Is what It turned out to be (so far):

General Tab UI Design (NOT BY ME):
image

Command Bar:

Stats/ Information Bar:

Motivational Quotes bc just why not (it’s a command btw):
image

There are mobile supportive and incase the key-bind(“;”) doesn’t work there is a button at the top that you can click just in case.

the command bar does include very “special” commands that I never saw on a other “Moderation System” such as “blockconsole” which will block the targets developer console basically removing the ability to open the console, This might be useful. And ofc you can use “unblockconsole” to basically revert? back to the normal thig? sorry if i cant explain it good XD.

NOW FOR THE BEST PART
We added a pattern plugin that basically will enable a pattern so the command bar looks better.
you can ofc enable or disable this in the upcoming settings.
image

BUT NOW SOMETHING I LOVE ABOUT THIS
a cool sound system that works perfectly, With an limiter.
image
So let me explain.
When the player types inside the command bars input it will check this function:


which yea will play the sound if any of the sounds are set to true.

we also added this:


Now this is just how the sound plugin is being checked but you can see that it filters some letters, well firstly it will filter “;” bc thats the keybind key and we dont need the keybind key to play a sound, now u may or may not have seen this letter: “ş”, it is a turkish letter, And why i made that bypass it is bc the “;” key on a turkish keyboard is “ş”. So basically the command bar is fully “operational” for the turkish keyboard, it will also bypass spaces, and no text. so yea.

Btw if you have any keyboard letters that i could add to there like maybe an arabic keyboard please let me now i want to make all of this supportive for everyone.

Anyways that’s it for now.
If you have any good or bad feedback please let me now I’m mostly available, but if you want to reach out or work with me (for free bc im broke :)))) just add me on discord: snox#5828, Credits will ofc be given.

And sorry for my bad explaining :nerd_face:

1 Like

Sorry i did not include the limiter so here it is:

So here is how the limiter works:

image
image
image

So there is a limit value that will basically be the max.
and it will basically run the CheckBoxStorer function every time something has been added into the storer. Basically limiting the children.

2 Likes

This can be improved a lot. Try to remove all these if statements and use automation, such as PreBuilt[Type]:Clone().

Come on, you can definitely improve this! It would help if you can put actual code instead of images so people can try to perfect it.

2 Likes

Here you go lol, I know that i could make it more automatic but im scared cus allways when i try messing with my code i end up screwing all of it up.

CommandInput:GetPropertyChangedSignal('Text'):Connect(function()
	if module.SoundPlugins.SansSoundPlugin == true then
		if not (CommandInput.Text ==";" or CommandInput.Text =="ş" or CommandInput.Text ==" " or CommandInput.Text =="") then
			pluginForInputCapture('sans')
			module.CheckPlugins()
		end
	elseif module.SoundPlugins.ModernSoundPlugin == true then
		if not (CommandInput.Text ==";" or CommandInput.Text =="ş" or CommandInput.Text ==" " or CommandInput.Text =="") then
			pluginForInputCapture('modern')
			module.CheckPlugins()
		end
	elseif module.SoundPlugins.OkaySoundPlugin == true then
		if not (CommandInput.Text ==";" or CommandInput.Text =="ş" or CommandInput.Text ==" " or CommandInput.Text =="") then
			pluginForInputCapture('okay')
			module.CheckPlugins()
		end
	elseif module.SoundPlugins.MinecraftSoundPlugin == true then
		if not (CommandInput.Text ==";" or CommandInput.Text =="ş" or CommandInput.Text ==" " or CommandInput.Text =="") then
			pluginForInputCapture('minecraft')
			module.CheckPlugins()
		end
	elseif module.SoundPlugins.YahooSoundPlugin == true then
		if not (CommandInput.Text ==";" or CommandInput.Text =="ş" or CommandInput.Text ==" " or CommandInput.Text =="") then
			pluginForInputCapture('yahoo')
			module.CheckPlugins()
		end
	else
		return
	end
end)
function pluginForInputCapture(Type)
	if Type =="sans" then
		local sound = PreBuilt.Sans:Clone()
		sound.Parent = Storer
		sound:Play()
		repeat wait() until sound.Playing == false
		sound:Destroy()
	elseif Type =="modern" then
		local sound = PreBuilt.Modern:Clone()
		sound.Parent = Storer
		sound:Play()
		repeat wait() until sound.Playing == false
		sound:Destroy()
	elseif Type =="okay" then
		local sound = PreBuilt.Okay:Clone()
		sound.Parent = Storer
		sound:Play()
		repeat wait() until sound.Playing == false
		sound:Destroy()
	elseif Type =="minecraft" then
		local sound = PreBuilt.Minecraft:Clone()
		sound.Parent = Storer
		sound:Play()
		repeat wait() until sound.Playing == false
		sound:Destroy()
	elseif Type =="yahoo" then
		local sound = PreBuilt.Yahoo:Clone()
		sound.Parent = Storer
		sound:Play()
		repeat wait() until sound.Playing == false
		sound:Destroy()
	end
end
2 Likes

So my guess is this is how you meant it?

1 Like

I don’t really understand why there is sounds, and why sounds have to be toggled, but here:

local sounds = module.SoundPlugins

local function playTypeSound(Type)
	for _, sound in pairs(PreBuilt:GetChildren()) Destroy
		if sound.Name:lower() == Type:lower() then
			local s = sound:Clone()
			s.Parent = Storer
			s:Play()
			s.Ended:Once(function()
				s:Destory()
			end)
			return s
		end
	end
end

CommandInput:GetPropertyChangedSignal("Text"):Connect(function()
	if CommandInput.Text == ";" or CommandInput.Text == "ş" or CommandInput.Text == " " or CommandInput.Text == "" then return end

	if sounds.SansSoundPlugin then
		playTypeSound("sans")
	elseif sounds.ModernSoundPlugin then
		playTypeSound("modern")
	elseif sounds.OkaySoundPlugin then
		playTypeSound("okay")
	elseif sounds.MinecraftSoundPlugin then
		playTypeSound("minecraft")
	elseif sounds.YahooSoundPlugin then
		playTypeSound("yahoo")
	else return end

	module.CheckPlugins()
end)
1 Like

wow that actually worked well, so i can still add sounds right?

What are the sounds for exactly? I wasn’t sure.

1 Like

well when you type anything in side the command bar like a letter it will play a sound yk like operas plugins that will add sounds into the search bar and stuff

It should be a suttle sound then. The sans sound and ‘yahoo’ and ‘okay’ sound like they would be too loud. The sound in Opera GX would be fine, but I would also be fine with no sound.

Exactly why i wanted to add customization into the up-coming settings, Basically you can fully customize all of the sounds and add custom ones aswell prolly add a time length check cus i dont want a sound to play like a minute long but yea.

1 Like

What about instead a TypeSoundId setting?

Not quiet sure what you mean by that.

1 Like

Instead of a boolean setting for each type of sound you’ve added, you can let the user set the sound id will be for the type sound. If this is being changed by the player itself, it should be made sure that the sound is under 3 seconds or less.

Not a bad idea, maybe we can also add like a pre-built sound ids, So a player can use a custom or a pre-buit one right?

1 Like

oh and i have a question that will may disappoint you lol, Is there a way to make these commands more organized??

cus looking at these lines just makes me dissy

i tried using a module script like so:

{
Name =“kill”
Function = function()
end)
}

But didnt figure out how that would work with args and stuff and how to make it fully automatic
aslo executing this would be dificult i think

2 Likes