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)Made a small script for Craftwars Redux with some pretty OP stuff. You can basically kill enemies instantly and also mine ores really fast with most weapons (default sword doesn't work tho)
There's also some troll options in it. You can mess around by giving enemies and ores infinite HP, or even do stuff like kill all players or give everyone godmode. Some of those need you to have a piece of armor in your backpack first
Script is open source, so if you want you can edit it or make your own things with it. Just something I made for fun
No comments yet. Be the first to comment!
1local PlayersService = game:GetService("Players")
2local RunService = game:GetService("RunService")
3local LocalPlayer = PlayersService.LocalPlayer
4
5local Flags = {
6 Enabled = false,
7 AutoEnemies = false,
8 AutoMines = false,
9 AttackCooldown = 0.5,
10 HitMode = "Damage",
11 MineTargets = {
12 Mine = true,
13 Mine2 = true,
14 Mine3 = true,
15 },
16}
17
18local MineOptions = {
19 "Mine",
20 "Mine2",
21 "Mine3",
22}
23
24local CooldownTimer = 0
25
26local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/theneutral0ne/wally-modified/refs/heads/main/wally-modified.lua"))()
27local MainWindow = Library:CreateWindow("Diddy Menu", {
28 persistwindow = false,
29 itemspacing = 2,
30 togglestyle = "checkmark",
31 underlinecolor = "rainbow",
32})
33
34MainWindow:Section("Main")
35
36MainWindow:Toggle("Enabled", {
37 location = Flags,
38 flag = "Enabled",
39 default = Flags.Enabled,
40 tooltip = "Master switch for this script. If off, no attacks are sent.",
41})
42
43MainWindow:Toggle("Mobs", {
44 location = Flags,
45 flag = "AutoEnemies",
46 default = Flags.AutoEnemies,
47 tooltip = "Automatically hits all valid enemy humanoids in workspace.",
48})
49
50MainWindow:Toggle("Mines", {
51 location = Flags,
52 flag = "AutoMines",
53 default = Flags.AutoMines,
54 tooltip = "Automatically hits ore nodes in the selected mine folders below.",
55})
56
57MainWindow:Dropdown("Mode", {
58 location = Flags,
59 flag = "HitMode",
60 list = { "Damage", "Heal" },
61}, function(Value)
62 Flags.HitMode = Value
63end)
64
65MainWindow:Slider("Cooldown", {
66 location = Flags,
67 flag = "AttackCooldown",
68 min = 0.1,
69 max = 2,
70 default = Flags.AttackCooldown,
71 precise = true,
72 decimals = 2,
73 step = 0.05,
74}, function(Value)
75 Flags.AttackCooldown = Value
76end)
77
78MainWindow:Section("Mine Targets")
79
80MainWindow:MultiSelectList("Mines", {
81 location = Flags,
82 flag = "MineTargets",
83 list = MineOptions,
84 default = Flags.MineTargets,
85 search = true,
86 sort = true,
87 maxVisibleRows = 6,
88 listHeight = 110,
89}, function(SelectedMap)
90 Flags.MineTargets = SelectedMap
91end)
92
93MainWindow:Section("Troll")
94
95MainWindow:Button("God All", {
96 tooltip = "God all players, You must have armour in your backpack to work",
97}, function()
98 for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
99 if string.find(Child.Name, "Armour") and Child:FindFirstChild("RemoteFunction") then
100 for _, Player in ipairs(PlayersService:GetPlayers()) do
101 task.wait()
102 local Character = Player.Character
103 local Humanoid = Character and Character:FindFirstChild("Humanoid")
104 if Humanoid and Humanoid.Health > 0 then
105 Child.RemoteFunction:InvokeServer("protect", { Character, Humanoid, 6000000 })
106 end
107 end
108 end
109 end
110end)
111
112MainWindow:Button("Kill All", {
113 tooltip = "Kills all players, requires armour in backpack to work",
114}, function()
115 for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
116 if string.find(Child.Name, "Armour") and Child:FindFirstChild("RemoteFunction") then
117 for _, Player in ipairs(PlayersService:GetPlayers()) do
118 task.wait()
119 local Character = Player.Character
120 local Humanoid = Character and Character:FindFirstChild("Humanoid")
121 if Player.Name ~= LocalPlayer.Name and Humanoid and Humanoid.Health > 0 then
122 Child.RemoteFunction:InvokeServer("protect", { Character, Humanoid, -math.huge })
123 end
124 end
125 end
126 end
127end)
128
129MainWindow:Button("Set Enemies To 1 HP", {
130 tooltip = "Calculates enemy HP and deals exact damage to leave each one at 1 HP.",
131}, function()
132 local Weapon = nil
133 for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
134 if Child:FindFirstChild("SwordControl") and Child:FindFirstChild("RemoteFunction") then
135 Weapon = Child
136 break
137 end
138 end
139
140 if not Weapon then
141 return
142 end
143
144 for _, Humanoid in ipairs((function()
145 local EnemyHumanoids = {}
146 local Seen = {}
147
148 for _, Descendant in ipairs(workspace:GetDescendants()) do
149 if Descendant:IsA("Model") and Descendant:FindFirstChild("EnemyMain") then
150 local EnemyHumanoid = Descendant:FindFirstChild("Humanoid")
151 if EnemyHumanoid and not Seen[EnemyHumanoid] then
152 Seen[EnemyHumanoid] = true
153 table.insert(EnemyHumanoids, EnemyHumanoid)
154 end
155 end
156 end
157
158 return EnemyHumanoids
159 end)()) do
160 local Health = Humanoid.Health
161 local IsValidHealth = type(Health) == "number" and Health == Health and math.abs(Health) ~= math.huge
162
163 if IsValidHealth and Health > 1 then
164 local DamageNeeded = Health - 1
165 Weapon.RemoteFunction:InvokeServer("hit", { Humanoid, DamageNeeded })
166 end
167 end
168end)
169
170local function IsUsableHealth(Health)
171 return type(Health) == "number"
172 and Health > 0
173 and Health == Health
174 and math.abs(Health) ~= math.huge
175end
176
177local function GetOreHealth(Ore)
178 local Ok, PropertyHealth = pcall(function()
179 return Ore.Health
180 end)
181 if Ok and type(PropertyHealth) == "number" then
182 return PropertyHealth
183 end
184
185 local HealthValue = Ore:FindFirstChild("Health")
186 if HealthValue and type(HealthValue.Value) == "number" then
187 return HealthValue.Value
188 end
189
190 local AttributeHealth = Ore:GetAttribute("Health")
191 if type(AttributeHealth) == "number" then
192 return AttributeHealth
193 end
194
195 return nil
196end
197
198local function GetEnemyHumanoids()
199 local EnemyHumanoids = {}
200 local Seen = {}
201
202 for _, Descendant in ipairs(workspace:GetDescendants()) do
203 if Descendant:IsA("Model") and Descendant:FindFirstChild("EnemyMain") then
204 local Humanoid = Descendant:FindFirstChild("Humanoid")
205 if Humanoid and not Seen[Humanoid] then
206 Seen[Humanoid] = true
207 table.insert(EnemyHumanoids, Humanoid)
208 end
209 end
210 end
211
212 return EnemyHumanoids
213end
214
215RunService.RenderStepped:Connect(function(DeltaTime)
216 CooldownTimer += DeltaTime
217
218 if Flags.Enabled ~= true then
219 return
220 end
221
222 local Weapon = nil
223 for _, Child in ipairs(LocalPlayer.Backpack:GetChildren()) do
224 if Child:FindFirstChild("SwordControl") and Child:FindFirstChild("RemoteFunction") then
225 Weapon = Child
226 break
227 end
228 end
229
230 local Cooldown = tonumber(Flags.AttackCooldown) or 0.5
231 if CooldownTimer < Cooldown or not Weapon then
232 return
233 end
234
235 local HitValue = (Flags.HitMode == "Heal") and -math.huge or math.huge
236
237 if Flags.AutoEnemies == true then
238 for _, Humanoid in ipairs(GetEnemyHumanoids()) do
239 if IsUsableHealth(Humanoid.Health) then
240 Weapon.RemoteFunction:InvokeServer("hit", { Humanoid, HitValue })
241 end
242 end
243 end
244
245 if Flags.AutoMines == true and type(Flags.MineTargets) == "table" then
246 for MineName, IsSelected in pairs(Flags.MineTargets) do
247 if IsSelected == true and type(MineName) == "string" then
248 local MineFolder = workspace:FindFirstChild(MineName)
249 if MineFolder then
250 for _, Child in ipairs(MineFolder:GetChildren()) do
251 local Ore = Child:FindFirstChild("Ore")
252 if Ore then
253 local OreHealth = GetOreHealth(Ore)
254 if OreHealth == nil or IsUsableHealth(OreHealth) then
255 Weapon.RemoteFunction:InvokeServer("hit", { Ore, HitValue })
256 end
257 end
258 end
259 end
260 end
261 end
262 end
263
264 CooldownTimer = 0
265end)