
Key RequiredUniversal

--[[
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β 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) β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
]])



bro, fix ur script
@ovoch228 sorry sec
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.
Tutorial to activate it
2 likes on ts comment and il fix it
@alexkkork123 fix it NOW
@ambawjdfq0 did he fix it?
d
d
omg fix you dum * scrirpt
FIX IT YOU N*****
@Owen_owey chill out bro why do you even need to pull out a racist slur bro
fixing it uncs