
Keyless

-- LocalScript: Delta_MorphAllCharacters_Scroll_NoNoclip_VisibleDummy
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui", 10)
if not playerGui then warn("No PlayerGui encontrado") return end
local dummysFolder = ReplicatedStorage:WaitForChild("Dummys", 5)
if not dummysFolder then warn("ReplicatedStorage.Dummys no encontrado") end
local buttons = {}
local function disableAllButtons()
for _, btn in ipairs(buttons) do
if btn and btn:IsA("GuiButton") then
btn.Active = false
btn.AutoButtonColor = false
btn.BackgroundColor3 = Color3.fromRGB(60,60,60)
end
end
end
local function enableAllButtons()
for _, btn in ipairs(buttons) do
if btn and btn:IsA("GuiButton") then
btn.Active = true
btn.AutoButtonColor = true
btn.BackgroundColor3 = Color3.fromRGB(100,100,100)
end
end
end
local function safeFindDummy(name)
if not dummysFolder then return nil end
local found = dummysFolder:FindFirstChild(name) or dummysFolder:FindFirstChild(name:lower()) or dummysFolder:FindFirstChild(name:upper())
return found
end
local function copySpecialFoldersAndAnimations(sourceModel, targetCharacter)
if not sourceModel or not targetCharacter then return end
local specialFolders = {"CharacterFolder", "HitFolder"}
for _, folderName in ipairs(specialFolders) do
local sourceFolder = sourceModel:FindFirstChild(folderName)
local targetFolder = targetCharacter:FindFirstChild(folderName)
if sourceFolder then
if targetFolder then targetFolder:Destroy() end
sourceFolder:Clone().Parent = targetCharacter
end
end
local sourceAnimate = sourceModel:FindFirstChild("Animate")
local targetAnimate = targetCharacter:FindFirstChild("Animate")
if sourceAnimate then
if targetAnimate then targetAnimate:Destroy() end
sourceAnimate:Clone().Parent = targetCharacter
end
end
local function setupHeadFollow(headPart)
if not headPart then return end
local camera = workspace.CurrentCamera
local conn
conn = RunService.RenderStepped:Connect(function()
if not headPart or not headPart.Parent then
if conn then conn:Disconnect() end
return
end
headPart.CFrame = CFrame.new(headPart.Position, camera.CFrame.Position)
end)
end
local function weldToRoot(rootPart, modelRoot)
if not (rootPart and modelRoot) then return end
local weld = Instance.new("WeldConstraint")
weld.Part0 = rootPart
weld.Part1 = modelRoot
weld.Parent = modelRoot
end
local function morphTo(characterName)
local dummyTemplate = safeFindDummy(characterName)
if not dummyTemplate then
warn("Modelo no encontrado para morph: "..tostring(characterName))
return
end
local char = player.Character or player.CharacterAdded:Wait()
local rootPart = char:FindFirstChild("HumanoidRootPart") or char:FindFirstChildWhichIsA("BasePart")
if not rootPart then return end
-- Destruye morph anterior
for _, c in ipairs(char:GetChildren()) do
if c.Name == "CharacterModel" then c:Destroy() end
end
-- Hace invisible el modelo original (solo visual)
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
part.Transparency = 1
end
end
-- Copia animaciones y carpetas especiales
copySpecialFoldersAndAnimations(dummyTemplate, char)
-- Clona el dummy
local clone = dummyTemplate:Clone()
clone.Name = "CharacterModel"
local dummyHum = clone:FindFirstChildOfClass("Humanoid")
if dummyHum then dummyHum:Destroy() end
local dummyRoot = clone:FindFirstChild("HumanoidRootPart") or clone.PrimaryPart
if not dummyRoot then
for _, p in ipairs(clone:GetDescendants()) do
if p:IsA("BasePart") then dummyRoot = p break end
end
end
if dummyRoot then
clone.Parent = char
clone.PrimaryPart = dummyRoot
clone:SetPrimaryPartCFrame(rootPart.CFrame)
weldToRoot(rootPart, dummyRoot)
else clone.Parent = char end
-- Cabeza sigue cámara
for _, name in ipairs({"Head","head"}) do
local headPart = clone:FindFirstChild(name, true)
if headPart and headPart:IsA("BasePart") then setupHeadFollow(headPart) break end
end
disableAllButtons()
end
-- ---------- GUI ----------
local screenGui = Instance.new("ScreenGui")
screenGui.Name = "DeltaMorphGUI"
screenGui.ResetOnSpawn = false
screenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
screenGui.Parent = playerGui
local toggle = Instance.new("TextButton")
toggle.Name = "ToggleButton"
toggle.Text = "MORPH"
toggle.Font = Enum.Font.SourceSansBold
toggle.TextSize = 18
toggle.Size = UDim2.new(0,84,0,44)
toggle.Position = UDim2.new(0,8,0,8)
toggle.BackgroundColor3 = Color3.fromRGB(40,40,40)
toggle.TextColor3 = Color3.new(1,1,1)
toggle.Parent = screenGui
local panel = Instance.new("Frame")
panel.Name = "MainPanel"
panel.Size = UDim2.new(0.78,0,0.72,0)
panel.Position = UDim2.new(0.11,0,0.14,0)
panel.BackgroundColor3 = Color3.fromRGB(20,20,20)
panel.Visible = false
panel.Parent = screenGui
local scrollFrame = Instance.new("ScrollingFrame")
scrollFrame.Size = UDim2.new(1,-16,1,-16)
scrollFrame.Position = UDim2.new(0,8,0,8)
scrollFrame.BackgroundTransparency = 1
scrollFrame.ScrollBarThickness = 8
scrollFrame.Parent = panel
local layout = Instance.new("UIListLayout")
layout.Parent = scrollFrame
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Padding = UDim.new(0,6)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.VerticalAlignment = Enum.VerticalAlignment.Top
local closeBtn = Instance.new("TextButton")
closeBtn.Name = "CloseBtn"
closeBtn.Text = "Cerrar"
closeBtn.Size = UDim2.new(0,90,0,34)
closeBtn.AnchorPoint = Vector2.new(1,0)
closeBtn.Position = UDim2.new(1,-8,0,8)
closeBtn.BackgroundColor3 = Color3.fromRGB(50,50,50)
closeBtn.TextColor3 = Color3.new(1,1,1)
closeBtn.Parent = panel
toggle.MouseButton1Click:Connect(function() panel.Visible = not panel.Visible end)
closeBtn.MouseButton1Click:Connect(function() panel.Visible = false end)
-- ---------- BOTONES MORPH ----------
local charactersList = {
"Sonic","Shadow","Vanilla","Cream",
"Bendy","Boris",
"Cuphead","Mugman",
"Sayori","Monika","Yuri",
"Sans","Frisk","Chara",
"Sonic.exe"
}
for _, name in ipairs(charactersList) do
local btn = Instance.new("TextButton")
btn.Name = name.."Btn"
btn.Text = name
btn.Size = UDim2.new(0.9,0,0,44)
btn.BackgroundColor3 = Color3.fromRGB(100,100,100)
btn.TextColor3 = Color3.new(1,1,1)
btn.Font = Enum.Font.SourceSansBold
btn.TextScaled = true
btn.Parent = scrollFrame
table.insert(buttons, btn)
btn.MouseButton1Click:Connect(function()
if btn.Active == false then return end
morphTo(name)
end)
end
layout:GetPropertyChangedSignal("AbsoluteContentSize"):Connect(function()
scrollFrame.CanvasSize = UDim2.new(0,0,0,layout.AbsoluteContentSize.Y + 8)
end)
-- ---------- RESET / MORTES ----------
local function onCharacterAdded(char)
local humanoid = char:WaitForChild("Humanoid",10)
if humanoid then
humanoid.Died:Connect(function()
task.wait(0.8)
for _, child in ipairs(char:GetChildren()) do
if child.Name == "CharacterModel" then child:Destroy() end
end
-- Restaura visibilidad del modelo original
for _, part in ipairs(char:GetDescendants()) do
if part:IsA("BasePart") then part.Transparency = 0 end
end
enableAllButtons()
end)
end
end
if player.Character then onCharacterAdded(player.Character) end
player.CharacterAdded:Connect(onCharacterAdded)
print("[DeltaMorphGUI] Cargado: 15 personajes listos con scroll + toggle móvil, sin noclip, modelo original oculto visualmente")
why can't you go in the ring or jump on springs
@Knuckles Because the hitbox that controls the actions disappears, and I can't do that again. Even with AI help, it's difficult since I also have to do the last part, which is the most important.
Because the hitbox that controls the actions disappears, and I can't do that again. Even with AI help, it's difficult since I also have to do the last part, which is the most important.
Make hitbox expander for dimensional coalescence
Cloud you do the sonic.exe the disaster eclipsed one please?
Como se instala