--[[
	WARNING: Heads up! This script has not been verified by ScriptBlox. Use at your own risk!
]]
-- https://[Log in to view URL]
-- https://[Log in to view URL]

local cacheBypass = "?t=" .. tostring(math.random(100000, 999999))
local Library = loadstring(game:HttpGet("https://[Log in to view URL]" .. cacheBypass))()

local Window = Library:CreateWindow("ScriptHouse 2.0", "SCRIPTHOUSE.SERVICES  | Beta")

local TabCombat = Window:CreateTab(" ScriptHouse Free Version")

local AimGroup = TabCombat:CreateGroupbox("Aimbot Settings", "Left")

AimGroup:CreateToggle({
    Name = "Enable Aimbot",
    Default = false,
    Keybind = "E",
    Hold = false,
    Callback = function(Value)
        if Value then
            Library:Notify("Combat", "Aimbot activated!", 3)
        end
    end
})

AimGroup:CreateToggle({
    Name = "Legit Aim (Hold)",
    Default = false,
    Keybind = "Q",
    Hold = true,
    Callback = function(Value)
    end
})

AimGroup:CreateSlider({
    Name = "Aimbot Smoothness",
    Min = 1,
    Max = 10,
    Increment = 0.5,
    Default = 5,
    Callback = function(Value)
    end
})

WeaponGroup:CreateButton({
    Name = "Kill All Enemies",
    Callback = function()
        Library:Notify("Combat Mod", "Executing Kill All...", 3)
    end
})

WeaponGroup:CreateKeybind({
    Name = "Panic Button",
    Default = "K",
    Callback = function(Key)
    end
})

local WeaponGroup = TabCombat:CreateGroupbox("PLAYER BYPASS", "Right")

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer

local noclip = false

RunService.Stepped:Connect(function()
    if noclip and LocalPlayer.Character then
        for _, v in pairs(LocalPlayer.Character:GetDescendants()) do
            if v:IsA("BasePart") then
                v.CanCollide = false
            end
        end
    end
end)

WeaponGroup:CreateToggle({
    Name = "Noclip",
    Default = false,
    Callback = function(state)
        noclip = state
    end
})

WeaponGroup:CreateToggle({
    Name = "Infinite Stamina",
    Default = false,
    Callback = function(Value)
        local gui = LocalPlayer.PlayerGui:FindFirstChild("Run")
        local scriptObj = gui and gui.Frame.Frame.Frame:FindFirstChild("StaminaBarScript")

        if scriptObj then
            scriptObj.Enabled = not Value
        end
    end
})

WeaponGroup:CreateToggle({
    Name = "Infinite Hunger",
    Default = false,
    Callback = function(Value)
        local gui = LocalPlayer.PlayerGui:FindFirstChild("Hunger")
        local scriptObj = gui and gui.Frame.Frame.Frame:FindFirstChild("HungerBarScript")

        if scriptObj then
            scriptObj.Enabled = not Value
        end
    end
})

WeaponGroup:CreateToggle({
    Name = "Infinite Sleep",
    Default = false,
    Callback = function(Value)
        local gui = LocalPlayer.PlayerGui:FindFirstChild("SleepGui")
        local scriptObj = gui and gui.Frame.sleep.SleepBar:FindFirstChild("sleepScript")

        if scriptObj then
            scriptObj.Enabled = not Value
        end
    end
})

WeaponGroup:CreateToggle({
    Name = "Instant Prompt",
    Default = false,
    Callback = function(Value)
        for _, v in pairs(workspace:GetDescendants()) do
            if v:IsA("ProximityPrompt") then
                v.HoldDuration = Value and 0 or 1
                v.RequiresLineOfSight = not Value
            end
        end
    end
})

local JumpDebounceBackup

WeaponGroup:CreateToggle({
    Name = "Remove Jump Cooldown",
    Default = false,
    Callback = function(Value)
        local JumpDebounce = LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce")

        if Value then
            if JumpDebounce then
                JumpDebounceBackup = JumpDebounce:Clone()
                JumpDebounce:Destroy()
            end
        else
            if not LocalPlayer.PlayerGui:FindFirstChild("JumpDebounce") and JumpDebounceBackup then
                JumpDebounceBackup.Parent = LocalPlayer.PlayerGui
                JumpDebounceBackup = nil
            end
        end
    end
})

WeaponGroup:CreateToggle({
    Name = "Anti Fall Damage",
    Default = false,
    Callback = function(Value)
        local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
        local fallDamage = character:FindFirstChild("FallDamageRagdoll")

        if Value and fallDamage then
            fallDamage:Destroy()
        end
    end
})

local ESPGroup = TabCombat:CreateGroupbox("ESP Settings", "Left")

ESPGroup:CreateToggle({
    Name = "Enable ESP",
    Default = false,
    Callback = function(Value)
        if Value then
            ESP:Start()
        else
            ESP:Stop()
        end
    end
})

ESPGroup:CreateSlider({
    Name = "ESP Distance",
    Min = 50,
    Max = 1000,
    Increment = 10,
    Default = 200,
    Callback = function(Value)
        ESP.MaxDistance = Value
    end
})

local TabVisuals = Window:CreateTab("Visuals")

local TeleGroup = TabVisuals:CreateGroupbox("Teleport Locations", "Left")

local Locations = {
    ["🔫 Gunshop"] = Vector3.new(-1010.56, 253.81, -801.62),
    ["🔫 Gunshop 2"] = Vector3.new(66202, 123615.71, 5749.81),
    ["💼 Safe Items"] = Vector3.new(68514.89, 52941.5, -796.09),
    ["🚧 Construction Site"] = Vector3.new(-1731.83, 370.81, -1176.83),
    ["💳 Bank"] = Vector3.new(-224.07, 283.80, -1200.51),
    ["🔥 Pawn Shop"] = Vector3.new(-1049.64, 253.53, -814.26),
    ["🏠 Penthouse"] = Vector3.new(-195.42, 397.13, -573.94),
    ["🚗 Car Dealer"] = Vector3.new(-410.52, 253.25, -1245.55),
    ["🏥 Hospital"] = Vector3.new(-1590.33, 254.27, 19.94),
}

local function TableKeys(tbl)
    local keys = {}
    for key in pairs(tbl) do
        table.insert(keys, key)
    end
    return keys
end

local Players = game:GetService("Players")
local player = Players.LocalPlayer

local SelectedLocation = nil

local function TeleportToLocation()
    if not SelectedLocation then
        Library:Notify("Teleport", "No location selected!", 3)
        return
    end

    local character = player.Character
    local hrp = character and character:FindFirstChild("HumanoidRootPart")

    if hrp then
        hrp.CFrame = CFrame.new(SelectedLocation)
        Library:Notify("Teleport", "Teleported!", 3)
    end
end

TeleGroup:CreateDropdown({
    Name = "Select Location",
    Options = TableKeys(Locations),
    Callback = function(option)
        SelectedLocation = Locations[option]
    end
})

TeleGroup:CreateButton({
    Name = "Teleport",
    Callback = function()
        TeleportToLocation()
    end
})

local GunGroup = TabVisuals:CreateGroupbox("Gun Mods", "Right")

local function GetGunSettings()
    local char = game.Players.LocalPlayer.Character
    if not char then return end

    local tool = char:FindFirstChildOfClass("Tool")
    if not tool then
        Library:Notify("Gun Mods", "No gun equipped!", 3)
        return
    end

    local settings = tool:FindFirstChild("Setting")
    if not settings then
        Library:Notify("Gun Mods", "Gun has no settings!", 3)
        return
    end

    return require(settings)
end

GunGroup:CreateButton({
    Name = "Infinite Ammo",
    Callback = function()
        local s = GetGunSettings()
        if s then
            s.LimitedAmmoEnabled = false
            s.MaxAmmo = 99999
            s.AmmoPerMag = 99999
            s.Ammo = 9999
            Library:Notify("Gun Mods", "Infinite Ammo Enabled", 3)
        end
    end
})

GunGroup:CreateButton({
    Name = "No Recoil",
    Callback = function()
        local s = GetGunSettings()
        if s then
            s.Recoil = 0
            Library:Notify("Gun Mods", "No Recoil Enabled", 3)
        end
    end
})

GunGroup:CreateButton({
    Name = "Automatic Gun",
    Callback = function()
        local s = GetGunSettings()
        if s then
            s.Auto = true
            Library:Notify("Gun Mods", "Auto Enabled", 3)
        end
    end
})

GunGroup:CreateButton({
    Name = "No Fire Rate",
    Callback = function()
        local s = GetGunSettings()
        if s then
            s.FireRate = 0
            Library:Notify("Gun Mods", "Fire Rate Removed", 3)
        end
    end
})

GunGroup:CreateButton({
    Name = "Inf Damage",
    Callback = function()
        local s = GetGunSettings()
        if s then
            s.BaseDamage = 9e9
            Library:Notify("Gun Mods", "Damage Maxed", 3)
        end
    end
})

local GunVisual = TabVisuals:CreateGroupbox("Gun Visuals", "Right")

local GunChams = false
local RainbowChams = false
local ChamsColor = Color3.fromRGB(255, 0, 0)

-- Store original colors and materials
local OriginalColors = {}
local OriginalMaterials = {}

GunVisual:CreateToggle({
    Name = "Enable Gun Chams",
    Default = false,
    Callback = function(state)
        GunChams = state
        
        if not state then
            -- Reset to original when disabled
            for part, color in pairs(OriginalColors) do
                if part and part.Parent then
                    part.Color = color
                    part.Material = OriginalMaterials[part] or Enum.Material.Plastic
                end
            end
            OriginalColors = {}
            OriginalMaterials = {}
        end
    end
})

GunVisual:CreateToggle({
    Name = "Rainbow Chams",
    Default = false,
    Callback = function(state)
        RainbowChams = state
    end
})

GunVisual:CreateColorpicker({
    Name = "Gun Color",
    Default = ChamsColor,
    Callback = function(color)
        ChamsColor = color
    end
})

RunService.Heartbeat:Connect(function()  -- Heartbeat is usually better than RenderStepped for this
    if not GunChams then return end
    
    local character = LocalPlayer.Character
    if not character then return end
    
    local tool = character:FindFirstChildOfClass("Tool")
    if not tool then return end

    for _, part in ipairs(tool:GetDescendants()) do
        if part:IsA("BasePart") and part ~= tool:FindFirstChild("Handle") then  -- Optional: skip handle if you want
            -- Save original state only once
            if not OriginalColors[part] then
                OriginalColors[part] = part.Color
                OriginalMaterials[part] = part.Material
            end

            -- Apply new appearance
            if RainbowChams then
                local hue = (tick() % 5) / 5
                part.Color = Color3.fromHSV(hue, 1, 1)
            else
                part.Color = ChamsColor
            end

            part.Material = Enum.Material.Neon
            part.Transparency = 0  -- Optional: make sure it's visible
        end
    end
end)

Library:Notify("Bymax UI", "Beta Template loaded successfully!", 5)

Embed on website

To embed this project on your website, copy the following code and paste it into your website's HTML: