weird strict dad
Key RequiredUniversal

weird strict dad

Universal Scriptalexkkork123alexkkork123 7K views 1.6K executesUpdated Feb 2, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Scriptβ€’1734 lines (50094 chars)
--[[
    ╔══════════════════════════════════════════════════════════════╗
    β•‘          WEIRD STRICT DAD - EXPLOIT SCRIPT V1                β•‘
    β•‘              All Gamemodes | All Chapters                    β•‘
    β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
    
    Game: Weird Strict Dad
    Supports:
      - Lobby
      - Book 1 Chapters 1-5 (Normal & Nightmare)
      - Book 2 Chapter 1 (Nightmare)
    
    Features: 
      - Enemy ESP (Dad, PossesedDad, Xenobus, PossesedMom)
      - Player ESP
      - Item ESP (Batteries, Gas Cans)
      - Speed Hack
      - Fly
      - Noclip
      - Third Person Camera
      - Fullbright
      - Anti-Jumpscare
      - Auto Tasks
      - Teleportation
      - Code Redeemer
]]

-- ═══════════════════════════════════════════════════════════════
-- SERVICES
-- ═══════════════════════════════════════════════════════════════
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TweenService = game:GetService("TweenService")
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
local StarterGui = game:GetService("StarterGui")
local PhysicsService = game:GetService("PhysicsService")

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

-- ═══════════════════════════════════════════════════════════════
-- STATE VARIABLES
-- ═══════════════════════════════════════════════════════════════
-- ESP States
local EnemyESPEnabled = false
local PlayerESPEnabled = false
local ItemESPEnabled = false

-- Movement States
local SpeedEnabled = false
local FlyEnabled = false
local NoclipEnabled = false
local InfiniteJumpEnabled = false

-- Camera States
local ThirdPersonEnabled = false
local FullbrightEnabled = false

-- Anti-Detection States
local AntiJumpscareEnabled = false
local AntiWarningEnabled = false
local AntiFadeEnabled = false

-- Auto Task States
local AutoBatteryEnabled = false
local AutoGeneratorEnabled = false
local AutoTasksEnabled = false

-- ═══════════════════════════════════════════════════════════════
-- SETTINGS
-- ═══════════════════════════════════════════════════════════════
local Settings = {
    -- ESP Settings
    EnemyESPColor = Color3.fromRGB(255, 0, 0),
    PlayerESPColor = Color3.fromRGB(0, 255, 0),
    ItemESPColor = Color3.fromRGB(255, 255, 0),
    
    -- Movement Settings
    SpeedValue = 32,
    FlySpeed = 50,
    
    -- Camera Settings
    FOVValue = 70,
    ZoomDistance = 128,
    
    -- Original Values (for restoration)
    OriginalWalkSpeed = 10,
    OriginalAmbient = nil,
    OriginalBrightness = nil,
    OriginalFogEnd = nil,
}

-- ═══════════════════════════════════════════════════════════════
-- GAMEMODE DETECTION
-- ═══════════════════════════════════════════════════════════════
local GameInfo = {
    IsLobby = false,
    Book = 0,
    Chapter = 0,
    IsNightmare = false,
    GameName = ""
}

local function DetectGamemode()
    -- Check for lobby indicators
    local gameFolder = Workspace:FindFirstChild("Game")
    local lobbyIndicators = {
        Workspace:FindFirstChild("VRLobby"),
        ReplicatedStorage:FindFirstChild("GameQueue"),
        Workspace:FindFirstChild("Gamepass")
    }
    
    -- Check PlaceId or game structure
    local placeName = game.Name or ""
    
    -- Detect lobby
    for _, indicator in ipairs(lobbyIndicators) do
        if indicator then
            GameInfo.IsLobby = true
            GameInfo.GameName = "Lobby"
            return
        end
    end
    
    -- Check for Book 2 (Forest)
    if Workspace:FindFirstChild("Plane") or Workspace:FindFirstChild("GoodEnding") then
        GameInfo.Book = 2
        GameInfo.Chapter = 1
        GameInfo.IsNightmare = true
        GameInfo.GameName = "Book 2 Chapter 1 (Nightmare)"
        return
    end
    
    -- Check for Book 1 chapters
    if gameFolder then
        GameInfo.Book = 1
        
        -- Check for PossesedDad (indicates nightmare mode)
        if Workspace:FindFirstChild("PossesedDad") or 
           (gameFolder:FindFirstChild("dad") and gameFolder.dad:FindFirstChild("PossesedDad")) then
            GameInfo.IsNightmare = true
        end
        
        -- Try to detect chapter from workspace structure
        local chapterIndicators = {
            trashes = 1,
            Socket = 1,
            TrashBin = 1,
        }
        
        for name, chapter in pairs(chapterIndicators) do
            if gameFolder:FindFirstChild(name) then
                GameInfo.Chapter = chapter
                break
            end
        end
        
        if GameInfo.Chapter == 0 then
            GameInfo.Chapter = 1 -- Default to chapter 1
        end
        
        local nightmareStr = GameInfo.IsNightmare and " (Nightmare)" or " (Normal)"
        GameInfo.GameName = "Book 1 Chapter " .. GameInfo.Chapter .. nightmareStr
    end
    
    -- Fallback
    if GameInfo.GameName == "" then
        GameInfo.GameName = "Unknown Gamemode"
    end
end

-- ═══════════════════════════════════════════════════════════════
-- ESP STORAGE
-- ═══════════════════════════════════════════════════════════════
local ESPObjects = {
    Enemies = {},
    Players = {},
    Items = {}
}

-- ═══════════════════════════════════════════════════════════════
-- UTILITY FUNCTIONS
-- ═══════════════════════════════════════════════════════════════
local function Notify(title, text, duration)
    pcall(function()
        StarterGui:SetCore("SendNotification", {
            Title = title,
            Text = text,
            Duration = duration or 3
        })
    end)
end

local function GetRemote(path)
    local parts = string.split(path, ".")
    local current = game
    for _, part in ipairs(parts) do
        current = current:FindFirstChild(part)
        if not current then return nil end
    end
    return current
end

local function SafeFireServer(remote, ...)
    if remote then
        local args = {...}
        pcall(function()
            remote:FireServer(unpack(args))
        end)
    end
end

local function GetCharacter()
    return LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
end

local function GetHumanoid()
    local char = GetCharacter()
    return char and char:FindFirstChildOfClass("Humanoid")
end

local function GetHRP()
    local char = GetCharacter()
    return char and char:FindFirstChild("HumanoidRootPart")
end

local function IsAlive(player)
    local char = player and player.Character
    if char then
        local humanoid = char:FindFirstChildOfClass("Humanoid")
        return humanoid and humanoid.Health > 0
    end
    return false
end

-- ═══════════════════════════════════════════════════════════════
-- ESP SYSTEM
-- ═══════════════════════════════════════════════════════════════
local function CreateHighlight(instance, color, name)
    if not instance then return nil end
    
    local highlight = Instance.new("Highlight")
    highlight.Name = name or "ESP_Highlight"
    highlight.Adornee = instance
    highlight.FillColor = color
    highlight.OutlineColor = color
    highlight.FillTransparency = 0.7
    highlight.OutlineTransparency = 0
    highlight.DepthMode = Enum.HighlightDepthMode.AlwaysOnTop
    highlight.Parent = instance
    
    return highlight
end

local function CreateBillboard(instance, text, color)
    if not instance then return nil end
    
    local billboard = Instance.new("BillboardGui")
    billboard.Name = "ESP_Billboard"
    billboard.Adornee = instance
    billboard.Size = UDim2.new(0, 100, 0, 40)
    billboard.StudsOffset = Vector3.new(0, 3, 0)
    billboard.AlwaysOnTop = true
    billboard.Parent = instance
    
    local label = Instance.new("TextLabel")
    label.Name = "Label"
    label.Size = UDim2.new(1, 0, 1, 0)
    label.BackgroundTransparency = 1
    label.TextColor3 = color
    label.TextStrokeTransparency = 0
    label.TextStrokeColor3 = Color3.new(0, 0, 0)
    label.Font = Enum.Font.GothamBold
    label.TextScaled = true
    label.Text = text
    label.Parent = billboard
    
    return billboard
end

local function RemoveESPFromInstance(instance)
    if instance then
        local highlight = instance:FindFirstChild("ESP_Highlight")
        local billboard = instance:FindFirstChild("ESP_Billboard")
        if highlight then highlight:Destroy() end
        if billboard then billboard:Destroy() end
    end
end

-- Enemy ESP
local EnemyNames = {
    "Dad", "PossesedDad", "Xenobus", "PossesedMom", "PossesedMom2", 
    "Monster", "LastDad", "MomChase", "Hallucination"
}

local function FindEnemies()
    local enemies = {}
    
    -- Search in common locations
    local searchLocations = {
        Workspace,
        Workspace:FindFirstChild("Game"),
        Workspace:FindFirstChild("GoodEnding"),
        Workspace:FindFirstChild("House"),
    }
    
    for _, location in ipairs(searchLocations) do
        if location then
            for _, enemyName in ipairs(EnemyNames) do
                local enemy = location:FindFirstChild(enemyName, true)
                if enemy then
                    table.insert(enemies, enemy)
                end
            end
        end
    end
    
    return enemies
end

local function UpdateEnemyESP()
    -- Clear old ESP
    for _, esp in pairs(ESPObjects.Enemies) do
        if esp.Highlight then esp.Highlight:Destroy() end
        if esp.Billboard then esp.Billboard:Destroy() end
    end
    ESPObjects.Enemies = {}
    
    if not EnemyESPEnabled then return end
    
    local enemies = FindEnemies()
    for _, enemy in ipairs(enemies) do
        local humanoidRootPart = enemy:FindFirstChild("HumanoidRootPart") or 
                                  enemy:FindFirstChild("Torso") or
                                  enemy:FindFirstChild("Head") or
                                  enemy.PrimaryPart
        
        if humanoidRootPart then
            local highlight = CreateHighlight(enemy, Settings.EnemyESPColor, "ESP_Highlight")
            local billboard = CreateBillboard(humanoidRootPart, enemy.Name, Settings.EnemyESPColor)
            
            ESPObjects.Enemies[enemy] = {
                Highlight = highlight,
                Billboard = billboard
            }
        end
    end
end

local function EnableEnemyESP()
    EnemyESPEnabled = true
    UpdateEnemyESP()
    Notify("ESP", "Enemy ESP Enabled", 2)
end

local function DisableEnemyESP()
    EnemyESPEnabled = false
    for _, esp in pairs(ESPObjects.Enemies) do
        if esp.Highlight then esp.Highlight:Destroy() end
        if esp.Billboard then esp.Billboard:Destroy() end
    end
    ESPObjects.Enemies = {}
    Notify("ESP", "Enemy ESP Disabled", 2)
end

-- Player ESP
local function UpdatePlayerESP()
    -- Clear old ESP for removed players
    for player, esp in pairs(ESPObjects.Players) do
        if not player or not player.Parent then
            if esp.Highlight then esp.Highlight:Destroy() end
            if esp.Billboard then esp.Billboard:Destroy() end
            ESPObjects.Players[player] = nil
        end
    end
    
    if not PlayerESPEnabled then return end
    
    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            local hrp = player.Character:FindFirstChild("HumanoidRootPart")
            local humanoid = player.Character:FindFirstChildOfClass("Humanoid")
            
            if hrp and humanoid and not ESPObjects.Players[player] then
                local highlight = CreateHighlight(player.Character, Settings.PlayerESPColor, "ESP_Highlight")
                local billboard = CreateBillboard(hrp, player.DisplayName, Settings.PlayerESPColor)
                
                ESPObjects.Players[player] = {
                    Highlight = highlight,
                    Billboard = billboard,
                    Character = player.Character
                }
            end
            
            -- Update billboard text with distance
            if ESPObjects.Players[player] and ESPObjects.Players[player].Billboard then
                local myHRP = GetHRP()
                if myHRP and hrp then
                    local distance = math.floor((myHRP.Position - hrp.Position).Magnitude)
                    local health = humanoid and math.floor(humanoid.Health) or 0
                    local label = ESPObjects.Players[player].Billboard:FindFirstChild("Label")
                    if label then
                        label.Text = string.format("%s\n%d HP | %d studs", player.DisplayName, health, distance)
                    end
                end
            end
        end
    end
end

local function EnablePlayerESP()
    PlayerESPEnabled = true
    UpdatePlayerESP()
    Notify("ESP", "Player ESP Enabled", 2)
end

local function DisablePlayerESP()
    PlayerESPEnabled = false
    for _, esp in pairs(ESPObjects.Players) do
        if esp.Highlight then esp.Highlight:Destroy() end
        if esp.Billboard then esp.Billboard:Destroy() end
    end
    ESPObjects.Players = {}
    Notify("ESP", "Player ESP Disabled", 2)
end

-- Item ESP
local ItemNames = {
    "Battery", "GasCan", "gas can", "Apple", "Banana", "Remote", "Drinking Glass"
}

local function FindItems()
    local items = {}
    
    local searchLocations = {
        Workspace,
        Workspace:FindFirstChild("House"),
        Workspace:FindFirstChild("Game"),
    }
    
    for _, location in ipairs(searchLocations) do
        if location then
            -- Find batteries
            local batteries = location:FindFirstChild("Batteries", true)
            if batteries then
                for _, battery in ipairs(batteries:GetChildren()) do
                    if battery.Name == "Battery" then
                        table.insert(items, battery)
                    end
                end
            end
            
            -- Find gas cans
            local gasCans = location:FindFirstChild("GasCans", true)
            if gasCans then
                for _, can in ipairs(gasCans:GetChildren()) do
                    table.insert(items, can)
                end
            end
            
            -- Generic item search
            for _, itemName in ipairs(ItemNames) do
                for _, item in ipairs(location:GetDescendants()) do
                    if item.Name == itemName and item:IsA("BasePart") or item:IsA("Model") then
                        if not table.find(items, item) then
                            table.insert(items, item)
                        end
                    end
                end
            end
        end
    end
    
    return items
end

local function UpdateItemESP()
    -- Clear old ESP
    for _, esp in pairs(ESPObjects.Items) do
        if esp.Highlight then pcall(function() esp.Highlight:Destroy() end) end
        if esp.Billboard then pcall(function() esp.Billboard:Destroy() end) end
    end
    ESPObjects.Items = {}
    
    if not ItemESPEnabled then return end
    
    local items = FindItems()
    for _, item in ipairs(items) do
        local part = item:IsA("Model") and (item.PrimaryPart or item:FindFirstChildWhichIsA("BasePart")) or item
        
        if part then
            local highlight = CreateHighlight(item:IsA("Model") and item or part, Settings.ItemESPColor, "ESP_Highlight")
            local billboard = CreateBillboard(part, item.Name, Settings.ItemESPColor)
            
            ESPObjects.Items[item] = {
                Highlight = highlight,
                Billboard = billboard
            }
        end
    end
end

local function EnableItemESP()
    ItemESPEnabled = true
    UpdateItemESP()
    Notify("ESP", "Item ESP Enabled", 2)
end

local function DisableItemESP()
    ItemESPEnabled = false
    for _, esp in pairs(ESPObjects.Items) do
        if esp.Highlight then pcall(function() esp.Highlight:Destroy() end) end
        if esp.Billboard then pcall(function() esp.Billboard:Destroy() end) end
    end
    ESPObjects.Items = {}
    Notify("ESP", "Item ESP Disabled", 2)
end

-- ═══════════════════════════════════════════════════════════════
-- MOVEMENT HACKS
-- ═══════════════════════════════════════════════════════════════
local SpeedConnection = nil

local function EnableSpeed()
    SpeedEnabled = true
    
    local humanoid = GetHumanoid()
    if humanoid then
        Settings.OriginalWalkSpeed = humanoid.WalkSpeed
        humanoid.WalkSpeed = Settings.SpeedValue
    end
    
    -- Maintain speed on respawn
    SpeedConnection = RunService.Heartbeat:Connect(function()
        if SpeedEnabled then
            local hum = GetHumanoid()
            if hum and hum.WalkSpeed ~= Settings.SpeedValue then
                hum.WalkSpeed = Settings.SpeedValue
            end
        end
    end)
    
    Notify("Speed", "Speed Enabled: " .. Settings.SpeedValue, 2)
end

local function DisableSpeed()
    SpeedEnabled = false
    
    if SpeedConnection then
        SpeedConnection:Disconnect()
        SpeedConnection = nil
    end
    
    local humanoid = GetHumanoid()
    if humanoid then
        humanoid.WalkSpeed = Settings.OriginalWalkSpeed or 10
    end
    
    Notify("Speed", "Speed Disabled", 2)
end

-- Fly
local FlyConnection = nil
local BodyVelocity = nil
local BodyGyro = nil

local function EnableFly()
    FlyEnabled = true
    
    local hrp = GetHRP()
    local humanoid = GetHumanoid()
    
    if hrp and humanoid then
        BodyVelocity = Instance.new("BodyVelocity")
        BodyVelocity.MaxForce = Vector3.new(math.huge, math.huge, math.huge)
        BodyVelocity.Velocity = Vector3.new(0, 0, 0)
        BodyVelocity.Parent = hrp
        
        BodyGyro = Instance.new("BodyGyro")
        BodyGyro.MaxTorque = Vector3.new(math.huge, math.huge, math.huge)
        BodyGyro.P = 10000
        BodyGyro.Parent = hrp
        
        humanoid.PlatformStand = true
        
        FlyConnection = RunService.RenderStepped:Connect(function()
            if FlyEnabled and hrp and BodyVelocity and BodyGyro then
                local direction = Vector3.new(0, 0, 0)
                
                if UserInputService:IsKeyDown(Enum.KeyCode.W) then
                    direction = direction + Camera.CFrame.LookVector
                end
                if UserInputService:IsKeyDown(Enum.KeyCode.S) then
                    direction = direction - Camera.CFrame.LookVector
                end
                if UserInputService:IsKeyDown(Enum.KeyCode.A) then
                    direction = direction - Camera.CFrame.RightVector
                end
                if UserInputService:IsKeyDown(Enum.KeyCode.D) then
                    direction = direction + Camera.CFrame.RightVector
                end
                if UserInputService:IsKeyDown(Enum.KeyCode.Space) then
                    direction = direction + Vector3.new(0, 1, 0)
                end
                if UserInputService:IsKeyDown(Enum.KeyCode.LeftControl) then
                    direction = direction - Vector3.new(0, 1, 0)
                end
                
                if direction.Magnitude > 0 then
                    BodyVelocity.Velocity = direction.Unit * Settings.FlySpeed
                else
                    BodyVelocity.Velocity = Vector3.new(0, 0, 0)
                end
                
                BodyGyro.CFrame = Camera.CFrame
            end
        end)
    end
    
    Notify("Fly", "Fly Enabled (WASD + Space/Ctrl)", 2)
end

local function DisableFly()
    FlyEnabled = false
    
    if FlyConnection then
        FlyConnection:Disconnect()
        FlyConnection = nil
    end
    
    if BodyVelocity then
        BodyVelocity:Destroy()
        BodyVelocity = nil
    end
    
    if BodyGyro then
        BodyGyro:Destroy()
        BodyGyro = nil
    end
    
    local humanoid = GetHumanoid()
    if humanoid then
        humanoid.PlatformStand = false
    end
    
    Notify("Fly", "Fly Disabled", 2)
end

-- Noclip
local NoclipConnection = nil

local function EnableNoclip()
    NoclipEnabled = true
    
    NoclipConnection = RunService.Stepped:Connect(function()
        if NoclipEnabled then
            local char = GetCharacter()
            if char then
                for _, part in ipairs(char:GetDescendants()) do
                    if part:IsA("BasePart") then
                        part.CanCollide = false
                    end
                end
            end
        end
    end)
    
    Notify("Noclip", "Noclip Enabled", 2)
end

local function DisableNoclip()
    NoclipEnabled = false
    
    if NoclipConnection then
        NoclipConnection:Disconnect()
        NoclipConnection = nil
    end
    
    Notify("Noclip", "Noclip Disabled", 2)
end

-- Infinite Jump
local InfJumpConnection = nil

local function EnableInfiniteJump()
    InfiniteJumpEnabled = true
    
    InfJumpConnection = UserInputService.JumpRequest:Connect(function()
        if InfiniteJumpEnabled then
            local humanoid = GetHumanoid()
            if humanoid then
                humanoid:ChangeState(Enum.HumanoidStateType.Jumping)
            end
        end
    end)
    
    Notify("Jump", "Infinite Jump Enabled", 2)
end

local function DisableInfiniteJump()
    InfiniteJumpEnabled = false
    
    if InfJumpConnection then
        InfJumpConnection:Disconnect()
        InfJumpConnection = nil
    end
    
    Notify("Jump", "Infinite Jump Disabled", 2)
end

-- ═══════════════════════════════════════════════════════════════
-- CAMERA BYPASS
-- ═══════════════════════════════════════════════════════════════
local CameraConnection = nil

local function EnableThirdPerson()
    ThirdPersonEnabled = true
    
    LocalPlayer.CameraMode = Enum.CameraMode.Classic
    LocalPlayer.CameraMaxZoomDistance = Settings.ZoomDistance
    LocalPlayer.CameraMinZoomDistance = 0.5
    
    CameraConnection = RunService.RenderStepped:Connect(function()
        if ThirdPersonEnabled then
            LocalPlayer.CameraMode = Enum.CameraMode.Classic
            LocalPlayer.CameraMaxZoomDistance = Settings.ZoomDistance
        end
    end)
    
    Notify("Camera", "Third Person Enabled", 2)
end

local function DisableThirdPerson()
    ThirdPersonEnabled = false
    
    if CameraConnection then
        CameraConnection:Disconnect()
        CameraConnection = nil
    end
    
    -- Restore original camera settings based on gamemode
    if not GameInfo.IsLobby then
        LocalPlayer.CameraMode = Enum.CameraMode.LockFirstPerson
        LocalPlayer.CameraMaxZoomDistance = 10
    end
    
    Notify("Camera", "Third Person Disabled", 2)
end

-- Fullbright
local function EnableFullbright()
    FullbrightEnabled = true
    
    -- Store original values
    Settings.OriginalAmbient = Lighting.Ambient
    Settings.OriginalBrightness = Lighting.Brightness
    Settings.OriginalFogEnd = Lighting.FogEnd
    
    -- Apply fullbright
    Lighting.Ambient = Color3.new(1, 1, 1)
    Lighting.Brightness = 2
    Lighting.FogEnd = 100000
    Lighting.GlobalShadows = false
    
    -- Remove atmosphere effects
    for _, effect in ipairs(Lighting:GetChildren()) do
        if effect:IsA("Atmosphere") or effect:IsA("BloomEffect") or effect:IsA("ColorCorrectionEffect") then
            effect.Enabled = false
        end
    end
    
    Notify("Fullbright", "Fullbright Enabled", 2)
end

local function DisableFullbright()
    FullbrightEnabled = false
    
    -- Restore original values
    if Settings.OriginalAmbient then
        Lighting.Ambient = Settings.OriginalAmbient
    end
    if Settings.OriginalBrightness then
        Lighting.Brightness = Settings.OriginalBrightness
    end
    if Settings.OriginalFogEnd then
        Lighting.FogEnd = Settings.OriginalFogEnd
    end
    Lighting.GlobalShadows = true
    
    -- Re-enable atmosphere effects
    for _, effect in ipairs(Lighting:GetChildren()) do
        if effect:IsA("Atmosphere") or effect:IsA("BloomEffect") or effect:IsA("ColorCorrectionEffect") then
            effect.Enabled = true
        end
    end
    
    Notify("Fullbright", "Fullbright Disabled", 2)
end

-- FOV Changer
local function SetFOV(value)
    Settings.FOVValue = value
    Camera.FieldOfView = value
end

-- ═══════════════════════════════════════════════════════════════
-- ANTI-DETECTION
-- ═══════════════════════════════════════════════════════════════
local OriginalJumpscare = nil
local JumpscareHooked = false

local function EnableAntiJumpscare()
    AntiJumpscareEnabled = true
    
    -- Hook the Jumpscare RemoteFunction
    local jumpscareRemote = GetRemote("ReplicatedStorage.Remotes.Jumpscare")
    if jumpscareRemote and not JumpscareHooked then
        JumpscareHooked = true
        OriginalJumpscare = jumpscareRemote.OnClientInvoke
        jumpscareRemote.OnClientInvoke = function(...)
            if AntiJumpscareEnabled then
                return nil -- Block jumpscare
            end
            if OriginalJumpscare then
                return OriginalJumpscare(...)
            end
        end
    end
    
    Notify("Anti-Cheat", "Anti-Jumpscare Enabled", 2)
end

local function DisableAntiJumpscare()
    AntiJumpscareEnabled = false
    Notify("Anti-Cheat", "Anti-Jumpscare Disabled", 2)
end

-- Anti-Warning (blocks warning notifications)
local WarningConnection = nil

local function EnableAntiWarning()
    AntiWarningEnabled = true
    
    local warningRemote = GetRemote("ReplicatedStorage.Remotes.Warning")
    if warningRemote then
        WarningConnection = warningRemote.OnClientEvent:Connect(function()
            if AntiWarningEnabled then
                return -- Block warning
            end
        end)
    end
    
    Notify("Anti-Cheat", "Anti-Warning Enabled", 2)
end

local function DisableAntiWarning()
    AntiWarningEnabled = false
    
    if WarningConnection then
        WarningConnection:Disconnect()
        WarningConnection = nil
    end
    
    Notify("Anti-Cheat", "Anti-Warning Disabled", 2)
end

-- Anti-Fade (blocks screen fade effects)
local FadeConnection = nil

local function EnableAntiFade()
    AntiFadeEnabled = true
    
    local fadeRemote = GetRemote("ReplicatedStorage.Remotes.Fade")
    if fadeRemote then
        FadeConnection = fadeRemote.OnClientEvent:Connect(function()
            if AntiFadeEnabled then
                return -- Block fade
            end
        end)
    end
    
    Notify("Anti-Cheat", "Anti-Fade Enabled", 2)
end

local function DisableAntiFade()
    AntiFadeEnabled = false
    
    if FadeConnection then
        FadeConnection:Disconnect()
        FadeConnection = nil
    end
    
    Notify("Anti-Cheat", "Anti-Fade Disabled", 2)
end

-- ═══════════════════════════════════════════════════════════════
-- AUTO TASKS
-- ═══════════════════════════════════════════════════════════════
local AutoBatteryConnection = nil
local AutoGeneratorConnection = nil
local AutoTaskConnection = nil

local function EnableAutoBattery()
    AutoBatteryEnabled = true
    
    AutoBatteryConnection = RunService.Heartbeat:Connect(function()
        if not AutoBatteryEnabled then return end
        
        local hrp = GetHRP()
        if not hrp then return end
        
        local batteries = Workspace:FindFirstChild("House")
        if batteries then
            batteries = batteries:FindFirstChild("Batteries")
        end
        
        if batteries then
            for _, battery in ipairs(batteries:GetChildren()) do
                if battery.Name == "Battery" then
                    local part = battery:FindFirstChild("Union") or battery:FindFirstChildWhichIsA("BasePart")
                    if part then
                        local prompt = part:FindFirstChildOfClass("ProximityPrompt")
                        if prompt and prompt.Enabled then
                            local distance = (hrp.Position - part.Position).Magnitude
                            if distance < 50 then
                                fireproximityprompt(prompt)
                            end
                        end
                    end
                end
            end
        end
    end)
    
    Notify("Auto Tasks", "Auto Battery Enabled", 2)
end

local function DisableAutoBattery()
    AutoBatteryEnabled = false
    
    if AutoBatteryConnection then
        AutoBatteryConnection:Disconnect()
        AutoBatteryConnection = nil
    end
    
    Notify("Auto Tasks", "Auto Battery Disabled", 2)
end

local function EnableAutoGenerator()
    AutoGeneratorEnabled = true
    
    AutoGeneratorConnection = RunService.Heartbeat:Connect(function()
        if not AutoGeneratorEnabled then return end
        
        local hrp = GetHRP()
        if not hrp then return end
        
        local house = Workspace:FindFirstChild("House")
        if house then
            local generator = house:FindFirstChild("Generator")
            if generator then
                local button = generator:FindFirstChild("Button")
                if button then
                    local prompt = button:FindFirstChildOfClass("ProximityPrompt")
                    if prompt and prompt.Enabled then
                        local distance = (hrp.Position - button.Position).Magnitude
                        if distance < 20 then
                            fireproximityprompt(prompt)
                        end
                    end
                end
            end
        end
    end)
    
    Notify("Auto Tasks", "Auto Generator Enabled", 2)
end

local function DisableAutoGenerator()
    AutoGeneratorEnabled = false
    
    if AutoGeneratorConnection then
        AutoGeneratorConnection:Disconnect()
        AutoGeneratorConnection = nil
    end
    
    Notify("Auto Tasks", "Auto Generator Disabled", 2)
end

local function EnableAutoTasks()
    AutoTasksEnabled = true
    
    AutoTaskConnection = RunService.Heartbeat:Connect(function()
        if not AutoTasksEnabled then return end
        
        local hrp = GetHRP()
        if not hrp then return end
        
        -- Auto interact with prompts within range
        for _, prompt in ipairs(Workspace:GetDescendants()) do
            if prompt:IsA("ProximityPrompt") and prompt.Enabled then
                local part = prompt.Parent
                if part and part:IsA("BasePart") then
                    local distance = (hrp.Position - part.Position).Magnitude
                    if distance < 10 then
                        pcall(function()
                            fireproximityprompt(prompt)
                        end)
                    end
                end
            end
        end
    end)
    
    Notify("Auto Tasks", "Auto Tasks Enabled", 2)
end

local function DisableAutoTasks()
    AutoTasksEnabled = false
    
    if AutoTaskConnection then
        AutoTaskConnection:Disconnect()
        AutoTaskConnection = nil
    end
    
    Notify("Auto Tasks", "Auto Tasks Disabled", 2)
end

-- ═══════════════════════════════════════════════════════════════
-- TELEPORTATION
-- ═══════════════════════════════════════════════════════════════
local Locations = {
    -- Book 1 Common Locations
    Bedroom = Vector3.new(-100, 10, 50),
    Kitchen = Vector3.new(-90, 10, 70),
    LivingRoom = Vector3.new(-80, 10, 60),
    Garage = Vector3.new(-110, 10, 80),
    Generator = Vector3.new(-105, 10, 85),
    FrontDoor = Vector3.new(-85, 10, 45),
    
    -- Lobby
    LobbySpawn = Vector3.new(0, 5, 0),
}

local function TeleportTo(position)
    local hrp = GetHRP()
    if hrp then
        hrp.CFrame = CFrame.new(position + Vector3.new(0, 3, 0))
        Notify("Teleport", "Teleported!", 2)
    end
end

local function TeleportToPlayer(playerName)
    local targetPlayer = Players:FindFirstChild(playerName)
    if targetPlayer and targetPlayer.Character then
        local targetHRP = targetPlayer.Character:FindFirstChild("HumanoidRootPart")
        if targetHRP then
            TeleportTo(targetHRP.Position)
        end
    end
end

local function TeleportToSpawn()
    local spawn = Workspace:FindFirstChild("SpawnLocation")
    if spawn then
        TeleportTo(spawn.Position)
    else
        TeleportTo(Locations.LobbySpawn)
    end
end

-- ═══════════════════════════════════════════════════════════════
-- LOBBY FEATURES
-- ═══════════════════════════════════════════════════════════════
local function RedeemCode(code)
    if not GameInfo.IsLobby then
        Notify("Codes", "Must be in lobby to redeem codes", 2)
        return
    end
    
    local codeRemote = GetRemote("ReplicatedStorage.Remotes.Codes.Redeem")
    if codeRemote then
        pcall(function()
            codeRemote:FireServer(code)
        end)
        Notify("Codes", "Attempted to redeem: " .. code, 2)
    else
        Notify("Codes", "Code system not found", 2)
    end
end

-- ═══════════════════════════════════════════════════════════════
-- RAYFIELD UI
-- ═══════════════════════════════════════════════════════════════
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()

local Window = Rayfield:CreateWindow({
    Name = "Weird Strict Dad | V1",
    Icon = "ghost",
    LoadingTitle = "Weird Strict Dad Exploit",
    LoadingSubtitle = "Loading...",
    Theme = "Default",
    
    DisableRayfieldPrompts = false,
    DisableBuildWarnings = false,
    
    ConfigurationSaving = {
        Enabled = false,
        FolderName = nil,
        FileName = "WSDConfig"
    },
    
    Discord = {
        Enabled = false,
    },
    
    KeySystem = false,
})

-- ═══════════════════════════════════════════════════════════════
-- ESP TAB
-- ═══════════════════════════════════════════════════════════════
local ESPTab = Window:CreateTab("ESP", "eye")

ESPTab:CreateSection("Enemy ESP")

ESPTab:CreateToggle({
    Name = "Enemy ESP (Dad/Monster)",
    CurrentValue = false,
    Flag = "EnemyESPToggle",
    Callback = function(Value)
        if Value then
            EnableEnemyESP()
        else
            DisableEnemyESP()
        end
    end,
})

ESPTab:CreateColorPicker({
    Name = "Enemy ESP Color",
    Color = Color3.fromRGB(255, 0, 0),
    Flag = "EnemyESPColor",
    Callback = function(Value)
        Settings.EnemyESPColor = Value
        if EnemyESPEnabled then
            UpdateEnemyESP()
        end
    end
})

ESPTab:CreateSection("Player ESP")

ESPTab:CreateToggle({
    Name = "Player ESP",
    CurrentValue = false,
    Flag = "PlayerESPToggle",
    Callback = function(Value)
        if Value then
            EnablePlayerESP()
        else
            DisablePlayerESP()
        end
    end,
})

ESPTab:CreateColorPicker({
    Name = "Player ESP Color",
    Color = Color3.fromRGB(0, 255, 0),
    Flag = "PlayerESPColor",
    Callback = function(Value)
        Settings.PlayerESPColor = Value
    end
})

ESPTab:CreateSection("Item ESP")

ESPTab:CreateToggle({
    Name = "Item ESP (Batteries/Items)",
    CurrentValue = false,
    Flag = "ItemESPToggle",
    Callback = function(Value)
        if Value then
            EnableItemESP()
        else
            DisableItemESP()
        end
    end,
})

ESPTab:CreateColorPicker({
    Name = "Item ESP Color",
    Color = Color3.fromRGB(255, 255, 0),
    Flag = "ItemESPColor",
    Callback = function(Value)
        Settings.ItemESPColor = Value
        if ItemESPEnabled then
            UpdateItemESP()
        end
    end
})

-- ═══════════════════════════════════════════════════════════════
-- MOVEMENT TAB
-- ═══════════════════════════════════════════════════════════════
local MovementTab = Window:CreateTab("Movement", "footprints")

MovementTab:CreateSection("Speed")

MovementTab:CreateToggle({
    Name = "Enable Speed",
    CurrentValue = false,
    Flag = "SpeedToggle",
    Callback = function(Value)
        if Value then
            EnableSpeed()
        else
            DisableSpeed()
        end
    end,
})

MovementTab:CreateSlider({
    Name = "Speed Value",
    Range = {10, 100},
    Increment = 1,
    Suffix = " WalkSpeed",
    CurrentValue = 32,
    Flag = "SpeedValue",
    Callback = function(Value)
        Settings.SpeedValue = Value
        if SpeedEnabled then
            local humanoid = GetHumanoid()
            if humanoid then
                humanoid.WalkSpeed = Value
            end
        end
    end,
})

MovementTab:CreateSection("Flight")

MovementTab:CreateToggle({
    Name = "Enable Fly",
    CurrentValue = false,
    Flag = "FlyToggle",
    Callback = function(Value)
        if Value then
            EnableFly()
        else
            DisableFly()
        end
    end,
})

MovementTab:CreateSlider({
    Name = "Fly Speed",
    Range = {10, 150},
    Increment = 5,
    Suffix = " speed",
    CurrentValue = 50,
    Flag = "FlySpeed",
    Callback = function(Value)
        Settings.FlySpeed = Value
    end,
})

MovementTab:CreateSection("Other")

MovementTab:CreateToggle({
    Name = "Enable Noclip",
    CurrentValue = false,
    Flag = "NoclipToggle",
    Callback = function(Value)
        if Value then
            EnableNoclip()
        else
            DisableNoclip()
        end
    end,
})

MovementTab:CreateToggle({
    Name = "Infinite Jump",
    CurrentValue = false,
    Flag = "InfJumpToggle",
    Callback = function(Value)
        if Value then
            EnableInfiniteJump()
        else
            DisableInfiniteJump()
        end
    end,
})

-- ═══════════════════════════════════════════════════════════════
-- CAMERA TAB
-- ═══════════════════════════════════════════════════════════════
local CameraTab = Window:CreateTab("Camera", "camera")

CameraTab:CreateSection("Camera Mode")

CameraTab:CreateToggle({
    Name = "Third Person Mode",
    CurrentValue = false,
    Flag = "ThirdPersonToggle",
    Callback = function(Value)
        if Value then
            EnableThirdPerson()
        else
            DisableThirdPerson()
        end
    end,
})

CameraTab:CreateSlider({
    Name = "Zoom Distance",
    Range = {10, 200},
    Increment = 5,
    Suffix = " studs",
    CurrentValue = 128,
    Flag = "ZoomDistance",
    Callback = function(Value)
        Settings.ZoomDistance = Value
        if ThirdPersonEnabled then
            LocalPlayer.CameraMaxZoomDistance = Value
        end
    end,
})

CameraTab:CreateSection("Visual")

CameraTab:CreateToggle({
    Name = "Fullbright",
    CurrentValue = false,
    Flag = "FullbrightToggle",
    Callback = function(Value)
        if Value then
            EnableFullbright()
        else
            DisableFullbright()
        end
    end,
})

CameraTab:CreateSlider({
    Name = "Field of View",
    Range = {50, 120},
    Increment = 1,
    Suffix = " FOV",
    CurrentValue = 70,
    Flag = "FOVValue",
    Callback = function(Value)
        SetFOV(Value)
    end,
})

-- ═══════════════════════════════════════════════════════════════
-- ANTI-CHEAT TAB
-- ═══════════════════════════════════════════════════════════════
local AntiCheatTab = Window:CreateTab("Anti-Cheat", "shield")

AntiCheatTab:CreateSection("Protection")

AntiCheatTab:CreateToggle({
    Name = "Anti-Jumpscare",
    CurrentValue = false,
    Flag = "AntiJumpscareToggle",
    Callback = function(Value)
        if Value then
            EnableAntiJumpscare()
        else
            DisableAntiJumpscare()
        end
    end,
})

AntiCheatTab:CreateToggle({
    Name = "Anti-Warning",
    CurrentValue = false,
    Flag = "AntiWarningToggle",
    Callback = function(Value)
        if Value then
            EnableAntiWarning()
        else
            DisableAntiWarning()
        end
    end,
})

AntiCheatTab:CreateToggle({
    Name = "Anti-Fade (Screen Effects)",
    CurrentValue = false,
    Flag = "AntiFadeToggle",
    Callback = function(Value)
        if Value then
            EnableAntiFade()
        else
            DisableAntiFade()
        end
    end,
})

-- ═══════════════════════════════════════════════════════════════
-- AUTO TASKS TAB
-- ═══════════════════════════════════════════════════════════════
local AutoTab = Window:CreateTab("Auto Tasks", "zap")

AutoTab:CreateSection("Automation")

AutoTab:CreateToggle({
    Name = "Auto Collect Batteries",
    CurrentValue = false,
    Flag = "AutoBatteryToggle",
    Callback = function(Value)
        if Value then
            EnableAutoBattery()
        else
            DisableAutoBattery()
        end
    end,
})

AutoTab:CreateToggle({
    Name = "Auto Refill Generator",
    CurrentValue = false,
    Flag = "AutoGeneratorToggle",
    Callback = function(Value)
        if Value then
            EnableAutoGenerator()
        else
            DisableAutoGenerator()
        end
    end,
})

AutoTab:CreateToggle({
    Name = "Auto All Tasks (Nearby)",
    CurrentValue = false,
    Flag = "AutoTasksToggle",
    Callback = function(Value)
        if Value then
            EnableAutoTasks()
        else
            DisableAutoTasks()
        end
    end,
})

-- ═══════════════════════════════════════════════════════════════
-- TELEPORT TAB
-- ═══════════════════════════════════════════════════════════════
local TeleportTab = Window:CreateTab("Teleport", "map-pin")

TeleportTab:CreateSection("Locations")

TeleportTab:CreateButton({
    Name = "Teleport to Spawn",
    Callback = function()
        TeleportToSpawn()
    end,
})

TeleportTab:CreateButton({
    Name = "Teleport to Bedroom",
    Callback = function()
        TeleportTo(Locations.Bedroom)
    end,
})

TeleportTab:CreateButton({
    Name = "Teleport to Kitchen",
    Callback = function()
        TeleportTo(Locations.Kitchen)
    end,
})

TeleportTab:CreateButton({
    Name = "Teleport to Generator",
    Callback = function()
        TeleportTo(Locations.Generator)
    end,
})

TeleportTab:CreateSection("Player Teleport")

local PlayerDropdown = TeleportTab:CreateDropdown({
    Name = "Select Player",
    Options = {},
    CurrentOption = {},
    MultipleOptions = false,
    Flag = "PlayerTeleport",
    Callback = function(Option)
        if Option[1] then
            TeleportToPlayer(Option[1])
        end
    end,
})

-- Update player list periodically
task.spawn(function()
    while true do
        local playerNames = {}
        for _, player in ipairs(Players:GetPlayers()) do
            if player ~= LocalPlayer then
                table.insert(playerNames, player.Name)
            end
        end
        pcall(function()
            PlayerDropdown:Set(playerNames)
        end)
        task.wait(5)
    end
end)

-- ═══════════════════════════════════════════════════════════════
-- LOBBY TAB
-- ═══════════════════════════════════════════════════════════════
local LobbyTab = Window:CreateTab("Lobby", "home")

LobbyTab:CreateSection("Code Redeemer")

local CodeInput = LobbyTab:CreateInput({
    Name = "Enter Code",
    CurrentValue = "",
    PlaceholderText = "Enter code here...",
    RemoveTextAfterFocusLost = false,
    Flag = "CodeInput",
    Callback = function(Text)
        -- Store for later use
    end,
})

LobbyTab:CreateButton({
    Name = "Redeem Code",
    Callback = function()
        local code = Rayfield.Flags.CodeInput.CurrentValue or ""
        if code ~= "" then
            RedeemCode(code)
        else
            Notify("Codes", "Please enter a code first", 2)
        end
    end,
})

LobbyTab:CreateSection("Info")

LobbyTab:CreateParagraph({
    Title = "Lobby Features",
    Content = "Code redeemer works only in lobby.\n\nUse the code input above to redeem codes.\n\nCommon codes: Update codes are usually announced on the game's social media."
})

-- ═══════════════════════════════════════════════════════════════
-- INFO TAB
-- ═══════════════════════════════════════════════════════════════
local InfoTab = Window:CreateTab("Info", "info")

InfoTab:CreateSection("Current Gamemode")

local GamemodeLabel = InfoTab:CreateLabel("Detecting...")

InfoTab:CreateButton({
    Name = "Refresh Gamemode Detection",
    Callback = function()
        DetectGamemode()
        GamemodeLabel:Set("Gamemode: " .. GameInfo.GameName)
        Notify("Info", "Detected: " .. GameInfo.GameName, 3)
    end,
})

InfoTab:CreateSection("Script Info")

InfoTab:CreateParagraph({
    Title = "Weird Strict Dad Exploit V1",
    Content = "Supports all gamemodes:\n- Lobby\n- Book 1 Chapters 1-5 (Normal/Nightmare)\n- Book 2 Chapter 1 (Nightmare)\n\nPress RightShift to toggle UI"
})

InfoTab:CreateSection("Player List")

InfoTab:CreateButton({
    Name = "Print Player List to Console",
    Callback = function()
        print("\n═══════════════════════════════════════")
        print("         WEIRD STRICT DAD - PLAYERS     ")
        print("═══════════════════════════════════════")
        for i, player in ipairs(Players:GetPlayers()) do
            local status = IsAlive(player) and "ALIVE" or "DEAD/SPECTATING"
            print(string.format("%d. %s (%s)", i, player.DisplayName, status))
        end
        print("═══════════════════════════════════════\n")
        Notify("Info", "Player list printed to console", 2)
    end,
})

-- ═══════════════════════════════════════════════════════════════
-- SETTINGS TAB
-- ═══════════════════════════════════════════════════════════════
local SettingsTab = Window:CreateTab("Settings", "settings")

SettingsTab:CreateSection("Script Settings")

SettingsTab:CreateButton({
    Name = "Reset All Settings",
    Callback = function()
        -- Disable all features
        if EnemyESPEnabled then DisableEnemyESP() end
        if PlayerESPEnabled then DisablePlayerESP() end
        if ItemESPEnabled then DisableItemESP() end
        if SpeedEnabled then DisableSpeed() end
        if FlyEnabled then DisableFly() end
        if NoclipEnabled then DisableNoclip() end
        if InfiniteJumpEnabled then DisableInfiniteJump() end
        if ThirdPersonEnabled then DisableThirdPerson() end
        if FullbrightEnabled then DisableFullbright() end
        if AntiJumpscareEnabled then DisableAntiJumpscare() end
        if AutoBatteryEnabled then DisableAutoBattery() end
        if AutoGeneratorEnabled then DisableAutoGenerator() end
        if AutoTasksEnabled then DisableAutoTasks() end
        
        Notify("Settings", "All settings reset", 2)
    end,
})

SettingsTab:CreateParagraph({
    Title = "Hotkeys",
    Content = "RightShift - Toggle UI\n\nFly Controls:\nWASD - Move\nSpace - Up\nCtrl - Down"
})

-- ═══════════════════════════════════════════════════════════════
-- MAIN LOOPS
-- ═══════════════════════════════════════════════════════════════
RunService.RenderStepped:Connect(function()
    -- Update ESP periodically
    if EnemyESPEnabled then
        -- Enemy ESP updates on demand
    end
    if PlayerESPEnabled then
        UpdatePlayerESP()
    end
end)

-- Periodic ESP refresh
task.spawn(function()
    while true do
        task.wait(2)
        if EnemyESPEnabled then
            UpdateEnemyESP()
        end
        if ItemESPEnabled then
            UpdateItemESP()
        end
    end
end)

-- ═══════════════════════════════════════════════════════════════
-- PLAYER CONNECTIONS
-- ═══════════════════════════════════════════════════════════════
Players.PlayerAdded:Connect(function(player)
    if PlayerESPEnabled then
        player.CharacterAdded:Connect(function()
            task.wait(1)
            UpdatePlayerESP()
        end)
    end
end)

Players.PlayerRemoving:Connect(function(player)
    if ESPObjects.Players[player] then
        local esp = ESPObjects.Players[player]
        if esp.Highlight then pcall(function() esp.Highlight:Destroy() end) end
        if esp.Billboard then pcall(function() esp.Billboard:Destroy() end) end
        ESPObjects.Players[player] = nil
    end
end)

-- Character respawn handling
LocalPlayer.CharacterAdded:Connect(function(char)
    task.wait(1)
    
    if SpeedEnabled then
        local humanoid = char:FindFirstChildOfClass("Humanoid")
        if humanoid then
            humanoid.WalkSpeed = Settings.SpeedValue
        end
    end
    
    if FlyEnabled then
        DisableFly()
        task.wait(0.5)
        EnableFly()
    end
    
    if ThirdPersonEnabled then
        LocalPlayer.CameraMode = Enum.CameraMode.Classic
        LocalPlayer.CameraMaxZoomDistance = Settings.ZoomDistance
    end
end)

-- ═══════════════════════════════════════════════════════════════
-- INITIALIZATION
-- ═══════════════════════════════════════════════════════════════
DetectGamemode()
GamemodeLabel:Set("Gamemode: " .. GameInfo.GameName)

Notify("Weird Strict Dad", "Script loaded!\nDetected: " .. GameInfo.GameName, 5)

print([[
╔══════════════════════════════════════════════════════════════╗
β•‘          WEIRD STRICT DAD - EXPLOIT LOADED                   β•‘
β•‘                      Version 1.0                              β•‘
╠══════════════════════════════════════════════════════════════╣
β•‘  Features:                                                    β•‘
β•‘  - Enemy ESP (Dad, PossesedDad, Xenobus, Mom)                β•‘
β•‘  - Player ESP with distance                                  β•‘
β•‘  - Item ESP (Batteries, Gas Cans)                            β•‘
β•‘  - Speed Hack                                                β•‘
β•‘  - Fly                                                       β•‘
β•‘  - Noclip                                                    β•‘
β•‘  - Infinite Jump                                             β•‘
β•‘  - Third Person Camera Bypass                                β•‘
β•‘  - Fullbright                                                β•‘
β•‘  - Anti-Jumpscare                                            β•‘
β•‘  - Anti-Warning                                              β•‘
β•‘  - Anti-Fade                                                 β•‘
β•‘  - Auto Battery Collect                                      β•‘
β•‘  - Auto Generator Refill                                     β•‘
β•‘  - Auto Tasks                                                β•‘
β•‘  - Teleportation                                             β•‘
β•‘  - Code Redeemer (Lobby)                                     β•‘
β•šβ•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•β•
]])

Features & Information

note: i dont know why but i couldnt enter weird strict dad game id 🏠 Daddy's Home - Universal Script PLAYER TAB (Both Modes) Infinite Stats (Energy, Hunger, Thirst, Oxygen) Infinite Stamina Infinite Flashlight Battery God Mode Walk Speed Slider Jump Power Slider VISUALS TAB (Both Modes) Fullbright No Fog Remove Blur Entity ESP (Dad & Monster) Player ESP TELEPORT TAB Main Game Locations: Front Door Bedroom Kitchen Garage Generator Living Room Bathroom Basement Attic Forest Mode Locations: 🏠 Shelter 🐌 Snailhouse πŸ›οΈ Greekhouse ✈️ Plane Crash 🌟 Good Ending Area πŸ•οΈ Camp πŸ”₯ Campfire Shelter Bedroom Snail Door Greek Door Universal (Both Modes): Teleport to Player (dropdown) Teleport to Dad Teleport to Monster/Xenobus πŸ§ͺ ALCHEMY TAB (Forest Only) Potion Recipes Display Open Alchemy Book Collect All Ingredients (ESP) Clear Ingredient ESP Fire Tutorial2 Remote Fire FadeEvent Remote Fire Controls Remote MISC TAB (Both Modes) Block Jumpscares Instant Interact (No Hold) Anti-Death Effects Reset Character Rejoin Server FUN TAB (Both Modes) Night Vision Trigger Sebee Easter Egg Trigger Green Remote Voice Emote Dropdown Trigger Camera Shake Third Person Camera EXPLOITS TAB (Both Modes) Spoof as Sebee Add Fake VIP Tag Spoof Money Display (999999) Unlock All Emotes (Visual) Fake Better Flashlight Gamepass SETTINGS TAB (Both Modes) Toggle UI Keybind Destroy Script Credits/Info

Community Comments (13)

ovoch228ovoch228Feb 2, 2026

bro, fix ur script

Replying to @ovoch228
alexkkork123alexkkork123Feb 2, 2026

@ovoch228 sorry sec

DavitesolakkjDavitesolakkjFeb 11, 2026

Bro pls fix this script,When I play with at least one other player, it automatically teleports to them all the time, and there's no way to disable it. Please remove this option or enable an option to turn it off. Aside from that, the script is very good.

anugrahrizky085anugrahrizky085Feb 22, 2026

Tutorial to activate it

alexkkork123alexkkork123Mar 1, 2026

2 likes on ts comment and il fix it

Replying to @alexkkork123
ambawjdfq0ambawjdfq0Mar 4, 2026

@alexkkork123 fix it NOW

Replying to @ambawjdfq0
kaysonthomas6790kaysonthomas6790Mar 22, 2026

@ambawjdfq0 did he fix it?

kaysonthomas6790kaysonthomas6790Mar 22, 2026

d

kaysonthomas6790kaysonthomas6790Mar 22, 2026

d

kaysonthomas6790kaysonthomas6790Mar 22, 2026

omg fix you dum * scrirpt

Owen_oweyOwen_oweyMar 23, 2026

FIX IT YOU N*****

Replying to @Owen_owey
HELLBENTBOIHELLBENTBOIApr 19, 2026

@Owen_owey chill out bro why do you even need to pull out a racist slur bro

alexkkork123alexkkork123Jun 14, 2026

fixing it uncs

More Scripts for Universal Scripts