
KeylessUniversal

local LocalPlayer = game.Players.LocalPlayer
local StarterGui = game:GetService("StarterGui")
function notifyPlayer(title, text)
pcall(function()
StarterGui:SetCore("SendNotification", {
Title = title;
Text = text;
Duration = 5;
})
end)
end
notifyPlayer("let go Figure Animation V4", "Reanimate FE Loaded!")
local fake_transparency = 1
local Motors = {
["Left Hip"] = 0,
["Neck"] = 0,
["Left Shoulder"] = 0,
["Right Hip"] = 0,
["Right Shoulder"] = 0
}
local TS = game:GetService("TweenService")
local function getnext(tbl, number)
local closestDiff = math.huge
local closestValue = 0
for i, v in pairs(tbl) do
if i > number and i - number < closestDiff then
closestDiff = i - number
closestValue = i
end
end
return closestValue
end
local function kftotbl(kf)
local tbl3 = {}
for _, v in pairs(kf:GetDescendants()) do
if v:IsA("Pose") then
tbl3[string.sub(v.Name, 1, 1) .. string.sub(v.Name, #v.Name, #v.Name)] = v.CFrame
end
end
return tbl3
end
local function getSpeed(lastTimeStamp, currentTimeStamp)
if currentTimeStamp == 0 then return 0 end
return math.abs(lastTimeStamp - currentTimeStamp)
end
local function getAnimation(animationId)
local animationObject
local success, errorMsg = pcall(function()
animationObject = game:GetObjects(animationId)[1]
end)
if not success then
return nil
end
return animationObject
end
local Main = {}
Main.__index = Main
function Main.LoadDummy(DummyChar)
local metatable = {}
setmetatable(metatable, Main)
metatable.char = DummyChar
return metatable
end
function Main:LoadAnimation(animationId)
local Character = self.char
local animationObject = getAnimation(animationId)
if not animationObject then return end
local metatable = {}
setmetatable(metatable, Main)
metatable.char = Character
metatable.animObject = animationObject
return metatable
end
local animationplayer = Main
local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local RunService = game:GetService("RunService")
local Debris = game:GetService("Debris")
local UserInputService = game:GetService("UserInputService")
Player.Character.Archivable = true
local FakeCharacter = Player.Character:Clone()
Player.Character:BreakJoints()
Player.Character = nil
local Connection
Connection = game.Workspace.DescendantAdded:Connect(function(c)
if c.Name == "Animate" and c.Parent == Player.Character then
c.Enabled = false
Connection:Disconnect()
end
end)
repeat task.wait() until Player.Character
task.wait(0.1)
local RealChar = Player.Character
RealChar.Archivable = true
FakeCharacter.Name = "non"
FakeCharacter.Parent = workspace
local rig = animationplayer.LoadDummy(FakeCharacter)
task.spawn(function()
for _, LS in ipairs(FakeCharacter:GetChildren()) do
if LS:IsA("LocalScript") then
LS.Enabled = false
task.wait(0.1)
LS.Enabled = false
end
end
end)
for _, Part in ipairs(FakeCharacter:GetDescendants()) do
if Part:IsA("BasePart") then
Part.Transparency = fake_transparency
end
end
for _, Decal in ipairs(FakeCharacter:GetDescendants()) do
if Decal:IsA("Decal") then
Decal.Transparency = fake_transparency
end
end
Player.Character = FakeCharacter
local function MotorAngle()
if RealChar:FindFirstChild("Torso") then
for MotorName, Motor6DAngle in pairs(Motors) do
if RealChar:FindFirstChild("Torso"):FindFirstChild(MotorName) then
RealChar:FindFirstChild("Torso"):FindFirstChild(MotorName).CurrentAngle = Motor6DAngle
end
end
end
end
local function SetAngles()
if FakeCharacter:FindFirstChild("Torso") then
for MotorName, Motor6DAngle in pairs(Motors) do
if FakeCharacter:FindFirstChild("Torso"):FindFirstChild(MotorName) then
local Motor = FakeCharacter:FindFirstChild("Torso"):FindFirstChild(MotorName)
local rx, ry, rz = Motor.Part1.CFrame:ToObjectSpace(FakeCharacter:FindFirstChild("Torso").CFrame):ToOrientation()
if Motor.Name == "Right Shoulder" then Motors[MotorName] = -rx end
if Motor.Name == "Left Shoulder" then Motors[MotorName] = rx end
if Motor.Name == "Right Hip" then Motors[MotorName] = -rx end
if Motor.Name == "Left Hip" then Motors[MotorName] = rx end
if Motor.Name == "Neck" then Motors[MotorName] = -ry end
end
end
end
end
local function BaseCol()
for _, Part in ipairs(RealChar:GetChildren()) do
if Part:IsA("BasePart") then Part.CanCollide = false end
end
for _, Part in ipairs(FakeCharacter:GetChildren()) do
if Part:IsA("BasePart") then Part.CanCollide = false end
end
end
RunService.Heartbeat:Connect(function()
SetAngles()
MotorAngle()
pcall(function()
RealChar.HumanoidRootPart.CFrame = FakeCharacter.Torso.CFrame
RealChar.HumanoidRootPart.Velocity = Vector3.new(0, 0, 0)
end)
end)
RunService.PreSimulation:Connect(function()
BaseCol()
end)
local bodyVelocity = Instance.new("BodyVelocity")
bodyVelocity.MaxForce = Vector3.new(0.1, 0.1, 0.1)
bodyVelocity.Velocity = Vector3.new(0, 0, 0)
bodyVelocity.Parent = RealChar.HumanoidRootPart



Yo bro can you give tutorial pls on yt