Custom startercharacter model issues

I have a game where you can morph into custom startercharacter models through GUI, and for the player themselfs they look fine, but to other people they may be flying, tilted slightly, or just turned 180 degrees. I have tried everything to fix this, but i cannot find any tutorials or posts about this issue (I also have a system where the morphs can do machines, and sometimes they are stuck doing the machine animation, some pictures are also from my friends)



Here is a video of the issue:

I do not believe anyone can help you without reviewing the scripts that control the morphs and gui.

Maybe the animations aren’t being replicated to the server?

dont mind if the scripts are messy, still figuring out on how to improve my scripts

server script for the morph script:

game.ReplicatedStorage.CharChange.OnServerEvent:Connect(function(player, model)
	-- Clone the morph model (make sure it's a model, not a single part)
	local clone = game.ReplicatedStorage.morph:Clone()
	clone.Parent = workspace
	clone.Position = player.Character.HumanoidRootPart.Position
	clone.ParticleEmitter.Enabled = true
	clone.ParticleEmitter2.Enabled = true
	task.wait(0.05)
	local char = model:Clone()
	-- Ensure the clone model has a PrimaryPart set (HumanoidRootPart is commonly used)
	if not char.PrimaryPart then
		char.PrimaryPart = char:FindFirstChild("HumanoidRootPart") -- Set the PrimaryPart if needed
	end

	-- Clone the player's character model
	local savename = player.Name
	local pos = player.Character.HumanoidRootPart.CFrame
	local humanoidRootPart = player.Character:FindFirstChild("HumanoidRootPart")

	-- Adjust clone and particle effects
	if char.PrimaryPart then
		char:SetPrimaryPartCFrame(humanoidRootPart.CFrame) -- More accurate positioning
	end

	-- Anchor the new character to prevent any unwanted movement
	char.HumanoidRootPart.Anchored = true
	-- Setup the new character
	char.Name = savename
	player.Character = char
	char.Parent = workspace
	char.HumanoidRootPart.CFrame = pos -- Ensure exact positioning

	task.wait(0.05)
	char.HumanoidRootPart.Anchored = false
	-- Disable particle effects after morph

	-- Unanchor the new character after everything is set up
	task.wait(0.5)
	clone.ParticleEmitter.Enabled = false
	clone.ParticleEmitter2.Enabled = false
	-- Clean up the clone model after a delay
	task.wait(5)
	clone:Destroy()
end)

local script for one of the scripts firing the remote event:

script.Parent.MouseButton1Click:Connect(function()
	local plaer = game.Players.LocalPlayer
	script.Parent.Parent.Parent.Parent.morph:Play()
	task.wait(0.1)
	local skin = game.ReplicatedStorage.Skins.Ticker.Normal
	game.ReplicatedStorage.CharChange:FireServer(skin)
end)

should also mention that the player spawns like that right now for some reason.

1 Like

I just found the issue :sob:
I was teleporting the player’s humanoidrootpart with position, not CFrame with the machines
sorry for wasting your time, but thanks for trying to help!!

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.