Scull Phonk Edit   Open sourse
Key Required

Scull Phonk Edit Open sourse

(🎙️Voice Chat) PHONK EDIT TOWERKirill73384Kirill73384 2.5K views 1K executesUpdated Dec 2, 2025
2.5/ 5(2 votes)
1150% Positive
Lua Script•738 lines (21934 chars)
local LocalPlayer = game:GetService("Players").LocalPlayer
local position = UDim2.new(0.13, 0, 0.22, 0)
local character
local humanoid
local rootPart
local isActive = false
local useNetworkLag = false
local phonkEnabled = true

local recentImages = {}
local connections = {
    jumpState = nil;
    jumpEvent = nil;
    died = nil;
}

local imageIds = {
    90224137056961, 70779085177724, 77738443752337, 140141817299964, 
    70851652799002, 6862780932, 88280205616409, 95217723213760, 
    123379963156438, 70454177817502, 70808925800394, 101553239615549, 
    90343700047338, 111025726278377, 91065224962965, 79098125487093, 
    71310918846614, 91195350749003, 80691431290501, 101859385855395
}

local soundIds = {
    132660906496320, 107010788063483, 103314799625839, 117449944483880, 
    104502600651938, 118882336251835, 128728161096602, 75825707123472, 
    105577499785211, 119173817873470, 104118543761603, 127128952417480, 
    135288379712506, 109590941994974, 101727279400780, 117349561398713, 
    85572465791029, 119205525477797, 122540560556310, 91210683361426, 
    95326356257817, 98883929964567, 134838527656195, 140133127946276, 
    109492585324475, 110350050930782, 106863674222879, 137789851538286, 
    84739018646963, 136173783192858, 120671634759596, 94313971179713, 
    115518117017358, 118487864701384, 140180426961277, 78812198128578, 
    131970292707600, 81114028045826, 98589713409772, 120381135704348, 
    135976814082473
}

local effectDuration = 1
local PhonkDuration = LocalPlayer:GetAttribute("PhonkDuration")
if type(PhonkDuration) == "number" then
    if PhonkDuration < 1 then
        effectDuration = 1
    elseif 3 < PhonkDuration then
        effectDuration = 3
    else
        effectDuration = PhonkDuration
    end
else
    LocalPlayer:SetAttribute("PhonkDuration", effectDuration)
end

local ColorCorrectionEffect = Instance.new("ColorCorrectionEffect")
ColorCorrectionEffect.Parent = game:GetService("Lighting")
ColorCorrectionEffect.Enabled = false
ColorCorrectionEffect.Saturation = -1
ColorCorrectionEffect.Contrast = 0.05

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
for _, v in ipairs(PlayerGui:GetChildren()) do
    if v.Name == "PhonkLocalGUI" then
        v:Destroy()
    end
end

local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "PhonkLocalGUI"
ScreenGui.ResetOnSpawn = false
ScreenGui.Parent = PlayerGui

local ImageLabel = Instance.new("ImageLabel")
ImageLabel.Name = "PhonkImage"
ImageLabel.AnchorPoint = Vector2.new(0.5, 0.5)
ImageLabel.Position = UDim2.new(0.5, 0, 0.78, 0)
ImageLabel.Size = position
ImageLabel.BackgroundTransparency = 1
ImageLabel.Visible = false
ImageLabel.Parent = ScreenGui

local SettingsButton = Instance.new("TextButton")
SettingsButton.Name = "PhonkGear"
SettingsButton.AnchorPoint = Vector2.new(1, 0)
SettingsButton.Position = UDim2.new(1, -18, 0, 12)
SettingsButton.Size = UDim2.new(0, 72, 0, 54)
SettingsButton.BackgroundTransparency = 0.12
SettingsButton.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
SettingsButton.BorderSizePixel = 0
SettingsButton.Text = "⚙"
SettingsButton.Font = Enum.Font.Gotham
SettingsButton.TextSize = 28
SettingsButton.TextColor3 = Color3.fromRGB(240, 240, 240)
SettingsButton.Parent = ScreenGui
Instance.new("UICorner", SettingsButton).CornerRadius = UDim.new(0, 8)

local SettingsFrame = Instance.new("Frame")
SettingsFrame.Name = "PhonkSettings"
SettingsFrame.AnchorPoint = Vector2.new(1, 0)
SettingsFrame.Position = UDim2.new(1, -18, 0, 88)
SettingsFrame.BackgroundColor3 = Color3.fromRGB(18, 18, 18)
SettingsFrame.Size = UDim2.new(0, 360, 0, 0)
SettingsFrame.AutomaticSize = Enum.AutomaticSize.Y
SettingsFrame.Visible = false
SettingsFrame.BorderSizePixel = 0
SettingsFrame.Parent = ScreenGui
Instance.new("UICorner", SettingsFrame).CornerRadius = UDim.new(0, 10)

local UIStroke = Instance.new("UIStroke", SettingsFrame)
UIStroke.Color = Color3.fromRGB(60, 60, 60)
UIStroke.Transparency = 0.6
UIStroke.Thickness = 1

local UIPadding = Instance.new("UIPadding", SettingsFrame)
UIPadding.PaddingTop = UDim.new(0, 10)
UIPadding.PaddingLeft = UDim.new(0, 10)
UIPadding.PaddingRight = UDim.new(0, 10)
UIPadding.PaddingBottom = UDim.new(0, 10)

local UIListLayout = Instance.new("UIListLayout", SettingsFrame)
UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder
UIListLayout.Padding = UDim.new(0, 8)

local TitleLabel = Instance.new("TextLabel")
TitleLabel.Name = "Title"
TitleLabel.Size = UDim2.new(1, 0, 0, 24)
TitleLabel.BackgroundTransparency = 1
TitleLabel.Font = Enum.Font.GothamBold
TitleLabel.TextSize = 16
TitleLabel.TextColor3 = Color3.fromRGB(230, 230, 230)
TitleLabel.TextXAlignment = Enum.TextXAlignment.Left
TitleLabel.Text = "Phonk Settings"
TitleLabel.Parent = SettingsFrame

local PhonkToggleFrame = Instance.new("Frame")
PhonkToggleFrame.Name = "PhonkToggle"
PhonkToggleFrame.Size = UDim2.new(1, 0, 0, 32)
PhonkToggleFrame.BackgroundTransparency = 1
PhonkToggleFrame.Parent = SettingsFrame

local PhonkToggleLayout = Instance.new("UIListLayout", PhonkToggleFrame)
PhonkToggleLayout.FillDirection = Enum.FillDirection.Horizontal
PhonkToggleLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
PhonkToggleLayout.VerticalAlignment = Enum.VerticalAlignment.Center
PhonkToggleLayout.Padding = UDim.new(0, 10)

local PhonkToggleButton = Instance.new("TextButton")
PhonkToggleButton.Name = "PhonkToggleButton"
PhonkToggleButton.Size = UDim2.new(0, 20, 0, 20)
PhonkToggleButton.BackgroundColor3 = Color3.fromRGB(40, 120, 60)
PhonkToggleButton.Text = ""
PhonkToggleButton.Parent = PhonkToggleFrame
Instance.new("UICorner", PhonkToggleButton).CornerRadius = UDim.new(0, 4)

local PhonkToggleLabel = Instance.new("TextLabel")
PhonkToggleLabel.Name = "PhonkToggleLabel"
PhonkToggleLabel.Size = UDim2.new(1, -30, 0, 20)
PhonkToggleLabel.BackgroundTransparency = 1
PhonkToggleLabel.Font = Enum.Font.Gotham
PhonkToggleLabel.TextSize = 14
PhonkToggleLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
PhonkToggleLabel.TextXAlignment = Enum.TextXAlignment.Left
PhonkToggleLabel.Text = "Enable Phonk Effects"
PhonkToggleLabel.Parent = PhonkToggleFrame

local LagToggleFrame = Instance.new("Frame")
LagToggleFrame.Name = "LagToggle"
LagToggleFrame.Size = UDim2.new(1, 0, 0, 32)
LagToggleFrame.BackgroundTransparency = 1
LagToggleFrame.Parent = SettingsFrame

local LagToggleLayout = Instance.new("UIListLayout", LagToggleFrame)
LagToggleLayout.FillDirection = Enum.FillDirection.Horizontal
LagToggleLayout.HorizontalAlignment = Enum.HorizontalAlignment.Left
LagToggleLayout.VerticalAlignment = Enum.VerticalAlignment.Center
LagToggleLayout.Padding = UDim.new(0, 10)

local LagToggleButton = Instance.new("TextButton")
LagToggleButton.Name = "LagToggleButton"
LagToggleButton.Size = UDim2.new(0, 20, 0, 20)
LagToggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
LagToggleButton.Text = ""
LagToggleButton.Parent = LagToggleFrame
Instance.new("UICorner", LagToggleButton).CornerRadius = UDim.new(0, 4)

local LagToggleLabel = Instance.new("TextLabel")
LagToggleLabel.Name = "LagToggleLabel"
LagToggleLabel.Size = UDim2.new(1, -30, 0, 20)
LagToggleLabel.BackgroundTransparency = 1
LagToggleLabel.Font = Enum.Font.Gotham
LagToggleLabel.TextSize = 14
LagToggleLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
LagToggleLabel.TextXAlignment = Enum.TextXAlignment.Left
LagToggleLabel.Text = "Enable Network Lag (Experimental)"
LagToggleLabel.Parent = LagToggleFrame

local CurrentLabel = Instance.new("TextLabel")
CurrentLabel.Name = "CurrentLabel"
CurrentLabel.Size = UDim2.new(1, 0, 0, 20)
CurrentLabel.BackgroundTransparency = 1
CurrentLabel.Font = Enum.Font.Gotham
CurrentLabel.TextSize = 14
CurrentLabel.TextColor3 = Color3.fromRGB(200, 200, 200)
CurrentLabel.TextXAlignment = Enum.TextXAlignment.Left
CurrentLabel.Text = "Effect time: "..string.format("%.2f", effectDuration)..'s'
CurrentLabel.Parent = SettingsFrame

local ControlRow = Instance.new("Frame")
ControlRow.Name = "ControlRow"
ControlRow.Size = UDim2.new(1, 0, 0, 40)
ControlRow.BackgroundTransparency = 1
ControlRow.Parent = SettingsFrame

local ControlLayout = Instance.new("UIListLayout", ControlRow)
ControlLayout.FillDirection = Enum.FillDirection.Horizontal
ControlLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
ControlLayout.VerticalAlignment = Enum.VerticalAlignment.Center
ControlLayout.Padding = UDim.new(0, 12)

local MinusButton = Instance.new("TextButton")
MinusButton.Name = "Minus"
MinusButton.Size = UDim2.new(0, 44, 0, 36)
MinusButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
MinusButton.Font = Enum.Font.Gotham
MinusButton.Text = '-'
MinusButton.TextSize = 22
MinusButton.TextColor3 = Color3.fromRGB(240, 240, 240)
MinusButton.Parent = ControlRow
Instance.new("UICorner", MinusButton)

local ValueLabel = Instance.new("TextLabel")
ValueLabel.Name = "Value"
ValueLabel.Size = UDim2.new(0, 160, 0, 36)
ValueLabel.BackgroundTransparency = 1
ValueLabel.Font = Enum.Font.GothamBold
ValueLabel.TextSize = 16
ValueLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
ValueLabel.Text = string.format("%.2f s", effectDuration)
ValueLabel.Parent = ControlRow

local PlusButton = Instance.new("TextButton")
PlusButton.Name = "Plus"
PlusButton.Size = UDim2.new(0, 44, 0, 36)
PlusButton.BackgroundColor3 = Color3.fromRGB(40, 40, 40)
PlusButton.Font = Enum.Font.Gotham
PlusButton.Text = '+'
PlusButton.TextSize = 22
PlusButton.TextColor3 = Color3.fromRGB(240, 240, 240)
PlusButton.Parent = ControlRow
Instance.new("UICorner", PlusButton)

local ActionsFrame = Instance.new("Frame")
ActionsFrame.Name = "Actions"
ActionsFrame.Size = UDim2.new(1, 0, 0, 36)
ActionsFrame.BackgroundTransparency = 1
ActionsFrame.Parent = SettingsFrame

local ActionsLayout = Instance.new("UIListLayout", ActionsFrame)
ActionsLayout.FillDirection = Enum.FillDirection.Horizontal
ActionsLayout.HorizontalAlignment = Enum.HorizontalAlignment.Center
ActionsLayout.VerticalAlignment = Enum.VerticalAlignment.Center
ActionsLayout.Padding = UDim.new(0, 12)

local ResetButton = Instance.new("TextButton")
ResetButton.Name = "Reset"
ResetButton.Size = UDim2.new(0, 140, 0, 36)
ResetButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
ResetButton.Font = Enum.Font.Gotham
ResetButton.Text = "Reset"
ResetButton.TextSize = 14
ResetButton.TextColor3 = Color3.fromRGB(230, 230, 230)
ResetButton.Parent = ActionsFrame
Instance.new("UICorner", ResetButton)

local CloseButton = Instance.new("TextButton")
CloseButton.Name = "Close"
CloseButton.Size = UDim2.new(0, 140, 0, 36)
CloseButton.BackgroundColor3 = Color3.fromRGB(90, 40, 40)
CloseButton.Font = Enum.Font.Gotham
CloseButton.Text = "Close"
CloseButton.TextSize = 14
CloseButton.TextColor3 = Color3.fromRGB(240, 240, 240)
CloseButton.Parent = ActionsFrame
Instance.new("UICorner", CloseButton)

local function updateToggles()
    if phonkEnabled then
        PhonkToggleButton.BackgroundColor3 = Color3.fromRGB(40, 120, 60)
    else
        PhonkToggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
    end
    
    if useNetworkLag and phonkEnabled then
        LagToggleButton.BackgroundColor3 = Color3.fromRGB(40, 120, 60)
    else
        LagToggleButton.BackgroundColor3 = Color3.fromRGB(60, 60, 60)
        useNetworkLag = false
    end
end

local function setNetworkLag(value)
    pcall(function()
        if value then
            settings().Network.IncomingReplicationLag = math.huge
        else
            settings().Network.IncomingReplicationLag = 0
        end
    end)
end

local function cleanupLag()
    setNetworkLag(false)
end

local function pickNonRecent(items, recentList)
    if #items == 0 then
        return nil
    end
    
    local available = {}
    for _, item in ipairs(items) do
        local found = false
        for _, recent in ipairs(recentList) do
            if recent == item then
                found = true
                break
            end
        end
        if not found then
            table.insert(available, item)
        end
    end
    
    if #available == 0 then
        return items[math.random(1, #items)]
    end
    
    local selected = available[math.random(1, #available)]
    table.insert(recentList, selected)
    if #recentList > 3 then
        table.remove(recentList, 1)
    end
    return selected
end

local function getRandomImage()
    if #imageIds == 0 then
        return nil
    end
    
    local selectedId = pickNonRecent(imageIds, recentImages)
    if selectedId then
        return "rbxassetid://" .. selectedId
    end
    return nil
end

local function isSpeedCoilEquipped()
    if not character then
        return false
    end
    
    for _, item in ipairs(character:GetChildren()) do
        if item:IsA("Tool") and item.Name == "SpeedCoil" then
            return true
        end
    end
    return false
end

local function isBeingFlinged()
    if not rootPart or not rootPart.Parent then
        return false
    end
    
    local success, velocity = pcall(function()
        return rootPart.AssemblyLinearVelocity
    end)
    
    if not success or not velocity then
        return false
    end
    
    if isSpeedCoilEquipped() then
        if velocity.Magnitude >= 75 then
            return true
        end
        if math.abs(velocity.Y) >= 36 then
            return true
        end
        return false
    end
    
    if velocity.Magnitude >= 25 then
        return true
    end
    if math.abs(velocity.Y) >= 12 then
        return true
    end
    return false
end

local recentSounds = {}
local function playRandomSoundSegment(duration)
    if #soundIds == 0 then
        return
    end
    
    local soundId = pickNonRecent(soundIds, recentSounds)
    if not soundId then
        return
    end
    
    local sound = Instance.new("Sound")
    sound.SoundId = "rbxassetid://" .. soundId
    sound.Volume = 3
    sound.Parent = workspace
    
    local function cleanup()
        if sound and sound.Parent then
            pcall(function()
                sound:Stop()
            end)
            pcall(function()
                sound:Destroy()
            end)
        end
    end
    
    local success = pcall(function()
        sound:Play()
        task.delay(duration, cleanup)
    end)
    
    if not success then
        cleanup()
    end
end

local TweenService = game:GetService("TweenService")
local function shakeImage(imageLabel)
    if not imageLabel then
        return
    end
    
    for i = 1, 16 do
        local tween = TweenService:Create(imageLabel, TweenInfo.new(0.03, Enum.EasingStyle.Linear), {
            Position = UDim2.new(0.5, math.random(-18, 18), 0.78, math.random(-12, 12))
        })
        tween:Play()
        tween.Completed:Wait()
    end
    
    TweenService:Create(imageLabel, TweenInfo.new(0.08, Enum.EasingStyle.Linear), {
        Position = UDim2.new(0.5, 0, 0.78, 0)
    }):Play()
end

local function doPhonkFreeze()
    if not phonkEnabled then
        return
    end
    
    if isActive then
        return
    end
    
    if isBeingFlinged() then
        return
    end
    
    isActive = true
    
    if useNetworkLag and phonkEnabled then
        setNetworkLag(true)
    end
    
    local imageUrl = getRandomImage()
    if imageUrl then
        ImageLabel.Image = imageUrl
        ImageLabel.Size = position
        ImageLabel.Position = UDim2.new(0.5, 0, 0.78, 0)
        ImageLabel.Visible = true
        task.spawn(function()
            shakeImage(ImageLabel)
        end)
    else
        ImageLabel.Visible = false
    end
    
    playRandomSoundSegment(math.max(effectDuration, 1))
    
    if rootPart and rootPart.Parent and not isBeingFlinged() then
        pcall(function()
            rootPart.Anchored = true
        end)
    end
    
    ColorCorrectionEffect.Enabled = true
    
    task.wait(effectDuration)
    
    if useNetworkLag and phonkEnabled then
        setNetworkLag(false)
    end
    
    if rootPart and rootPart.Parent then
        pcall(function()
            rootPart.Anchored = false
            rootPart.AssemblyLinearVelocity = Vector3.new(0, -25, 0)
        end)
        
        if humanoid then
            pcall(function()
                humanoid:ChangeState(Enum.HumanoidStateType.Freefall)
            end)
        end
    end
    
    ColorCorrectionEffect.Enabled = false
    ImageLabel.Visible = false
    isActive = false
end

local function disconnectConnections()
    cleanupLag()
    
    if connections.jumpState then
        pcall(function()
            connections.jumpState:Disconnect()
        end)
        connections.jumpState = nil
    end
    
    if connections.jumpEvent then
        pcall(function()
            connections.jumpEvent:Disconnect()
        end)
        connections.jumpEvent = nil
    end
    
    if connections.died then
        pcall(function()
            connections.died:Disconnect()
        end)
        connections.died = nil
    end
end

local deadHumans = {}
local function bindCharacter(newCharacter)
    disconnectConnections()
    
    character = newCharacter
    humanoid = character:WaitForChild("Humanoid")
    local root = character:FindFirstChild("HumanoidRootPart")
    if not root then
        root = character:WaitForChild("HumanoidRootPart")
    end
    rootPart = root
    
    deadHumans[humanoid] = nil
    
    connections.jumpState = humanoid.StateChanged:Connect(function(oldState, newState)
        if newState == Enum.HumanoidStateType.Jumping then
            if isActive or not phonkEnabled then
                return
            end
            
            task.delay(0.3, function()
                if humanoid and humanoid.Health > 0 and not isActive and not isBeingFlinged() and phonkEnabled then
                    doPhonkFreeze()
                end
            end)
        end
    end)
    
    if humanoid.Jumping then
        connections.jumpEvent = humanoid.Jumping:Connect(function(isJumping)
            if isJumping then
                if isActive or not phonkEnabled then
                    return
                end
                
                task.delay(0.3, function()
                    if humanoid and humanoid.Health > 0 and not isActive and not isBeingFlinged() and phonkEnabled then
                        doPhonkFreeze()
                    end
                end)
            end
        end)
    end
    
    connections.died = humanoid.Died:Connect(function()
        if deadHumans[humanoid] then
            return
        end
        
        deadHumans[humanoid] = true
        cleanupLag()
        
        if phonkEnabled then
            task.spawn(function()
                task.wait(0.03)
                if not isActive and not isBeingFlinged() then
                    doPhonkFreeze()
                end
            end)
        end
        
        task.delay(math.max(1, effectDuration + 0.1), function()
            if rootPart then
                pcall(function()
                    rootPart.Anchored = false
                end)
            end
            
            ColorCorrectionEffect.Enabled = false
            if ImageLabel then
                ImageLabel.Visible = false
            end
            
            isActive = false
            deadHumans[humanoid] = nil
        end)
    end)
end

if LocalPlayer.Character then
    bindCharacter(LocalPlayer.Character)
end

LocalPlayer.CharacterAdded:Connect(function(newCharacter)
    task.wait(0.1)
    bindCharacter(newCharacter)
end)

local lastChatTime = 0
LocalPlayer.Chatted:Connect(function(message)
    if not phonkEnabled then
        return
    end
    
    local currentTime = tick()
    if currentTime - lastChatTime < 0.25 then
        return
    end
    
    lastChatTime = currentTime
    if not isActive and not isBeingFlinged() then
        doPhonkFreeze()
    end
end)

local function updateUIAndSave()
    if effectDuration < 1 then
        effectDuration = 1
    elseif effectDuration > 3 then
        effectDuration = 3
    end
    
    LocalPlayer:SetAttribute("PhonkDuration", effectDuration)
    
    if ValueLabel then
        ValueLabel.Text = string.format("%.2f s", effectDuration)
    end
    
    if CurrentLabel then
        CurrentLabel.Text = "Effect time: "..string.format("%.2f", effectDuration)..'s'
    end
    
    updateToggles()
end

SettingsButton.MouseButton1Click:Connect(function()
    SettingsFrame.Visible = not SettingsFrame.Visible
end)

PhonkToggleButton.MouseButton1Click:Connect(function()
    phonkEnabled = not phonkEnabled
    if not phonkEnabled then
        cleanupLag()
        useNetworkLag = false
        ColorCorrectionEffect.Enabled = false
        ImageLabel.Visible = false
    end
    updateUIAndSave()
end)

LagToggleButton.MouseButton1Click:Connect(function()
    if not phonkEnabled then
        return
    end
    useNetworkLag = not useNetworkLag
    if not useNetworkLag then
        cleanupLag()
    end
    updateUIAndSave()
end)

MinusButton.MouseButton1Click:Connect(function()
    effectDuration = math.floor((effectDuration - 0.25) * 100 + 0.5) / 100
    updateUIAndSave()
end)

PlusButton.MouseButton1Click:Connect(function()
    effectDuration = math.floor((effectDuration + 0.25) * 100 + 0.5) / 100
    updateUIAndSave()
end)

ResetButton.MouseButton1Click:Connect(function()
    effectDuration = 1
    updateUIAndSave()
end)

CloseButton.MouseButton1Click:Connect(function()
    SettingsFrame.Visible = false
end)

LocalPlayer:GetAttributeChangedSignal("PhonkDuration"):Connect(function()
    local newDuration = LocalPlayer:GetAttribute("PhonkDuration")
    if type(newDuration) == "number" then
        if newDuration < 1 then
            effectDuration = 1
        elseif newDuration > 3 then
            effectDuration = 3
        else
            effectDuration = newDuration
        end
        updateUIAndSave()
    end
end)

game:GetService("Players").PlayerRemoving:Connect(function(player)
    if player == LocalPlayer then
        cleanupLag()
    end
end)

updateUIAndSave()

Features & Information

- Open-source local script for activating Phonk effects on jumps. - When triggered, displays random skull images from a built-in collection,temporarily freezes the character, and applies visual effects. - Audio functionality is limited to specific game modes due to permission restrictions. - Full source code available for customization and modification.

Community Comments (1)

best script ❤️🔋