I wrote a script to change the character’s model in game:
local CharacterName = Player:FindFirstChild("CurrentCharacter").Value -- StringValue which stores the character's name
local OldModel = Player.Character
-- Current character's model
local NewModel = game:GetService("ReplicatedFirst"):WaitForChild("Characters"):WaitForChild(CharacterName):Clone()
-- New character's model
local OldCFrame = OldModel:GetPivot()
-- CFrame of the old model
Player.Character = NewModel
-- Sets player's character to the new model
NewModel.Parent = workspace
NewModel:PivotTo(OldCFrame)
-- Moves the new character model to the old character model's cframe
OldModel:Destroy() -- deletes the old character model
However, there is a noticeable delay before the old character is deleted. There’s no errors and I can’t figure out what the issue is
Here is a video of what’s happening in game