After hours trying to figure out this issue in a local studio session, I have finally figured out what the issue was on my end.
This is definitely a roblox bug, and can be reproduced by: 1. Have an Accessory parented to the Character 2. Have a part with a decal inside, with the part being apart of the Accessory 3. At Heartbeat / any sort of loop (haven’t tried just setting once), change the decal’s color or any other property.
By doing this, you will completely break any other characters until you zoom into first person.
Thanks for the clear repro place. @orange451 this is occurring even when the place is not streaming enabled, so it is a different issue.
If I change the teleport from:
local humanoid_root_part = character:FindFirstChild("HumanoidRootPart")
if humanoid_root_part then
humanoid_root_part.Position = tp_part_b.Position + tp_part_b.CFrame.LookVector*5
end
and I didn’t see the issue. As the wiki link you shared says:
Teleportation is a term given to the act of moving a group of parts, typically a player’s character, to a certain coordinate. In Roblox, setting the `Position` property of a parts would disconnect the part from any other parts connected to it and break the model. Therefore, one cannot use the following to teleport a player because it would disconnect the Torso from the Head. Doh!
1. game.Workspace.Player.Torso.Position = Vector3.new(0, 50, 0)
To correctly teleport a player without killing them, you must use the CFrame property and use the [CFrame](https://developer.roblox.com/articles/Understanding-CFrame) data type instead.
I’m not using the Position property to teleport users and I don’t think MetatableIndex is either. My issue is that, even after resolving this issue by teleporting via CFrame, I’ve noticed that this bug is occuring in my game again at arbitrary points. I have not been able to reduce it down to a repro, but I certainly am not teleporting players via the Position property and have not been for about a year now. I had to rewrite all my code to remove it, after all. I may try the SetPrimaryPartCFrame, but I don’t see how that would be any different than what I already do.
Any update on this? It seems to have happened to me today, players are reporting being invisible to each other (I am CFraming their HumanoidRootPart on the client).
This happens to my players and NPCs. It happens rarely to players’ characters that are teleported using HumanoidRootPart.CFrame and more commonly to zombie NPCs teleported using the same teleport method.
I can never replicate it on my own computer nor can certain people replicate it on their computers. I think it only replicates on older and poorer computers on lower graphics settings. Is there any fix coming?
I used your method of fixing things and yet when I go on the server I’m still levitating beneath the ground. I have my characters Archivable set to (I checked if it was true thinking that could be the issue) but I’m still bugged. Down there, this is very annoying….
Never mind, my issue was that I welded a part to the players right arm on the client. Instead, I did it on a server script and used the following code to fix it.
script.Parent.OnServerEvent:Connect(function(Player, Action)
if Action == “Equip” then
local KProp1 = game.ReplicatedStorage.Props.PropKunai:Clone()
KProp1.Parent = game.Workspace
KProp1.Name = Player.Name…”sKunaiProp”
local PropW1 = Instance.new(“Weld”, KProp1)
PropW1.Part0 = KProp1
PropW1.Part1 = Player.Character[“Right Arm”]
PropW1.C0 = CFrame.new(0,1,0) * CFrame.Angles(0,math.rad(45),0)
elseif Action == “Unequip” then
local KProp1 = workspace:WaitForChild(Player.Name…”sKunaiProp”):Destroy()
end
end)
So yeah, the issue was what @MetatableIndex was talking about, special thanks to him for letting us know!
I also had a problem with teleporting because whenever I teleported my character using CFrame or Position, the attachments on my weapons and accessories would scatter all around the map making the hitboxes and shooting points really weird. I happen to have Commander 4 by Evo, so I looked into their teleport script and I noticed that they used SetPrimaryPartCFrame() for their model. I looked deeper and turns out there was a new version of that, PivotTo().
I switched all of my teleporting things to PivotTo(targetCFrame) and so far I haven’t run into any more attachment part problems regarding teleportation. I know this was a really late post, but I hope this helps!