Is there any proper and as fast and this way to preload anims
local Debris = game:GetService("Debris")
local Players = game:GetService("Players")
local rs = game:GetService("ReplicatedStorage")
local anims = rs.Animations.Weapons.Katana.Main
local function getAnimator(char)
local humanoid = char:FindFirstChildOfClass("Humanoid")
if not humanoid then return nil end
local animator = humanoid:FindFirstChildOfClass("Animator")
if not animator then
animator = Instance.new("Animator")
animator.Name = "Animator"
animator.Parent = humanoid
end
return animator
end
local preloaded = {}
local function PreloadAnimations(char, animList)
local animator = getAnimator(char)
if not animator then return end
for _, animId in ipairs(animList) do
if not preloaded[animId] then
local animation = Instance.new("Animation")
animation.AnimationId = animId
local track = animator:LoadAnimation(animation)
track:Play()
track:Stop()
animation:Destroy()
preloaded[animId] = true
end
end
end
local AnimationIdsToPreload = {
"rbxassetid://14984130659", --walk
"rbxassetid://14984120951", --idle
"rbxassetid://128104128549543",--katana equip
"rbxassetid://119085738060242",-- katana idle
"rbxassetid://139314306808113" -- Rapier idle
}
Players.PlayerAdded:Connect(function(player)
player.CharacterAdded:Connect(function(char)
-- Delay slightly to ensure character fully loads
char:WaitForChild("Humanoid")
task.wait(0.1)
-- Preload animations for this character
PreloadAnimations(char, AnimationIdsToPreload)
end)
end)