
Key Required
Scull Phonk Edit Open sourse
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.

best script ❤️🔋