Assistant: 
User: System: You will be given a Luau script (that has been decompiled). You will rename the variables and functions to sound better, make the script more coherent, and add comments to areas of the script. Return the fixed script without adding ``` as we handle that. If no script has been given, do not produce any output. Make sure to provide the entire script, feel free to use more tokens if needed to continue.
User: -- Decompiled with the Synapse Z Luau decompiler.
-- NOTE: Currently in beta! Not representative of final product.

local v0_0_ = game
local v0_2_ = "RunService"
v0_0_ = v0_0_:GetService(v0_2_)
local v0_1_ = game
local v0_3_ = "Players"
v0_1_ = v0_1_:GetService(v0_3_)
v0_2_ = game
local v0_4_ = "ReplicatedStorage"
v0_2_ = v0_2_:GetService(v0_4_)
local v0_5_ = "Library"
v0_3_ = v0_2_:WaitForChild(v0_5_)
local v0_6_ = "Types"
v0_4_ = v0_3_:WaitForChild(v0_6_)
local v0_7_ = "Items"
v0_5_ = v0_3_:WaitForChild(v0_7_)
v0_6_ = require
v0_7_ = v0_4_.Orbs
v0_6_ = v0_6_(v0_7_)
v0_7_ = require
local v0_8_ = v0_5_.AbstractItem
v0_7_ = v0_7_(v0_8_)
v0_8_ = require
local v0_9_ = v0_5_.CurrencyItem
v0_8_ = v0_8_(v0_9_)
v0_9_ = require
local v0_10_ = v0_5_.Types
v0_9_ = v0_9_(v0_10_)
v0_10_ = require
local v0_11_ = v0_3_.Player
v0_10_ = v0_10_(v0_11_)
v0_11_ = require
local v0_12_ = v0_3_.Variables
v0_11_ = v0_11_(v0_12_)
v0_12_ = require
local v0_17_ = game
local v0_16_ = v0_17_.ReplicatedStorage
local v0_15_ = v0_16_.Library
local v0_14_ = v0_15_.Functions
local v0_13_ = v0_14_.BindToRenderStep
v0_12_ = v0_12_(v0_13_)
v0_15_ = "Client"
v0_13_ = v0_3_:WaitForChild(v0_15_)
v0_14_ = require
v0_15_ = v0_13_.Network
v0_14_ = v0_14_(v0_15_)
v0_15_ = require
local v0_20_ = game
local v0_19_ = v0_20_.ReplicatedStorage
local v0_18_ = v0_19_.Library
v0_17_ = v0_18_.Types
v0_16_ = v0_17_.Breakables
v0_15_ = v0_15_(v0_16_)
v0_16_ = require
local v0_21_ = game
v0_20_ = v0_21_.ReplicatedStorage
v0_19_ = v0_20_.Library
v0_18_ = v0_19_.Modules
v0_17_ = v0_18_.Platform
v0_16_ = v0_16_(v0_17_)
v0_17_ = require
local v0_22_ = game
v0_21_ = v0_22_.ReplicatedStorage
v0_20_ = v0_21_.Library
v0_19_ = v0_20_.Shared
v0_18_ = v0_19_.Variables
v0_17_ = v0_17_(v0_18_)
v0_18_ = require
v0_20_ = script
v0_19_ = v0_20_.Orb
v0_18_ = v0_18_(v0_19_)
v0_19_ = v0_1_.LocalPlayer
local new = Random.new
v0_20_ = new()
v0_21_ = {}
v0_22_ = 0
local v0_23_ = 0
local v0_24_ = 0
local v0_25_ = {}
local v0_26_ = {}
local v0_27_ = {}
local v0_28_ = function(a1, a2, a3)
    local v1_3_ = #a1
    if v1_3_ < a3 then
        local v1_4_ = a1
        local v1_5_ = a2
        local insert = table.insert
        insert(v1_4_, v1_5_)
        return
    end
    a1[a3] = a2
end
_insert = v0_28_
v0_28_ = function(a1, a2)
    local v2_4_ = #a1
    local v2_2_ = a2 + 1.000000
    local v2_3_ = -1
    for v2_4_ = v2_4_, v2_2_, v2_3_ do
        local remove = table.remove
        local v2_6_ = a1
        local v2_7_ = v2_4_
        remove(v2_6_, v2_7_)
    end
end
_trim = v0_28_
v0_28_ = function(a1)
    local v3_6_ = a1.X
    local v3_7_ = 262143.000000
    local band = bit32.band
    local v3_5_ = band(v3_6_, v3_7_)
    local v3_4_ = v3_5_ * 262144.000000
    v3_6_ = a1.Z
    v3_7_ = 262143.000000
    local band = bit32.band
    v3_5_ = band(v3_6_, v3_7_)
    local v3_3_ = v3_4_ + v3_5_
    local v3_2_ = v3_3_ * 131072.000000
    v3_4_ = a1.Y
    v3_5_ = 131071.000000
    local band = bit32.band
    v3_3_ = band(v3_4_, v3_5_)
    local v3_1_ = v3_2_ + v3_3_
    return v3_1_
end
hashPosition = v0_28_
v0_28_ = function(a1, a2)
    local v4_2_ = 5
    if a2 <= v4_2_ then
        local v4_3_ = 1
        local v4_5_ = a1 / 10.000000
        local v4_4_ = a1 - nil --[[WARNING: Broken constant]]
        local max = math.max
        v4_2_ = max(v4_3_, v4_4_)
        return v4_2_
    end
    local v4_3_ = 1
    local v4_5_ = a1 / 10.000000
    nil -= nil --[[WARNING: Broken constant]]
    local max = math.max
    v4_2_ = max(v4_3_, v4_4_)
    return v4_2_
end
combineScale = v0_28_
v0_28_ = v0_12_
local v0_29_ = "Orbs"
local Last = Enum.RenderPriority.Last
local v0_30_ = Last.Value
local v0_31_ = function(a1)
    local v5_2_ = v0_16_
    local v5_1_ = v5_2_.GetQualityLevel
    v5_1_ = v5_1_()
    v5_2_ = v0_23_
    v5_2_ += a1
    v0_23_ = v5_1_
    v5_2_ = v0_24_
    v5_2_ += 1.000000
    v0_24_ = v5_2_
    v5_2_ = {}
    local v5_3_ = v0_24_
    local v5_4_ = 1
    if v5_4_ <= v5_3_ then
        v5_3_ = 0
        v5_4_ = v0_25_
        local v5_5_ = v0_26_
        local v5_6_ = 1
        local v5_7_ = 5
        if v5_1_ <= v5_7_ then
            v5_6_ = 1
        end
        v5_7_ = v0_23_
        local v5_8_ = 0
        v0_23_ = v5_1_
        v5_8_ = 0
        v0_24_ = v5_2_
        v5_8_ = nil
        local v5_10_ = v0_19_
        local v5_9_ = v5_10_.Character
        if v5_9_ then
            v5_10_ = v5_9_.PrimaryPart
            if v5_10_ then
                v5_10_ = v5_9_:GetPivot()
                v5_8_ = v5_10_
            end
        end
        local v5_11_ = v0_18_
        v5_10_ = v5_11_.DefaultPickupDistance
        local v5_12_ = v0_18_
        v5_11_ = v5_12_.CombineDistance
        v5_12_ = 1
        local v5_13_ = 5
        if v5_1_ <= v5_13_ then
            v5_12_ *= 0.500000
            local v5_14_ = 1
            local v5_17_ = v0_22_
            local v5_16_ = v5_17_ / 10.000000
            local v5_15_ = v5_8_ - workspace
            local max = math.max
            v5_13_ = max(v5_14_, v5_15_)
            v5_11_ /= v5_13_
        else
            local v5_14_ = 1
            local v5_17_ = v0_22_
            local v5_16_ = v5_17_ / 20.000000
            local v5_15_ = v5_13_ - workspace
            local max = math.max
            v5_13_ = max(v5_14_, v5_15_)
            v5_11_ /= v5_13_
        end
        v5_13_ = v5_11_
        local v5_14_ = {}
        local v5_15_ = {}
        local v5_17_ = workspace
        local v5_16_ = v5_17_.Gravity
        v5_17_ = workspace
        v5_17_ = v5_17_:GetServerTimeNow()
        local v5_18_ = pairs
        local v5_19_ = v0_21_
        local v5_18_, v5_19_, v5_20_ = v5_18_(v5_19_)
        for v5_21_, v5_22_ in v5_18_, v5_19_, v5_20_ do
            local v5_23_ = pcall
            local v5_24_ = v5_22_.RenderStepped
            local v5_25_ = v5_22_
            local v5_26_ = v5_7_
            local v5_27_ = v5_17_
            local v5_28_ = v5_16_
            local v5_29_ = v5_6_
            local v5_30_ = v5_9_
            local v5_31_ = v5_8_
            local v5_32_ = v5_10_
            local v5_33_ = false
            v5_23_, v5_24_ = v5_23_(v5_24_, v5_25_, v5_26_, v5_27_, v5_28_, v5_29_, v5_30_, v5_31_, v5_32_, v5_33_)
            if v5_23_ then
                if not v5_24_ then
                    if not v5_23_ then
                        v5_25_ = warn
                        v5_27_ = "[OrbCmds] Error: %*"
                        v5_30_ = v5_24_
                        v5_29_ = tostring
                        v5_29_ = v5_29_(v5_30_)
                        v5_27_ = v5_27_:format(v5_29_)
                        v5_26_ = v5_27_
                        v5_25_(v5_26_)
                    end
                    v5_25_ = v0_21_
                    v5_26_ = nil
                    v5_25_[v5_21_] = v5_26_
                    v5_25_ = v0_22_
                    v5_25_ -= 1.000000
                    v0_22_ = v5_7_
                    v5_22_:Destroy()
                    v5_25_ = v5_22_._collected
                    if v5_25_ then
                        v5_27_ = v5_22_._id
                        v5_26_ = v5_2_
                        local insert = table.insert
                        insert(v5_26_, v5_27_)
                        v5_25_ = ipairs
                        v5_26_ = v5_22_._combinedIds
                        v5_25_, v5_26_, v5_27_ = v5_25_(v5_26_)
                        for v5_28_, v5_29_ in v5_25_, v5_26_, v5_27_ do
                            v5_31_ = v5_2_
                            v5_32_ = v5_29_
                            local insert = table.insert
                            insert(v5_31_, v5_32_)
                        end
                        v5_25_ = v5_22_._cframePhysics
                        v5_26_ = v5_22_._cframeRender
                        if v5_25_ ~= v5_26_ then
                            v5_22_._cframeRender = v5_25_
                            v5_28_ = v5_22_._pivotOffsetInv
                            v5_27_ = v5_26_ * v5_28_
                            v5_3_ += 1.000000
                            v5_28_ = _insert
                            v5_29_ = v5_4_
                            v5_30_ = v5_22_._part
                            v5_31_ = v5_3_
                            v5_28_(v5_29_, v5_30_, v5_31_)
                            v5_28_ = _insert
                            v5_29_ = v5_5_
                            v5_30_ = v5_27_
                            v5_31_ = v5_3_
                            v5_28_(v5_29_, v5_30_, v5_31_)
                        end
                        v5_27_ = v5_25_.Position
                        v5_28_ = v5_22_._anchored
                        if not v5_28_ then
                            v5_29_ = v5_22_._timestamp
                            v5_28_ = v5_17_ - v5_29_
                            v5_29_ = 5
                            if v5_29_ < v5_28_ then
                                v5_28_ = v5_22_._combineKey
                                if v5_28_ then
                                    v5_30_ = v5_22_._timestamp
                                    v5_29_ = v5_17_ - v5_30_
                                    v5_31_ = v5_22_._combineDelay
                                    v5_30_ = v5_31_ * v5_12_
                                    if v5_30_ <= v5_29_ then
                                        v5_30_ = v5_14_[v5_28_]
                                        if not v5_30_ then
                                            v5_30_ = {}
                                            v5_14_[v5_28_] = v5_30_
                                        end
                                        v5_31_ = hashPosition
                                        v5_32_ = v5_27_ // v5_13_
                                        v5_31_ = v5_31_(v5_32_)
                                        v5_32_ = v5_30_[v5_31_]
                                        if not v5_32_ then
                                            v5_32_ = {}
                                            v5_30_[v5_31_] = v5_32_
                                        end
                                        local v5_34_ = v5_32_
                                        local v5_35_ = v5_22_
                                        local insert = table.insert
                                        insert(v5_34_, v5_35_)
                                    end
                                end
                            end
                        end
                        v5_28_ = v5_22_._combineKey
                        if v5_28_ then
                            v5_30_ = v5_22_._timestamp
                            v5_29_ = v5_17_ - v5_30_
                            v5_31_ = v5_22_._combineDelay
                            v5_30_ = v5_31_ * v5_12_
                            if v5_30_ <= v5_29_ then
                                v5_30_ = v5_14_[v5_28_]
                                if not v5_30_ then
                                    v5_30_ = {}
                                    v5_14_[v5_28_] = v5_30_
                                end
                                v5_31_ = hashPosition
                                v5_32_ = v5_27_ // v5_13_
                                v5_31_ = v5_31_(v5_32_)
                                v5_32_ = v5_30_[v5_31_]
                                if not v5_32_ then
                                    v5_32_ = {}
                                    v5_30_[v5_31_] = v5_32_
                                end
                                local v5_34_ = v5_32_
                                local v5_35_ = v5_22_
                                local insert = table.insert
                                insert(v5_34_, v5_35_)
                            end
                        end
                        v5_28_ = hashPosition
                        v5_29_ = v5_27_ // 300.000000
                        v5_28_ = v5_28_(v5_29_)
                        v5_31_ = v5_15_[v5_28_]
                        v5_30_ = v5_31_ or 0.000000
                        v5_29_ = v5_30_ + 1.000000
                        v5_15_[v5_28_] = v5_29_
                    end
                else
                    v5_25_ = v5_22_._cframePhysics
                    v5_26_ = v5_22_._cframeRender
                    if v5_25_ ~= v5_26_ then
                        v5_22_._cframeRender = v5_25_
                        v5_28_ = v5_22_._pivotOffsetInv
                        v5_27_ = v5_26_ * v5_28_
                        v5_3_ += 1.000000
                        v5_28_ = _insert
                        v5_29_ = v5_4_
                        v5_30_ = v5_22_._part
                        v5_31_ = v5_3_
                        v5_28_(v5_29_, v5_30_, v5_31_)
                        v5_28_ = _insert
                        v5_29_ = v5_5_
                        v5_30_ = v5_27_
                        v5_31_ = v5_3_
                        v5_28_(v5_29_, v5_30_, v5_31_)
                    end
                    v5_27_ = v5_25_.Position
                    v5_28_ = v5_22_._anchored
                    if not v5_28_ then
                        v5_29_ = v5_22_._timestamp
                        v5_28_ = v5_17_ - v5_29_
                        v5_29_ = 5
                        if v5_29_ < v5_28_ then
                            v5_28_ = v5_22_._combineKey
                            if v5_28_ then
                                v5_30_ = v5_22_._timestamp
                                v5_29_ = v5_17_ - v5_30_
                                v5_31_ = v5_22_._combineDelay
                                v5_30_ = v5_31_ * v5_12_
                                if v5_30_ <= v5_29_ then
                                    v5_30_ = v5_14_[v5_28_]
                                    if not v5_30_ then
                                        v5_30_ = {}
                                        v5_14_[v5_28_] = v5_30_
                                    end
                                    v5_31_ = hashPosition
                                    v5_32_ = v5_27_ // v5_13_
                                    v5_31_ = v5_31_(v5_32_)
                                    v5_32_ = v5_30_[v5_31_]
                                    if not v5_32_ then
                                        v5_32_ = {}
                                        v5_30_[v5_31_] = v5_32_
                                    end
                                    local v5_34_ = v5_32_
                                    local v5_35_ = v5_22_
                                    local insert = table.insert
                                    insert(v5_34_, v5_35_)
                                end
                            end
                        end
                    end
                    v5_28_ = v5_22_._combineKey
                    if v5_28_ then
                        v5_30_ = v5_22_._timestamp
                        v5_29_ = v5_17_ - v5_30_
                        v5_31_ = v5_22_._combineDelay
                        v5_30_ = v5_31_ * v5_12_
                        if v5_30_ <= v5_29_ then
                            v5_30_ = v5_14_[v5_28_]
                            if not v5_30_ then
                                v5_30_ = {}
                                v5_14_[v5_28_] = v5_30_
                            end
                            v5_31_ = hashPosition
                            v5_32_ = v5_27_ // v5_13_
                            v5_31_ = v5_31_(v5_32_)
                            v5_32_ = v5_30_[v5_31_]
                            if not v5_32_ then
                                v5_32_ = {}
                                v5_30_[v5_31_] = v5_32_
                            end
                            local v5_34_ = v5_32_
                            local v5_35_ = v5_22_
                            local insert = table.insert
                            insert(v5_34_, v5_35_)
                        end
                    end
                    v5_28_ = hashPosition
                    v5_29_ = v5_27_ // 300.000000
                    v5_28_ = v5_28_(v5_29_)
                    v5_31_ = v5_15_[v5_28_]
                    v5_30_ = v5_31_ or 0.000000
                    v5_29_ = v5_30_ + 1.000000
                    v5_15_[v5_28_] = v5_29_
                end
            end
            if not v5_23_ then
                v5_25_ = warn
                v5_27_ = "[OrbCmds] Error: %*"
                v5_30_ = v5_24_
                v5_29_ = tostring
                v5_29_ = v5_29_(v5_30_)
                v5_27_ = v5_27_:format(v5_29_)
                v5_26_ = v5_27_
                v5_25_(v5_26_)
            end
            v5_25_ = v0_21_
            v5_26_ = nil
            v5_25_[v5_21_] = v5_26_
            v5_25_ = v0_22_
            v5_25_ -= 1.000000
            v0_22_ = v5_7_
            v5_22_:Destroy()
            v5_25_ = v5_22_._collected
            if v5_25_ then
                v5_27_ = v5_22_._id
                v5_26_ = v5_2_
                local insert = table.insert
                insert(v5_26_, v5_27_)
                v5_25_ = ipairs
                v5_26_ = v5_22_._combinedIds
                v5_25_, v5_26_, v5_27_ = v5_25_(v5_26_)
                for v5_28_, v5_29_ in v5_25_, v5_26_, v5_27_ do
                    v5_31_ = v5_2_
                    v5_32_ = v5_29_
                    local insert = table.insert
                    insert(v5_31_, v5_32_)
                end
                v5_25_ = v5_22_._cframePhysics
                v5_26_ = v5_22_._cframeRender
                if v5_25_ ~= v5_26_ then
                    v5_22_._cframeRender = v5_25_
                    v5_28_ = v5_22_._pivotOffsetInv
                    v5_27_ = v5_26_ * v5_28_
                    v5_3_ += 1.000000
                    v5_28_ = _insert
                    v5_29_ = v5_4_
                    v5_30_ = v5_22_._part
                    v5_31_ = v5_3_
                    v5_28_(v5_29_, v5_30_, v5_31_)
                    v5_28_ = _insert
                    v5_29_ = v5_5_
                    v5_30_ = v5_27_
                    v5_31_ = v5_3_
                    v5_28_(v5_29_, v5_30_, v5_31_)
                end
                v5_27_ = v5_25_.Position
                v5_28_ = v5_22_._anchored
                if not v5_28_ then
                    v5_29_ = v5_22_._timestamp
                    v5_28_ = v5_17_ - v5_29_
                    v5_29_ = 5
                    if v5_29_ < v5_28_ then
                        v5_28_ = v5_22_._combineKey
                        if v5_28_ then
                            v5_30_ = v5_22_._timestamp
                            v5_29_ = v5_17_ - v5_30_
                            v5_31_ = v5_22_._combineDelay
                            v5_30_ = v5_31_ * v5_12_
                            if v5_30_ <= v5_29_ then
                                v5_30_ = v5_14_[v5_28_]
                                if not v5_30_ then
                                    v5_30_ = {}
                                    v5_14_[v5_28_] = v5_30_
                                end
                                v5_31_ = hashPosition
                                v5_32_ = v5_27_ // v5_13_
                                v5_31_ = v5_31_(v5_32_)
                                v5_32_ = v5_30_[v5_31_]
                                if not v5_32_ then
                                    v5_32_ = {}
                                    v5_30_[v5_31_] = v5_32_
                                end
                                local v5_34_ = v5_32_
                                local v5_35_ = v5_22_
                                local insert = table.insert
                                insert(v5_34_, v5_35_)
                            end
                        end
                    end
                end
                v5_28_ = v5_22_._combineKey
                if v5_28_ then
                    v5_30_ = v5_22_._timestamp
                    v5_29_ = v5_17_ - v5_30_
                    v5_31_ = v5_22_._combineDelay
                    v5_30_ = v5_31_ * v5_12_
                    if v5_30_ <= v5_29_ then
                        v5_30_ = v5_14_[v5_28_]
                        if not v5_30_ then
                            v5_30_ = {}
                            v5_14_[v5_28_] = v5_30_
                        end
                        v5_31_ = hashPosition
                        v5_32_ = v5_27_ // v5_13_
                        v5_31_ = v5_31_(v5_32_)
                        v5_32_ = v5_30_[v5_31_]
                        if not v5_32_ then
                            v5_32_ = {}
                            v5_30_[v5_31_] = v5_32_
                        end
                        local v5_34_ = v5_32_
                        local v5_35_ = v5_22_
                        local insert = table.insert
                        insert(v5_34_, v5_35_)
                    end
                end
                v5_28_ = hashPosition
                v5_29_ = v5_27_ // 300.000000
                v5_28_ = v5_28_(v5_29_)
                v5_31_ = v5_15_[v5_28_]
                v5_30_ = v5_31_ or 0.000000
                v5_29_ = v5_30_ + 1.000000
                v5_15_[v5_28_] = v5_29_
            end
        end
        v5_18_ = _trim
        v5_19_ = v5_4_
        v5_20_ = v5_3_
        v5_18_(v5_19_, v5_20_)
        v5_18_ = _trim
        v5_19_ = v5_5_
        v5_20_ = v5_3_
        v5_18_(v5_19_, v5_20_)
        v5_18_ = 0
        if v5_18_ < v5_3_ then
            v5_18_ = workspace
            v5_20_ = v5_4_
            local v5_21_ = v5_5_
            local FireCFrameChanged = Enum.BulkMoveMode.FireCFrameChanged
            v5_18_:BulkMoveTo(v5_20_, v5_21_, FireCFrameChanged)
        end
        v5_18_ = pairs
        v5_19_ = v0_21_
        v5_18_, v5_19_, v5_20_ = v5_18_(v5_19_)
        for v5_21_, v5_22_ in v5_18_, v5_19_, v5_20_ do
            local v5_23_ = v5_22_._combineKey
            if v5_23_ then
                local v5_24_ = v5_14_[v5_23_]
                if v5_24_ then
                    local v5_26_ = v5_22_._timestamp
                    local v5_25_ = v5_17_ - v5_26_
                    v5_26_ = v5_22_._combineDelay
                    if v5_25_ >= v5_26_ then
                        local v5_27_ = v5_22_._cframePhysics
                        v5_26_ = v5_27_.Position
                        v5_27_ = v5_26_ // v5_13_
                        local v5_29_ = hashPosition
                        local v5_30_ = v5_27_
                        v5_29_ = v5_29_(v5_30_)
                        local v5_28_ = v5_24_[v5_29_]
                        local v5_31_ = hashPosition
                        local v5_32_ = v5_26_ // 300.000000
                        v5_31_ = v5_31_(v5_32_)
                        v5_30_ = v5_15_[v5_31_]
                        v5_29_ = v5_30_ or 0.000000
                        v5_30_ = combineScale
                        v5_31_ = v5_29_
                        v5_32_ = v5_1_
                        v5_30_ = v5_30_(v5_31_, v5_32_)
                        v5_32_ = v5_22_._pickupDelay
                        local v5_35_ = v5_22_._combineDelay
                        local v5_36_ = v5_22_._pickupDelay
                        local v5_34_ = v5_35_ - v5_36_
                        local v5_33_ = v5_34_ * v5_30_
                        v5_31_ = v5_32_ + v5_33_
                        if v5_25_ >= v5_31_ then
                            v5_33_ = -1
                            v5_31_ = 1
                            v5_32_ = 1
                            for v5_33_ = v5_33_, v5_31_, v5_32_ do
                                v5_36_ = -1
                                v5_34_ = 1
                                v5_35_ = 1
                                for v5_36_ = v5_36_, v5_34_, v5_35_ do
                                    local v5_39_ = -1
                                    local v5_37_ = 1
                                    local v5_38_ = 1
                                    for v5_39_ = v5_39_, v5_37_, v5_38_ do
                                        local v5_41_ = hashPosition
                                        local v5_44_ = v5_33_
                                        local v5_45_ = v5_36_
                                        local v5_46_ = v5_39_
                                        local new = Vector3.new
                                        local v5_43_ = new(v5_44_, v5_45_, v5_46_)
                                        local v5_42_ = v5_27_ + v5_43_
                                        v5_41_ = v5_41_(v5_42_)
                                        local v5_40_ = v5_24_[v5_41_]
                                        if v5_40_ then
                                            v5_41_ = ipairs
                                            v5_42_ = v5_40_
                                            v5_41_, v5_42_, v5_43_ = v5_41_(v5_42_)
                                            for v5_44_, v5_45_ in v5_41_, v5_42_, v5_43_ do
                                                if v5_22_ ~= v5_45_ then
                                                    v5_46_ = v5_45_._destroyed
                                                    if not v5_46_ then
                                                        local v5_47_ = v5_45_._cframePhysics
                                                        v5_46_ = v5_47_.Position
                                                        local v5_49_ = hashPosition
                                                        local v5_50_ = v5_46_ // 300.000000
                                                        v5_49_ = v5_49_(v5_50_)
                                                        local v5_48_ = v5_15_[v5_49_]
                                                        v5_47_ = v5_48_ or 0.000000
                                                        v5_48_ = combineScale
                                                        v5_49_ = v5_47_
                                                        v5_50_ = v5_1_
                                                        v5_48_ = v5_48_(v5_49_, v5_50_)
                                                        v5_50_ = v5_45_._timestamp
                                                        v5_49_ = v5_17_ - v5_50_
                                                        local v5_51_ = v5_45_._pickupDelay
                                                        local v5_54_ = v5_45_._combineDelay
                                                        local v5_55_ = v5_45_._pickupDelay
                                                        local v5_53_ = v5_54_ - v5_55_
                                                        local v5_52_ = v5_53_ * v5_48_
                                                        v5_50_ = v5_51_ + v5_52_
                                                        if v5_49_ >= v5_50_ then
                                                            v5_51_ = v5_46_ - v5_26_
                                                            v5_50_ = v5_51_.Magnitude
                                                            if v5_11_ >= v5_50_ then
                                                                v5_52_ = v5_45_
                                                                v5_50_ = v5_22_:Combine(v5_52_)
                                                                if v5_50_ then
                                                                    v5_50_ = v0_21_
                                                                    v5_51_ = v5_45_._id
                                                                    v5_52_ = nil
                                                                    v5_50_[v5_51_] = v5_52_
                                                                    v5_50_ = v0_22_
                                                                    v5_50_ -= 1.000000
                                                                    v0_22_ = v5_7_
                                                                    v5_45_:Destroy()
                                                                end
                                                            end
                                                        end
                                                    end
                                                end
                                            end
                                        end
                                    end
                                end
                            end
                        end
                    end
                end
            end
        end
    end
    v5_4_ = workspace
    v5_3_ = v5_4_.CurrentCamera
    local v5_5_ = v5_3_.CFrame
    v5_4_ = v5_5_.Position
    local v5_7_ = 2
    local v5_11_ = v5_3_.FieldOfView
    local rad = math.rad
    local v5_10_ = rad(v5_11_)
    local v5_9_ = v5_10_ * 0.500000
    local tan = math.tan
    local v5_8_ = tan(v5_9_)
    local v5_6_ = v5_7_ * v5_8_
    v5_8_ = v5_3_.ViewportSize
    v5_7_ = v5_8_.Y
    v5_5_ = v5_6_ / v5_7_
    v5_6_ = pairs
    v5_7_ = v0_21_
    v5_6_, v5_7_, v5_8_ = v5_6_(v5_7_)
    for v5_9_, v5_10_ in v5_6_, v5_7_, v5_8_ do
        local v5_13_ = v5_4_
        local v5_14_ = v5_5_
    end
    v5_6_ = #v5_2_
    v5_7_ = 0
    if v5_7_ < v5_6_ then
        v5_7_ = v0_14_
        v5_6_ = v5_7_.Fire
        v5_7_ = "Orbs: Collect"
        v5_8_ = v5_2_
        v5_6_(v5_7_, v5_8_)
    end
end
v0_28_(v0_29_, v0_30_, v0_31_)
v0_28_ = function(a1)
    local v6_1_ = a1.config
    if not v6_1_ then
        v6_1_ = {}
    end
    local v6_2_ = v6_1_.Type
    if not v6_2_ then
        local v6_4_ = v0_6_
        local v6_3_ = v6_4_.Types
        v6_2_ = v6_3_.Orb
        v6_1_.Type = v6_2_
    end
    local v6_3_ = v0_18_
    v6_2_ = v6_3_.ComputeInitialCFrame
    v6_3_ = a1
    local v6_4_ = v6_1_
    v6_2_ = v6_2_(v6_3_, v6_4_)
    if not v6_2_ then
        v6_3_ = warn
        v6_4_ = "[OrbCmds] No CFrame!"
        local v6_5_ = a1
        v6_3_(v6_4_, v6_5_)
        return
    end
    v6_3_ = nil
    local v6_5_ = v0_19_
    v6_4_ = v6_5_.Character
    if v6_4_ then
        v6_5_ = v6_4_.PrimaryPart
        if v6_5_ then
            v6_5_ = v6_4_:GetPivot()
            v6_3_ = v6_5_
        end
    end
    local v6_6_ = v0_18_
    v6_5_ = v6_6_.ComputeInitialVelocity
    v6_6_ = v6_2_
    local v6_7_ = v6_3_
    local v6_8_ = v6_1_
    v6_5_ = v6_5_(v6_6_, v6_7_, v6_8_)
    v6_6_ = {}
    v6_7_ = a1.i
    if v6_7_ then
        v6_7_ = a1.i
        v6_8_ = ipairs
        local v6_9_ = v6_7_
        local v6_8_, v6_9_, v6_10_ = v6_8_(v6_9_)
        for v6_11_, v6_12_ in v6_8_, v6_9_, v6_10_ do
            local v6_14_ = v6_6_
            local v6_16_ = v0_9_
            local v6_15_ = v6_16_.DecodeNetwork
            v6_16_ = v6_12_
            local insert = table.insert
            insert(v6_15_(v6_16_))
        end
    else
        v6_7_ = a1.ct
        if v6_7_ then
            v6_7_ = a1.ca
            if v6_7_ then
                local v6_9_ = v0_6_
                v6_8_ = v6_9_.CurrencyTypesInverse
                v6_9_ = a1.ct
                v6_7_ = v6_8_[v6_9_]
                v6_9_ = v6_6_
                local v6_10_ = v0_8_
                local v6_11_ = v6_7_
                v6_10_ = v6_10_(v6_11_)
                local v6_12_ = a1.ca
                local insert = table.insert
                insert(v6_10_:SetAmount(v6_12_))
            else
                v6_8_ = "invalid orb mode"
                v6_7_ = assert
                v6_7_(v6_8_)
            end
        else
            v6_8_ = "invalid orb mode"
            v6_7_ = assert
            v6_7_(v6_8_)
        end
    end
    v6_7_ = a1.id
    v6_8_ = a1.t
    local v6_10_ = v0_18_
    local v6_9_ = v6_10_.new
    v6_10_ = v6_7_
    local v6_11_ = v6_8_
    local v6_12_ = v6_6_
    local v6_13_ = v6_1_
    local v6_14_ = v6_2_
    local v6_15_ = v6_5_
    v6_9_ = v6_9_(v6_10_, v6_11_, v6_12_, v6_13_, v6_14_, v6_15_)
    v6_11_ = v0_21_
    v6_10_ = v6_11_[v6_7_]
    v6_11_ = v0_21_
    v6_11_[v6_7_] = v6_9_
    if v6_10_ then
        v6_10_:Destroy()
        return
    end
    v6_11_ = v0_22_
    v6_11_ += 1.000000
    v0_22_ = v6_6_
end
ProcessCreate = v0_28_
v0_28_ = v0_14_.Fired
v0_29_ = "Orbs: Create"
v0_28_ = v0_28_(v0_29_)
v0_30_ = function(a1)
    local v7_1_ = ipairs
    local v7_2_ = a1
    local v7_1_, v7_2_, v7_3_ = v7_1_(v7_2_)
    for v7_4_, v7_5_ in v7_1_, v7_2_, v7_3_ do
        local v7_6_ = v0_20_
        local v7_8_ = 0
        local v7_9_ = 0.300000
        v7_6_ = v7_6_:NextNumber(v7_8_, v7_9_)
        local delay = task.delay
        v7_8_ = v7_6_
        v7_9_ = ProcessCreate
        local v7_10_ = v7_5_
        delay(v7_8_, v7_9_, v7_10_)
    end
end
v0_28_:Connect(v0_30_)
v0_28_ = v0_14_.Fired
v0_29_ = "Orbs: Clear"
v0_28_ = v0_28_(v0_29_)
v0_30_ = function()
    local v8_0_ = v0_21_
    local v8_1_ = {}
    v0_21_ = v8_0_
    v8_1_ = 0
    v0_22_ = v8_1_
    v8_1_ = pairs
    local v8_2_ = v8_0_
    local v8_1_, v8_2_, v8_3_ = v8_1_(v8_2_)
    for v8_4_, v8_5_ in v8_1_, v8_2_, v8_3_ do
    end
end
v0_28_:Connect(v0_30_)
v0_28_ = v0_14_.Fired
v0_29_ = "Orbs: Destroy"
v0_28_ = v0_28_(v0_29_)
v0_30_ = function(a1)
end
v0_28_:Connect(v0_30_)
return v0_27_

Assistant:
Assistant: