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
})
[INFINITE & GUN] SLAP Auto Dodge, Animation Detection, Anti Slap (No Key)
Mobile Friendly
5,405 views
6 months ago

Auto Dodge, Animation Detection, Anti Slap (No Key)

WORKING
Free

Description

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.

Features

  • Auto Dodge

Related Scripts