A60 Morph
Key RequiredUniversal

A60 Morph

Universal Scriptsjjsksjsnnnsnssjjsksjsnnnsns 377 views 7.7K executesUpdated Jul 20, 2026
Unrated
00
Lua Script•255 lines (7632 chars)
local Players = game:GetService("Players")
local UIS = game:GetService("UserInputService")
local lp = Players.LocalPlayer
local RunService = game:GetService("RunService")

local morphCode = game:HttpGet("https://raw.githubusercontent.com/Ahma174/Morphs/refs/heads/main/Doors%20A60%20Updated.lua")

local function destroyMorphGui()
	local gui

	if gethui then
		gui = gethui():FindFirstChild("A60MorphControl")
	end

	if not gui then
		gui = game:GetService("CoreGui"):FindFirstChild("A60MorphControl")
	end

	if not gui then
		gui = lp:WaitForChild("PlayerGui"):FindFirstChild("A60MorphControl")
	end

	if gui then
		gui:Destroy()
	end
end

local originalChar = nil
local morphChar = nil

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "A60MorphingGui"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
ScreenGui.Parent = lp:WaitForChild("PlayerGui")

local Main = Instance.new("Frame")
local TopBar = Instance.new("Frame")
local Title = Instance.new("TextLabel")
local Morph = Instance.new("TextButton")
local UnMorph = Instance.new("TextButton")

Main.Parent = ScreenGui
Main.Size = UDim2.new(0,180,0,120)
Main.Position = UDim2.new(0.02,0,0.3,0)
Main.BackgroundColor3 = Color3.fromRGB(20,20,20)
Main.ClipsDescendants = true
Main.Active = true
Instance.new("UICorner", Main).CornerRadius = UDim.new(0,12)
local stroke = Instance.new("UIStroke", Main)
stroke.Color = Color3.fromRGB(60,60,60)
stroke.Thickness = 1.5

TopBar.Parent = Main
TopBar.Size = UDim2.new(1,0,0,28)
TopBar.BackgroundColor3 = Color3.fromRGB(30,30,30)
Instance.new("UICorner", TopBar).CornerRadius = UDim.new(0,12)

Title.Parent = TopBar
Title.Size = UDim2.new(1,0,1,0)
Title.BackgroundTransparency = 1
Title.Text = "A-60 Morphing Gui"
Title.Font = Enum.Font.GothamBold
Title.TextSize = 14
Title.TextColor3 = Color3.fromRGB(255,255,255)

Morph.Parent = Main
Morph.Size = UDim2.new(0.85,0,0,32)
Morph.Position = UDim2.new(0.075,0,0.38,-10)
Morph.BackgroundColor3 = Color3.fromRGB(35,35,35)
Morph.Text = "Morph"
Morph.Font = Enum.Font.GothamBold
Morph.TextSize = 14
Morph.TextColor3 = Color3.fromRGB(255,255,255)
Instance.new("UICorner", Morph).CornerRadius = UDim.new(0,10)

UnMorph.Parent = Main
UnMorph.Size = UDim2.new(0.85,0,0,32)
UnMorph.Position = UDim2.new(0.075,0,0.7,-10)
UnMorph.BackgroundColor3 = Color3.fromRGB(35,35,35)
UnMorph.Text = "UnMorph"
UnMorph.Font = Enum.Font.GothamBold
UnMorph.TextSize = 14
UnMorph.TextColor3 = Color3.fromRGB(255,255,255)
Instance.new("UICorner", UnMorph).CornerRadius = UDim.new(0,10)

local function hover(btn)
	btn.MouseEnter:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(50,50,50) end)
	btn.MouseLeave:Connect(function() btn.BackgroundColor3 = Color3.fromRGB(35,35,35) end)
end
hover(Morph)
hover(UnMorph)

do
	local dragging = false
	local dragInput, dragStart, startPos

	local function update(input)
		local delta = input.Position - dragStart
		Main.Position = UDim2.new(
			startPos.X.Scale,
			startPos.X.Offset + delta.X,
			startPos.Y.Scale,
			startPos.Y.Offset + delta.Y
		)
	end

	Main.InputBegan:Connect(function(input)
		if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
			dragging = true
			dragStart = input.Position
			startPos = Main.Position
			dragInput = input
			input.Changed:Connect(function()
				if input.UserInputState == Enum.UserInputState.End then
					dragging = false
				end
			end)
		end
	end)

	Main.InputChanged:Connect(function(input)
		if input == dragInput then
			dragging = true
		end
	end)

	UIS.InputChanged:Connect(function(input)
		if input == dragInput and dragging then
			update(input)
		end
	end)
end

Morph.MouseButton1Click:Connect(function()
	if not originalChar then originalChar = lp.Character end
	local pos = originalChar:FindFirstChild("HumanoidRootPart").CFrame
	
	loadstring(morphCode)()
	
	task.wait(0.3)
	morphChar = lp.Character
	if originalChar then originalChar.Parent = nil end
	if morphChar and morphChar:FindFirstChild("HumanoidRootPart") then
		morphChar.HumanoidRootPart.CFrame = pos
	end
end)

UnMorph.MouseButton1Click:Connect(function()
	if originalChar then
		local pos
		local oldChar = lp.Character
		
		if oldChar and oldChar:FindFirstChild("HumanoidRootPart") then
			pos = oldChar.HumanoidRootPart.CFrame
		end
		
		if oldChar then 
			for _, part in ipairs(oldChar:GetDescendants()) do
				if part:IsA("BasePart") then
					part.Transparency = 1
					part.CanCollide = false
				elseif part:IsA("Decal") or part:IsA("Texture") then
					part.Transparency = 1
				end
			end
			oldChar:Destroy() 
		end
		
		local standardR6Names = {["Head"]=true, ["Torso"]=true, ["Left Arm"]=true, ["Right Arm"]=true, ["Left Leg"]=true, ["Right Leg"]=true}
		local standardR15Names = {["Head"]=true, ["LeftUpperArm"]=true, ["LeftLowerArm"]=true, ["LeftHand"]=true, ["RightUpperArm"]=true, ["RightLowerArm"]=true, ["RightHand"]=true, ["UpperTorso"]=true, ["LowerTorso"]=true, ["LeftUpperLeg"]=true, ["LeftLowerLeg"]=true, ["LeftFoot"]=true, ["RightUpperLeg"]=true, ["RightLowerLeg"]=true, ["RightFoot"]=true}
		
		for _, v in ipairs(originalChar:GetDescendants()) do
			if v:IsA("BasePart") then
				v.Anchored = false
				if v.Name == "HumanoidRootPart" then
					v.Transparency = 1
					v.CanCollide = false
				elseif v:FindFirstAncestorOfClass("Accessory") then
					v.Transparency = 0
					v.CanCollide = true
				elseif not standardR6Names[v.Name] and not standardR15Names[v.Name] then
					v.Transparency = 1
					v.CanCollide = false
				else
					v.Transparency = 0
					v.CanCollide = true
				end
			elseif v:IsA("Accessory") then
				local handle = v:FindFirstChild("Handle")
				if handle and handle:IsA("BasePart") then
					handle.Transparency = 0
					handle.CanCollide = true
				end
			elseif v:IsA("Weld") or v:IsA("WeldConstraint") or v:IsA("Motor6D") then
				if v.Name == "MorphWeld" or not originalChar:FindFirstChild(v.Part0 and v.Part0.Name or "") then
					v:Destroy()
				end
			end
		end
		
		originalChar.Parent = workspace
		lp.Character = originalChar
		task.wait(0.1)
		
		local hum = originalChar:FindFirstChildOfClass("Humanoid")
		if hum then
			hum.PlatformStand = false
			hum.Health = hum.MaxHealth
			hum.WalkSpeed = 16
			hum.JumpPower = 50
			
			hum:SetStateEnabled(Enum.HumanoidStateType.Dead, false)
			hum:SetStateEnabled(Enum.HumanoidStateType.Climbing, true)
			hum:SetStateEnabled(Enum.HumanoidStateType.FallingDown, true)
			hum:SetStateEnabled(Enum.HumanoidStateType.GettingUp, true)
			hum:SetStateEnabled(Enum.HumanoidStateType.Freefall, true)
			hum:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
			hum:SetStateEnabled(Enum.HumanoidStateType.Running, true)
			hum:ChangeState(Enum.HumanoidStateType.Running)
			
			hum.NameDisplayDistance = 0
			hum.HealthDisplayDistance = 0
			
			workspace.CurrentCamera.CameraSubject = hum
			workspace.CurrentCamera.CameraType = Enum.CameraType.Custom
		end
		
		local animate = originalChar:FindFirstChild("Animate")
		if animate then 
			animate.Disabled = true 
			task.wait(0.05) 
			animate.Disabled = false 
		end
		
		if pos and originalChar:FindFirstChild("HumanoidRootPart") then
			originalChar.HumanoidRootPart.CFrame = pos
		end
		
		pcall(function()
			local PlayerScripts = lp:WaitForChild("PlayerScripts", 2)
			if PlayerScripts then
				local PlayerModule = require(PlayerScripts:WaitForChild("PlayerModule", 2))
				if PlayerModule then
					local controls = PlayerModule:GetControls()
					controls:Enable(true)
				end
			end
		end)
		
		originalChar = nil
		morphChar = nil
          destroyMorphGui()
	end
end)

Features & Information

A60 Morphing script

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts