Custom Spec
Key Required

Custom Spec

Old A Bizarre DayNTFOfficialNTFOfficial 1.9K views 71 executesUpdated Jan 24, 2026
5.0/ 5(2 votes)
20100% Positive
Lua Script•797 lines (23312 chars)
-- Sponsored by ntfofficial
-- max damage is actually 95 so u can set it to that

local Workspace = cloneref(game:GetService("Workspace"))
local Players = cloneref(game:GetService("Players"))
local ReplicatedStorage = cloneref(game:GetService("ReplicatedStorage"))
local RunService = cloneref(game:GetService("RunService")) -- we aint even using this!!! las go
local UserInputService = cloneref(game:GetService("UserInputService"))

local CurrentCamera = Workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer

local Module = {
    Setupped = false,

    Character = nil,
    Humanoid = nil,
    RootPart = nil,

    Limits = {
        Velocity = 150
    }
    Moves = {
        Punched = false,
        Posing = false,
        OldWalkSpeed = 16,
        OldJumpPower = 50,
        Limitless = false,
        Invisible = false,
        Blocking = false,
    },
    ArmPatterns = {
        Both = {"larm", "rarm"},
        Left = {"larm"},
        Right = {"rarm"},
    },
    Cooldowns = {}
}

local Remotes = {
    Trail = ReplicatedStorage:FindFirstChild("Trail"),
    Damage = ReplicatedStorage:FindFirstChild("Damage"),
    Berserk = ReplicatedStorage:FindFirstChild("Berserk"),
    StrongPunch = ReplicatedStorage:FindFirstChild("PlayerStrongPunch"),
    Knock = ReplicatedStorage:FindFirstChild("Knock"),
    Menacing = ReplicatedStorage:FindFirstChild("Menacing"),
    Damage2WS = ReplicatedStorage:FindFirstChild("Damage2WS"),
    Transparency = ReplicatedStorage:FindFirstChild("Transparency"),
    Jump = ReplicatedStorage:FindFirstChild("Jump"),
    Block = ReplicatedStorage:FindFirstChild("Block"),
    Dodge = ReplicatedStorage:FindFirstChild("Dodge"),
}
local AnimationsIds = { -- JabPunch rbxassetid://108138428955468 Kick rbxassetid://112759849039654 Shove rbxassetid://137042661991140
    LeftPunch = "rbxassetid://109168458498490",
    RightPunch = "rbxassetid://104315753597984",
    Barrage = "rbxassetid://122520151681707",
    StrongPunch = "rbxassetid://116595636182833",
    Kick = "rbxassetid://112759849039654",
    -- Uppercut = "rbxassetid://126577765659099",
    BloodSuck = "rbxassetid://85438652357440",
    Pose = "rbxassetid://93555492332778",
    StandJump = "rbxassetid://73672319194239",
    Block = "rbxassetid://99732276379513",
    -- Roll = "rbxassetid://131582989683380",
    Slide = "rbxassetid://101914879017648",
    Dash = "rbxassetid://117275109630985",
}
local AnimationInstances = {}

for Name, Id in pairs(AnimationsIds) do
    local Animation = Instance.new("Animation")
    Animation.AnimationId = Id

    AnimationInstances[Name] = Animation
end

local AnimationTracks = {}

do
    function Module:Setup(Character)
        task.spawn(function()
            repeat
                task.wait()
            until Module.Setupped

            Module.Setupped = false

            for _, Child in pairs(LocalPlayer.Backpack:GetChildren()) do
                if Child:IsA("LocalScript") and Child.Name ~= "Client" then
                    Child.Disabled = true
                    break
                end
            end
        end)

        repeat
            task.wait()
        until Character:FindFirstChildOfClass("Humanoid")

        local Humanoid = Character:FindFirstChildOfClass("Humanoid")
        local RootPart = Humanoid.RootPart

        Module.Character = Character
        Module.Humanoid = Humanoid
        Module.RootPart = RootPart

        -- Module.Sounds = nil

        task.spawn(function()
            repeat
                task.wait()
            until Character:FindFirstChild("Stand")

            for _, Child in pairs(Character:GetDescendants()) do
                if Child ~= RootPart and Child:FindFirstChildOfClass("Sound") then
                    Module.Sounds = Child
                    break
                end
            end
        end)

        local Animator = Humanoid:FindFirstChildOfClass("Animator")

        if Animator then
            for Name, Animation in pairs(AnimationInstances) do
                local Track = Animator:LoadAnimation(Animation)
                Track.Looped = Name == "Barrage" or Name == "Pose" or Name == "Block"
                Track.Priority = Enum.AnimationPriority.Action4

                AnimationTracks[Name] = Track
            end
        end
    end

    function Module:UseMove(Move)
        if not Move then
            return
        end

        if Module.Character and Module.Humanoid and (Module.Humanoid.Health > 0 or Module.Humanoid.Health ~= Module.Humanoid.Health) and Module.RootPart then
            if Module.Moves.Posing and Move ~= Module.Moves.Pose or Module.Moves.Blocking and Move ~= Module.Moves.Block then
                return
            end

            Move()
        end
    end

    function Module:Hitbox(CFrame, Size, Bypass)
        local Instances = Workspace:GetPartBoundsInBox(CFrame, Size, OverlapParams.new())
        local Hit = {}
        local Hits = {}

        for _, Instance in pairs(Instances) do
            local Character = Instance:FindFirstAncestorOfClass("Model")

			if Character and Character.Name == "Stand" then
				Character = Character:FindFirstAncestorOfClass("Model")

				if not Character then
					continue
				end
			end

            local Humanoid = (Character and Character:FindFirstChildOfClass("Humanoid"))
			local RootPart = (Humanoid and Humanoid.RootPart)

			if RootPart and Humanoid ~= Module.Humanoid and (Bypass or not table.find(Module.Cooldowns, Humanoid)) and not Hit[Humanoid] then
                Hit[Humanoid] = true

				table.insert(Hits, {
					Character = Character,
					Humanoid = Humanoid,
					RootPart = RootPart
				})
			end
        end

        local Hitbox = Instance.new("Part")
        -- Hitbox.Name = "Hitbox"
        Hitbox.CastShadow = false
        Hitbox.Color = #Hits == 0 and Color3.fromRGB(255, 0, 0) or Color3.fromRGB(0, 255, 0)
        Hitbox.Material = Enum.Material.ForceField
        Hitbox.Size = Size
        Hitbox.CFrame = CFrame
        Hitbox.CanCollide = false
        Hitbox.Anchored = true
        Hitbox.Parent = Workspace

        task.spawn(function()
            for I = 0, 1, 0.05 do
                Hitbox.Transparency = I
                task.wait()
            end

            Hitbox:Destroy()
        end)

        return Hits
    end

    function Module:UseRemote(Remote, ...)
        if Remote then
            Remote:FireServer(...)
        end
    end

    function Module:ToggleTrail(Side, Toggle)
        local Stand = Module.Character:FindFirstChild("Stand")

        if not Stand then
            return
        end

        local Patterns = Module.ArmPatterns[Side or "Both"]

        for _, Child in pairs(Stand:GetChildren()) do
            if not Child:IsA("BasePart") then
                continue
            end

            local Trail = Child:FindFirstChildOfClass("Trail")

            if not Trail then
                continue
            end

            local MatchedPattern = false

            for _, Pattern in pairs(Patterns) do
                if string.find(Child.Name:lower(), Pattern) then
                    MatchedPattern = true

                    Module:UseRemote(Remotes.Trail,
                        Trail,
                        Toggle
                    )

                    break
                end
            end

            if not MatchedPattern then
                Module:UseRemote(Remotes.Trail,
                    Trail,
                    false
                )
            end
        end
    end

    function Module:PlaySound(SoundName)
        if not Module.Sounds or Module.Moves.Invisible then
            return
        end

        local Sound = nil

        if typeof(SoundName) == "string" then
            Sound = Module.Sounds:FindFirstChild(SoundName)

            if not Sound then -- retarded devs cant stick with the same name
                for _, Child in pairs(Module.Sounds:GetChildren()) do
                    if Child:IsA("Sound") and Child.Name:lower() == SoundName:lower() then
                        Sound = Child
                        break
                    end
                end
            end
        else
            for _, SoundName in pairs(SoundName) do -- retarded devs cant stick with the same name part 2
                Sound = Module.Sounds:FindFirstChild(SoundName)

                if Sound then
                    break
                end
            end
        end

        if Sound then
            Sound:Play()
        end
    end

    function Module:Damage(Remote, Humanoid, Cooldown, ...)
        if table.find(Module.Cooldowns, Humanoid) then
			return
		end

        Module:UseRemote(Remote,
			...
		)

        if Cooldown > 0 then
			task.spawn(function()
				table.insert(Module.Cooldowns, Humanoid)

				task.wait(Cooldown)

				local Index = table.find(Module.Cooldowns, Humanoid)

				if Index then
					table.remove(Module.Cooldowns, Index)
				end
			end)
		end
    end

    function Module:GetLookVector(Multiplier)
        return Vector3.new(
            Module.RootPart.CFrame.LookVector.X,
            CurrentCamera.CFrame.LookVector.Y,
            Module.RootPart.CFrame.LookVector.Z
        ).Unit * (Multiplier - 2) -- they have a limit and coz of latency u be gettin kicked
    end

    function Module.Moves:Punch()
        AnimationTracks.LeftPunch:Stop()
        AnimationTracks.RightPunch:Stop()

        if Module.Moves.Punched then
            Module:ToggleTrail("Left", true)
            AnimationTracks.LeftPunch:Play()
        else
            Module:ToggleTrail("Right", true)
            AnimationTracks.RightPunch:Play()
        end

        Module:PlaySound({"Swing", "Punch"})

        task.wait(0.2)

        for _ = 1, 15 do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:Damage(Remotes.Damage, Hit.Humanoid, 0.5,
                    Hit.Humanoid,
                    Hit.RootPart.CFrame,
                    5,
                    0.25,
                    Module.RootPart.CFrame.LookVector * 20,
                    "rbxassetid://241837157",
                    0.035,
                    Color3.new(255, 255, 255),
                    "rbxassetid://260430079",
                    1,
                    1 / #Hits
                )
            end

            task.wait()
        end

        Module:ToggleTrail()
        Module.Moves.Punched = not Module.Moves.Punched
    end

    function Module.Moves:Barrage()
        Module:ToggleTrail("Both", true)
        AnimationTracks.Barrage:Play()

        repeat
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:Damage(Remotes.Damage, Hit.Humanoid, 0.05,
                    Hit.Humanoid,
                    Hit.RootPart.CFrame,
                    15,
                    0.25,
                    Module.RootPart.CFrame.LookVector * 5,
                    "rbxassetid://241837157",
                    0.035,
                    Color3.new(255, 255, 255),
                    "rbxassetid://260430079",
                    1,
                    1 / #Hits
                )

                Module:UseRemote(Remotes.Berserk,
                    Hit.Humanoid
                )
            end

            task.wait()
        until not UserInputService:IsKeyDown("E")

        AnimationTracks.Barrage:Stop()
        Module:ToggleTrail()
    end

    function Module.Moves:StrongPunch()
        Module:ToggleTrail("Right", true)
        AnimationTracks.StrongPunch:Play()

        task.wait(0.4)

        if not Module.Moves.Invisible then
            -- Module:PlaySound("HeavyPunch")
            Module:UseRemote(Remotes.StrongPunch,
                Vector3.new(1, 0.5, 1),
                Vector3.new(0.3, 0.15, 0.3),
                BrickColor.new("Institutional white")
            )
        end

        for _ = 1, 15 do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:Damage(Remotes.Damage, Hit.Humanoid, 0.5,
                    Hit.Humanoid,
                    Hit.RootPart.CFrame,
                    25,
                    0.25,
                    Module.RootPart.CFrame.LookVector * 40,
                    "rbxassetid://241837157",
                    0.035,
                    Color3.new(255, 255, 255),
                    "rbxassetid://260430079",
                    1,
                    1 / #Hits
                )

                Module:UseRemote(Remotes.Knock,
                    Hit.Humanoid
                )
                Module:UseRemote(Remotes.Berserk,
                    Hit.Humanoid
                )
            end

            task.wait()
        end

        Module:ToggleTrail()
    end

    function Module.Moves:Kick()
        AnimationTracks.Kick:Play()

        task.wait(0.2)

        for _ = 1, 15 do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:Damage(Remotes.Damage, Hit.Humanoid, 0.5,
                    Hit.Humanoid,
                    Hit.RootPart.CFrame,
                    35,
                    0.25,
                    Module:GetLookVector(150),
                    "rbxassetid://241837157",
                    0.035,
                    Color3.new(255, 255, 255),
                    "rbxassetid://260430079",
                    1,
                    1 / #Hits
                )

                Module:UseRemote(Remotes.Knock,
                    Hit.Humanoid
                )
            end

            task.wait()
        end
    end

    function Module.Moves:Pose()
        if Module.Moves.Posing then
            AnimationTracks.Pose:Stop()

            Module.Humanoid.WalkSpeed = Module.Moves.OldWalkSpeed
            Module.Humanoid.JumpPower = Module.Moves.OldJumpPower
        else
            AnimationTracks.Pose:Play()

            Module.Moves.OldWalkSpeed = Module.Humanoid.WalkSpeed
            Module.Moves.OldJumpPower = Module.Humanoid.JumpPower

            Module.Humanoid.WalkSpeed = 0
            Module.Humanoid.JumpPower = 0
        end

        if not Module.Moves.Invisible then
            Module:UseRemote(Remotes.Menacing,
                not Module.Moves.Posing
            )
        end

        Module.Moves.Posing = not Module.Moves.Posing
    end

    function Module.Moves:BloodSuck()
        Module:ToggleTrail("Right", true)
        AnimationTracks.BloodSuck:Play()

        task.wait(0.5)

        for _ = 1, 15 do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:Damage(Remotes.Damage2WS, Hit.Humanoid, 0.5,
                    Hit.Humanoid,
                    CFrame.new(),
                    0,
                    0.25,
                    Vector3.new(),
                    0.075,
                    "rbxassetid://1067205170",
                    1,
                    0.36 / #Hits
                )
            end

            task.wait()
        end

        Module:ToggleTrail()
    end

    function Module.Moves:Infinity()
        Module.Moves.Limitless = not Module.Moves.Limitless

        while Module.Moves.Limitless do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame,
                Vector3.new(12.5, 12.5, 12.5)
            )

            for _, Hit in pairs(Hits) do
                local Origin = Module.RootPart.CFrame.Position
                local Distance = (Hit.RootPart.CFrame.Position - Origin).Magnitude
                local Direction = (Hit.RootPart.CFrame.Position - Origin).Unit * Distance
                local RaycastParams = RaycastParams.new()
                RaycastParams.FilterDescendantsInstances = {Module.Character}

                local RaycastResult = Workspace:Raycast(Origin, Direction, RaycastParams)

                if RaycastResult and RaycastResult.Instance and RaycastResult.Instance:IsDescendantOf(Hit.Character) then
                    if Distance < 5 then
                        Module:Damage(Remotes.Damage2WS, Hit.Humanoid, 0,
                            Hit.Humanoid,
                            CFrame.new(),
                            0,
                            0,
                            Vector3.new(),
                            0.075,
                            "rbxassetid://1067205170",
                            1,
                            0.36 / #Hits
                        )
                    end

                    Module:Damage(Remotes.Damage, Hit.Humanoid, 0.25,
                        Hit.Humanoid,
                        CFrame.new(),
                        0,
                        0.25,
                        Vector3.new(),
                        "rbxassetid://241837157",
                        0.035,
                        Color3.new(255, 255, 255),
                        "rbxassetid://260430079",
                        1,
                        1 / #Hits
                    )
                end
            end

            task.wait()
        end
    end

    function Module.Moves:Invisiblity()
        for _, Child in pairs(Module.Character:GetChildren()) do
            local TargetPart = Child:IsA("Part") and Child or Child.Name ~= "Stand" and Child:FindFirstChildOfClass("Part")

            if TargetPart and TargetPart.Name ~= "HumanoidRootPart" then
                Module:UseRemote(Remotes.Transparency,
                    TargetPart,
                    Module.Moves.Invisible and 0 or 1
                )

                if TargetPart.Name == "Head" then
                    TargetPart = TargetPart:FindFirstChildOfClass("Decal")

                    Module:UseRemote(Remotes.Transparency,
                        TargetPart,
                        Module.Moves.Invisible and 0 or 1
                    )
                end
            end
        end

        Module.Moves.Invisible = not Module.Moves.Invisible

        if Module.Moves.Invisible then
            while Module.Moves.Invisible and Module.Character do
                if Module.Character.Dodge and not Module.Character.Dodge.Value then
                    Module:UseRemote(Remotes.Dodge)
                end

                task.wait()
            end
        end
    end

    function Module.Moves:Jump()
        AnimationTracks.StandJump:Play()

        if not Module.Moves.Invisible then
            Module:PlaySound("StandJumpSFX")
            Module:UseRemote(Remotes.Jump,
                BrickColor.new("Institutional white")
            )
        end

		if Module.RootPart:FindFirstChild("BodyPosition") then
			Module.RootPart.BodyPosition.Parent = nil
		end

        local BodyPosition = Instance.new("BodyPosition")
		BodyPosition.MaxForce = Vector3.new(100000, 100000, 100000)
		BodyPosition.Position = Module.RootPart.CFrame * CFrame.new(0, 75, -150).Position
		BodyPosition.Parent = Module.RootPart

        task.wait(1)

		BodyPosition:Destroy()
    end

    function Module.Moves:Block()
        Module.Moves.Blocking = true

        AnimationTracks.Block:Play()

        Module:PlaySound("Guard")
        Module:UseRemote(Remotes.Block,
            true
        )

        repeat
            task.wait()
        until not UserInputService:IsKeyDown("X")

        Module:UseRemote(Remotes.Block,
            false
        )

        AnimationTracks.Block:Stop()
        Module.Moves.Blocking = false
    end

    function Module.Moves:Dodge()
        AnimationTracks.Slide:Play()

        Module:PlaySound("Dodge")
        Module:UseRemote(Remotes.Dodge)

        if Module.RootPart:FindFirstChild("BodyVelocity") then
			Module.RootPart.BodyVelocity.Parent = nil
		end

        local BodyVelocity = Instance.new("BodyVelocity")
		BodyVelocity.MaxForce = Vector3.new(100000, 0, 100000)
		BodyVelocity.Velocity = Module.RootPart.CFrame.LookVector * 75
		BodyVelocity.Parent = Module.RootPart

        for _ = 1, 15 do
            local Hits = Module:Hitbox(
                Module.RootPart.CFrame * CFrame.new(0, 0, -3.75),
                Vector3.new(7.5, 7.5, 7.5)
            )

            for _, Hit in pairs(Hits) do
                Module:UseRemote(Remotes.Knock,
                    Hit.Humanoid
                )
            end

            task.wait()
        end

        task.wait(0.25)

		BodyVelocity:Destroy()

        task.wait(0.15)

        AnimationTracks.Slide:Stop()
    end

    function Module.Moves:Dash()
        AnimationTracks.Dash:Play()

        Module:PlaySound("Dodge")
        Module:UseRemote(Remotes.Dodge)

        if Module.RootPart:FindFirstChild("BodyVelocity") then
			Module.RootPart.BodyVelocity.Parent = nil
		end

        local BodyVelocity = Instance.new("BodyVelocity")
		BodyVelocity.MaxForce = Vector3.new(100000, 100000, 100000)
		BodyVelocity.Velocity = Module.RootPart.CFrame.LookVector * 80 + Vector3.new(0, 3.5, 0)
		BodyVelocity.Parent = Module.RootPart

        task.wait(0.25)

		BodyVelocity:Destroy()

        task.wait(0.15)

        AnimationTracks.Dash:Stop()
    end

    Module.Binds = {
        ["MouseButton1"] = Module.Moves.Punch,
        ["E"] = Module.Moves.Barrage,
        ["R"] = Module.Moves.StrongPunch,
        ["T"] = Module.Moves.Kick,
        ["P"] = Module.Moves.Pose,
        ["F"] = Module.Moves.BloodSuck,
        -- ["G"] = Module.Moves.Infinity, -- scrapped since i fucked smth up
        ["H"] = Module.Moves.Invisiblity,
        ["Z"] = Module.Moves.Jump,
        ["X"] = Module.Moves.Block,
        ["C"] = Module.Moves.Dodge,
        ["V"] = Module.Moves.Dash,
    }
end

if LocalPlayer.Character then
    Module.Setupped = true
    Module:Setup(LocalPlayer.Character)
end

LocalPlayer.CharacterAdded:Connect(function(Character)
    Module:Setup(Character)
end)

UserInputService.InputBegan:Connect(function(Input, GameProcessedEvent)
    if GameProcessedEvent then
        return
    end

    local KeyPress = Input.UserInputType.Name == "Keyboard"
    local Move = nil

    if KeyPress then
        Move = Module.Binds[Input.KeyCode.Name]
    else
        Move = Module.Binds[Input.UserInputType.Name]
    end

    Module:UseMove(Move)
end)

if hookmetamethod then
    local Namecall; Namecall = hookmetamethod(game, "__namecall", function(Self, ...)
        local Method = getnamecallmethod()
        local Args = {...}

        if not checkcaller() and Method == "FireServer" then -- god mode basicly
            if Self.Name == "Stand" then
                Module.Setupped = true

                -- Args[2] = 100
                Args[3] *= 100

                return Namecall(Self, unpack(Args))
            end
        end

        return Namecall(Self, ...)
    end)
end

Features & Information

idk look at the binds, pc only, if u want god mode use a higher unc exploit

Community Comments (9)

BobosiloyBobosiloyJan 24, 2026

Stealer

Replying to @Bobosiloy
scripter132scripter132Jan 24, 2026

@Bobosiloy fym :sob:

Replying to @Bobosiloy
altaccno89altaccno89Jan 24, 2026

@Bobosiloy clearly the script stole ur intellect, i could tell at glance

LhiaQtLhiaQtJan 24, 2026

w

rnugree85rnugree85Feb 16, 2026

cool script i dont think god mode works tho, im using volt btw

Replying to @rnugree85
NTFOfficialNTFOfficialFeb 17, 2026

@rnugree85 just checked and the method is patched so ye

Replying to @NTFOfficial
rnugree85rnugree85Feb 17, 2026

@NTFOfficial rip. its so strange to me that a dead game with 200~ average players has such tight security. their mods arent even getting paid

Replying to @rnugree85
NTFOfficialNTFOfficialMar 23, 2026(edited)

@rnugree85 not really I mean sure some stuff is protected but there's alot of vulnerabilities like https://streamable.com/bnyr6c

i_love_scripti_love_scriptAug 9, 2026

Thank you. I'll modify it and use it alone for the mobile version. It's more difficult than expected to do. Your script is great, even without effects. I really like it. I've been looking forward to working with a custom script for a long time.

More Scripts for Old A Bizarre Day