FE UNACHORED PARTS DANCER MADE BY V0C0N
Key RequiredUniversal

FE UNACHORED PARTS DANCER MADE BY V0C0N

Universal ScriptV0C0NV0C0N 15.2K views 317 executesUpdated May 29, 2025
5.0/ 5(1 votes)
10100% Positive
Lua Script•307 lines (9445 chars)
-- Ultimate Dancing Unanchored Parts  FE V2
-- By V0C0N1337

-- Services
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local LocalPlayer = Players.LocalPlayer
local Dancing = true

-- Network Bypass
settings().Physics.AllowSleep = false
settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.Disabled
sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)

-- Dance Animation System
local DanceSystem = {
    Parts = {},
    CurrentDance = 1,
    DanceTime = 0,
    GroupCenter = Vector3.new(0, 0, 0)
}

-- Enhanced Dance Moves (Emote-style)
local DanceMoves = {
    -- Default Dance
    {
        Duration = 4,
        Steps = function(data, time, center)
            local t = time * 2
            return {
                Position = center + Vector3.new(
                    math.sin(t) * 3,
                    math.abs(math.sin(t * 2)) * 2,
                    math.cos(t) * 3
                ),
                Rotation = Vector3.new(
                    math.sin(t) * 30,
                    t * 180,
                    math.cos(t) * 20
                )
            }
        end
    },
    
    -- Robot Dance
    {
        Duration = 2,
        Steps = function(data, time, center)
            local t = time * 3
            return {
                Position = center + Vector3.new(
                    math.floor(math.sin(t) * 2) * 2,
                    math.abs(math.sin(t * 4)) * 3,
                    math.floor(math.cos(t) * 2) * 2
                ),
                Rotation = Vector3.new(
                    math.floor(time * 90) % 90,
                    math.floor(time * 45) % 180,
                    math.floor(time * 60) % 60
                )
            }
        end
    },
    
    -- Break Dance
    {
        Duration = 3,
        Steps = function(data, time, center)
            local t = time * 4
            return {
                Position = center + Vector3.new(
                    math.sin(t) * 4 * math.cos(t),
                    math.abs(math.sin(t * 2)) * 4,
                    math.cos(t) * 4 * math.sin(t)
                ),
                Rotation = Vector3.new(
                    t * 360,
                    math.sin(t) * 180,
                    t * 180
                )
            }
        end
    },
    
    -- Wave Dance
    {
        Duration = 2.5,
        Steps = function(data, time, center)
            local wave = math.sin(time * 4) * 3
            local t = time * 2
            return {
                Position = center + Vector3.new(
                    math.sin(t + data.Offset) * 3,
                    wave + math.cos(t * 2) * 2,
                    math.cos(t + data.Offset) * 3
                ),
                Rotation = Vector3.new(
                    wave * 20,
                    t * 90,
                    math.cos(t) * 45
                )
            }
        end
    },
    
    -- Shuffle Dance
    {
        Duration = 2,
        Steps = function(data, time, center)
            local t = time * 3
            local shuffle = math.sin(t * 2) * math.cos(t)
            return {
                Position = center + Vector3.new(
                    shuffle * 4,
                    math.abs(math.sin(t * 3)) * 2,
                    math.cos(t * 2) * 3
                ),
                Rotation = Vector3.new(
                    0,
                    shuffle * 180,
                    math.sin(t) * 30
                )
            }
        end
    }
}

-- Part Setup with Enhanced Physics
function DanceSystem:SetupPart(part)
    if part:IsA("BasePart") and not part.Anchored and not part:IsDescendantOf(LocalPlayer.Character) then
        -- Advanced Physics Setup
        part.CustomPhysicalProperties = PhysicalProperties.new(0.1, 0, 0, 0, 0)
        
        -- Constraints
        local attachment = Instance.new("Attachment")
        attachment.Parent = part
        
        local alignPosition = Instance.new("AlignPosition")
        alignPosition.Mode = Enum.PositionAlignmentMode.OneAttachment
        alignPosition.Attachment0 = attachment
        alignPosition.MaxForce = math.huge
        alignPosition.MaxVelocity = math.huge
        alignPosition.Responsiveness = 200
        alignPosition.Parent = part
        
        local gyro = Instance.new("BodyGyro")
        gyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
        gyro.P = 100000
        gyro.Parent = part
        
        -- Store Data
        self.Parts[part] = {
            Attachment = attachment,
            AlignPosition = alignPosition,
            Gyro = gyro,
            StartPos = part.Position,
            Offset = #self.Parts * 0.2, -- Phase offset for wave effects
            BaseY = part.Position.Y
        }
        
        -- Update group center
        self.GroupCenter = self.GroupCenter + part.Position
    end
end

-- Formation Control
function DanceSystem:UpdateFormation()
    if next(self.Parts) then
        self.GroupCenter = Vector3.new(0, 0, 0)
        local count = 0
        
        for part, _ in pairs(self.Parts) do
            if part and part.Parent then
                self.GroupCenter = self.GroupCenter + part.Position
                count = count + 1
            end
        end
        
        if count > 0 then
            self.GroupCenter = self.GroupCenter / count
        end
    end
end

-- Smooth Dance Animation
function DanceSystem:AnimateParts()
    self:UpdateFormation()
    local currentDance = DanceMoves[self.CurrentDance]
    local nextDance = DanceMoves[self.CurrentDance % #DanceMoves + 1]
    
    for part, data in pairs(self.Parts) do
        if part and part.Parent then
            -- Calculate current and next positions
            local current = currentDance.Steps(data, self.DanceTime, self.GroupCenter)
            local next = nextDance.Steps(data, self.DanceTime, self.GroupCenter)
            
            -- Interpolate between dances
            local blend = math.clamp((self.DanceTime % currentDance.Duration) / currentDance.Duration, 0, 1)
            local finalPos = current.Position:Lerp(next.Position, blend)
            local finalRot = Vector3.new(
                Lerp(current.Rotation.X, next.Rotation.X, blend),
                Lerp(current.Rotation.Y, next.Rotation.Y, blend),
                Lerp(current.Rotation.Z, next.Rotation.Z, blend)
            )
            
            -- Apply movement
            data.AlignPosition.Position = finalPos
            data.Gyro.CFrame = CFrame.new(finalPos) * CFrame.Angles(
                math.rad(finalRot.X),
                math.rad(finalRot.Y),
                math.rad(finalRot.Z)
            )
            
            -- Add dynamic effects
            part.Velocity = (finalPos - part.Position) * 10
        else
            self.Parts[part] = nil
        end
    end
end

-- Lerp Function
function Lerp(a, b, t)
    return a + (b - a) * t
end

-- Main Update Loop
RunService.Heartbeat:Connect(function()
    if Dancing then
        DanceSystem.DanceTime = DanceSystem.DanceTime + 0.03
        
        -- Change dance move
        if DanceSystem.DanceTime >= DanceMoves[DanceSystem.CurrentDance].Duration then
            DanceSystem.CurrentDance = DanceSystem.CurrentDance % #DanceMoves + 1
            DanceSystem.DanceTime = 0
        end
        
        -- Update network ownership
        sethiddenproperty(LocalPlayer, "SimulationRadius", math.huge)
        
        -- Animate parts
        DanceSystem:AnimateParts()
    end
end)

-- Initialize Parts
for _, part in ipairs(workspace:GetDescendants()) do
    DanceSystem:SetupPart(part)
end

-- Monitor New Parts
workspace.DescendantAdded:Connect(function(part)
    DanceSystem:SetupPart(part)
end)

-- GUI
local gui = Instance.new("ScreenGui")
gui.Parent = game:GetService("CoreGui")

local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 200, 0, 100)
frame.Position = UDim2.new(0.85, 0, 0.85, 0)
frame.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
frame.BackgroundTransparency = 0.3
frame.Parent = gui

local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 10)
corner.Parent = frame

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0.9, 0, 0.4, 0)
toggleBtn.Position = UDim2.new(0.05, 0, 0.1, 0)
toggleBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Text = "Dancing: ON"
toggleBtn.Parent = frame

local danceModeBtn = Instance.new("TextButton")
danceModeBtn.Size = UDim2.new(0.9, 0, 0.4, 0)
danceModeBtn.Position = UDim2.new(0.05, 0, 0.55, 0)
danceModeBtn.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
danceModeBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
danceModeBtn.Text = "Next Dance"
danceModeBtn.Parent = frame

local cornerBtn1 = Instance.new("UICorner")
cornerBtn1.CornerRadius = UDim.new(0, 8)
cornerBtn1.Parent = toggleBtn

local cornerBtn2 = Instance.new("UICorner")
cornerBtn2.CornerRadius = UDim.new(0, 8)
cornerBtn2.Parent = danceModeBtn

-- Button Handlers
toggleBtn.MouseButton1Click:Connect(function()
    Dancing = not Dancing
    toggleBtn.Text = Dancing and "Dancing: ON" or "Dancing: OFF"
end)

danceModeBtn.MouseButton1Click:Connect(function()
    DanceSystem.CurrentDance = DanceSystem.CurrentDance % #DanceMoves + 1
    DanceSystem.DanceTime = 0
end)

print("enjoy LOLL")

Features & Information

Its making all unachored parts dancing if you want settings do ENJOY SKIDS
#FE#Unac*d#fe bypass#unac*d parts

Community Comments (2)

mahmoywin33mahmoywin33May 30, 2025

the best script EVER

ru32ru32Sep 29, 2025

big W

More Scripts for Universal Scripts