First off we would need more information such as the client sided script that firing the remote. It most likely that the arguments you are sending to the server are “nil” or “N/A”. However, I don’t see why you need the client to send any information to the server. You can just get all the information on the server using the following :
Player.Name; -- The players name
Player:GetRoleInGroup(GroupID); -- Gets the rank name
Player.AccountAge; -- The players account age in days
game.ReplicatedStorage.RemoteEvent.OnServerEvent:Connect(function(plr,name,age,rank,another)
local headshot = Enum.ThumbnailType.HeadShot
local headshotSize = Enum.ThumbnailSize.Size100x100
game.StarterPack.key.Handle.SurfaceGui.name.username.Text = plr.Name;
game.StarterPack.key.Handle.SurfaceGui.rank.grouprank.Text = plr:GetRoleInGroup(GroupId); -- Put your group id here
game.StarterPack.key.Handle.SurfaceGui.age.accountage.Text = plr.AccountAge;
game.StarterPack.key.Handle.SurfaceGui.headshot.Image = another:GetUserThumbnailAsync(plr.UserId, headshot, headshotSize)
end)
Your main problem is that you are changing objects in the StarterPack. When the player joins, everything in the starter pack gets cloned into the player’s backpack. You are trying to change the objects in starter pack, which will not do anything because nobody has the objects in starter pack. You need to be changing the objects in the player’s backpack. Thats where the all of the player’s tool go.