This DevBlog was made on the same day as this one and may appear out-of order. please read that one before this one.

Hello! Welcome to my second update on me and my friends’ game, MRTS (Modern RTS)!

I am currently making an Admin Gui that will do stuff I just can’t fit-in with the current terminal (see Developement Update 1)

It’s kind of complicated, because the RichText was glitching (see my forum post, if someone is reading this like 10 years later and the forum post doesn’t show up, look at this wayback machine capture I made) so I had to find a strange workaround

local NewText = function(TextInput)
	local Text = Instance.new("TextLabel")
	Text.Parent = script.Parent
	Text.Name = "TopText"
	Text.RichText = true
	Text.ZIndex = 2
	
	if TextInput == "<stroke color='rgb(0, 0, 0)' joins='miter' thickness='4' transparency='0.25'><font family='rbxasset://fonts/families/PressStart2P.json'><font color='rgb(0, 255, 0)'><font size='30'>SERVER-WIDE ANNOUNCEMENT</font></font></font></stroke>" then
		Text.BackgroundColor3 = Color3.new(1, 1, 1)
	else
		Text.BackgroundColor3 = Color3.new(0, 0, 0)
	end
	Text.Text = TextInput
	Text.Size = UDim2.new(0, 421, 0, 50)
	Text.Position = UDim2.new(0, 0, 0, 0)
end

this function, instead of changing the textlabel, just makes a new one everytime, and aside from 1 exception I made, it makes every textlabel look the same just with different text. The weird if statement is for a single exception because of the text color of the server-wide announcement function i’m adding to the gui.

NewText("<b><i><u><font face='PermanentMarker'><font color='rgb(255, 0, 0)'><font size='40'>PERMA-BAN</font></font></font></u></i></b><font face='Gotham'><font color='rgb(255, 0, 0)'><font size='30'><b>    A PLAYER</b></font></font></font>")

At the start of the game, this will automaticly set the text to the default, which is the Gui menu for perma-banning people

local left = script.Parent.Parent.LeftArrow
local right = script.Parent.Parent.RightArrow

local num = script.Parent.TopTextControl

left and right are 2 buttons, which control a value, which is the local num value.

left.MouseButton1Click:Connect(function()
	if num.Value-1 == 0 then
		num.Value = 6
	else
		num.Value -= 1
	end
end)

right.MouseButton1Click:Connect(function()
	if num.Value+1 == 7 then
		num.Value = 1
	else
		num.Value += 1
	end
end)

these 2 functions are how the left and right button control the num value.

num.Changed:Connect(function()
	local success, errormsg = pcall(function()
		script.Parent.TopText:Destroy()
	end)
	if success then
		print("YES")
	else
		warn(errormsg)
	end

This detects when the num value is changed, and deletes the old text to make room for a new Textlabel. If there is no current Textlabel, it will print (“warn”) an error in the colsole, but because I used pcall, even though it will throw an error it won’t yield the script.

 if num.Value == 1 then
		NewText("<b><i><u><font face='PermanentMarker'><font color='rgb(255, 0, 0)'><font size='40'>PERMA-BAN</font></font></font></u></i></b><font face='Gotham'><font color='rgb(255, 0, 0)'><font size='30'><b>    A PLAYER</b></font></font></font>")
	elseif num.Value == 2 then
		NewText("<i><font face='FredokaOne'><font size='40'><font color='rgb(200, 0, 0)'>TEMP-BAN</font></font></font></i><font face='Gotham'><font color='rgb(255, 0, 0)'><font size='30'>    A PLAYER</font></font></font>")
	elseif num.Value == 3 then
		NewText("<i><font face='DenkOne'><font size='40'><font color='rgb(150, 0, 0)'>SERVER-BAN</font></font></font></i><font face='Gotham'><font color='rgb(255, 0, 0)'><font size='30'>    A PLAYER</font></font></font>")
	elseif num.Value == 4 then
		NewText("<b><i><font face='Ubuntu'><font color='rgb(255, 100, 0)'><font size='40'>KICK A PLAYER</font></font></font></i></b>")
	elseif num.Value == 5 then
		NewText("<font family='rbxasset://fonts/families/ComicNeueAngular.json'><font size='50'><font color='rgb(0, 255, 255)'><b>ANNOUNCE</b></font></font></font>")
	elseif num.Value == 6 then
		NewText("<stroke color='rgb(0, 0, 0)' joins='miter' thickness='4' transparency='0.25'><font family='rbxasset://fonts/families/PressStart2P.json'><font color='rgb(0, 255, 0)'><font size='30'>SERVER-WIDE ANNOUNCEMENT</font></font></font></stroke>")
	end

end)

This will run the Newtext function and will pass on a giant string which will turn into nicely formatted text for the admin gui.

All the functions I want to add into the admin gui:

  • Perma-ban system
  • Temporary-ban system (players will be automaticlly unbanned after a set duration)
  • Server-ban system (bans a player from 1 specific server)
  • Kick system (a less serious ban; they get “kicked” from their current server but can rejoin the game)
  • Announcement system (displays a message to every player in the current server)
  • Server-wide announcement system (displays a message to every player in every server)

The perma-ban system is the one me and my friends are currently working on. ** So that i had time to write this, I told my friends I had to go eat (which was true) but they might start to get sus soon, so imma get back to developement.

It is 6:55 PM right now, I might edit this post later to include anything new that happens in the developement of the game.

:)