--[[ ╔══════════════════════════════════════════════════════════════╗ ║ 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) ║ ╚══════════════════════════════════════════════════════════════╝ ]])