ZO ぞ SAMURAI Script | ZQ SAMUR4I PAID CRACKED


-- Configuration (you can customize these values)
local setspeed = 55 -- You can change the walkspeed here
local highlightColor = Color3.fromRGB(0, 255, 0) -- Green color
local highlightTransparency = 0.5 -- Highlight transparency
local rotationSpeed = 75 -- Desired rotation speed (in degrees per second)

-- WalkSpeed Spoof Script
local WalkSpeedSpoof = getgenv().WalkSpeedSpoof
local Disable = WalkSpeedSpoof and WalkSpeedSpoof.Disable

if Disable then
    Disable()
end

local cloneref = cloneref or function(...)
    return ...
end

local WalkSpeedSpoof = {}

local Players = cloneref(game:GetService("Players"))

if not Players.LocalPlayer then
    Players:GetPropertyChangedSignal("LocalPlayer"):Wait()
end

local lp = cloneref(Players.LocalPlayer)

local split = string.split

local GetDebugIdHandler = Instance.new("BindableFunction")
local TempHumanoid = Instance.new("Humanoid")

local cachedhumanoids = {}

local CurrentHumanoid
local newindexhook
local indexhook

function GetDebugIdHandler.OnInvoke(obj: Instance): string
    return obj:GetDebugId()
end

local function GetDebugId(obj: Instance): string
    return GetDebugIdHandler:Invoke(obj)
end

local function GetWalkSpeed(obj: any): number
    TempHumanoid.WalkSpeed = obj
    return TempHumanoid.WalkSpeed
end

function cachedhumanoids:cacheHumanoid(DebugId: string, Humanoid: Humanoid)
    cachedhumanoids[DebugId] = {
        currentindex = indexhook(Humanoid, "WalkSpeed"),
        lastnewindex = nil
    }
    return self[DebugId]
end

indexhook = hookmetamethod(game, "__index", function(self, index)
    if not checkcaller() and typeof(self) == "Instance" then
        if self:IsA("Humanoid") then
            local DebugId = GetDebugId(self)
            local cached = cachedhumanoids[DebugId]

            if self:IsDescendantOf(lp.Character) or cached then
                if type(index) == "string" then
                    local cleanindex = split(index, "\0")[1]

                    if cleanindex == "WalkSpeed" then
                        if not cached then
                            cached = cachedhumanoids:cacheHumanoid(DebugId, self)
                        end

                        if not (CurrentHumanoid and CurrentHumanoid:IsDescendantOf(game)) then
                            CurrentHumanoid = cloneref(self)
                        end

                        return cached.lastnewindex or cached.currentindex
                    end
                end
            end
        end
    end

    return indexhook(self, index)
end)

newindexhook = hookmetamethod(game, "__newindex", function(self, index, newindex)
    if not checkcaller() and typeof(self) == "Instance" then
        if self:IsA("Humanoid") then
            local DebugId = GetDebugId(self)
            local cached = cachedhumanoids[DebugId]

            if self:IsDescendantOf(lp.Character) or cached then
                if type(index) == "string" then
                    local cleanindex = split(index, "\0")[1]

                    if cleanindex == "WalkSpeed" then
                        if not cached then
                            cached = cachedhumanoids:cacheHumanoid(DebugId, self)
                        end

                        if not (CurrentHumanoid and CurrentHumanoid:IsDescendantOf(game)) then
                            CurrentHumanoid = cloneref(self)
                        end
                        cached.lastnewindex = GetWalkSpeed(newindex)
                        return CurrentHumanoid.WalkSpeed
                    end
                end
            end
        end
    end

    return newindexhook(self, index, newindex)
end)

function WalkSpeedSpoof:Disable()
    WalkSpeedSpoof:RestoreWalkSpeed()
    hookmetamethod(game, "__index", indexhook)
    hookmetamethod(game, "__newindex", newindexhook)
    GetDebugIdHandler:Destroy()
    TempHumanoid:Destroy()
    table.clear(WalkSpeedSpoof)
    getgenv().WalkSpeedSpoof = nil
end

function WalkSpeedSpoof:GetHumanoid()
    return CurrentHumanoid or (function()
        local char = lp.Character
        local Humanoid = char and char:FindFirstChildWhichIsA("Humanoid") or nil

        if Humanoid then
            cachedhumanoids:cacheHumanoid(Humanoid:GetDebugId(), Humanoid)
            return cloneref(Humanoid)
        end
    end)()
end

function WalkSpeedSpoof:SetWalkSpeed(speed)
    local Humanoid = WalkSpeedSpoof:GetHumanoid()

    if Humanoid then
        local connections = {}

        local function AddConnectionsFromSignal(Signal)
            for i, v in getconnections(Signal) do
                if v.State then
                    v:Disable()
                    table.insert(connections, v)
                end
            end
        end

        AddConnectionsFromSignal(Humanoid.Changed)
        AddConnectionsFromSignal(Humanoid:GetPropertyChangedSignal("WalkSpeed"))
        Humanoid.WalkSpeed = speed

        for i, v in connections do
            v:Enable()
        end
    end
end

function WalkSpeedSpoof:RestoreWalkSpeed()
    local Humanoid = WalkSpeedSpoof:GetHumanoid()

    if Humanoid then
        local cached = cachedhumanoids[Humanoid:GetDebugId()]

        if cached then
            WalkSpeedSpoof:SetWalkSpeed(cached.lastnewindex or cached.currentindex)
        end
    end
end

getgenv().WalkSpeedSpoof = WalkSpeedSpoof

if setspeed then
    WalkSpeedSpoof:SetWalkSpeed(setspeed)
end



-- settings
local settings = {
   defaultcolor = Color3.fromRGB(255,0,0),
   teamcheck = false,
   teamcolor = false
};
 
-- services
local runService = game:GetService("RunService");
local players = game:GetService("Players");
 
-- variables
local localPlayer = players.LocalPlayer;
local camera = workspace.CurrentCamera;
 
-- functions
local newVector2, newColor3, newDrawing = Vector2.new, Color3.new, Drawing.new;
local tan, rad = math.tan, math.rad;
local round = function(...) local a = {}; for i,v in next, table.pack(...) do a[i] = math.round(v); end return unpack(a); end;
local wtvp = function(...) local a, b = camera.WorldToViewportPoint(camera, ...) return newVector2(a.X, a.Y), b, a.Z end;
 
local espCache = {};
local function createEsp(player)
   local drawings = {};
 
   drawings.box = newDrawing("Square");
   drawings.box.Thickness = 1;
   drawings.box.Filled = false;
   drawings.box.Color = settings.defaultcolor;
   drawings.box.Visible = false;
   drawings.box.ZIndex = 2;
 
   drawings.boxoutline = newDrawing("Square");
   drawings.boxoutline.Thickness = 3;
   drawings.boxoutline.Filled = false;
   drawings.boxoutline.Color = newColor3();
   drawings.boxoutline.Visible = false;
   drawings.boxoutline.ZIndex = 1;
 
   espCache[player] = drawings;
end
 
local function removeEsp(player)
   if rawget(espCache, player) then
       for _, drawing in next, espCache[player] do
           drawing:Remove();
       end
       espCache[player] = nil;
   end
end
 
local function updateEsp(player, esp)
   local character = player and player.Character;
   if character then
       local cframe = character:GetModelCFrame();
       local position, visible, depth = wtvp(cframe.Position);
       esp.box.Visible = visible;
       esp.boxoutline.Visible = visible;
 
       if cframe and visible then
           local scaleFactor = 1 / (depth * tan(rad(camera.FieldOfView / 2)) * 2) * 1000;
           local width, height = round(4 * scaleFactor, 5 * scaleFactor);
           local x, y = round(position.X, position.Y);
 
           esp.box.Size = newVector2(width, height);
           esp.box.Position = newVector2(round(x - width / 2, y - height / 2));
           esp.box.Color = settings.teamcolor and player.TeamColor.Color or settings.defaultcolor;
 
           esp.boxoutline.Size = esp.box.Size;
           esp.boxoutline.Position = esp.box.Position;
       end
   else
       esp.box.Visible = false;
       esp.boxoutline.Visible = false;
   end
end
 
-- main
for _, player in next, players:GetPlayers() do
   if player ~= localPlayer then
       createEsp(player);
   end
end
 
players.PlayerAdded:Connect(function(player)
   createEsp(player);
end);
 
players.PlayerRemoving:Connect(function(player)
   removeEsp(player);
end)
 
runService:BindToRenderStep("esp", Enum.RenderPriority.Camera.Value, function()
   for player, drawings in next, espCache do
       if settings.teamcheck and player.Team == localPlayer.Team then
           continue;
       end
 
       if drawings and player ~= localPlayer then
           updateEsp(player, drawings);
       end
   end
end)
-------------
--Esp Players
--------------
-- Function to create the menu
local function createMenu()
    -- Create a ScreenGui for the menu
    local screenGui = Instance.new("ScreenGui")
    screenGui.Name = "WalkSpeedMenu"
    screenGui.Parent = game.Players.LocalPlayer.PlayerGui

    -- Create a Frame for the menu
    local menuFrame = Instance.new("Frame")
    menuFrame.Size = UDim2.new(0, 200, 0, 200)
    menuFrame.Position = UDim2.new(1, -210, 0, 10) -- Position on the right side
    menuFrame.BackgroundColor3 = Color3.fromRGB(30, 30, 30)
    menuFrame.BorderSizePixel = 0
    menuFrame.Parent = screenGui

    -- Create a TextButton for activating WalkSpeed
    local walkSpeedButton = Instance.new("TextButton")
    walkSpeedButton.Size = UDim2.new(0, 180, 0, 50)
    walkSpeedButton.Position = UDim2.new(0, 10, 0, 10)
    walkSpeedButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
    walkSpeedButton.BorderSizePixel = 0
    walkSpeedButton.Text = "WalkSpeed"
    walkSpeedButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    walkSpeedButton.TextSize = 14
    walkSpeedButton.Parent = menuFrame

    -- Create a TextButton for teleporting to a location
    local teleportButton = Instance.new("TextButton")
    teleportButton.Size = UDim2.new(0, 180, 0, 50)
    teleportButton.Position = UDim2.new(0, 10, 0, 70)
    teleportButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
    teleportButton.BorderSizePixel = 0
    teleportButton.Text = "Teleport"
    teleportButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    teleportButton.TextSize = 14
    teleportButton.Parent = menuFrame

    -- Create a TextButton for the new option (Rotate Character)
    local rotateCharacterButton = Instance.new("TextButton")
    rotateCharacterButton.Size = UDim2.new(0, 180, 0, 50)
    rotateCharacterButton.Position = UDim2.new(0, 10, 0, 130)
    rotateCharacterButton.BackgroundColor3 = Color3.fromRGB(0, 120, 215)
    rotateCharacterButton.BorderSizePixel = 0
    rotateCharacterButton.Text = "Rotate Character"
    rotateCharacterButton.TextColor3 = Color3.fromRGB(255, 255, 255)
    rotateCharacterButton.TextSize = 14
    rotateCharacterButton.Parent = menuFrame

    -- Function to execute when the WalkSpeed TextButton is clicked
    local function onWalkSpeedButtonClick()
        if setspeed then
            WalkSpeedSpoof:SetWalkSpeed(setspeed)
            walkSpeedButton.Text = "WalkSpeed"
        end
    end

    -- Function to execute when the Teleport TextButton is clicked
    local function onTeleportButtonClick()
        local pl = game.Players.LocalPlayer.Character.HumanoidRootPart
        local location = CFrame.new(258.0343627929, 1.7026300430297852, 287.22637939453125)
        local humanoid = game.Players.LocalPlayer.Character.Humanoid
        humanoid:ChangeState(Enum.HumanoidStateType.Swimming)
        wait(0.1)
        pl.CFrame = location
    end

    -- Function to execute when the Rotate Character TextButton is clicked
    local function onRotateCharacterButtonClick()
        local character = game.Players.LocalPlayer.Character
        if character then
            local humanoid = character:FindFirstChildOfClass("Humanoid")
            if humanoid then
                local rootPart = character:FindFirstChild("HumanoidRootPart")
                if rootPart then
                    while true do
                        rootPart.CFrame = rootPart.CFrame * CFrame.Angles(0, math.rad(rotationSpeed), 0)
                        wait()
                    end
                end
            end
        end
    end

    -- Connect the TextButton's Click events to their respective functions
    walkSpeedButton.MouseButton1Click:Connect(onWalkSpeedButtonClick)
    teleportButton.MouseButton1Click:Connect(onTeleportButtonClick)
    rotateCharacterButton.MouseButton1Click:Connect(onRotateCharacterButtonClick)
end

-- Create the menu when the script runs
createMenu()

-- Create the menu when the player's character is added
game.Players.LocalPlayer.CharacterAdded:Connect(createMenu)
Scroll to Top