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()
(this is what the inside of the model the player transforms into looks like)