Why Do Characters Stick To Transformed Characters?

Why do players who have already transformed before, fuse with players who are currently transformed? After a player transforms and they are in their base form, if they touch a player who is currently transformed they will fuse together and be stuck until the touched player detransforms.

local heatblastModel = game.ServerStorage.Models.PrototypeOmnitrix.Aliens.Heatblast:Clone()
		local cooldownClone = game.ServerScriptService.Player.Abilties.PrototypeOmnitrix.Cooldowns.HeatblastOSCooldowns:Clone()
		cooldownClone.Parent = character
		cooldownClone.Enabled = true
		task.wait(0.5)
		
		local playerFolder = Instance.new("Folder")
		playerFolder.Name = character.Name
		playerFolder.Parent = game.ReplicatedStorage
		
		local oldCFrame = character.HumanoidRootPart.CFrame
		
		character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
		
		for i,v in pairs(character.Humanoid:GetPlayingAnimationTracks()) do
			v:Stop()
		end
		
		for i,v in pairs(character:GetChildren()) do -- for parts that arent humanoid/scripts in player
			if v.Name ~= "Humanoid" and not v:IsA("Script") then			
				v.Parent = playerFolder
			end
		end
		
		for i,v in pairs(character:GetChildren()) do -- sets reset of children of player to storage
		    v.Parent = playerFolder
		end
		
		for i,v in pairs(heatblastModel:GetChildren()) do -- gives heatblast model to player
			v.Parent = character 
		end
		
		character.PrimaryPart = character.HumanoidRootPart
		character.HumanoidRootPart.CFrame = oldCFrame
		
		game:GetService("RunService").Heartbeat:Connect(function()
			if effectPart.Parent ~= workspace.Effects then
				return
			end
			effectPart.CFrame = character.HumanoidRootPart.CFrame
		end)
		
		local playerFolderChildren = playerFolder:GetDescendants()
		
		for _, children in pairs(playerFolderChildren) do -- gives playerfoldr children to player
			if children.Name == "Humanoid" then
				children.Parent = character
			elseif children:IsA("Script") then
				children.Parent = character
			end
		end
		
		local newOmnitrix = character["Left Arm"]:WaitForChild("Prototype Omnitrix")
		newOmnitrix:Destroy()
		
		character.Humanoid.isRolling:Destroy()
		character.Humanoid.rollingEnabled:Destroy()
		character.Humanoid.movesEnabled:Destroy()
		
		character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, true)
		
		game:GetService("RunService").Heartbeat:Connect(function()
			if character.Parent ~= workspace.Alive then
				return
			end
			if character.Humanoid.Health == 0 then
				playerFolder:Destroy()
			end
		end)
		task.wait(10)
		character.Humanoid.rollingEnabled.Value = false
		character.Humanoid.movesEnabled.Value = false
		local timeoutSFXC = timeoutSFX:Clone()

		local effectPart = Instance.new("Part")
		effectPart.Anchored = true
		effectPart.CanCollide = false
		effectPart.CanQuery = false
		effectPart.CanTouch = false
		effectPart.Transparency = 1
		effectPart.Parent = workspace.Effects
		game:GetService("Debris"):AddItem(effectPart, 5)
		game:GetService("RunService").Heartbeat:Connect(function()
			if effectPart.Parent ~= workspace.Effects then
				return
			end
			effectPart.CFrame = character.HumanoidRootPart.CFrame
		end)

		timeoutSFXC.Parent = effectPart
		timeoutSFXC:Play()
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(1, 0, 0)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(0.972549, 0.972549, 0.972549)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(1, 0, 0)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(0.972549, 0.972549, 0.972549)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(1, 0, 0)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(0.972549, 0.972549, 0.972549)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(1, 0, 0)
		task.wait(0.5)
		character.HeatblastOSCooldowns.Enabled = false
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(0.972549, 0.972549, 0.972549)
		task.wait(0.5)
		character["omnitrix logo"]["Meshes/omnitrix proto logo_Cylinder.002"].Color = Color3.new(1, 0, 0)

		local oldCFrame = character.HumanoidRootPart.CFrame

		character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, false)

		for i,v in pairs(character.Humanoid:GetPlayingAnimationTracks()) do
			v:Stop()
		end

		for i,v in pairs(character:GetChildren()) do -- for parts that arent humanoid/scripts in player
			if v.Name ~= "Humanoid" and not v:IsA("Script") then			
				v:Destroy()
			end
		end

		for i,v in pairs(character:GetChildren()) do -- sets reset of children of player to storage
			v.Parent = playerFolder
		end

		for i,v in pairs(playerFolder:GetChildren()) do -- gives player model to player
			v.Parent = character 
		end

		playerFolder:Destroy()

		character.PrimaryPart = character.HumanoidRootPart
		character.HumanoidRootPart.CFrame = oldCFrame

		game:GetService("RunService").Heartbeat:Connect(function()
			if effectPart.Parent ~= workspace.Effects then
				return
			end
			effectPart.CFrame = character.HumanoidRootPart.CFrame
		end)

		local newOmnitrix = character["Left Arm"]:WaitForChild("Prototype Omnitrix")
		newOmnitrix:Destroy()

		character.HeatblastOSCooldowns:Destroy()
		character.Humanoid.isRolling:Destroy()
		character.Humanoid.rollingEnabled:Destroy()
		character.Humanoid.movesEnabled:Destroy()

		character.Humanoid:SetStateEnabled(Enum.HumanoidStateType.Dead, true)

		character.Humanoid:WaitForChild("rollingEnabled").Value = true
		character.Humanoid:WaitForChild("movesEnabled").Value = true

		omniActivate:FireClient(Player)

		local omnitrix = character["Left Arm"]["Prototype Omnitrix"]
		omnitrix.Dial["greenD1"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD2"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD3"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD4"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD5"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD6"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD7"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD8"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD9"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD10"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD11"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD12"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD13"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD14"].Color = Color3.new(1, 0, 0)
		omnitrix.Dial["greenD15"].Color = Color3.new(1, 0, 0)
		omnitrix["ball1"].Color = Color3.new(1, 0, 0)
		omnitrix["ball2"].Color = Color3.new(1, 0, 0)
		task.wait(4.7)
		omnitrix.Dial["greenD1"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD2"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD3"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD4"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD5"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD6"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD7"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD8"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD9"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD10"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD11"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD12"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD13"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD14"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix.Dial["greenD15"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix["ball1"].Color = Color3.new(0.643137, 0.741176, 0.278431)
		omnitrix["ball2"].Color = Color3.new(0.643137, 0.741176, 0.278431)

		local readySFXC = readySFX:Clone()

		readySFXC.Parent = omnitrix.Band
		game:GetService("Debris"):AddItem(readySFXC, 2)
		readySFXC:Play()

image
(this is what the inside of the model the player transforms into looks like)

Can you show us what’s inside of the omnitrix logo model (just expand it)?

image

Do you have any other scripts welding parts to other parts? Just glossing over your scripts I don’t see anything that could be causing this

there is a function earlier in the script uses motor6d’s to attach the watch to the player, other than that there’s no other welds