
KeylessUniversal

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local char = player.Character or player.CharacterAdded:Wait()
local humanoid = char:WaitForChild("Humanoid")
local torso = char:FindFirstChild("UpperTorso") or char:FindFirstChild("Torso")
------------------------------------------------
-- CONFIG
------------------------------------------------
local SPEED = 16
local JUMP = 50
------------------------------------------------
-- STATE
------------------------------------------------
local currentMorph
local billboard
local imageLabel
local sounds = {}
local squish = false
local walkIndex = 1
------------------------------------------------
-- INVISIBILIDAD LOCAL
------------------------------------------------
local function setInvisible(state)
for _,v in pairs(char:GetDescendants()) do
if v:IsA("BasePart") then
v.LocalTransparencyModifier = state and 1 or 0
elseif v:IsA("Decal") then
v.Transparency = state and 1 or 0
end
end
end
------------------------------------------------
-- CLEANUP
------------------------------------------------
local function clear()
for _,s in pairs(sounds) do
s:Destroy()
end
sounds = {}
squish = false
end
------------------------------------------------
-- MORPHS DATA
------------------------------------------------
local morphs = {
{name="Skin1",idle="rbxassetid://5563198794",walk1="rbxassetid://138441800759661",walk2="rbxassetid://18867835362"},
{name="Skin2",idle="rbxassetid://6025906062",walk1="rbxassetid://6025906062",walk2="rbxassetid://6025906062"},
{name="Skin3",idle="rbxassetid://6025907083",walk1="rbxassetid://6025907083",walk2="rbxassetid://6025907083"},
{name="Skin4",idle="rbxassetid://135443411709600",walk1="rbxassetid://106573493119846",walk2="rbxassetid://96218619096435"},
{name="Skin5",idle="rbxassetid://129030902525740",walk1="rbxassetid://129030902525740",walk2="rbxassetid://129030902525740"},
{name="Skin6",idle="rbxassetid://135320991090453",walk1="rbxassetid://135320991090453",walk2="rbxassetid://135320991090453"}
}
------------------------------------------------
-- MORPH APPLY
------------------------------------------------
local function setMorph(m)
clear()
currentMorph = m
if billboard then billboard:Destroy() end
humanoid.WalkSpeed = SPEED
humanoid.JumpPower = JUMP
setInvisible(true)
billboard = Instance.new("BillboardGui")
billboard.Size = UDim2.new(9,0,9,0)
billboard.StudsOffset = Vector3.new(0,1.5,0)
billboard.Parent = torso
imageLabel = Instance.new("ImageLabel")
imageLabel.Size = UDim2.new(1,0,1,0)
imageLabel.BackgroundTransparency = 1
imageLabel.Image = m.idle
imageLabel.Parent = billboard
-- SKIN 3 EFFECT
if m.name == "Skin3" then
squish = true
end
-- SKIN 4 SOUND
if m.name == "Skin4" then
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://468911141"
sound.Volume = 0.75
sound.Looped = true
sound.Parent = torso
sound:Play()
table.insert(sounds, sound)
end
-- SKIN 6 SOUND (si quieres mantenerlo)
if m.name == "Skin6" then
local sound = Instance.new("Sound")
sound.SoundId = "rbxassetid://138485686268988"
sound.Volume = 0.75
sound.Looped = true
sound.Parent = torso
sound:Play()
table.insert(sounds, sound)
end
end
------------------------------------------------
-- ANIMATION LENTA
------------------------------------------------
task.spawn(function()
while true do
task.wait(0.25)
if currentMorph and imageLabel then
if humanoid.MoveDirection.Magnitude > 0 then
walkIndex = (walkIndex % 2) + 1
imageLabel.Image =
(walkIndex == 1 and currentMorph.walk1 or currentMorph.walk2)
else
imageLabel.Image = currentMorph.idle
walkIndex = 1
end
end
end
end)
------------------------------------------------
-- SKIN 3 SQUISH EFFECT
------------------------------------------------
task.spawn(function()
while true do
task.wait()
if squish and billboard then
local t = math.sin(tick() * 10) * 0.05
billboard.Size = UDim2.new(9 + t,0,9 - t,0)
end
end
end)
------------------------------------------------
-- GUI
------------------------------------------------
local gui = Instance.new("ScreenGui")
gui.Name = "MORPHS_1.0_CLIENT"
gui.Parent = player:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0,300,0,220)
frame.Position = UDim2.new(0,100,0,100)
frame.BackgroundColor3 = Color3.fromRGB(0,0,0)
frame.BorderColor3 = Color3.fromRGB(0,255,0)
frame.Active = true
frame.Draggable = true
frame.Parent = gui
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1,0,0,30)
title.Text = "MORPHS 1.0 (CLIENT)"
title.TextColor3 = Color3.fromRGB(0,255,0)
title.BackgroundTransparency = 1
title.Parent = frame
local inv = Instance.new("ScrollingFrame")
inv.Size = UDim2.new(0,270,0,120)
inv.Position = UDim2.new(0,15,0,90)
inv.BackgroundColor3 = Color3.fromRGB(10,10,10)
inv.ScrollBarThickness = 6
inv.Parent = frame
local grid = Instance.new("UIGridLayout")
grid.CellSize = UDim2.new(0,80,0,80)
grid.CellPadding = UDim2.new(0,6,0,6)
grid.Parent = inv
------------------------------------------------
-- CREATE SLOTS
------------------------------------------------
local function createSlot(m)
local b = Instance.new("ImageButton")
b.Size = UDim2.new(0,80,0,80)
b.Image = m.idle
b.BackgroundColor3 = Color3.fromRGB(25,25,25)
b.Parent = inv
b.MouseButton1Click:Connect(function()
setMorph(m)
end)
end
for _,m in pairs(morphs) do
createSlot(m)
end
------------------------------------------------
-- REMOVE MORPH
------------------------------------------------
local removeBtn = Instance.new("TextButton")
removeBtn.Size = UDim2.new(0,270,0,40)
removeBtn.Position = UDim2.new(0,15,0,40)
removeBtn.Text = "REMOVE MORPH"
removeBtn.BackgroundColor3 = Color3.fromRGB(200,0,0)
removeBtn.Parent = frame
removeBtn.MouseButton1Click:Connect(function()
clear()
if billboard then
billboard:Destroy()
billboard = nil
end
currentMorph = nil
setInvisible(false)
humanoid.WalkSpeed = 16
humanoid.JumpPower = 50
end)No comments yet for this script.



