So I for the life of me cannot figure out remote server events, and I have simply avoided it by limiting my use of local scripts and taking the sometimes long way around. I have now run into a problem I think is only possible through firing an event. I want someone to be able to type out how much Ore they would wish to sell. inside the TextButton I have a local script which reads
local repstor = game:GetService("ReplicatedStorage")
local remote = repstor:WaitForChild("StoreType")
local function changed()
local texty = ""..script.Parent.Text..""
remote:FireServer(texty)
end
script.Parent.Changed:Connect(changed)
I have of course a RemoteEvent (do i need a RemoteFunction?) named StoreType Inside the RemoteEvent I have a standard script which reads
local repstor = game:GetService("ReplicatedStorage")
local remote = repstor:WaitForChild("StoreType")
local function changed()
local texty = ""..script.Parent.Text..""
remote:FireServer(texty)
end
script.Parent.Changed:Connect(changed)
I have rewritten this and tried so many alternatives on my own, I even understand how clients vs servers work and I know i can transfer data (which is what i tried to do with "texty"), I just never am able to successfully fire/call thing.
Thanks!

2 comments
You should've done the client first before doing the server.
No. I think it's easier to understand that way. Also, his problem in this question was that he didn't understand remote server events - so I explained them. If he understands this explanation, he'll understand the rest in the documentation, I think.