Doors A60 Morph
Key RequiredUniversal

Doors A60 Morph

Universal ScriptAverage123Average123 739 views 7.4K executesUpdated Jul 21, 2026
Unrated
00
Lua Script•296 lines (8393 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 isProcessing = false 
local isMorphed = false

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() 
		if not isProcessing then btn.BackgroundColor3 = Color3.fromRGB(50,50,50) end 
	end)
	btn.MouseLeave:Connect(function() 
		if not isProcessing then btn.BackgroundColor3 = Color3.fromRGB(35,35,35) end 
	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

local function startCooldown(btn, label)
	btn.BackgroundColor3 = Color3.fromRGB(15, 15, 15)
	btn.TextColor3 = Color3.fromRGB(150, 150, 150)
	
	for i = 3, 1, -1 do
		if btn and btn.Parent then
			btn.Text = label .. " (" .. i .. "s)"
		end
		task.wait(1)
	end
	
	if btn and btn.Parent then
		btn.Text = label
		btn.BackgroundColor3 = Color3.fromRGB(35, 35, 35)
		btn.TextColor3 = Color3.fromRGB(255, 255, 255)
	end
	isProcessing = false
end

Morph.MouseButton1Click:Connect(function()
	if isProcessing or isMorphed then return end
	isProcessing = true

	if not originalChar then originalChar = lp.Character end
	if not originalChar or not originalChar:FindFirstChild("HumanoidRootPart") then 
		isProcessing = false
		return 
	end

	local pos = originalChar.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

	isMorphed = true
	startCooldown(Morph, "Morph")
end)

UnMorph.MouseButton1Click:Connect(function()
	if isProcessing or not isMorphed or not originalChar then return end
	isProcessing = true

	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
	isMorphed = false

	destroyMorphGui()
	isProcessing = false
end)

Features & Information

Doors A60 Morph Script Reuploaded since it keeps getting taken down

Community Comments (1)

Bor4ynBor4ynSep 9, 2026

fe?

More Scripts for Universal Scripts