local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/dream77239/china-ui/refs/heads/main/main%20(6).lua"))()
local Window = WindUI:CreateWindow({
Title = "SLAP",
Icon = "eye",
IconThemed = true,
Author = "dk",
Folder = "CloudHub",
Size = UDim2.fromOffset(500, 400),
Transparent = true,
Theme = "Light",
Background = nil,
User = {
Enabled = true,
Callback = function() end,
Anonymous = false
},
SideBarWidth = 200,
ScrollBarEnabled = true
})
local Tab = Window:Tab({
Title = "utility function",
Icon = "hammer",
Locked = false,
})
local plyrs = game:GetService("Players")
local rnsvc = game:GetService("RunService")
local rep = game:GetService("ReplicatedStorage")
local me = plyrs.LocalPlayer
local dodge_remote = rep:WaitForChild("ZAP"):WaitForChild("COMBAT_RELIABLE")
local active = false
local on_cd = false
local delay_busy = false
local hb_conn = nil
local RANGE = 7
local LOOK_MIN = 0.3
local FACE_DOT = -0.2
local hits_now = {
["rbxassetid://137023753042303"] = true,
["rbxassetid://78039768731258"] = true,
["rbxassetid://71159838062692"] = true,
["rbxassetid://78569388764479"] = true,
["rbxassetid://133390518033817"] = true,
}
local slow_one = "rbxassetid://77752802181545"
local slow_two = "rbxassetid://97678088194326"
local function send_dodge()
local b = {
buffer.fromstring("\001\185\222X9/p\218A"),
{}
}
dodge_remote:FireServer(unpack(b))
end
local function grab_root(ch)
return ch and ch:FindFirstChild("HumanoidRootPart")
end
local function fetch_animators(ch)
local out, seen = {}, {}
if not ch then return out end
for _, v in ipairs(ch:GetDescendants()) do
if v:IsA("Animator") and not seen[v] then
seen[v] = true
table.insert(out, v)
end
end
local hum = ch:FindFirstChildWhichIsA("Humanoid")
if hum then
local a = hum:FindFirstChildWhichIsA("Animator")
if a and not seen[a] then table.insert(out, a) end
end
return out
end
local function read_ids(ch)
local ids = {}
for _, anim in ipairs(fetch_animators(ch)) do
pcall(function()
for _, tr in ipairs(anim:GetPlayingAnimationTracks()) do
pcall(function()
local s = tostring(tr.Animation.AnimationId)
if s ~= "" and s ~= "rbxassetid://0" then ids[s] = true end
end)
end
end)
end
return ids
end
local function pick_target()
local my_ch = me.Character
local my_root = grab_root(my_ch)
if not my_root then return nil end
local best, best_score = nil, math.huge
for _, p in ipairs(plyrs:GetPlayers()) do
if p == me then continue end
local ch = p.Character
if not ch then continue end
local root = grab_root(ch)
if not root then continue end
local dist = (my_root.Position - root.Position).Magnitude
if dist > RANGE then continue end
local fwd = my_root.CFrame.LookVector
local to_them = (root.Position - my_root.Position).Unit
local dot_fwd = fwd:Dot(to_them)
if dot_fwd < LOOK_MIN then continue end
local their_fwd = root.CFrame.LookVector
if fwd:Dot(their_fwd) > FACE_DOT then continue end
local score = dist - dot_fwd * 2
if score < best_score then
best_score = score
best = ch
end
end
return best
end
local function begin_loop()
if hb_conn then hb_conn:Disconnect() hb_conn = nil end
hb_conn = rnsvc.Heartbeat:Connect(function()
if not active then return end
if on_cd then return end
local target = pick_target()
if not target then return end
local ids = read_ids(target)
local matched = nil
for id in pairs(hits_now) do
if ids[id] then matched = id break end
end
if matched then
on_cd = true
task.spawn(send_dodge)
task.delay(0.6, function() on_cd = false end)
elseif ids[slow_one] and not delay_busy then
delay_busy = true
on_cd = true
task.delay(0.7, function()
if active then task.spawn(send_dodge) end
task.delay(0.4, function()
on_cd = false
delay_busy = false
end)
end)
elseif ids[slow_two] and not delay_busy then
delay_busy = true
on_cd = true
task.delay(0.4, function()
if active then task.spawn(send_dodge) end
task.delay(0.4, function()
on_cd = false
delay_busy = false
end)
end)
end
end)
end
Tab:Toggle({
Title = "auto dodge",
Desc = "can dodge normal slaps boxer baseball bat fox and a jujutsu kaisen skill idk what it’s called not the new gojo one",
Value = false,
Callback = function(state)
active = state
if state then
on_cd = false
delay_busy = false
begin_loop()
else
if hb_conn then hb_conn:Disconnect() hb_conn = nil end
end
end
})Smart auto dodge script for Slap Battles that reacts to enemy animations in real time. Detects incoming attacks and dodges instantly with precise timing. Clean UI, smooth performance, and built to keep you alive without effort. Works on mobile and PC, fully keyless.
No comments yet. Be the first to comment!
1local WindUI = loadstring(game:HttpGet("https://raw.githubusercontent.com/dream77239/china-ui/refs/heads/main/main%20(6).lua"))()
2local Window = WindUI:CreateWindow({
3 Title = "SLAP",
4 Icon = "eye",
5 IconThemed = true,
6 Author = "dk",
7 Folder = "CloudHub",
8 Size = UDim2.fromOffset(500, 400),
9 Transparent = true,
10 Theme = "Light",
11 Background = nil,
12 User = {
13 Enabled = true,
14 Callback = function() end,
15 Anonymous = false
16 },
17 SideBarWidth = 200,
18 ScrollBarEnabled = true
19})
20local Tab = Window:Tab({
21 Title = "utility function",
22 Icon = "hammer",
23 Locked = false,
24})
25local plyrs = game:GetService("Players")
26local rnsvc = game:GetService("RunService")
27local rep = game:GetService("ReplicatedStorage")
28
29local me = plyrs.LocalPlayer
30local dodge_remote = rep:WaitForChild("ZAP"):WaitForChild("COMBAT_RELIABLE")
31
32local active = false
33local on_cd = false
34local delay_busy = false
35local hb_conn = nil
36
37local RANGE = 7
38local LOOK_MIN = 0.3
39local FACE_DOT = -0.2
40
41local hits_now = {
42 ["rbxassetid://137023753042303"] = true,
43 ["rbxassetid://78039768731258"] = true,
44 ["rbxassetid://71159838062692"] = true,
45 ["rbxassetid://78569388764479"] = true,
46 ["rbxassetid://133390518033817"] = true,
47}
48local slow_one = "rbxassetid://77752802181545"
49local slow_two = "rbxassetid://97678088194326"
50
51local function send_dodge()
52 local b = {
53 buffer.fromstring("\001\185\222X9/p\218A"),
54 {}
55 }
56 dodge_remote:FireServer(unpack(b))
57end
58
59local function grab_root(ch)
60 return ch and ch:FindFirstChild("HumanoidRootPart")
61end
62
63local function fetch_animators(ch)
64 local out, seen = {}, {}
65 if not ch then return out end
66 for _, v in ipairs(ch:GetDescendants()) do
67 if v:IsA("Animator") and not seen[v] then
68 seen[v] = true
69 table.insert(out, v)
70 end
71 end
72 local hum = ch:FindFirstChildWhichIsA("Humanoid")
73 if hum then
74 local a = hum:FindFirstChildWhichIsA("Animator")
75 if a and not seen[a] then table.insert(out, a) end
76 end
77 return out
78end
79
80local function read_ids(ch)
81 local ids = {}
82 for _, anim in ipairs(fetch_animators(ch)) do
83 pcall(function()
84 for _, tr in ipairs(anim:GetPlayingAnimationTracks()) do
85 pcall(function()
86 local s = tostring(tr.Animation.AnimationId)
87 if s ~= "" and s ~= "rbxassetid://0" then ids[s] = true end
88 end)
89 end
90 end)
91 end
92 return ids
93end
94
95local function pick_target()
96 local my_ch = me.Character
97 local my_root = grab_root(my_ch)
98 if not my_root then return nil end
99
100 local best, best_score = nil, math.huge
101 for _, p in ipairs(plyrs:GetPlayers()) do
102 if p == me then continue end
103 local ch = p.Character
104 if not ch then continue end
105 local root = grab_root(ch)
106 if not root then continue end
107
108 local dist = (my_root.Position - root.Position).Magnitude
109 if dist > RANGE then continue end
110
111 local fwd = my_root.CFrame.LookVector
112 local to_them = (root.Position - my_root.Position).Unit
113 local dot_fwd = fwd:Dot(to_them)
114 if dot_fwd < LOOK_MIN then continue end
115
116 local their_fwd = root.CFrame.LookVector
117 if fwd:Dot(their_fwd) > FACE_DOT then continue end
118
119 local score = dist - dot_fwd * 2
120 if score < best_score then
121 best_score = score
122 best = ch
123 end
124 end
125 return best
126end
127
128local function begin_loop()
129 if hb_conn then hb_conn:Disconnect() hb_conn = nil end
130 hb_conn = rnsvc.Heartbeat:Connect(function()
131 if not active then return end
132 if on_cd then return end
133 local target = pick_target()
134 if not target then return end
135 local ids = read_ids(target)
136
137 local matched = nil
138 for id in pairs(hits_now) do
139 if ids[id] then matched = id break end
140 end
141
142 if matched then
143 on_cd = true
144 task.spawn(send_dodge)
145 task.delay(0.6, function() on_cd = false end)
146 elseif ids[slow_one] and not delay_busy then
147 delay_busy = true
148 on_cd = true
149 task.delay(0.7, function()
150 if active then task.spawn(send_dodge) end
151 task.delay(0.4, function()
152 on_cd = false
153 delay_busy = false
154 end)
155 end)
156 elseif ids[slow_two] and not delay_busy then
157 delay_busy = true
158 on_cd = true
159 task.delay(0.4, function()
160 if active then task.spawn(send_dodge) end
161 task.delay(0.4, function()
162 on_cd = false
163 delay_busy = false
164 end)
165 end)
166 end
167 end)
168end
169
170Tab:Toggle({
171 Title = "auto dodge",
172 Desc = "can dodge normal slaps boxer baseball bat fox and a jujutsu kaisen skill idk what it’s called not the new gojo one",
173 Value = false,
174 Callback = function(state)
175 active = state
176 if state then
177 on_cd = false
178 delay_busy = false
179 begin_loop()
180 else
181 if hb_conn then hb_conn:Disconnect() hb_conn = nil end
182 end
183 end
184})