Alright, so the issue is when I am already in the game and my friend joins, my friend sees me in “god mode” where my screen is completely normal gameplay, I will be moving at regular movement speed but my friend will see me teleporting around. This fixes when I reset. Any idea what causes this? (based on my knowledge there is nothing in my game that could cause this issue)
Could you provide a video or some images?
Probably you have some infected scripts from the toolbox.
It could be replication lag, from client to server to client (or just server to client) so try pressing ctrl+shift+F and look for Require
among other things (maybe :Clone()
)
nothing in made game from toolbox, all coded by me
video is a little big gimme a sec
cant provide video, here is 2 images, they are taken 1 second apart
he just teleports, but you can see the movement happening
ignore his animation, this is a separate bug that i have fixed
It might be cheap but you can kill the player when they join and hide it with a loading gui
This is likely due to replication lag from client to server.
This could be either a problem with your internet (creating ping, which is not visible to you, as far as I know), or a problem with how many times you are connecting from client to server. I had a bug in one of my games where I was calling RemoteFunctions every 1/15 of a second which created long delays between clicking a button and getting an item.
i used to do this, i actually removed it as i thought it was the source of the bug
this is highly possible, how would i detect/fix?
What is your game? Is it just the default baseplate?
The only way to fix a bad internet connection, is to get a better internet connection.
So, check for things that could be causes of lag. For example, running extremely complex functions or yielding functions in RunService.Heartbeat.
Try disabling all your scripts, and, if this is still the problem, it’s probably just your internet connection (which, in that case, is not something we can help with)
LOL, my game is a baseplate with all my coded game systems, i don’t think it’s an internet issue
right, will attempt this with some of my friends later
IN ROBLOX STUDIO
Lobby is a script
function onPlayerEntered(playa) -- Sets the player's starting health to 100 -- and gives them the default tool playa.Health.Value = 100 spawn(function() repeat wait(1) local Tool = Instance.new("Tool") Tool.Name = "DefaultTool" Tool.Parent = playa until true) local char = playa.Character or playa.CharacterAdded:Wait() local humanoid = char:WaitForChild("Humanoid") local head = char:WaitForChild("Head") local part = Instance.new("Part") part.CanCollide = false part.Size = Vector3.new(1, 1, 1) part.CFrame = head.CFrame * CFrame.new(0, -1, 0) part.Parent = char local weld = Instance.new("Weld") weld.Name = "ControlWeld" weld.Part0 = head weld.Part1 = part weld.CFrame = part.CFrame * CFrame.Angles(math.rad(90), 0, 0) weld.Parent = part part.Anchored = true end
Main is a script
Because the script is on one line (it really shouldn’t be), you need to use ]]
to end comments, else it will comment out all the code.
IN ROBLOX STUDIO
Lobby is a script
function onPlayerEntered(playa) --[[ Sets the player's starting health to 100 -- and gives them the default tool ]] playa.Health.Value = 100 spawn(function() repeat wait(1) local Tool = Instance.new("Tool") Tool.Name = "DefaultTool" Tool.Parent = playa until true) local char = playa.Character or playa.CharacterAdded:Wait() local humanoid = char:WaitForChild("Humanoid") local head = char:WaitForChild("Head") local part = Instance.new("Part") part.CanCollide = false part.Size = Vector3.new(1, 1, 1) part.CFrame = head.CFrame * CFrame.new(0, -1, 0) part.Parent = char local weld = Instance.new("Weld") weld.Name = "ControlWeld" weld.Part0 = head weld.Part1 = part weld.CFrame = part.CFrame * CFrame.Angles(math.rad(90), 0, 0) weld.Parent = part part.Anchored = true end
Main is a script
Looks like root joint deletion, you can probably try to detect if the root joint is deleted and such.