Jun vs shinji
Key RequiredUniversal

Jun vs shinji

Universal Scriptthronix12345thronix12345 1.4K views 1.5K executesUpdated Mar 20, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•193 lines (6342 chars)
-- // COMPLETE SCRIPT - Jun Tool Dance Fixed + Full Custom Animations (Idle/Walk/Jump/Sit) \\ --

local Players = game:GetService("Players")
local Player = Players.LocalPlayer
local Character = Player.Character or Player.CharacterAdded:Wait()
local Humanoid = Character:WaitForChild("Humanoid")
local RootPart = Character:WaitForChild("HumanoidRootPart")
local Backpack = Player:WaitForChild("Backpack")
local RunService = game:GetService("RunService")
local SoundService = game:GetService("SoundService")

local IT = Instance.new
local V3 = Vector3.new
local CF = CFrame.new
local RAD = math.rad

local IsDancing = false
local currentAnim = nil

-- Load Animator6D
if not getgenv().Animator6D or not getgenv().Animator6DStop then
    loadstring(game:HttpGet("https://raw.githubusercontent.com/gObl00x/Stuff/refs/heads/main/Animator6D.lua"))()
end

-- Camera follow head
local Head = Character:WaitForChild("Head")
RunService.RenderStepped:Connect(function(dt)
    local alpha = function(n) return math.clamp(n * dt * 60, 0, 1) end
    Humanoid.CameraOffset = Humanoid.CameraOffset:Lerp(
        (RootPart.CFrame * CF(0, 1.5, 0)):PointToObjectSpace(Head.Position),
        alpha(0.15)
    )
end)

-- === GLOBAL CACHE (your EffectFolder system) ===
local EffectFolder = Character:FindFirstChild("EffectFolder") or IT("Folder")
EffectFolder.Name = "EffectFolder"
EffectFolder.Parent = Character

-- Example mesh cache (optional)
local mesh = IT("SpecialMesh", EffectFolder)
mesh.MeshId = "rbxassetid://1439035575"
mesh.TextureId = "rbxassetid://1439035619"
mesh.Scale = V3(1, 1, 1.5)
mesh.Offset = V3(0, -0.4, 0)

-- Music cache (Music1 to Music19)
local Music = {}
for i = 1, 19 do
    local snd = IT("Sound", EffectFolder)
    snd.Name = (i == 19 and "Fright Funk") or ("Music" .. i)
    Music[i] = snd
end

Music19 = Music[19]  -- alias to match your original code
Music19.Volume = 0.7
Music19.Looped = true

-- Optional theme
local theme = IT("Sound", SoundService)
theme.Name = "THEME"
theme.SoundId = getcustomasset("Epik Musics/Friday Theme.mp3") -- adjust if needed
theme.Volume = 0.75
theme.Looped = true
theme:Play()

-- Load custom animation packs (your working ones - unchanged)
local AnimPaths = {}
pcall(function()
    local pack = game:GetObjects("rbxassetid://11405076389")[1].R6["Run + Walk + Jump + Fall R6"]
    local folder = pack:FindFirstChild("AnimSaves")
    AnimPaths.Walk = folder:FindFirstChild("Walk V4")
    AnimPaths.Jump = folder:FindFirstChild("Jump V2")
end)

pcall(function()
    AnimPaths.Idle = game:GetObjects("rbxassetid://16600175853")[1].AnimSaves:FindFirstChild("Idle 7")
end)

pcall(function()
    AnimPaths.Sit = game:GetObjects("rbxassetid://12452064144")[1]["R6 Animation Rig"].AnimSaves:FindFirstChild("SITTING")
end)

local PlayerAnims = {
    Idle = {KFS = AnimPaths.Idle, IsPlaying = false},
    Walk = {KFS = AnimPaths.Walk, IsPlaying = false},
    Jump = {KFS = AnimPaths.Jump, IsPlaying = false},
    Sit  = {KFS = AnimPaths.Sit,  IsPlaying = false},
}

local function playAnim(animName, looped)
    if currentAnim == animName then return end
    if getgenv().Animator6DStop then getgenv().Animator6DStop() end

    local anim = PlayerAnims[animName]
    if anim and anim.KFS then
        for _, v in pairs(PlayerAnims) do v.IsPlaying = false end
        anim.IsPlaying = true
        currentAnim = animName
        getgenv().Animator6D(anim.KFS, 1, looped or false)
        print("→ Playing: " .. animName)
    else
        warn("Missing animation: " .. animName)
    end
end

-- Start with idle
playAnim("Idle", true)

-- === YOUR ORIGINAL JUN TOOL DANCE (fixed & integrated) ===
local tool19 = IT("Tool")
tool19.Name = "Jun fight with a paralysis demon"
tool19.RequiresHandle = false
tool19.Parent = Backpack

-- Download music if not exists
if not isfile("Shinji's and juns Final battle Song.mp3") then
    pcall(function()
        writefile("Shinji's and juns Final battle Song.mp3", game:HttpGet("https://github.com/EpicFire8/Music/raw/refs/heads/main/Shinji's%20and%20juns%20Final%20battle%20Song.mp3"))
    end)
end

-- Jun animation - using your exact line (now protected)
local animthingy26
pcall(function()
    local model = game:GetObjects("rbxassetid://75515993534839")[1]
    if model then
        animthingy26 = model.AnimSaves:WaitForChild("iDK anymore", 5)  -- timeout to avoid infinite wait
    end
end)

tool19.Equipped:Connect(function()
    if Character then
        IsDancing = true
        getgenv().jumping = nil
        getgenv().moving = nil
        theme:Stop()
        Humanoid.WalkSpeed = 0

        if animthingy26 then
            getgenv().Animator6D(animthingy26, 1, true)
        else
            -- fallback if your anim load failed - can remove later
            warn("Jun anim not loaded - using fallback idle style")
            playAnim("Idle", true)
        end

        -- Music (your exact logic)
        Music19.Parent = Character
        Music19.SoundId = getcustomasset("Shinji's and juns Final battle Song.mp3")
        Music19.Looped = true
        Music19:Play()
    end
end)

tool19.Unequipped:Connect(function()
    if Music19.Parent == Character and Music19.Playing then
        Humanoid.WalkSpeed = 16
        IsDancing = false
        if getgenv().Animator6DStop then getgenv().Animator6DStop() end
        theme:Play()
        Music19:Stop()
        Music19.Parent = EffectFolder
    end
    print("Dance 19 and music stopped")
end)

-- === AUTOMATIC NORMAL ANIMATION SWITCHING (unchanged - your working part) ===
Humanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function()
    if IsDancing then return end
    if Humanoid.MoveDirection.Magnitude > 0 then
        playAnim("Walk", true)
    else
        playAnim("Idle", true)
    end
end)

Humanoid.StateChanged:Connect(function(_, new)
    if IsDancing then return end
    if new == Enum.HumanoidStateType.Jumping or new == Enum.HumanoidStateType.Freefall then
        playAnim("Jump", false)
    elseif new == Enum.HumanoidStateType.Seated then
        playAnim("Sit", true)
    elseif new == Enum.HumanoidStateType.Landed then
        if Humanoid.MoveDirection.Magnitude > 0 then
            playAnim("Walk", true)
        else
            playAnim("Idle", true)
        end
    end
end)

print("Script loaded - equip 'Jun fight with a paralysis demon' tool to start dance")

Features & Information

Jun vs shinji emote

Community Comments (1)

thronix12345thronix12345Mar 20, 2026

Credits to Scripterblabla

More Scripts for Universal Scripts