How would i replicate this local script to the server

So I’m trying to use a remote event to make this script server sided however I’m unsure of how to properly and efficiently reference plrgui from the server and I don’t think you can index it so how would i go about making this server sided?

-- local textboxconfirm = script.Parent.Parent.textboxenter.done

local textbox = script.Parent.Parent.textboxenter.TextBox

local ReplicatedStorage = game:GetService("ReplicatedStorage")

local remoteEvent = ReplicatedStorage:WaitForChild("radioremote")


local callsignframe = script.Parent.Parent.Callsign

textboxconfirm.MouseButton1Click:Connect(function()
	

	local clone = game:GetService("ReplicatedStorage").REPLICATION:Clone()

	clone.Parent = script.Parent.Parent.ScrollingFrame

	clone.MESSAGE.Text = textbox.Text
	
	clone.CALLSIGN.Text = callsignframe.TextBox.Text
	
	remoteEvent:FireServer()
	
end)


So long as you know the player instance you can always reference their PlayerGui.

When firing a remoteEvent the “OnServerEvent” first argument is always the player that fired the remote. So you could just do:

MyRemote.OnServerEvent:Connect(function(Player)
	local PlayerGui = Player.PlayerGui;
	-- Do whatever else here
end);
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local remoteEvent = game:GetService("ReplicatedStorage"):WaitForChild("radioremote")


remoteEvent.OnServerEvent:Connect(function(Player)
	local PlayerGui = Player.PlayerGui;
	local textboxconfirm = PlayerGui.RadioGUI.textboxenter.done
	local textbox = PlayerGui.RadioGUI.textboxenter.TextBox
	local callsignframe = PlayerGui.RadioGUI.Callsign
	
	textboxconfirm.MouseButton1Click:Connect(function()
		local clone = game:GetService("ReplicatedStorage").REPLICATION:Clone()
		
		clone.Parent = PlayerGui.RadioGUI.ScrollingFrame
		
		clone.MESSAGE.Text = textbox.Text
		
		clone.CALLSIGN.Text = callsignframe.TextBox.Text
	end)
	
end);

Would that script work?