Ok so if you look at my script you will see in the server script i tried changing The first one is my local script which everything is right i think
--local script
local ScreenGui = script.Parent
local button = ScreenGui.TextButton
local Remote = game:GetService("ReplicatedStorage"):WaitForChild('RemoteEvent')
button.MouseButton1Click:Connect(function()
Remote:FireServer()
end)
--serverscript
local ScreenGui = script.Parent
local Button = ScreenGui.TextButton
local Remote = game:GetService("ReplicatedStorage"):WaitForChild('RemoteEvent')
Remote.OnServerEvent:Connect(function(player)
print(player)
print('0eventfired')
local part = Instance.new("Part",workspace)
part.Position = Vector3.new(0,0,0,0)
part.Size = Vector3.new(10,10,10)
part.Shape = 'Ball'
end)

5 comments
the problem is likely where your server script is located. im guessing its in StarterGui, because its parent is the ScreenGui. you should move it to ServerScriptService and remove the variable for the ScreenGui.
I think it's because he is printing just player, I made an answer, it should help him and fix his issue.
and the button variable
Anyway, I don't think it'd matter since he didn't use the variables at all, other than Remote? Odd.
the variables dont matter but theyre unused and unneeded and should be removed