local PlayersService = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = PlayersService.LocalPlayer
local Flags = {
Enabled = false,
AutoEnemies = false,
AutoMines = false,
AttackCooldown = 0.5,
HitMode = "Damage",
MineTargets = {
Mine = true,
Mine2 = true,
Mine3 = true,
},
}
local MineOptions = {
"Mine",
"Mine2",
"Mine3",
}
local CooldownTimer = 0
local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/theneutral0ne/wally-modified/refs/heads/main/wally-modified.lua"))()
local MainWindow = Library:CreateWindow("Diddy Menu", {
persistwindow = false,
itemspacing = 2,
togglestyle = "checkmark",
underlinecolor = "rainbow",
})
MainWindow:Section("Main")
MainWindow:Toggle("Enabled", {
location = Flags,
flag = "Enabled",
default = Flags.Enabled,
tooltip = "Master switch for this script. If off, no attacks are sent.",
})
MainWindow:Toggle("Mobs", {
location = Flags,
flag = "AutoEnemies",
default = Flags.AutoEnemies,
tooltip = "Automatically hits all valid enemy humanoids in workspace.",
})
MainWindow:Toggle("Mines", {
location = Flags,
flag = "AutoMines",
default = Flags.AutoMines,
tooltip = "Automatically hits ore nodes in the selected mine folders below.",
})
MainWindow:Dropdown("Mode", {
location = Flags,
flag = "HitMode",
list = { "Damage", "Heal" },
}, function(Value)
Flags.HitMode = Value
end)
MainWindow:Slider("Cooldown", {
location = Flags,
flag = "AttackCooldown",
min = 0.1,
max = 2,
default = Flags.AttackCooldown,
precise = true,
decimals = 2,
step = 0.05,
}, function(Value)
Flags.AttackCooldown = Value
end)
MainWindow:Section("Mine Targets")
MainWindow:MultiSelectList("Mines", {
location = Flags,
flag = "MineTargets",
list = MineOptions,
default = Flags.MineTargets,
search = true,
sort = true,
maxVisibleRows = 6,
listHeight = 110,
}, function(SelectedMap)
Flags.MineTargets = SelectedMap
end)
MainWindow:Section("Troll")
MainWindow:Button("God All", {
tooltip = "God all players, You must have armour in your backpack to work",
}, function()
for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
if string.find(Child.Name, "Armour") and Child:FindFirstChild("RemoteFunction") then
for _, Player in ipairs(PlayersService:GetPlayers()) do
task.wait()
local Character = Player.Character
local Humanoid = Character and Character:FindFirstChild("Humanoid")
if Humanoid and Humanoid.Health > 0 then
Child.RemoteFunction:InvokeServer("protect", { Character, Humanoid, 6000000 })
end
end
end
end
end)
MainWindow:Button("Kill All", {
tooltip = "Kills all players, requires armour in backpack to work",
}, function()
for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
if string.find(Child.Name, "Armour") and Child:FindFirstChild("RemoteFunction") then
for _, Player in ipairs(PlayersService:GetPlayers()) do
task.wait()
local Character = Player.Character
local Humanoid = Character and Character:FindFirstChild("Humanoid")
if Player.Name ~= LocalPlayer.Name and Humanoid and Humanoid.Health > 0 then
Child.RemoteFunction:InvokeServer("protect", { Character, Humanoid, -math.huge })
end
end
end
end
end)
MainWindow:Button("Set Enemies To 1 HP", {
tooltip = "Calculates enemy HP and deals exact damage to leave each one at 1 HP.",
}, function()
local Weapon = nil
for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
if Child:FindFirstChild("SwordControl") and Child:FindFirstChild("RemoteFunction") then
Weapon = Child
break
end
end
if not Weapon then
return
end
for _, Humanoid in ipairs((function()
local EnemyHumanoids = {}
local Seen = {}
for _, Descendant in ipairs(workspace:GetDescendants()) do
if Descendant:IsA("Model") and Descendant:FindFirstChild("EnemyMain") then
local EnemyHumanoid = Descendant:FindFirstChild("Humanoid")
if EnemyHumanoid and not Seen[EnemyHumanoid] then
Seen[EnemyHumanoid] = true
table.insert(EnemyHumanoids, EnemyHumanoid)
end
end
end
return EnemyHumanoids
end)()) do
local Health = Humanoid.Health
local IsValidHealth = type(Health) == "number" and Health == Health and math.abs(Health) ~= math.huge
if IsValidHealth and Health > 1 then
local DamageNeeded = Health - 1
Weapon.RemoteFunction:InvokeServer("hit", { Humanoid, DamageNeeded })
end
end
end)
local function IsUsableHealth(Health)
return type(Health) == "number"
and Health > 0
and Health == Health
and math.abs(Health) ~= math.huge
end
local function GetOreHealth(Ore)
local Ok, PropertyHealth = pcall(function()
return Ore.Health
end)
if Ok and type(PropertyHealth) == "number" then
return PropertyHealth
end
local HealthValue = Ore:FindFirstChild("Health")
if HealthValue and type(HealthValue.Value) == "number" then
return HealthValue.Value
end
local AttributeHealth = Ore:GetAttribute("Health")
if type(AttributeHealth) == "number" then
return AttributeHealth
end
return nil
end
local function GetEnemyHumanoids()
local EnemyHumanoids = {}
local Seen = {}
for _, Descendant in ipairs(workspace:GetDescendants()) do
if Descendant:IsA("Model") and Descendant:FindFirstChild("EnemyMain") then
local Humanoid = Descendant:FindFirstChild("Humanoid")
if Humanoid and not Seen[Humanoid] then
Seen[Humanoid] = true
table.insert(EnemyHumanoids, Humanoid)
end
end
end
return EnemyHumanoids
end
RunService.RenderStepped:Connect(function(DeltaTime)
CooldownTimer += DeltaTime
if Flags.Enabled ~= true then
return
end
local Weapon = nil
for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
if Child:FindFirstChild("SwordControl") and Child:FindFirstChild("RemoteFunction") then
Weapon = Child
break
end
end
local Cooldown = tonumber(Flags.AttackCooldown) or 0.5
if CooldownTimer < Cooldown or not Weapon then
return
end
local HitValue = (Flags.HitMode == "Heal") and -math.huge or math.huge
if Flags.AutoEnemies == true then
for _, Humanoid in ipairs(GetEnemyHumanoids()) do
if IsUsableHealth(Humanoid.Health) then
Weapon.RemoteFunction:InvokeServer("hit", { Humanoid, HitValue })
end
end
end
if Flags.AutoMines == true and type(Flags.MineTargets) == "table" then
for MineName, IsSelected in pairs(Flags.MineTargets) do
if IsSelected == true and type(MineName) == "string" then
local MineFolder = workspace:FindFirstChild(MineName)
if MineFolder then
for _, Child in ipairs(MineFolder:GetChildren()) do
local Ore = Child:FindFirstChild("Ore")
if Ore then
local OreHealth = GetOreHealth(Ore)
if OreHealth == nil or IsUsableHealth(OreHealth) then
Weapon.RemoteFunction:InvokeServer("hit", { Ore, HitValue })
end
end
end
end
end
end
end
CooldownTimer = 0
end)