-- Forsaken Plus Made by Naiko Scripts -- if workspace.DistributedGameTime < 4 then task.wait(4 - workspace.DistributedGameTime) end if game.CoreGui:FindFirstChild("Plus") then return warn("Script already running") elseif game.GameId == 6331902150 or game.GameId == 7464167604 or workspace:GetAttribute("ServerType") then Instance.new("BoolValue", game.CoreGui).Name = "Plus" else return warn("Incorrect game") end game:GetService("Players").LocalPlayer.Idled:Connect(function() game:GetService("VirtualUser"):ClickButton2(Vector2.new()) end) -- General Variables -- local Version = "1.66" local Players = game:GetService("Players") local LocalPlayer = Players.LocalPlayer local LocalCharacter = LocalPlayer.Character local LocalHumanoid = LocalCharacter and (LocalCharacter:FindFirstChildOfClass("Humanoid") or LocalCharacter:WaitForChild("Humanoid",2)) or nil local LocalHead = LocalCharacter and (LocalCharacter:FindFirstChild("Head") or LocalCharacter:WaitForChild("Head",2)) or nil local LocalRoot = LocalCharacter and ((LocalHumanoid and LocalHumanoid.RootPart) or LocalCharacter:FindFirstChild("HumanoidRootPart") or LocalCharacter:WaitForChild("HumanoidRootPart",2)) or nil local SpeedMultipliers = LocalCharacter and (LocalCharacter:FindFirstChild("SpeedMultipliers")) or nil local CoreGui = game:GetService("CoreGui") local PlayerGui = LocalPlayer:FindFirstChildOfClass("PlayerGui") or LocalPlayer:WaitForChild("PlayerGui", 20) local MainUI = PlayerGui:FindFirstChild("MainUI") or PlayerGui:WaitForChild("MainUI", 80) local PlayerData = LocalPlayer:FindFirstChild("PlayerData") or LocalPlayer:WaitForChild("PlayerData", 20) local PlusFolderSettings = Instance.new("Folder") local SideBar = MainUI:FindFirstChild("Sidebar") or MainUI:WaitForChild("Sidebar", 20) local Buttons = SideBar:FindFirstChild("Buttons") or SideBar:FindFirstChild("Middle") or SideBar:WaitForChild("Buttons", 20) or SideBar:WaitForChild("Middle", 20) local MainButton = Buttons:FindFirstChild("Settings") or Buttons:FindFirstChild("Stats") or Buttons:WaitForChild("Settings", 20) or Buttons:FindFirstChild("Stats") or Buttons:WaitForChild("Stats", 20) local SidePlusButton = MainButton and MainButton:Clone() local PlusButton = SidePlusButton and SidePlusButton:FindFirstChild("Button") or nil local PulloutFramePlus = SidePlusButton and SidePlusButton:FindFirstChild("PulloutHolder") and SidePlusButton.PulloutHolder:FindFirstChild("PulloutFrame") local NewUIVersion = not PulloutFramePlus local SettingsMenu = MainUI:FindFirstChild("SettingsScreen") or MainUI:WaitForChild("SettingsScreen", 20) local TempUI = PlayerGui:FindFirstChild("TemporaryUI") or PlayerGui:WaitForChild("TemporaryUI") local PlusMenu = SettingsMenu and SettingsMenu:Clone() local PlayersFolder = workspace:FindFirstChild("Players") local KillersFolder = PlayersFolder and PlayersFolder:FindFirstChild("Killers") local SurvivorsFolder = PlayersFolder and PlayersFolder:FindFirstChild("Survivors") local RagdollsFolder = workspace:FindFirstChild("Ragdolls") local Hitboxes = workspace:FindFirstChild("Hitboxes") local MarketplaceService = game:GetService("MarketplaceService") local ReplicatedStorage = game:GetService("ReplicatedStorage") local UserInputService = game:GetService("UserInputService") local TextChatService = game:GetService("TextChatService") local PhysicsService = game:GetService("PhysicsService") local TweenService = game:GetService("TweenService") local GroupService = game:GetService("GroupService") local HttpService = game:GetService("HttpService") local LogService = game:GetService("LogService") local RunService = game:GetService("RunService") local StarterGui = game:GetService("StarterGui") local Lighting = game:GetService("Lighting") local Debris = game:GetService("Debris") local AssetsFolder = ReplicatedStorage:FindFirstChild("Assets") or ReplicatedStorage:WaitForChild("Assets") local SkinsAssets = AssetsFolder and AssetsFolder:FindFirstChild("Skins") local SurvivorAssets = AssetsFolder and AssetsFolder:FindFirstChild("Survivors") local KillerAssets = AssetsFolder and AssetsFolder:FindFirstChild("Killers") local Network = ReplicatedStorage:FindFirstChild("Modules") and (ReplicatedStorage:FindFirstChild("Modules"):FindFirstChild("Network",true) and ReplicatedStorage:FindFirstChild("Modules"):FindFirstChild("Network",true):FindFirstChild("Network")) or ReplicatedStorage:FindFirstChild("Modules"):FindFirstChild("Network",true) or nil local InGame = workspace:FindFirstChild("Map") and workspace:FindFirstChild("Map"):FindFirstChild("Ingame") local GameMap = InGame and InGame:FindFirstChild("Map") or nil local RoundEvent = Instance.new("BindableEvent") local BindableShouldStop = Instance.new("BindableEvent") local UIScale = Instance.new("UIScale") local IsUnderground,IsFixingGenerator,WarnedAboutFilesCompatability = false,false,false local OverriddenAnimations,AllAnimations,Values = {},{["Default Roblox"] = {["Idle"] = "http://www.roblox.com/asset/?id=180435571",["Walk"] = "http://www.roblox.com/asset/?id=180426354",["Run"] = "http://www.roblox.com/asset/?id=180426354"}},{} local PlaySound,MainModule,HandlePrivacySettings,Check,ModulesOptions,RichTextGradientColor,IsHitboxNotNear,GoUnder,HandleAllowJumping,HandleNoliNPC,ChangeTrackWithOverride,LastTrack,NoliConfig,TableValueFind,ColoredPrint,Handle007n7NPC,GetValue,UtilModule,SprintEvent,LastAnimOriginalUsed,UpdateAnim,CanPlayOverrideAnim,CurrentQTEAzure,TeleportSound,ReturnData,DefaultData,ChangeData local ColorPresets = {["White"] = Color3.fromRGB(255,255,255),["Teal"] = Color3.fromRGB(3,252,157),["Green"] = Color3.fromRGB(0,255,0),["Purple"] = Color3.fromRGB(158, 0, 179),["Red"] = Color3.fromRGB(255,0,0),["Blue"] = Color3.fromRGB(0,0,255),["Cyan"] = Color3.fromRGB(0,255,255),["Gold"] = Color3.fromRGB(255,215,0),["Orange"] = Color3.fromRGB(255,165,0)} local IgnoreKeybinds = {"W", "A", "S", "D"} local GameVersionForScript = "2026-07-25" local FeatureLoadout; FeatureLoadout = { ["EnviromentFunctions"] = { ["TabAttributes"] = { ["DisplayTitle"] = "Loading...", ["LayoutOrder"] = 666 }, ["hookmetamethod"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "hookmetamethod", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["getgc"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "getgc", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["require"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "require", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["files"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "files", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["OfficialGame"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "Official Game", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = game.GameId == 6331902150 or game.GameId == 7464167604, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["PrivateServer"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "Private Server", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = workspace:GetAttribute("ServerType") == "VIP", ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["PrivateServerOwner"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "Private Server", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = workspace:GetAttribute("ServerOwnerID") == LocalPlayer.UserId, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["NServer"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "N Server", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = game.PlaceId == 83645629621104, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, ["Computer"] = { ["DisplayDescription"] = " ", ["DisplayTitle"] = "Computer", ["LayoutOrder"] = 666, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = UserInputService.KeyboardEnabled, ["ExtraData"] = { ["Requirement"] = true, }, ["ScriptFunction"] = function(self, State) end }, }, ["Automation"] = { ["TabAttributes"] = { ["DisplayTitle"] = "Automation", ["LayoutOrder"] = 1 }, ["AutoGeneratorPuzzle"] = { ["DisplayDescription"] = "Auto Completes Generator Puzzles", ["DisplayTitle"] = "Auto Generator(s)", ["LayoutOrder"] = 1, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) end }, ["GeneratorCooldown"] = { ["DisplayDescription"] = "The cooldown in seconds before completing a generator", ["DisplayTitle"] = "Cooldown Between Auto Completions", ["LayoutOrder"] = 2, ["Savable"] = true, ["InstanceType"] = "NumberValue", ["DefaultInstanceValue"] = 3, ["ExtraData"] = { ["MaxValue"] = 8, ["MinValue"] = 1.5, ["Step"] = 0.25, ["Requirement"] = "AutoGeneratorPuzzle" }, ["ScriptFunction"] = function(self, Value) end }, ["SpeedUpCooldown"] = { ["DisplayDescription"] = "Make the cooldown low when nobody is near to look at you", ["DisplayTitle"] = "Speed Up When Nobodys Near", ["LayoutOrder"] = 3, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "AutoGeneratorPuzzle|GeneratorCooldown~1.5|GeneratorCooldown~1.75|GeneratorCooldown~2" }, ["ScriptFunction"] = function(self, Value) end }, ["AutoPickup"] = { ["DisplayDescription"] = "Auto-Picks up Items near you", ["DisplayTitle"] = "Auto Pickup", ["LayoutOrder"] = 4, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) end }, ["AutoEscape"] = { ["DisplayDescription"] = "Auto-Escapes Nosferatu's Hook", ["DisplayTitle"] = "Auto Escape", ["LayoutOrder"] = 5, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = not (KillerAssets and KillerAssets:FindFirstChild("Nosferatu")) }, ["ScriptFunction"] = function(self, Value) end }, ["EscapeCooldown"] = { ["DisplayDescription"] = "The cooldown in seconds before pressing a key", ["DisplayTitle"] = "Cooldown Between Auto Escape Presses", ["LayoutOrder"] = 6, ["Savable"] = true, ["InstanceType"] = "NumberValue", ["DefaultInstanceValue"] = 0.5, ["ExtraData"] = { ["MaxValue"] = 1.2, ["MinValue"] = 0.2, ["Step"] = 0.1, ["Requirement"] = "AutoEscape" }, ["ScriptFunction"] = function(self, Value) if Value <= 0.3 then GetValue("EscapeCooldown",true):SetAttribute("DisplayDescription",self["DisplayDescription"] .. " " .. RichTextGradientColor("(TOO FAST)",{Color3.fromRGB(251, 107, 43),Color3.fromRGB(251, 165, 43),Color3.fromRGB(251, 107, 43)})) else GetValue("EscapeCooldown",true):SetAttribute("DisplayDescription",self["DisplayDescription"]) end end }, ["AutoDisarm"] = { ["DisplayDescription"] = "Auto-Disarms Azure's Traps Instantly", ["DisplayTitle"] = "Auto Disarm", ["LayoutOrder"] = 7, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = (KillerAssets and KillerAssets:FindFirstChild("Azure") and "require" or true) }, ["ScriptFunction"] = function(self, Value) if CurrentQTEAzure and Value then CurrentQTEAzure:AddProgress(100) CurrentQTEAzure = nil end end }, }, ["Features"] = { ["TabAttributes"] = { ["DisplayTitle"] = "Features", ["LayoutOrder"] = 2 }, ["Invincible"] = { ["DisplayDescription"] = "Makes you invisible & god mode (you can still use abilities)", ["DisplayTitle"] = "Invincible", ["LayoutOrder"] = 1, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "hookmetamethod|require|OfficialGame" }, ["ScriptFunction"] = function(self, Value) if workspace:GetAttribute("Invincible") == nil then workspace:SetAttribute("Invincible", Value) self.Instance.Value = Value if Value then FeatureLoadout["Features"]["DisableToxicTrails"].Instance.Value = true FeatureLoadout["Features"]["DisableFootprints"].Instance.Value = true end task.delay(1.5, function() workspace:SetAttribute("Invincible",nil) end) GoUnder(Value) else self.Instance.Value = workspace:GetAttribute("Invincible") end end }, ["DisableKillerWalls"] = { ["DisplayDescription"] = "Disables All Killer Walls (Red Walls)", ["DisplayTitle"] = "Disable Killer Walls", ["LayoutOrder"] = 2, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = true }, ["ScriptFunction"] = function(self, Value) local VertexColor = Value and Vector3.new(0,255,0) or Vector3.new(255,0,0) local Color = Value and Color3.new(0,1,0) or Color3.new(1,0,0) local KillerDoorsFolder = GameMap and (GameMap:FindFirstChild("KillerDoors",true) or GameMap:FindFirstChild("Killer Doors",true)) local KillerCollisions = GameMap and GameMap:FindFirstChild("KillerOnly",true) if KillerDoorsFolder then for i,v in KillerDoorsFolder:GetChildren() do if not v:IsA("BasePart") then continue end v.Color = Color if v:GetAttribute("OriginalCanCollide") == nil then v:SetAttribute("OriginalCanCollide", v.CanCollide) end v.CanCollide = v:GetAttribute("OriginalCanCollide") ~= false and not Value or false if KillerCollisions then local Params = OverlapParams.new() Params.FilterType = Enum.RaycastFilterType.Include Params.CollisionGroup = "Killers" Params.FilterDescendantsInstances = {KillerCollisions} local Hitbox = workspace:GetPartBoundsInRadius(v.Position, 10, Params) for i,v in Hitbox do v.CanCollide = not Value end end if v:FindFirstChildOfClass("SpecialMesh") then v:FindFirstChildOfClass("SpecialMesh").VertexColor = VertexColor end end end end }, ["DisableToxicTrails"] = { ["DisplayDescription"] = "Disables damaging trails for john doe", ["DisplayTitle"] = "Disable John Doe's Trails", ["LayoutOrder"] = 3, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in InGame:GetChildren() do if v:IsA("Folder") and (v.Name):find("JohnDoeTrail") then for i,v2 in v:GetChildren() do if v2:IsA("BasePart") then v2.CanTouch = not Value end end end end end }, ["DisableFootprints"] = { ["DisplayDescription"] = "Disables footprints made by john doe", ["DisplayTitle"] = "Disable John Doe's Footprints", ["LayoutOrder"] = 4, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in InGame:GetChildren() do if v:IsA("Folder") and (v.Name):find("Shadows") then for i,v2 in v:GetChildren() do if v2:IsA("BasePart") then v2.CanTouch = not Value end end if not v:GetAttribute("Checked") then v:SetAttribute("Checked", true) v.ChildAdded:Connect(function(GrandChild) if GrandChild:IsA("BasePart") then GrandChild.CanTouch = not GetValue("DisableFootprints") end end) end end end end }, ["SmallerSpikeCollisions"] = { ["DisplayDescription"] = "Makes spike collisions smaller for john doe's ability", ["DisplayTitle"] = "Smaller Spike Collisions", ["LayoutOrder"] = 5, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in InGame:GetChildren() do if v.Name == "SpikeCollision" then v.Size = Value and Vector3.new(11,3.5,3.5) or Vector3.new(11, 5, 5) v.Shape = Value and Enum.PartType.Cylinder or Enum.PartType.Block end end end }, ["EnableJumping"] = { ["DisplayDescription"] = "Enables Jumping for when its disabled", ["DisplayTitle"] = "Enable Jumping", ["LayoutOrder"] = 7, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) HandleAllowJumping(Value) end }, ["StaminaPreset"] = { ["DisplayDescription"] = "Select a Stamina Preset", ["DisplayTitle"] = "Stamina Preset", ["LayoutOrder"] = 8, ["Savable"] = true, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Original", ["ExtraData"] = { ["Requirement"] = "require", ["Options"] = "Original|Realistic|Semi-Realistic|Infinite" }, ["ScriptFunction"] = function(self, Value) end }, ["AntiSlowness"] = { ["DisplayDescription"] = "Removes all types of Slowness Effects", ["DisplayTitle"] = "Anti Slowness", ["LayoutOrder"] = 9, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) if not Value or not SpeedMultipliers then return end for i,Child in SpeedMultipliers:GetChildren() do Check(Child) end end }, ["AnimationChanger"] = { ["DisplayDescription"] = "Select a character/skin to override the animations", ["DisplayTitle"] = "Animation Changer", ["LayoutOrder"] = 10, ["Savable"] = false, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Original", ["ExtraData"] = { ["Requirement"] = "require", ["Options"] = "Original|Jason|Jason IV|Slasher|Slasher IV|c00lkidd|c00lkidd IV|c0llabk1dd|John Doe|JohnDoe IV|Noli|Noli IV|1x1x1x1|1x1x1x1 IV|Nosferatu|Azure|Dusekkar|Artful|Erlking|Herobrine|Sukuna|Retro|Mafioso|The Admin|Deceiver|The Pestilence|Celebration|P4rtyPwny|Alfred Drevis|Killer Kyle|Pursuer|TV TIME|c00lskeleton95|dragondudes3|Eye of The Abyss|White Pumpkin|Nerfed Demoman|Sniper|Little Guy|Crouch|NPC Zombie|Default Roblox" }, ["ScriptFunction"] = function(self, Value, Starting) if Starting then return end if Value == "Original" then GetValue("ChangeInLobby",true).Value = false local Animator = LocalHumanoid and LocalHumanoid:FindFirstChildOfClass("Animator") if Animator then local AllTracks = Animator:GetPlayingAnimationTracks() for i,v in AllTracks do v:Stop(0) end end if LastAnimOriginalUsed then LastAnimOriginalUsed:Play(0) end else local Animator = LocalHumanoid and LocalHumanoid:FindFirstChildOfClass("Animator") if Animator and CanPlayOverrideAnim(LocalCharacter) then local AllTracks = Animator:GetPlayingAnimationTracks() for i,v in AllTracks do v:Stop(0) end UpdateAnim(LocalHumanoid) end end end }, ["ChangeInLobby"] = { ["DisplayDescription"] = "If it should change the animation in the lobby too", ["DisplayTitle"] = "Change In Lobby", ["LayoutOrder"] = 11, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "AnimationChanger~Original", }, ["ScriptFunction"] = function(self, Value, Starting) if Starting then return end local CanPlay = CanPlayOverrideAnim(LocalCharacter) if Value == true then UpdateAnim(LocalHumanoid) else local Animator = LocalHumanoid and LocalHumanoid:FindFirstChildOfClass("Animator") if Animator then local AllTracks = Animator:GetPlayingAnimationTracks() for i,v in AllTracks do v:Stop(0) end if LastAnimOriginalUsed then LastAnimOriginalUsed:Play(0) end UpdateAnim(LocalHumanoid) end end end }, ["NoliControl"] = { ["DisplayDescription"] = "Allows you to have better control of Void Rush Ability", ["DisplayTitle"] = "Better Void Rush", ["LayoutOrder"] = 12, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "require" }, ["ScriptFunction"] = function(self, Value) if NoliConfig then for _, Entry in { {Name = "InitialTurnDuration", Value = 0.005, Default = 1.5}, {Name = "TurnSpeed", Value = 10000, Default = 1}, {Name = "InitialTurnMult", Value = 1000, Default = 6.6}, } do local Value, Key, Parent = TableValueFind(NoliConfig, function(i, v) return type(i) == "string" and i:find(Entry.Name) and not i:find(Entry.Name .. "OG") end) if Key and Parent then if Value then Parent[Entry.Name .. "OG"] = Parent[Key] Parent[Key] = Entry.Value elseif Parent[Entry.Name .. "OG"] ~= nil then Parent[Key] = Parent[Entry.Name .. "OG"] or Entry.Default end end end if LocalCharacter and LocalCharacter.Parent.Name == "Killers" and not workspace:GetAttribute("NotifCD") then StarterGui:SetCore("SendNotification", { Title = "Information", Text = "Changes only apply the time you become the killer", Duration = 5 }) workspace:SetAttribute("NotifCD", true) task.delay(10, function() workspace:SetAttribute("NotifCD", nil) end) end end end }, ["ControllableDash"] = { ["DisplayDescription"] = "Allows you to control where the dash goes just like Void Rush Ability", ["DisplayTitle"] = "Make Coolkidd's Dash Controllable", ["LayoutOrder"] = 13, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) end }, ["AutoBlock"] = { ["DisplayDescription"] = "Uses the block ability automatically when about to get hit (REQUIRES GOOD PING)", ["DisplayTitle"] = "Guest1337 Auto Block", ["LayoutOrder"] = 14, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) local BlockAbilityUI = MainUI and MainUI:FindFirstChild("AbilityContainer") and MainUI:FindFirstChild("AbilityContainer"):FindFirstChild("Block") local AutoImage = BlockAbilityUI and BlockAbilityUI:FindFirstChild("AutoImage") if Value then if not AutoImage and BlockAbilityUI then AutoImage = Instance.new("ImageLabel") AutoImage.Name = "AutoImage" AutoImage.Interactable = false AutoImage.Parent = BlockAbilityUI AutoImage.Image = "rbxassetid://114159864966636" AutoImage.BackgroundTransparency = 1 AutoImage.Size = UDim2.fromScale(0.8,0.8) AutoImage.Position = UDim2.fromScale(0.5,0) AutoImage.AnchorPoint = Vector2.new(0.5,0.4) elseif not BlockAbilityUI then return end AutoImage.Visible = true elseif AutoImage then AutoImage.Visible = false end end } }, ["Visuals"] = { ["TabAttributes"] = { ["DisplayTitle"] = "Visuals", ["LayoutOrder"] = 3 }, ["DisableNoliNPC"] = { ["DisplayDescription"] = "Disables Noli's Distracting NPC", ["DisplayTitle"] = "Disable Noli's NPC", ["LayoutOrder"] = 1, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) HandleNoliNPC(Value) end }, ["Disable007n7NPC"] = { ["DisplayDescription"] = "Disables 007n7's Distracting NPC", ["DisplayTitle"] = "Disable 007n7's NPC", ["LayoutOrder"] = 1, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) Handle007n7NPC(Value) end }, ["ESP"] = { ["DisplayDescription"] = "Track things in the game through walls", ["DisplayTitle"] = "ESP", ["LayoutOrder"] = 2, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) end }, ["ShowText"] = { ["DisplayDescription"] = "Show text over the highlighted objects", ["DisplayTitle"] = "Show Text", ["LayoutOrder"] = 3, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "ESP" }, ["ScriptFunction"] = function(self, Value) end }, ["KillersESP"] = { ["DisplayDescription"] = "Enables ESP for the killer(s)", ["DisplayTitle"] = "Killer(s) (ESP)", ["LayoutOrder"] = 4, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "ESP", }, ["ScriptFunction"] = function(self, Value) end }, ["KillersColor"] = { ["DisplayDescription"] = "Select a Color for Killer(s) (ESP)", ["DisplayTitle"] = "Killer(s) Color", ["LayoutOrder"] = 5, ["Savable"] = true, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Red", ["ExtraData"] = { ["Requirement"] = "ESP|KillersESP", ["Options"] = "Red|Orange|Purple|Gold", }, ["ScriptFunction"] = function(self, Value) local Name = "Killer(s)" local H, S, V = ColorPresets[Value]:ToHSV() local Color = ColorPresets[Value] local DarkerColor = Color3.fromHSV(H, S, V * 0.7) for i,v in FeatureLoadout["Visuals"] do if v["DisplayTitle"]:find(Name,1,true) then local ColoredName = RichTextGradientColor(Name,{Color,DarkerColor}) local FormattedName = Name:gsub("([%(%)])", "%%%1") local ColoredText = v["DisplayTitle"]:gsub(FormattedName, ColoredName, 1) if v["Instance"] then v["Instance"]:SetAttribute("DisplayTitle",ColoredText) else v["DisplayTitle"] = ColoredText end end end end }, ["SurvivorsESP"] = { ["DisplayDescription"] = "Enables ESP for the survivor(s)", ["DisplayTitle"] = "Survivor(s) (ESP)", ["LayoutOrder"] = 6, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "ESP", }, ["ScriptFunction"] = function(self, Value) end }, ["SurvivorsColor"] = { ["DisplayDescription"] = "Select a Color for Survivor(s) (ESP)", ["DisplayTitle"] = "Survivor(s) Color", ["LayoutOrder"] = 7, ["Savable"] = true, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Green", ["ExtraData"] = { ["Requirement"] = "ESP|SurvivorsESP", ["Options"] = "Green|Orange|Purple|Gold", }, ["ScriptFunction"] = function(self, Value) local Name = "Survivor(s)" local H, S, V = ColorPresets[Value]:ToHSV() local Color = ColorPresets[Value] local DarkerColor = Color3.fromHSV(H, S, V * 0.7) for i,v in FeatureLoadout["Visuals"] do if v["DisplayTitle"]:find(Name,1,true) then local ColoredName = RichTextGradientColor(Name,{Color,DarkerColor}) local FormattedName = Name:gsub("([%(%)])", "%%%1") local ColoredText = v["DisplayTitle"]:gsub(FormattedName, ColoredName, 1) if v["Instance"] then v["Instance"]:SetAttribute("DisplayTitle",ColoredText) else v["DisplayTitle"] = ColoredText end end end end }, ["GeneratorsESP"] = { ["DisplayDescription"] = "Enables ESP for the Generator(s)", ["DisplayTitle"] = "Generator(s) (ESP)", ["LayoutOrder"] = 9, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "ESP", }, ["ScriptFunction"] = function(self, Value) end }, ["GeneratorsColor"] = { ["DisplayDescription"] = "Select a Color for Generator(s) (ESP)", ["DisplayTitle"] = "Generator(s) Color", ["LayoutOrder"] = 10, ["Savable"] = true, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Cyan", ["ExtraData"] = { ["Requirement"] = "ESP|GeneratorsESP", ["Options"] = "Cyan|Blue|Green|Orange|Purple|Gold", }, ["ScriptFunction"] = function(self, Value) local Name = "Generator(s)" local H, S, V = ColorPresets[Value]:ToHSV() local Color = ColorPresets[Value] local DarkerColor = Color3.fromHSV(H, S, V * 0.7) for i,v in FeatureLoadout["Visuals"] do if v["DisplayTitle"]:find(Name,1,true) then local ColoredName = RichTextGradientColor(Name,{Color,DarkerColor}) local FormattedName = Name:gsub("([%(%)])", "%%%1") local ColoredText = v["DisplayTitle"]:gsub(FormattedName, ColoredName, 1) if v["Instance"] then v["Instance"]:SetAttribute("DisplayTitle",ColoredText) else v["DisplayTitle"] = ColoredText end end end GetValue("AutoGeneratorPuzzle",true):SetAttribute("DisplayTitle",string.format("Auto %s",RichTextGradientColor("Generator(s)",{Color,DarkerColor}))) end }, ["GeneratorsCheck"] = { ["DisplayDescription"] = "Hides Generator(s) That are Completed (ESP)", ["DisplayTitle"] = "Hide Completed Generator(s)", ["LayoutOrder"] = 11, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = { ["Requirement"] = "ESP|GeneratorsESP", }, ["ScriptFunction"] = function(self, Value) end }, ["ItemsESP"] = { ["DisplayDescription"] = "Enables ESP for the Item(s)", ["DisplayTitle"] = "Item(s) (ESP)", ["LayoutOrder"] = 12, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "ESP", }, ["ScriptFunction"] = function(self, Value) end }, ["ItemsColor"] = { ["DisplayDescription"] = "Select a Color for Item(s) (ESP)", ["DisplayTitle"] = "Item(s) Color", ["LayoutOrder"] = 13, ["Savable"] = true, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "Gold", ["ExtraData"] = { ["Requirement"] = "ESP|ItemsESP", ["Options"] = "Gold|Cyan|Purple|White", }, ["ScriptFunction"] = function(self, Value) local Name = "Item(s)" local H, S, V = ColorPresets[Value]:ToHSV() local Color = ColorPresets[Value] local DarkerColor = Color3.fromHSV(H, S, V * 0.7) for i,v in FeatureLoadout["Visuals"] do if v["DisplayTitle"]:find(Name,1,true) then local ColoredName = RichTextGradientColor(Name,{Color,DarkerColor}) local FormattedName = Name:gsub("([%(%)])", "%%%1") local ColoredText = v["DisplayTitle"]:gsub(FormattedName, ColoredName, 1) if v["Instance"] then v["Instance"]:SetAttribute("DisplayTitle",ColoredText) else v["DisplayTitle"] = ColoredText end end end GetValue("AutoPickup",true):SetAttribute("DisplayDescription",string.format("Auto-Picks up %s near you",RichTextGradientColor("Items",{Color,DarkerColor}))) end } }, ["Miscellaneous"] = { ["TabAttributes"] = { ["DisplayTitle"] = "Miscellaneous", ["LayoutOrder"] = 4 }, ["ExtendedFOV"] = { ["DisplayDescription"] = "A extended version of the FOV inside the normal settings", ["DisplayTitle"] = "Extended FOV", ["LayoutOrder"] = 1, ["Savable"] = true, ["InstanceType"] = "NumberValue", ["DefaultInstanceValue"] = PlayerData.Settings:FindFirstChild("FieldOfView",true) and PlayerData.Settings:FindFirstChild("FieldOfView",true).Value or 70, ["ExtraData"] = { ["MaxValue"] = 120, ["MinValue"] = 10, ["Step"] = 5, }, ["ScriptFunction"] = function(self, Value) if PlayerData.Settings:FindFirstChild("FieldOfView",true) then PlayerData.Settings:FindFirstChild("FieldOfView",true).Value = Value end end }, ["ExtendedZoom"] = { ["DisplayDescription"] = "Extends the Maximum Zoom Distance for the camera", ["DisplayTitle"] = "Extended Zoom Distance", ["LayoutOrder"] = 2, ["Savable"] = true, ["InstanceType"] = "NumberValue", ["DefaultInstanceValue"] = 10, ["ExtraData"] = { ["MaxValue"] = 100, ["MinValue"] = 0, ["Step"] = 5, }, ["ScriptFunction"] = function(self, Value) LocalPlayer.CameraMaxZoomDistance = game:GetService("StarterPlayer").CameraMaxZoomDistance + (Value * 0.25) end }, ["ShowChat"] = { ["DisplayDescription"] = "Shows the Full Chat while in the Round", ["DisplayTitle"] = "Show Chat", ["LayoutOrder"] = 3, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = not game:GetService("Chat"):CanUserChatAsync(LocalPlayer.UserId) and true or nil }, ["ScriptFunction"] = function(self, Value) if not SideBar:GetAttribute("WasVisible") and TextChatService:FindFirstChildOfClass("ChatWindowConfiguration") then TextChatService:FindFirstChildOfClass("ChatWindowConfiguration").Enabled = Value end end }, ["ShowPrivacy"] = { ["DisplayDescription"] = "Shows everyones privacy info", ["DisplayTitle"] = "Shows Privacy Info", ["LayoutOrder"] = 4, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in Players:GetPlayers() do if v ~= LocalPlayer then HandlePrivacySettings(v) end end end }, ["HideInjury"] = { ["DisplayDescription"] = "Hides the injured screen and effects used when you are low health", ["DisplayTitle"] = "Hide Injured UI/Effects", ["LayoutOrder"] = 5, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in PlayerGui:FindFirstChild("TemporaryUI"):QueryDescendants("#redFlash,#injuredVignette") do v.Visible = not Value end if Lighting:FindFirstChild("HealthDesaturation") then Lighting:FindFirstChild("HealthDesaturation").Enabled = not Value end end }, ["DisableBlindness"] = { ["DisplayDescription"] = "Disables the blindness effect", ["DisplayTitle"] = "Disable Blindness", ["LayoutOrder"] = 6, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = true, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) for i,v in Lighting:QueryDescendants("#BlindnessBlur BlurEffect") do v.Enabled = not Value end end }, ["DeleteRagdolls"] = { ["DisplayDescription"] = "Deletes ALL Ragdolls regardless the type of ragdoll for performance", ["DisplayTitle"] = "Delete All Ragdolls", ["LayoutOrder"] = 7, ["Savable"] = true, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "PrivateServer" }, ["ScriptFunction"] = function(self, Value) if Value and RagdollsFolder then RagdollsFolder:ClearAllChildren() elseif not RagdollsFolder then self.Value = false self.Instance:SetAttribute("Requirement",true) end end }, ["PlayerSelectCrash"] = { ["DisplayDescription"] = "Select a player to crash", ["DisplayTitle"] = "Player to crash", ["LayoutOrder"] = 8, ["Savable"] = false, ["InstanceType"] = "StringValue", ["DefaultInstanceValue"] = "None", ["ExtraData"] = { ["Requirement"] = "PrivateServerOwner", ["Options"] = "None", }, ["ScriptFunction"] = function(self, Value) end }, ["CrashTheTarget"] = { ["DisplayDescription"] = "Crashes the selected target (Host Exclusive)", ["DisplayTitle"] = "Crash Target", ["LayoutOrder"] = 9, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "PlayerSelectCrash~None|PrivateServerOwner", }, ["ScriptFunction"] = function(self, Value) if Value then self.Instance.Value = false local PlayerName = GetValue("PlayerSelectCrash") if PlayerName == "Everyone" or PlayerName == "Both" then for i,Player in Players:GetPlayers() do if Player ~= LocalPlayer then local Name = Player.Name task.spawn(function() repeat Network:WaitForChild("RemoteEvent"):FireServer("ExecuteCommand", {"GiveStatus", Name, "Nausea", math.huge, 1}) task.wait(1.5) until not Players:FindFirstChild(Name) end) end end else task.spawn(function() repeat Network:WaitForChild("RemoteEvent"):FireServer("ExecuteCommand", {"GiveStatus", PlayerName, "Nausea", math.huge, 1}) task.wait(1.5) until not Players:FindFirstChild(PlayerName) end) end end end }, ["SkyGlitch"] = { ["DisplayDescription"] = "Gives sky glitching effect to everyone (Host Exclusive)", ["DisplayTitle"] = "Sky Glitch", ["LayoutOrder"] = 10, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "PrivateServerOwner" }, ["ScriptFunction"] = function(self, Value) if Value and not workspace:GetAttribute("EffectActive") then workspace:SetAttribute("EffectActive",true) self.Instance.Value = false Network:WaitForChild("RemoteEvent"):FireServer("ExecuteCommand",{"GiveStatus","All","Nausea",-1e11,10}) task.delay(10, function() workspace:SetAttribute("EffectActive",nil) self.Instance.Value = false end) elseif workspace:GetAttribute("EffectActive") then self.Instance.Value = true end end }, ["InstaKill"] = { ["DisplayDescription"] = "Allows you to instantly kill anyone (Host Exclusive)", ["DisplayTitle"] = "Instant Kill", ["LayoutOrder"] = 11, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "PrivateServerOwner" }, ["ScriptFunction"] = function(self, Value) if workspace:GetAttribute("InstaKill") == nil then workspace:SetAttribute("InstaKill", Value) self.Instance.Value = Value task.delay(1.5, function() workspace:SetAttribute("InstaKill",nil) end) if Value then repeat Network:WaitForChild("RemoteEvent"):FireServer("ExecuteCommand",{"GiveStatus",LocalPlayer.Name,"Weakness",-1e11,1}) task.wait(0.5) until not self.Instance.Value end else self.Instance.Value = workspace:GetAttribute("InstaKill") end end }, ["DisableDamage"] = { ["DisplayDescription"] = "Disables dealing damage from hits (Host Exclusive)", ["DisplayTitle"] = "Disable Damage", ["LayoutOrder"] = 12, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "PrivateServerOwner" }, ["ScriptFunction"] = function(self, Value) if workspace:GetAttribute("DisableDamage") == nil then workspace:SetAttribute("DisableDamage", Value) self.Instance.Value = Value task.delay(2.5, function() workspace:SetAttribute("DisableDamage",nil) end) if Value then repeat for i,v in Players:GetPlayers() do if v.UserId == LocalPlayer.UserId and GetValue("InstaKill") then continue end Network:WaitForChild("RemoteEvent"):FireServer("ExecuteCommand",{"GiveStatus",v.Name,"Strength",-1e11,2}) end task.wait(1.5) until not self.Instance.Value end else self.Instance.Value = workspace:GetAttribute("DisableDamage") end end }, ["OfficialJoin"] = { ["DisplayDescription"] = "Makes you join the official forsaken game", ["DisplayTitle"] = "Join the official version", ["LayoutOrder"] = 19, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = { ["Requirement"] = "OfficialGame~true" }, ["ScriptFunction"] = function(self, Value) if Value and not workspace:GetAttribute("LoadingTeleport") then workspace:SetAttribute("LoadingTeleport",true) local A = workspace:FindFirstChild("Sounds") and workspace.Sounds:ClearAllChildren() local B = workspace:FindFirstChild("Themes") and workspace.Themes:ClearAllChildren() TeleportSound.TimePosition = 0.4 TeleportSound.Volume = 4 TeleportSound.Playing = true local OtherInstance = GetValue("Rejoin",true) OtherInstance:SetAttribute("Requirement",true) task.wait(0.5) local FrequencyData = HttpService:JSONDecode(ReturnData("AccountType.txt", true)) local PlaceId = 83645629621104 if FrequencyData["New"] and FrequencyData["New"] < FrequencyData["Normal"] then PlaceId = 18687417158 end game:GetService("ExperienceService"):LaunchExperience({placeId = PlaceId}) elseif workspace:GetAttribute("LoadingTeleport") then self.Instance.Value = true end end }, ["Rejoin"] = { ["DisplayDescription"] = "Makes you rejoin the exact same server", ["DisplayTitle"] = "Rejoin", ["LayoutOrder"] = 20, ["Savable"] = false, ["InstanceType"] = "BoolValue", ["DefaultInstanceValue"] = false, ["ExtraData"] = {}, ["ScriptFunction"] = function(self, Value) if Value and not workspace:GetAttribute("LoadingTeleport") then workspace:SetAttribute("LoadingTeleport",true) local A = workspace:FindFirstChild("Sounds") and workspace.Sounds:ClearAllChildren() local B = workspace:FindFirstChild("Themes") and workspace.Themes:ClearAllChildren() TeleportSound.TimePosition = 0.4 TeleportSound.Volume = 4 TeleportSound.Playing = true local OtherInstance = GetValue("OfficialJoin",true) OtherInstance:SetAttribute("Requirement",true) task.wait(0.25) if workspace:GetAttribute("ServerType") == "VIP" then game:GetService("TeleportService"):Teleport(game.PlaceId) else game:GetService("TeleportService"):TeleportToPlaceInstance(game.PlaceId,game.JobId) end elseif workspace:GetAttribute("LoadingTeleport") then self.Instance.Value = true end end }, } } -- UI Creation -- MainUI.DisplayOrder = 5 PlusFolderSettings.Name = "Plus" PlusFolderSettings.Parent = PlayerData SidePlusButton.Name = "Plus" SidePlusButton.Parent = Buttons SidePlusButton.LayoutOrder = MainButton.Name == "Settings" and MainButton.LayoutOrder - 1 or MainButton.LayoutOrder + 1 if NewUIVersion then PlusButton:FindFirstChild("Icon").ImageColor3 = Color3.fromRGB(0, 170, 127) PlusButton:FindFirstChild("Icon").Image = "rbxassetid://118860705115878" PlusButton:FindFirstChild("Text"):FindFirstChild("Name").Text = "Plus" PlusButton:FindFirstChild("Line").ImageColor3 = Color3.fromRGB(0, 170, 127) PlusButton:FindFirstChild("Highlight").ImageColor3 = Color3.fromRGB(0, 170, 127) PlusButton:FindFirstChild("Text"):FindFirstChild("Name").TextColor3 = Color3.fromRGB(0, 170, 127) PlusButton:FindFirstChild("Texture").ImageColor3 = Color3.fromRGB(0, 170, 127) for i,v in PlusButton:FindFirstChild("Text"):GetChildren() do if v:IsA("ImageLabel") then v.ImageColor3 = Color3.fromRGB(0, 17, 13) end end PlusButton:FindFirstChild("BG").ImageColor3 = Color3.fromRGB(0, 17, 13) PlusButton:FindFirstChild("Grunge").ImageColor3 = Color3.fromRGB(0, 37, 24) PlusButton:FindFirstChild("Grunge").ImageTransparency = 0.2 PlusButton:FindFirstChild("GrungeMain").ImageTransparency = 1 UIScale.Parent = PlusButton else SidePlusButton.Button.ImageColor3 = Color3.fromRGB(0, 170, 127) SidePlusButton.Icon.ImageColor3 = Color3.fromRGB(0, 170, 127) SidePlusButton.Icon.Image = "rbxassetid://118860705115878" SidePlusButton.Inverted.ImageColor3 = Color3.fromRGB(105, 255, 212) SidePlusButton.Inverted.ImageTransparency = 1 SidePlusButton.InvertedIcon.ImageColor3 = Color3.fromRGB(105, 255, 212) SidePlusButton.InvertedIcon.Image = "rbxassetid://85001556314176" SidePlusButton.InvertedIcon.ImageTransparency = 1 PulloutFramePlus.Title.TextColor3 = Color3.fromRGB(0, 170, 127) PulloutFramePlus.Position = UDim2.fromScale(0,0.5) PulloutFramePlus.ArtAsset.ImageColor3 = Color3.fromRGB(0, 170, 127) PulloutFramePlus.Inverted.ImageColor3 = Color3.fromRGB(105, 255, 212) PulloutFramePlus.Inverted.ImageTransparency = 1 end local Arrow = game:GetService("ReplicatedStorage"):FindFirstChild("DropdownArrow",true):Clone() Arrow.ImageColor3 = Color3.fromRGB(0, 170, 127) Arrow.Parent = SidePlusButton Arrow.Position = UDim2.fromScale(1.6,0.5) Arrow.AnchorPoint = Vector2.new(0.5,0.5) Arrow.Rotation = 90 Arrow.Size = UDim2.fromScale(0.67,0.67) Arrow.Visible = false Arrow.Active = false PlusMenu.Name = "PlusScreen" PlusMenu.Parent = MainUI PlusMenu.Visible = false PlusMenu.Size = UDim2.new(1,-20,0,0) PlusMenu.SettingsContainer.ImageColor3 = Color3.fromRGB(0, 170, 127) PlusMenu.SettingsContainer.BackgroundTransparency = 1 PlusMenu.SettingsContainer.Contents.ScrollBarImageColor3 = Color3.fromRGB(0, 170, 127) PlusMenu.SettingsContainer.Contents.Size = UDim2.fromScale(0.95,0.935) PlusMenu.SettingsContainer.Contents.Position = UDim2.fromScale(0.5,0.035) PlusMenu.ZIndex += 25 for i,v in PlusMenu.SettingsContainer:GetChildren() do if not (v:IsA("UIAspectRatioConstraint") or v.Name == "Contents") then v:Destroy() end end for i,v in PlusMenu.SettingsContainer.Contents:QueryDescendants("Frame,ImageLabel") do v:Destroy() end -- Functions -- function ColoredPrint(Text, Icon, Color) task.spawn(function() task.spawn(function() if not _G.Initialized and not _G.Initizalling then _G.Initizalling = true _G.PrintedData = {} local DevConsoleMaster = game.CoreGui:FindFirstChild("DevConsoleMaster") or game.CoreGui:WaitForChild("DevConsoleMaster", math.huge) local DevConsoleUI = DevConsoleMaster:FindFirstChild("DevConsoleUI",true) or DevConsoleMaster:WaitForChild("DevConsoleWindow",math.huge):WaitForChild("DevConsoleUI",math.huge) local IconData = { ["error"] = {"rbxasset://textures/DevConsole/Error.png","rbxassetid://97467062933153",Color3.fromRGB(215,90,74)}, ["information"] = {"rbxasset://textures/DevConsole/Info.png","rbxassetid://98895588220731",Color3.fromRGB(0,162,255)}, ["warning"] = {"rbxasset://textures/DevConsole/Warning.png","rbxassetid://129253285072281",Color3.fromRGB(255,218,68)}, ["plus"] = {"rbxassetid://127360009371476","rbxassetid://127360009371476",Color3.fromRGB(255,255,255)}, ["success"] = {"rbxassetid://75097763556603","rbxassetid://87889653826033",Color3.fromRGB(105,215,74)}, } local function GetIcon(Icon) if type(Icon) == "string" then local iconLower = Icon:lower() for i,v in pairs(IconData) do if string.lower(string.sub(i, 1, #iconLower)) == iconLower then return v end end end return IconData["information"] end local function RunChecks(ins) local Log = ins:FindFirstChild("ClientLog") local function RunChecks2(ins2,Log) local TextLabel = ins2:FindFirstChildWhichIsA("TextLabel") local Image = ins2:FindFirstChildWhichIsA("ImageLabel") if TextLabel then local function Update() local ID = string.sub(TextLabel.Text, -7, -1) if _G.PrintedData[ID] then local Data = _G.PrintedData[ID] local Icon = Data[1] or nil local Color = Data[2] or nil local ImageColored = false TextLabel.RichText = true if type(Icon) ~= type("") and typeof(Color) ~= typeof(Color3.new()) then Icon = GetIcon("info")[1] ImageColored = false Color = Color3.new(1,1,1) elseif type(Icon) == type("") and typeof(Color) ~= typeof(Color3.new()) then Color = GetIcon(Icon)[3] ImageColored = false Icon = GetIcon(Icon)[1] elseif type(Icon) ~= type("") and typeof(Color) == typeof(Color3.new()) then Icon = "" ImageColored = false elseif type(Icon) == type("") and typeof(Color) == typeof(Color3.new()) then ImageColored = true Icon = GetIcon(Icon)[2] end local OriginalText = TextLabel.Text local function Update2() TextLabel.Text = string.format("%s",Color:ToHex(),string.gsub(OriginalText,ID,"")) if Image then Image.Image = Icon if ImageColored then Image.ImageColor3 = Color end end end Update2() else Image.ImageColor3 = Color3.new(1,1,1) Image.Image = TextLabel.TextColor3 == Color3.fromRGB(255,218,68) and GetIcon("warning")[1] or TextLabel.TextColor3 == Color3.fromRGB(215,90,74) and GetIcon("error")[1] or TextLabel.TextColor3 == Color3.fromRGB(0,162,255) and GetIcon("info")[1] or "" end TextLabel:GetPropertyChangedSignal("Text"):Once(Update) end Update() end end if Log then for i,ins2 in pairs(Log:GetChildren()) do RunChecks2(ins2, Log) end Log.ChildAdded:Connect(function(ins2) RunChecks2(ins2, Log) end) end ins.ChildAdded:Connect(function(Log) if Log.Name == "ClientLog" then for i,ins2 in pairs(Log:GetChildren()) do RunChecks2(ins2, Log) end Log.ChildAdded:Connect(function(ins2) RunChecks2(ins2, Log) end) end end) end if DevConsoleUI:FindFirstChild("MainView") then RunChecks(DevConsoleUI:FindFirstChild("MainView")) end DevConsoleUI.ChildAdded:Connect(function(ins) if ins.Name == "MainView" then RunChecks(ins) end end) _G.Initialized = true _G.Initizalling = nil end end) local UniqueID = string.sub(game:GetService("HttpService"):GenerateGUID(false), 1, 7) print((type(Text) == "string" and Text or "") .. UniqueID) _G.PrintedData[UniqueID] = {Icon,Color} end) end function PlaySound(SoundName,Settings,KeepPlaying) local Sound = typeof(SoundName) == "string" and game:GetService("ReplicatedStorage").Assets.Sounds:FindFirstChild(SoundName,true) or (typeof(SoundName) == "Instance" and SoundName) or nil if Sound then task.spawn(function() Sound = Sound:Clone() Sound.Parent = workspace:FindFirstChild("Sounds") or workspace if type(Settings) == "table" then for i,v in Settings do Sound[i] = v end end if KeepPlaying then Sound.Playing = true else Sound:Play() end Debris:AddItem(Sound, Sound.TimeLength + 1) return Sound end) else warn("Failed to play sound: ".. tostring(SoundName)) end end local function SetButtonState(Active) task.spawn(function() local u4 = {} local v5 = { ["Active"] = { ["ImageColor3"] = Color3.fromRGB(0, 170, 127) }, ["Inactive"] = { ["ImageColor3"] = Color3.fromRGB(0, 17, 13) } } u4.BG = v5 local v6 = { ["Active"] = { ["ImageColor3"] = Color3.fromRGB(0, 37, 24) }, ["Inactive"] = { ["ImageColor3"] = Color3.fromRGB(80, 80, 80) } } u4.GrungeMain = v6 local v7 = { ["Active"] = { ["ImageTransparency"] = 0, ["ImageColor3"] = Color3.fromRGB(0, 229, 171) }, ["Inactive"] = { ["ImageTransparency"] = 0.2, ["ImageColor3"] = Color3.fromRGB(0, 37, 24) } } u4.Grunge = v7 local v8 = { ["Active"] = { ["ImageColor3"] = Color3.fromRGB(0, 37, 24) }, ["Inactive"] = { ["ImageColor3"] = Color3.fromRGB(0, 170, 127) } } u4.Highlight = v8 local v9 = { ["Active"] = { ["ImageColor3"] = Color3.fromRGB(0, 37, 24) }, ["Inactive"] = { ["ImageColor3"] = Color3.fromRGB(0, 170, 127) } } u4.Icon = v9 local v10 = { ["Active"] = { ["ImageColor3"] = Color3.fromRGB(0, 37, 24) }, ["Inactive"] = { ["ImageColor3"] = Color3.fromRGB(0, 170, 127) } } u4.Line = v10 local v26 = PlusButton:FindFirstChild("Text") for _, v27 in v26 and v26:GetChildren() or {} do if v27:IsA("TextLabel") then TweenService:Create(v27, TweenInfo.new(0.25), { ["TextColor3"] = Active and Color3.fromRGB(0, 37, 24) or Color3.fromRGB(0, 170, 127) }):Play() elseif v27:IsA("ImageLabel") then TweenService:Create(v27, TweenInfo.new(0.25), { ["ImageColor3"] = Active and Color3.fromRGB(0, 170, 127) or Color3.fromRGB(0, 17, 13) }):Play() end end local v28 = Active and "Active" or "Inactive" for v29, v30 in u4 do local v31 = PlusButton:FindFirstChild(v29) if v31 then TweenService:Create(v31, TweenInfo.new(0.25), v30[v28]):Play() end end end) end function GetValue(FeatureName,InstanceOnly) local FeatureInstance = Values[FeatureName] if not FeatureInstance then FeatureInstance = PlusFolderSettings:FindFirstChild(FeatureName,true) Values[FeatureName] = FeatureInstance end if InstanceOnly then return FeatureInstance else return FeatureInstance and FeatureInstance.Value end end local function GetFunction(Function1, Function2) return typeof(Function1) == "function" and Function1 or (typeof(Function2) == "function" and Function2) or nil end function RichTextGradientColor(Text:string,Colors) local Count = 0 for i = 1,#Text do if Text:sub(i,i) ~= " " then Count += 1 end end if Count == 0 then return Text end local MaxIndex = math.max(1,Count-1) local Segments = #Colors-1 local Result,Used = "",0 for i = 1,#Text do local Char = Text:sub(i,i) if Char == " " then Result..=Char else local T = Used/MaxIndex Used += 1 local Segment= math.min(math.floor(T*Segments),Segments-1) Result..=('%s'):format(Colors[Segment+1]:Lerp(Colors[Segment+2],T*Segments-Segment):ToHex(),Char) end end return Result end local function CheckTextDistance(Text,TargetRoot,Settings) local Camera = TargetRoot and workspace.CurrentCamera if not Camera or (Text:GetAttribute("Frozen") and not Settings.Instant) then return end local Distance = (Camera.CFrame.Position - TargetRoot.Position).Magnitude local MinDistance = Settings.MinDistance if Distance > MinDistance and Distance < 1200 and Text.TextTransparency ~= 0 then local Tween = TweenService:Create(Text,TweenInfo.new(Settings.Instant and 0 or 0.1),{TextTransparency = 0,TextStrokeTransparency = 0}) Tween.Parent = TargetRoot Tween:Play() Debris:AddItem(Tween,0.2) elseif Distance <= MinDistance or Distance >= 1200 and Text.TextTransparency ~= 1 then local Tween = TweenService:Create(Text,TweenInfo.new(Settings.Instant and 0 or 0.1),{TextTransparency = 1,TextStrokeTransparency = 1}) Tween.Parent = TargetRoot Tween:Play() Debris:AddItem(Tween,0.2) end end local function CheckHighlightDistance(Highlight,TargetRoot,Settings) local Camera = TargetRoot and workspace.CurrentCamera if not Camera or (Highlight:GetAttribute("Frozen") and not Settings.Instant) then return end local Distance = (Camera.CFrame.Position - TargetRoot.Position).Magnitude local MinDistance = Settings.MinDistance local ShouldHide = Distance < MinDistance or Distance > 1200 if ShouldHide and Highlight.FillTransparency ~= 1 then local Tween = TweenService:Create(Highlight,TweenInfo.new(Settings.Instant and 0 or 0.1),{ FillTransparency = 1, OutlineTransparency = 1 }) Tween.Parent = Highlight Tween:Play() Debris:AddItem(Tween,0.2) return end if not ShouldHide and Distance >= MinDistance and Distance < 1200 then local TransparencyAmount = math.clamp(1 - math.clamp((Distance - MinDistance) / math.max(Settings.MaxDistance - MinDistance, 0.001),0,1),0.45,1) if math.abs(Highlight.FillTransparency - TransparencyAmount) > 0 then local Tween = TweenService:Create(Highlight,TweenInfo.new(Settings.Instant and 0 or 0.1),{ FillTransparency = math.clamp(TransparencyAmount + 0.05,0,1), OutlineTransparency = TransparencyAmount <= 0.95 and TransparencyAmount - 0.05 or TransparencyAmount }) Tween.Parent = Highlight Tween:Play() Debris:AddItem(Tween,0.2) end end end local function CreateText(Enabled,ItemInstance,TargetRoot,Settings) Settings = type(Settings) == "table" and Settings or {["MinDistance"] = 10,["Color"] = Color3.new(1,1,1)} local BillboardGui = ItemInstance:QueryDescendants("BillboardGui[$Dynamic]") if Enabled and GetValue("ShowText") then if not BillboardGui[1] then BillboardGui = Instance.new("BillboardGui") local TextLabel = Instance.new("TextLabel") BillboardGui.Name = HttpService:GenerateGUID(false):sub(1,7) BillboardGui.Archivable = false BillboardGui.Size = ItemInstance:IsA("Tool") and UDim2.new(1.5, 30, 0.75, 30) or UDim2.new(1.5,60,0.75,25) BillboardGui["StudsOffset" .. (ItemInstance:IsA("Tool") and "WorldSpace" or "")] = ItemInstance:IsA("Tool") and Vector3.new(0,3,0) or Vector3.new(0,4,0) BillboardGui.AlwaysOnTop = true BillboardGui.ResetOnSpawn = false BillboardGui.Adornee = TargetRoot BillboardGui:SetAttribute("Dynamic",true) TextLabel.Text = Settings.Text or "Unknown" local H, S, V = Settings.Color:ToHSV() TextLabel.TextColor3 = Color3.fromHSV(H, S, V * 1.1) TextLabel.AnchorPoint = Vector2.new(0.5,0.5) TextLabel.Position = UDim2.fromScale(0.5,0.5) TextLabel.Size = UDim2.fromScale(1,1) TextLabel.BackgroundTransparency = 1 TextLabel.TextScaled = true TextLabel.Parent = BillboardGui BillboardGui.Parent = TargetRoot CheckTextDistance(TextLabel,TargetRoot,Settings) local Connection;Connection = workspace.CurrentCamera:GetPropertyChangedSignal("CameraSubject"):Connect(function() if BillboardGui and BillboardGui.Parent then for i,v in TextLabel:GetChildren() do v:Cancel() end TextLabel.TextTransparency = 0.95 TextLabel.TextStrokeTransparency = 0.95 else Connection:Disconnect() end end) BillboardGui.Destroying:Once(function() if Connection then Connection:Disconnect() end end) BillboardGui.Parent:GetPropertyChangedSignal("Parent"):Once(function() BillboardGui:Destroy() end) else BillboardGui = BillboardGui[1] local H, S, V = Settings.Color:ToHSV() local TextLabel = BillboardGui.TextLabel TextLabel.TextColor3 = Color3.fromHSV(H, S, V * 1.1) CheckTextDistance(TextLabel,TargetRoot,Settings) end elseif BillboardGui[1] then BillboardGui[1]:Destroy() end end local function CreateDynamicHighlight(Enabled,ItemInstance,TargetRoot,Settings) Settings = type(Settings) == "table" and Settings or {["MaxDistance"] = 100,["MinDistance"] = 10,["Color"] = Color3.new(1,1,1)} local Highlight:Highlight? = ItemInstance:QueryDescendants("Highlight[$Dynamic]") if Enabled and GetValue("ESP") then if not Highlight[1] then Highlight = Instance.new("Highlight") Highlight.Name = HttpService:GenerateGUID(false):sub(1,7) Highlight.Archivable = false local H, S, V = Settings.Color:ToHSV() Highlight.FillColor = Color3.fromHSV(H, S, V * 0.8) Highlight.OutlineColor = Color3.fromHSV(H, S, V * 1.1) Highlight:SetAttribute("Dynamic",true) Highlight.Parent = ItemInstance Highlight.Adornee = ItemInstance Highlight.FillTransparency = 1 Highlight.OutlineTransparency = 1 CheckHighlightDistance(Highlight, TargetRoot, Settings) local Connection;Connection = workspace.CurrentCamera:GetPropertyChangedSignal("CameraSubject"):Connect(function() if Highlight and Highlight.Parent then for i,v in Highlight:GetChildren() do v:Cancel() end Highlight.FillTransparency = 0.95 Highlight.OutlineTransparency = 0.95 else Connection:Disconnect() end end) Highlight.Destroying:Once(function() if Connection then Connection:Disconnect() end end) Highlight.Parent:GetPropertyChangedSignal("Parent"):Once(function() Highlight:Destroy() end) else Highlight = Highlight[1] local H, S, V = Settings.Color:ToHSV() Highlight.FillColor = Color3.fromHSV(H, S, V * 0.8) Highlight.OutlineColor = Color3.fromHSV(H, S, V * 1.1) CheckHighlightDistance(Highlight, TargetRoot, Settings) end elseif Highlight[1] then Highlight[1]:Destroy() end end local function collidewith(gui1,gui2) local gui1_topLeft,gui1_bottomRight = gui1.AbsolutePosition, gui1.AbsolutePosition + gui1.AbsoluteSize local gui2_topLeft,gui2_bottomRight = gui2.AbsolutePosition, gui2.AbsolutePosition + gui2.AbsoluteSize return ((gui1_topLeft.x < gui2_bottomRight.x and gui1_bottomRight.x > gui2_topLeft.x) and (gui1_topLeft.y < gui2_bottomRight.y and gui1_bottomRight.y > gui2_topLeft.y)) end local function UpdatePlayerCrashDrop() local OriginString = "None" local CurrentPlayers = Players:GetPlayers() for i,v in CurrentPlayers do if v ~= LocalPlayer then OriginString ..= "|" .. v.Name end end local PlayerCount = #CurrentPlayers if PlayerCount == 3 then OriginString ..= "|Both" elseif PlayerCount > 3 then OriginString ..= "|Everyone" end FeatureLoadout["Miscellaneous"]["PlayerSelectCrash"]["Instance"]:SetAttribute("Options", OriginString) end function HandlePrivacySettings(Player) if Player then local Data = Player:FindFirstChild("PlayerData") if Data then local PrivacySettings = Data:FindFirstChild("Privacy",true) if PrivacySettings then for i,v in PrivacySettings:GetChildren() do if not v:GetAttribute("OriginalValue") and v:IsA("BoolValue") then v:SetAttribute("OriginalValue", v.Value) v:GetPropertyChangedSignal("Value"):Connect(function() local ShowPrivacy = FeatureLoadout["Miscellaneous"]["ShowPrivacy"]["Instance"] if ShowPrivacy and ShowPrivacy.Value then v.Value = false else v.Value = v:GetAttribute("OriginalValue") end end) local ShowPrivacy = FeatureLoadout["Miscellaneous"]["ShowPrivacy"]["Instance"] if ShowPrivacy and ShowPrivacy.Value then v.Value = false else v.Value = v:GetAttribute("OriginalValue") end elseif v:IsA("BoolValue") then local ShowPrivacy = FeatureLoadout["Miscellaneous"]["ShowPrivacy"]["Instance"] if ShowPrivacy and ShowPrivacy.Value then v.Value = false else v.Value = v:GetAttribute("OriginalValue") end end end end end end end local function HandleCheckForMod(Player) local Rank = Player:GetRoleInGroupAsync(33548380) if Rank and Rank:lower():find("mod") and not workspace:GetAttribute("ModFound") then workspace:SetAttribute("ModFound",true) StarterGui:SetCore("SendNotification",{ Title = "WARNING", Text = "A Moderator is in your server all features are now disabled", Icon = "rbxasset://textures/DevConsole/Warning.png", Duration = 10 }) FeatureLoadout["EnviromentFunctions"]["files"]["DefaultInstanceValue"] = true for i,v in FeatureLoadout do if i ~= "EnviromentFunctions" then if i ~= "TabAttributes" then for i2,v2 in v do if v2["Instance"] then v2["Instance"].Value = v2["DefaultInstanceValue"] end end end end end end end function HandleAllowJumping(Value) if LocalHumanoid and not LocalHumanoid:GetAttribute("JumpingConnection") then if Value then if not LocalHumanoid:GetAttribute("JumpingConnection") then LocalHumanoid:SetAttribute("JumpingConnection",LocalHumanoid.JumpPower) else return end local Connection;Connection = LocalHumanoid.StateChanged:Connect(function(old,new) if LocalHumanoid.FloorMaterial == Enum.Material.Air then return end if LocalCharacter.Parent ~= "Spectator" and new == Enum.HumanoidStateType.Jumping or new == Enum.HumanoidStateType.Freefall and LocalHumanoid.JumpPower > 0 and (GetValue("EnableJumping") or false) and not LocalHumanoid:GetAttribute("CDJump") then if not(GetValue("EnableJumping")) then Connection:Disconnect() LocalHumanoid.JumpPower = LocalHumanoid:GetAttribute("JumpingConnection") or 0 LocalHumanoid:SetAttribute("JumpingConnection",nil) return end LocalHumanoid:GetPropertyChangedSignal("FloorMaterial"):Wait() if LocalHumanoid.FloorMaterial == Enum.Material.Air then LocalHumanoid.JumpPower = 0 else return end LocalHumanoid:SetAttribute("CDJump",true) task.wait(1.25) if GetValue("EnableJumping") then LocalHumanoid.JumpPower = 47 else Connection:Disconnect() LocalHumanoid.JumpPower = LocalHumanoid:GetAttribute("JumpingConnection") or 0 LocalHumanoid:SetAttribute("JumpingConnection",nil) end LocalHumanoid:SetAttribute("CDJump",nil) end end) end LocalHumanoid.JumpPower = Value and 47 or 0 end end function HandleNoliNPC(Value) if Value then for i,v in KillersFolder:GetChildren() do if v.Name:lower() == "noli" and not Players:GetPlayerFromCharacter(v) then v.Parent = Lighting v:PivotTo(v:GetPivot() * CFrame.new(0,-100,0)) end end if workspace:FindFirstChild("Themes") then for i,v in pairs(workspace.Themes:GetChildren()) do if v.Name:find("FakeLayer") and v:IsA("Sound") then v:Destroy() end end end else for i,v in Lighting:GetChildren() do if v.Name:lower() == "noli" then v.Parent = InGame v:PivotTo(v:GetPivot() * CFrame.new(0,100,0)) end end end end function Handle007n7NPC(Value) if Value then for i,v in InGame:GetChildren() do if v.Name:lower() == "007n7" and not Players:GetPlayerFromCharacter(v) then v.Parent = Lighting if v:FindFirstChild("HumanoidRootPart") then v:FindFirstChild("HumanoidRootPart").ChildAdded:Connect(function(Child) if Child:IsA("Sound") and GetValue("Disable007n7NPC") then Child:Destroy() end end) end end end else for i,v in Lighting:GetChildren() do if v.Name:lower() == "007n7" then v.Parent = InGame end end end end function IsHitboxNotNear(HitboxPart,Position) if HitboxPart and Position and LocalRoot then local IsHitboxNotNearParams = OverlapParams.new() IsHitboxNotNearParams.FilterType = Enum.RaycastFilterType.Include IsHitboxNotNearParams.MaxParts = 1 IsHitboxNotNearParams.FilterDescendantsInstances = {HitboxPart} local Result = workspace:GetPartBoundsInRadius(Position, 2.5, IsHitboxNotNearParams) return #Result == 0 else ColoredPrint("HitboxPart/Position/HumanoidRootPart is nil while trying to check if near", "info", Color3.new(1,0.25,0)) return false end end local function VelocityToPosition(target) local TimeLimit = workspace.DistributedGameTime + 7 local OGCG = LocalRoot.CollisionGroup local AllParts = LocalCharacter:QueryDescendants("BasePart:not([CollisonGroup=Default])") for i,v in AllParts do v.CollisionGroup = "None" end local Body = Instance.new("BodyVelocity") Body.MaxForce = Vector3.new(9e9, 9e9, 9e9) Body.Velocity = Vector3.new(0, 0, 0) Body.Parent = LocalRoot while (LocalRoot.Position - target).Magnitude > 2 and not (workspace.DistributedGameTime >= TimeLimit) do Body.Velocity = (target - LocalRoot.Position).Unit * 100 RunService.RenderStepped:Wait() end if workspace.DistributedGameTime >= TimeLimit then warn("Failed to do in time") end Body:Destroy() for i,v in AllParts do v.CollisionGroup = OGCG end end function GoUnder(Value) local Offset = 22 if Value == nil then IsUnderground = false Value = GetValue("Invincible") end if Value and not SideBar:GetAttribute("WasVisible") and not IsUnderground then IsUnderground = false if not (LocalRoot and LocalHead and LocalHumanoid and MainUI.Enabled) then repeat task.wait(0.25) until (LocalRoot and LocalHead and LocalHumanoid and MainUI.Enabled) end local MapName if GameMap and GameMap:FindFirstChild("Config") then local MapData = require(GameMap:FindFirstChild("Config")) if MapData and MapData["DisplayName"] ~= nil then MapName = MapData["DisplayName"] end end local OldCFrame:CFrame = LocalRoot.CFrame local UnderCFrame if MapName == "Underground War" then local SelfParams = OverlapParams.new() SelfParams.FilterType = Enum.RaycastFilterType.Include SelfParams.MaxParts = 1 SelfParams.FilterDescendantsInstances = {LocalRoot} local BoxCheck = workspace:GetPartBoundsInBox(CFrame.new(-172,4444,-20,1,0,0,0,1,0,0,0,1),Vector3.new(230, 35, 300),SelfParams) if #BoxCheck > 0 then Offset = 50 end local MapPart = GameMap:FindFirstChild("DirtSlabs",true) and GameMap:FindFirstChild("DirtSlabs",true):FindFirstChildWhichIsA("BasePart") if MapPart then UnderCFrame = CFrame.new(Vector3.new(OldCFrame.X + 0.5,MapPart.Position.Y - 7.5,OldCFrame.Z + 0.5)) else UnderCFrame = OldCFrame * CFrame.new(0, -Offset, 0) end else UnderCFrame = OldCFrame * CFrame.new(0, -Offset, 0) end LocalHumanoid.CameraOffset = Vector3.new(0, 12e12 ,0) task.wait(0.1) LocalRoot.CFrame = UnderCFrame local Tries = 0 local TimerStop = workspace.DistributedGameTime + 3.5 repeat Tries += 1 LocalRoot.Velocity = Vector3.zero VelocityToPosition(UnderCFrame.Position) LocalHead.Anchored = true repeat task.wait() until IsHitboxNotNear(LocalCharacter:FindFirstChild("QueryHitbox"),OldCFrame.Position) or not LocalRoot or not LocalCharacter or TimerStop < workspace.DistributedGameTime IsUnderground = true task.wait() LocalRoot.Velocity = Vector3.zero LocalHead.Anchored = false LocalRoot.CFrame = OldCFrame RunService.Heartbeat:Wait() LocalRoot.Velocity = Vector3.zero until IsHitboxNotNear(LocalCharacter:FindFirstChild("QueryHitbox"),OldCFrame.Position) or Tries >= 3 if Tries >= 3 then IsUnderground = false workspace:SetAttribute("Invincible",nil) GetValue("Invincible",true).Value = false if GetValue("OfficialGame") then StarterGui:SetCore("SendNotification",{ Title = "Fail", Text = "Failed to become invincible, if this keeps happning please report this in the discord server", Icon = "rbxasset://textures/DevConsole/Warning.png", Duration = 4.5 }) else StarterGui:SetCore("SendNotification",{ Title = "Fail", Text = "Failed to become invincible, this feature is not supported here", Icon = "rbxasset://textures/DevConsole/Warning.png", Duration = 4.5 }) GetValue("Invincible",true):SetAttribute("Requirement", true) end return ColoredPrint("Failed to go invincible! Tried 3 Times and still failed.", "info", Color3.new(1,0.25,0)) end else IsUnderground = false end end function Check(ValueInstance) if GetValue("AntiSlowness") then if ValueInstance and ValueInstance.Name ~= "Sprinting" then if ValueInstance.Name == "DirectionalMovement" or ValueInstance.Name == "FixingGenerator" or ValueInstance.Name:upper() == "ENRAGED" then if ValueInstance.Value < 1 then ValueInstance.Value = 1 end elseif ValueInstance.Value > 0.05 and ValueInstance.Value < 1 then ValueInstance:Destroy() else ValueInstance:GetPropertyChangedSignal("Value"):Connect(function() if ValueInstance.Value > 0.05 and ValueInstance.Value < 1 then ValueInstance:Destroy() end end) end end end end function TableValueFind(Table, MatchFn, Seen) if type(Table) ~= "table" or type(MatchFn) ~= "function" then return nil end Seen = Seen or {} if Seen[Table] then return nil end Seen[Table] = true for Key, Value in Table do if MatchFn(Key, Value) then return Value, Key, Table elseif type(Value) == "table" then local FoundValue, FoundKey, FoundParent = TableValueFind(Value, MatchFn, Seen) if FoundKey ~= nil then return FoundValue, FoundKey, FoundParent end end end return nil end function CanPlayOverrideAnim(Character) return Character and Character.Parent and GetValue("AnimationChanger") ~= "Original" and ((GetValue("ChangeInLobby") and Character.Parent.Name == "Spectating") or Character.Parent.Name ~= "Spectating") end local function GetAnimationType(ID) for i,v in AllAnimations do for animtype,animId in v do if type(animId) == "table" then for i2,v2 in animId do if type(v2) == "string" and v2:find(tostring(ID)) then return animtype,i,i2 end end else if type(animId) == "string" and animId:find(tostring(ID)) then return animtype,i end end end end end local function AddOverridenAnimation(ID) if LocalCharacter and ID then if OverriddenAnimations[ID] then return table.unpack(OverriddenAnimations[ID]) end local OverrideFolder = LocalCharacter:FindFirstChild("OverrideAnimation") or Instance.new("Folder", LocalCharacter) OverrideFolder.Name = "OverrideAnimation" local AnimType,CharName = GetAnimationType(ID) or "Unknown" local Animation = Instance.new("Animation") Animation.Name = AnimType .. tostring(ID) Animation.AnimationId = tostring(ID):find("id") and tostring(ID) or "http://www.roblox.com/asset/?id=" .. tostring(ID) Animation.Parent = OverrideFolder Animation:SetAttribute("Overriden",true) local Animator = LocalHumanoid and LocalHumanoid:FindFirstChildOfClass("Animator") if Animator then local Track = Animator:LoadAnimation(Animation) OverriddenAnimations[ID] = {Track,Animation} return Track,Animation end else return end end function ChangeTrackWithOverride(Track,AnimationName,SkipOverride) if Track and LocalHumanoid then local Animator = LocalHumanoid:FindFirstChildOfClass("Animator") local IsOverridenTrack = Track.Animation and Track.Animation:GetAttribute("Overriden") local AnimType,CharName = GetAnimationType(tonumber(Track.Animation.AnimationId:match("%d+"))) if AnimType and CharName and (not IsOverridenTrack or SkipOverride) and AnimationName ~= "Original" then local AnimationString = AllAnimations[AnimationName] and AllAnimations[AnimationName][AnimType] local OverrideTrack,Animation = AddOverridenAnimation(AnimationString) if OverrideTrack and Animation then BindableShouldStop:Fire() OverrideTrack.Looped = Track.Looped OverrideTrack:Play(SkipOverride and 0 or 0.1) Track:Stop(0) if not IsOverridenTrack then LastTrack = Track end BindableShouldStop.Event:Once(function() if GetValue("AnimationChanger") == "Original" then OverrideTrack:Stop() LastTrack:Play() else OverrideTrack:Stop() end end) end end end end local SupportedOverrides = {"idle","walk","run"} function UpdateAnim(Humanoid) local AnimSelected = GetValue("AnimationChanger") if not CanPlayOverrideAnim(LocalCharacter) then return end local AnimString local Type if MainModule["IsSprinting"] and Humanoid.MoveDirection ~= Vector3.zero then AnimString = AllAnimations[AnimSelected] and AllAnimations[AnimSelected]["Run"] Type = "Run" elseif Humanoid.MoveDirection ~= Vector3.zero then AnimString = AllAnimations[AnimSelected] and AllAnimations[AnimSelected]["Walk"] Type = "Walk" else AnimString = AllAnimations[AnimSelected] and AllAnimations[AnimSelected]["Idle"] Type = "Idle" end if AnimString then local FoundAction = false for i,v in Humanoid:GetPlayingAnimationTracks() do if v.Animation and v.Animation:GetAttribute("Overriden") then v:Stop(0.2) continue end if not v.IsPlaying then continue end local AnimType,Char,Name = GetAnimationType(v.Animation.AnimationId) local IsSupported = false for i,v in SupportedOverrides do if AnimType and AnimType:lower():find(v:lower()) then IsSupported = true end end if not IsSupported then FoundAction = v end end local OverrideTrack,Animation = AddOverridenAnimation(AnimString) if OverrideTrack and CanPlayOverrideAnim(LocalCharacter) then OverrideTrack:Play(not FoundAction and 0.1 or 0.3) end end end local function IsPlayersNear(Distance) if LocalCharacter and LocalRoot then for i,v in Players:GetPlayers() do if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("HumanoidRootPart") and (v.Character:FindFirstChild("HumanoidRootPart").Position-LocalRoot.Position).Magnitude < Distance then return true end end end return false end function DefaultData(Path, Option) if isfile("NaikoScript/ForsakenPlus/" .. Path) ~= false then return ColoredPrint("Option already exists", "info", Color3.fromRGB(252, 210, 150)) else writefile("NaikoScript/ForsakenPlus/" .. Path, Option) return ColoredPrint("Set default data", "success", Color3.fromRGB(125, 230, 75)) end end function ChangeData(Path, Option, WithFolder) if WithFolder == false then if isfile(Path) ~= false then writefile(Path,Option) end else if isfile("NaikoScript/ForsakenPlus/" .. Path) ~= false then writefile("NaikoScript/ForsakenPlus/" .. Path, Option) end end end function ReturnData(Path, WithFolder) if WithFolder == false then if isfile(Path) ~= false then return readfile(Path) end else if isfile("NaikoScript/ForsakenPlus/" .. Path) ~= false then return readfile("NaikoScript/ForsakenPlus/" .. Path) end return nil end end -- General Scripting -- if not (game.GameId == 6331902150 or game.GameId == 7464167604) then FeatureLoadout["Unofficial"] = { ["TabAttributes"] = { ["DisplayTitle"] = '' .. RichTextGradientColor(" SOME FEATURES MAY NOT WORK HERE ",{Color3.fromRGB(255, 166, 0), Color3.fromRGB(243, 227, 0)}) .. '', ["LayoutOrder"] = -1 } } ColoredPrint("This is not the official game which means some of the features may not work as expected.", "warning", Color3.fromRGB(255, 166, 0)) end FeatureLoadout["EnviromentFunctions"]["TabAttributes"]["DisplayTitle"] = string.format( "Script Made by %s | %s ", RichTextGradientColor("Naiko Scripts",{Color3.fromRGB(0, 255, 128),Color3.fromRGB(0, 102, 255)}), RichTextGradientColor("V"..Version,{Color3.fromRGB(87, 160, 255),Color3.fromRGB(0, 132, 255)}) ) -- Tryna edit something here?? i can see that... you ain taking no credit you know.. FeatureLoadout["Visuals"]["DisableNoliNPC"]["DisplayTitle"] = string.format("Disable %s NPC", RichTextGradientColor("Noli's",{Color3.fromRGB(130, 72, 255), Color3.fromRGB(77, 0, 185)})) FeatureLoadout["Visuals"]["Disable007n7NPC"]["DisplayTitle"] = string.format("Disable %s NPC", RichTextGradientColor("007n7's",{Color3.fromRGB(117, 161, 255), Color3.fromRGB(13, 70, 175)})) FeatureLoadout["Features"]["NoliControl"]["DisplayTitle"] = string.format("Better %s", RichTextGradientColor("Void Rush",{Color3.fromRGB(240, 90, 253), Color3.fromRGB(141, 0, 197)})) FeatureLoadout["Features"]["ControllableDash"]["DisplayTitle"] = string.format("Make %s Dash Controllable", RichTextGradientColor("Coolkidd's",{Color3.fromRGB(255, 22, 22), Color3.fromRGB(175, 13, 13)})) FeatureLoadout["Features"]["AutoBlock"]["DisplayTitle"] = string.format("%s Auto Block", RichTextGradientColor("Guest1337",{Color3.fromRGB(16, 47, 185), Color3.fromRGB(146, 202, 93)})) FeatureLoadout["Automation"]["AutoEscape"]["DisplayDescription"] = string.format("Auto-Escapes %s Hook",RichTextGradientColor("Nosferatu's",{Color3.fromRGB(192, 15, 24), Color3.fromRGB(108, 20, 9)})) FeatureLoadout["Automation"]["AutoDisarm"]["DisplayDescription"] = string.format("Auto-Disarms %s Traps",RichTextGradientColor("Azure's",{Color3.fromRGB(130, 72, 255), Color3.fromRGB(49, 0, 228)})) local ThreadManager = {Threads = {}} function ThreadManager:Start(Name,Function,Interval) if ThreadManager.Threads[Name] then return end ThreadManager.Threads[Name] = task.spawn(function() while true do Function() task.wait(Interval) end end) end local InputDeviceType = {Keyboard = "PC", MouseButton1 = "PC", MouseButton2 = "PC", MouseMovement = "PC", Touch = "Mobile", Gamepad1 = "Console"} local Device = InputDeviceType[UserInputService:GetLastInputType().Name] local getgc = GetFunction(getgc, get_gc) local IsRequireSupported = false task.spawn(function() local generaltest,result = pcall(function() return require(LocalPlayer:FindFirstChildOfClass("PlayerScripts"):FindFirstChild("PlayerModule")) end) local s,Err = pcall(function() LogService:Info("",result) end) local Success,Result if tostring(Err):find("cyclic") or s then if s then --ColoredPrint("Require does not function completely correctly some features could bug out!","warn", Color3.new(1,0.25,0)) end if Device == "PC" then Success, Result = pcall(function() local Module = require(ReplicatedStorage:WaitForChild("Systems",4):WaitForChild("Character",4):WaitForChild("Game",4):WaitForChild("Sprinting",4)) if Module and type(Module) == "table" and Module["StaminaChanged"] then IsRequireSupported = true return Module end end) else Success, Result = pcall(function() for i,Object in getgc(true) do if type(Object) == "table" then if rawget(Object, "Stamina") and rawget(Object, "StaminaChanged") then return Object end end end end) end end if not (Success and type(Result) == "table") then FeatureLoadout["EnviromentFunctions"]["require"]["DefaultInstanceValue"] = false else IsRequireSupported = true MainModule = Result end local AnimationPreset = FeatureLoadout["Features"]["AnimationChanger"] if IsRequireSupported and KillerAssets and SurvivorAssets and SkinsAssets then if ReplicatedStorage:FindFirstChild("Modules") and ReplicatedStorage:FindFirstChild("Modules"):FindFirstChild("Util",true) then --UtilModule = require(ReplicatedStorage:FindFirstChild("Modules"):FindFirstChild("Util",true)) end local AllAssets = {} for i,v in KillerAssets:QueryDescendants("ModuleScript#Config") do table.insert(AllAssets,v) end for i,v in SurvivorAssets:QueryDescendants("ModuleScript#Config") do table.insert(AllAssets,v) end for i,v in SkinsAssets:QueryDescendants("ModuleScript#Config") do table.insert(AllAssets,v) end for i,ConfigModule in AllAssets do if ConfigModule.Parent:IsA("Model") then continue end local ConfigData = require(ConfigModule) local AnimationData = ConfigData and ConfigData.Animations if ConfigModule.Parent.Name == "Noli" and ConfigData and TableValueFind(ConfigData, function(Key, Value) return type(Key) == "string" and Key:find("InitialTurnMult") end) then NoliConfig = ConfigData end if ConfigModule.Parent.Name == "TwoTime" and AnimationData and TableValueFind(AnimationData, function(Key, Value) return type(Key) == "string" and Key:find("CrouchIdle") end) then AllAnimations["Crouch"] = {["Idle"] = AnimationData["CrouchIdle"],["Walk"] = AnimationData["CrouchWalk"],["Run"] = AnimationData["CrouchRun"]} end if ConfigModule.Parent.Name == "1x1x1x1" and AnimationData and TableValueFind(ConfigData, function(Key, Value) return type(Key) == "string" and Key:find("ZombieAnimations") end) then AllAnimations["NPC Zombie"] = TableValueFind(ConfigData, function(Key, Value) return type(Key) == "string" and Key:find("ZombieAnimations") end) end if not AnimationData or not ConfigData.DisplayName then continue end local ChosenName = ConfigData.DisplayName:find("Milestone") and string.format("%s %s",ConfigModule.Parent.Parent.Name,ConfigData.DisplayName:gsub("Milestone ","")) or ConfigData.DisplayName AllAnimations[ChosenName] = AnimationData end for i,v in string.split(AnimationPreset["ExtraData"]["Options"], "|") do if v ~= "Original" then if not AllAnimations[v] or not AllAnimations[v]["Idle"] then AnimationPreset["ExtraData"]["Options"] = AnimationPreset["ExtraData"]["Options"]:gsub("|" .. v, "") end end end if AnimationPreset["ExtraData"]["Options"]:gsub("|Default Roblox","") == "Original" then AnimationPreset["ExtraData"]["Requirement"] = true end --[[if UtilModule then local AllPlayersSideUI = MainUI:FindFirstChild(LocalPlayer.Name,true) and MainUI:FindFirstChild(LocalPlayer.Name,true).Parent local function HandlePlayerForUI(Player) if AllPlayersSideUI:FindFirstChild(Player.Name) then local PlayersUI = AllPlayersSideUI:FindFirstChild(Player.Name) local PlayersData = Player:FindFirstChild("PlayerData") local Settings = PlayersData and PlayersData:FindFirstChild("Settings") local Pron = Settings and Settings:FindFirstChild("Pronouns",true) if Pron and Pron.Value == "discord.gg/Fs47aNrdGF" then local NoChat = PlayersUI:FindFirstChild("NoChat") if NoChat then NoChat.Visible = false end local ClonedUI = ReplicatedStorage:FindFirstChild("NoChat",true) and ReplicatedStorage:FindFirstChild("NoChat",true):Clone() if ClonedUI then ClonedUI.Name = "FSUser" ClonedUI.Image = "rbxassetid://118860705115878" ClonedUI.Parent = PlayersUI ClonedUI.Visible = true ClonedUI.AnchorPoint = Vector2.new(0.5,0.425) ClonedUI.MouseEnter:Connect(function() UtilModule:CreateTooltip("This is a Forsaken Plus user.") end) ClonedUI.MouseLeave:Connect(function() UtilModule:CreateTooltip("") end) if ClonedUI:FindFirstChildOfClass("UIAspectRatioConstraint") then ClonedUI:FindFirstChildOfClass("UIAspectRatioConstraint").AspectRatio = 1 end end end end end if AllPlayersSideUI then for i,v in Players:GetPlayers() do HandlePlayerForUI(v) end Players.PlayerAdded:Connect(function(v) task.delay(1.5,function() HandlePlayerForUI(v) end) end) else ColoredPrint("Failed to find PlayerList UI","error") end end]] else AnimationPreset["ExtraData"]["Requirement"] = true end if not NoliConfig then FeatureLoadout["Features"]["NoliControl"]["ExtraData"]["Requirement"] = true end end) local SupportedOverrides = {"idle","walk","run"} local function StartSprintDetection() repeat task.wait(0.1) until MainModule["__sprintedEvent"] MainModule["__sprintedEvent"].Event:Connect(function() if GetValue("AnimationChanger") ~= "Original" then UpdateAnim(LocalHumanoid) end end) MainModule["__sprintedEvent"].Destroying:Once(function() StartSprintDetection() end) end if MainModule then task.spawn(StartSprintDetection) end local function ActionOnCharacter(Character) task.spawn(function() SetButtonState(false) LocalCharacter = Character LocalHumanoid = LocalCharacter and (LocalCharacter:FindFirstChildOfClass("Humanoid") or LocalCharacter:WaitForChild("Humanoid",2)) or nil LocalHead = LocalCharacter and (LocalCharacter:FindFirstChild("Head") or LocalCharacter:WaitForChild("Head",2)) or nil LocalRoot = LocalCharacter and ((LocalHumanoid and LocalHumanoid.RootPart) or LocalCharacter:FindFirstChild("HumanoidRootPart") or LocalCharacter:WaitForChild("HumanoidRootPart",2)) or nil SpeedMultipliers = LocalCharacter and (Character:FindFirstChild("SpeedMultipliers") or Character:WaitForChild("SpeedMultipliers", 5)) or nil OverriddenAnimations = {} local Animator = LocalHumanoid and LocalHumanoid:FindFirstChildOfClass("Animator") LastAnimOriginalUsed = Animator:GetPlayingAnimationTracks()[1] Animator.AnimationPlayed:Connect(function(Track) if CanPlayOverrideAnim(LocalCharacter) and MainModule then local Override = Track.Animation:GetAttribute("Overriden") if Override then --return end LastAnimOriginalUsed = not Override and Track or LastAnimOriginalUsed local AnimType,CharName = GetAnimationType(tonumber(Track.Animation.AnimationId:match("%d+"))) if not Override then for i,v in SupportedOverrides do if AnimType and AnimType:lower():find(v:lower()) then Track:Stop(0) elseif not AnimType and Track.Looped then Track:Stop(0) end end end local FoundAction = false for i,v in Animator:GetPlayingAnimationTracks() do task.spawn(function() local AnimType,Char,Name = GetAnimationType(v.Animation.AnimationId) local IsSupported = false for i,v in SupportedOverrides do if AnimType and AnimType:lower():find(v:lower()) then IsSupported = true end end if v.IsPlaying and not IsSupported and not v:GetAttribute("Ignored") then FoundAction = v end end) end if FoundAction and Override then Track:Stop(0.2) task.wait(not FoundAction.Looped and FoundAction.Length * 0.95 or 0) if FoundAction.Looped then FoundAction.Stopped:Wait() end FoundAction:SetAttribute("Ignored",true) task.delay(0.2,function() FoundAction:SetAttribute("Ignored",nil) end) UpdateAnim(LocalHumanoid) end end end) local MoreThanZero = 0 LocalHumanoid:GetPropertyChangedSignal("MoveDirection"):Connect(function() if GetValue("AnimationChanger") ~= "Original" and MoreThanZero ~= (LocalHumanoid.MoveDirection.Magnitude == 0) then MoreThanZero = (LocalHumanoid.MoveDirection.Magnitude == 0) UpdateAnim(LocalHumanoid) end end) task.delay(0.05,UpdateAnim,LocalHumanoid) if SpeedMultipliers ~= nil and typeof(SpeedMultipliers) == "Instance" then SpeedMultipliers.ChildAdded:Connect(function(Child) if not Child:IsA("NumberValue") or Child.Name == "Sprinting" then return end Check(Child) Child:GetPropertyChangedSignal("Value"):Connect(function() Check(Child) end) end) end task.delay(1,GoUnder) if not LocalRoot then repeat task.wait() until LocalRoot end task.delay(0.25,HandleAllowJumping,GetValue("EnableJumping")) LocalRoot:GetPropertyChangedSignal("Anchored"):Connect(function() if not LocalRoot.Anchored then task.delay(0.75,GoUnder) end end) LocalRoot.ChildAdded:Connect(function(Child) if Child:IsA("LinearVelocity") and LocalHumanoid then local OriginalVelocity = Child.LineDirection local OriginalVelocityMag = Child.LineDirection.Magnitude for i,v in SpeedMultipliers:GetChildren() do if v.Name == "HinderedMovement" and GetValue("ControllableDash") and v.Value == 0 then v.Value = 0.005 end end local function UpdateVelocity() if GetValue("ControllableDash") and (LocalCharacter.Name:gsub("0","O"):lower():find("coolkid")) and LocalHumanoid.MoveDirection ~= Vector3.zero then Child.LineDirection = LocalHumanoid.MoveDirection * OriginalVelocityMag elseif GetValue("ControllableDash") and (LocalCharacter.Name:gsub("0","O"):lower():find("coolkid")) and workspace.CurrentCamera then local CameraDirection = Vector3.new(workspace.CurrentCamera.CFrame.LookVector.X, 0, workspace.CurrentCamera.CFrame.LookVector.Z) Child.LineDirection = CameraDirection.Unit * OriginalVelocityMag if Child.LineVelocity > 0 then LocalRoot.CFrame = LocalRoot.CFrame:Lerp(CFrame.lookAt(LocalRoot.Position, LocalRoot.Position + CameraDirection),0.05) end else Child.LineDirection = OriginalVelocity end end UpdateVelocity() local Connection1;Connection1 = LocalHumanoid:GetPropertyChangedSignal("MoveDirection"):Connect(UpdateVelocity) local Connection2;Connection2 = workspace.CurrentCamera:GetPropertyChangedSignal("CFrame"):Connect(UpdateVelocity) Child.Destroying:Once(function() if Connection1 then Connection1:Disconnect() Connection1 = nil end if Connection2 then Connection2:Disconnect() Connection2 = nil end end) end end) task.wait(0.05) local TempUI = PlayerGui:FindFirstChild("TemporaryUI") or PlayerGui:WaitForChild("TemporaryUI", 5) if TempUI then task.spawn(function() local AmountUI = (TempUI:FindFirstChild("PlayerInfo") or TempUI:WaitForChild("PlayerInfo")) and TempUI.PlayerInfo:FindFirstChild("Bars") and TempUI.PlayerInfo.Bars:FindFirstChild("Stamina") and TempUI.PlayerInfo.Bars.Stamina:FindFirstChild("Amount") if AmountUI and MainModule then local OriginalAmountUI = AmountUI local InfiniteStaminaElement = OriginalAmountUI:Clone() local CenterStaminaCounter = TempUI:FindFirstChild("CenterStaminaCounter") if CenterStaminaCounter then CenterStaminaCounter:SetAttribute("WasVisible", CenterStaminaCounter.Visible) CenterStaminaCounter.Visible = GetValue("StaminaPreset") ~= "Infinite" and CenterStaminaCounter:GetAttribute("WasVisible") end InfiniteStaminaElement.Name = "InfiniteAmount" InfiniteStaminaElement.Text = "∞" InfiniteStaminaElement.Parent = OriginalAmountUI.Parent InfiniteStaminaElement.Visible = GetValue("StaminaPreset") == "Infinite" InfiniteStaminaElement.Size = UDim2.new(0.225,0,0.7,14) OriginalAmountUI.Visible = GetValue("StaminaPreset") ~= "Infinite" local InfViewConnection;InfViewConnection = FeatureLoadout["Features"]["StaminaPreset"]["Instance"]:GetPropertyChangedSignal("Value"):Connect(function() if InfiniteStaminaElement and OriginalAmountUI then InfiniteStaminaElement.Visible = GetValue("StaminaPreset") == "Infinite" OriginalAmountUI.Visible = GetValue("StaminaPreset") ~= "Infinite" if CenterStaminaCounter then CenterStaminaCounter.Visible = GetValue("StaminaPreset") ~= "Infinite" and CenterStaminaCounter:GetAttribute("WasVisible") end else InfViewConnection:Disconnect() end end) TempUI.Destroying:Once(function() InfViewConnection:Disconnect() end) end end) for i,v in TempUI:QueryDescendants("#redFlash,#injuredVignette") do v.Visible = not GetValue("HideInjury") end end end) end Lighting.ChildAdded:Connect(function(Child) if Child.Name == "HealthDesaturation" then Child.Enabled = not GetValue("HideInjury") end if Child.Name == "BlindnessBlur" and Child:IsA("BlurEffect") then Child.Enabled = not GetValue("DisableBlindness") end end) if Lighting:FindFirstChild("HealthDesaturation") then Lighting.HealthDesaturation.Enabled = not GetValue("HideInjury") end if Lighting:FindFirstChild("BlindnessBlur") then Lighting:FindFirstChild("BlindnessBlur").Enabled = not GetValue("DisableBlindness") end if TempUI then TempUI.ChildAdded:Connect(function(UIElement) if UIElement.Name:upper() == "QTE" and UIElement:FindFirstChildOfClass("UIAspectRatioConstraint") then while UIElement and UIElement.Visible do local Cooldown = GetValue("EscapeCooldown") task.wait(Random.new():NextNumber(Cooldown - 0.2 * Cooldown,Cooldown + 0.2 * Cooldown)) if GetValue("AutoEscape") then for i,v in KillersFolder:GetChildren() do if v.Name:lower() == "nosferatu" then local Player = Players:GetPlayerFromCharacter(v) if Player then Network:FindFirstChildOfClass("RemoteEvent"):FireServer(Player.Name.."NosHookQTE",{true}) end end end end end end end) else FeatureLoadout["Automation"]["AutoEscape"]["ExtraData"]["Requirement"] = true end if not MainModule then ColoredPrint("Failed to load required modules, some features may be hidden.\n use a different executor that supports 'require' and 'getgc'", "warn", Color3.new(1,0.25,0)) FeatureLoadout["EnviromentFunctions"]["getgc"]["DefaultInstanceValue"] = false end if FeatureLoadout["EnviromentFunctions"]["getgc"]["DefaultInstanceValue"] then task.spawn(function() if game.GameId ~= 6331902150 then task.wait(0.5) if IsRequireSupported then for i,v in getgc(true) do if type(v) == type({}) then if not rawget(v,"Idle") or not rawget(v,"Run") then if i%250 == 0 then task.wait() end continue end local num = 0 for i,v in v do num += 1 end if num > 3 then AllAnimations[HttpService:GenerateGUID(false):sub(1,5)] = v end end end end end end) end local readfile = GetFunction(readfile, read_file) local writefile = GetFunction(writefile, write_file) local isfolder = GetFunction(isfolder, is_folder) local isfile = GetFunction(isfile, is_file) local makefolder = GetFunction(makefolder, make_folder) local UserType = 1 if not (readfile and writefile and isfolder and isfile) then FeatureLoadout["EnviromentFunctions"]["files"]["DefaultInstanceValue"] = false else if not isfolder("NaikoScript") and not isfolder("NaikoScript/ForsakenPlus") then makefolder("NaikoScript") makefolder("NaikoScript/ForsakenPlus") UserType = 1 elseif isfolder("NaikoScript") and not isfolder("NaikoScript/ForsakenPlus") then UserType = 2 makefolder("NaikoScript/ForsakenPlus") elseif isfolder("NaikoScript") and isfolder("NaikoScript/ForsakenPlus") then UserType = 3 end DefaultData("Data.txt", "{}") DefaultData("AccountType.txt","{}") end if UserType < 3 then task.spawn(function() Arrow.Visible = true local MovingTween = TweenService:Create(Arrow, TweenInfo.new(0.6, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut, -1, true), {Position = UDim2.fromScale(1.4, 0.5)}) MovingTween:Play() SidePlusButton.Button.MouseEnter:Wait() local DisappearTween = TweenService:Create(Arrow, TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.Out), {Position = UDim2.fromScale(1.6, 0.5),Size = UDim2.fromScale(0.2, 0.2),ImageTransparency = 1}) MovingTween:Pause() MovingTween:Cancel() DisappearTween:Play() DisappearTween.Completed:Wait() Arrow.Visible = false end) end local TableData = HttpService:JSONDecode(ReturnData("Data.txt", true)) local function HandleUIFeatures(TabName,TabContents) local Folder = Instance.new("Folder") Folder.Name = TabName Folder.Parent = PlusFolderSettings for Attribute, Value in TabContents["TabAttributes"] do Folder:SetAttribute(Attribute, Value) end for SettingName, SettingData in TabContents do task.spawn(function() if SettingName == "TabAttributes" then return end local NewInstance = Instance.new(SettingData.InstanceType) NewInstance.Name = SettingName NewInstance.Value = SettingData.DefaultInstanceValue if SettingData["Savable"] and FeatureLoadout["EnviromentFunctions"]["files"]["DefaultInstanceValue"] then if TableData[SettingName] ~= nil and NewInstance:GetAttribute("Requirement") ~= true then NewInstance.Value = TableData[SettingName] end NewInstance:GetPropertyChangedSignal("Value"):Connect(function() if NewInstance:GetAttribute("Requirement") == true or not SettingData["Savable"] then return end local TableData2 = HttpService:JSONDecode(ReturnData("Data.txt", true)) TableData2[SettingName] = SettingData.DefaultInstanceValue ~= NewInstance.Value and NewInstance.Value or nil if FeatureLoadout["EnviromentFunctions"]["files"]["DefaultInstanceValue"] then ChangeData("Data.txt",HttpService:JSONEncode(TableData2),true) end end) elseif not FeatureLoadout["EnviromentFunctions"]["files"]["DefaultInstanceValue"] and SettingData["Savable"] and not WarnedAboutFilesCompatability then WarnedAboutFilesCompatability = true ColoredPrint("Failed to load a savable feature.\nIf this bothers you then you should use a different executor that supports 'writefile' and 'readfile'", "info", Color3.new(1,0.25,0)) end SettingData.DisplayDescription = SettingData.DisplayDescription:gsub("%(NO FUNCTIONALITY%)", RichTextGradientColor("(NO FUNCTIONALITY)",{Color3.fromRGB(255, 83, 53), Color3.fromRGB(255, 123, 0),Color3.fromRGB(255, 83, 53)})) NewInstance:SetAttribute("DisplayDescription",SettingData.DisplayDescription) NewInstance:SetAttribute("DisplayTitle",SettingData.DisplayTitle) NewInstance:SetAttribute("LayoutOrder",SettingData.LayoutOrder) FeatureLoadout[TabName][SettingName]["Instance"] = NewInstance for ExtraDataIndex, ExtraDataValue in SettingData.ExtraData do NewInstance:SetAttribute(ExtraDataIndex, ExtraDataValue) end NewInstance.Parent = Folder end) end return Folder end for TabName, TabContents in FeatureLoadout do task.spawn(HandleUIFeatures,TabName,TabContents) end local hookmetamethod = GetFunction(hookmetamethod, hook_metamethod) if not hookmetamethod then FeatureLoadout["EnviromentFunctions"]["hookmetamethod"]["DefaultInstanceValue"] = false else if GetValue("OfficialGame") then task.spawn(function() export type DesyncHook = {DesyncNumber:number,BufferCorruption:buffer} export type CorruptArguments = {Number:number,Table1:table,NilObject:any,Table2:table} local HookSuccess, HookResult = pcall(function() local UnreliableRemoteEvent = Network:WaitForChild("UnreliableRemoteEvent") local DummyFunction = function(Dummy) return Dummy end local newcclosure = GetFunction(newcclosure, new_cclosure) or DummyFunction local checkcaller = GetFunction(checkcaller, check_caller) or DummyFunction local FeatureInstance = GetValue("Invincible",true) if not FeatureInstance.Value then FeatureInstance:GetPropertyChangedSignal("Value"):Wait() end local TypeEnum = {"invalidnumber"} local __namecall = true __namecall = hookmetamethod(game, "__namecall", newcclosure(function(self, ...): DesyncHook if not checkcaller() and IsUnderground and getnamecallmethod() == "FireServer" and self == UnreliableRemoteEvent and FeatureInstance and FeatureInstance.Value then local Args: CorruptArguments = {...} if Args[1] == 1 then return function() return nil end end end return __namecall(self, ...) end)) return __namecall end) if not HookSuccess or not HookResult then FeatureLoadout["EnviromentFunctions"]["hookmetamethod"]["DefaultInstanceValue"] = false end end) end end if GetValue("OfficialGame") then task.spawn(function() local FrequencyData = HttpService:JSONDecode(ReturnData("AccountType.txt", true)) FrequencyData["Normal"] = FrequencyData["Normal"] or 0 FrequencyData["New"] = FrequencyData["New"] or 0 ChangeData("AccountType.txt",HttpService:JSONEncode(FrequencyData),true) if GetValue("PrivateServer") then return end for i,v in Players:GetPlayers() do if v:IsFriendsWithAsync(LocalPlayer.UserId) then return end end if UserType < 3 then task.wait(26) if PlayerGui:FindFirstChild("LoadingGui") then return end if game.PlaceId ~= 83645629621104 then FrequencyData["Normal"] = 3 else FrequencyData["New"] = 5 end else task.wait(18) if PlayerGui:FindFirstChild("LoadingGui") then return end if game.PlaceId ~= 83645629621104 then FrequencyData["Normal"] += 2 FrequencyData["New"] -= 1 else FrequencyData["New"] += 2 FrequencyData["Normal"] -= 1 end end ChangeData("AccountType.txt",HttpService:JSONEncode(FrequencyData),true) end) end task.spawn(function() local AzureQTE = KillerAssets and KillerAssets:FindFirstChild("Azure") and KillerAssets:FindFirstChild("Azure"):FindFirstChild("cl_ConstructQTE",true) if IsRequireSupported and AzureQTE then local RequiredModule = require(AzureQTE) task.delay(1,function() local origin;origin = hookfunction(RequiredModule.new,function(...) local QTEAzure = origin(...) task.delay(0.05,function() if typeof(QTEAzure) == "table" and QTEAzure.AddProgress then if GetValue("AutoDisarm") then QTEAzure:AddProgress(100) else CurrentQTEAzure = QTEAzure end else warn("Failed Doing QTE For Azure") end end) return QTEAzure end) end) end end) task.spawn(function() for i,v in Players:GetPlayers() do if v ~= LocalPlayer then HandlePrivacySettings(v) HandleCheckForMod(v) end end end) Players.PlayerAdded:Connect(function(Player) HandleCheckForMod(Player) task.delay(2,HandlePrivacySettings,Player) end) Players.PlayerAdded:Connect(UpdatePlayerCrashDrop) Players.PlayerRemoving:Connect(UpdatePlayerCrashDrop) LocalPlayer.CharacterAdded:Connect(ActionOnCharacter) ActionOnCharacter(LocalCharacter or LocalPlayer.Character) task.delay(0.5,UpdatePlayerCrashDrop) InGame.ChildAdded:Connect(function(Child) if Child.Name == "Map" then GameMap = Child task.wait(0.5) local Value = GetValue("DisableKillerWalls") local VertexColor = Value and Vector3.new(0,255,0) or Vector3.new(255,0,0) local Color = Value and Color3.new(0,1,0) or Color3.new(1,0,0) local KillerDoorsFolder = GameMap and (GameMap:FindFirstChild("KillerDoors",true) or GameMap:FindFirstChild("Killer Doors",true)) local KillerCollisions = GameMap and GameMap:FindFirstChild("KillerOnly",true) if KillerDoorsFolder then for i,v in KillerDoorsFolder:GetChildren() do if not v:IsA("BasePart") then continue end v.Color = Color if v:GetAttribute("OriginalCanCollide") == nil then v:SetAttribute("OriginalCanCollide", v.CanCollide) end v.CanCollide = v:GetAttribute("OriginalCanCollide") ~= false and not Value or false if KillerCollisions then local Params = OverlapParams.new() Params.FilterType = Enum.RaycastFilterType.Include Params.CollisionGroup = "Killers" Params.FilterDescendantsInstances = {KillerCollisions} local Hitbox = workspace:GetPartBoundsInRadius(v.Position, 10, Params) for i,v in Hitbox do v.CanCollide = not Value end end if v:FindFirstChildOfClass("SpecialMesh") then v:FindFirstChildOfClass("SpecialMesh").VertexColor = VertexColor end end end end end) TeleportSound = Instance.new("Sound") TeleportSound.Name = "TeleportSound" TeleportSound.SoundId = "rbxassetid://130359426691991" TeleportSound.Parent = CoreGui TeleportSound.Volume = 0.001 TeleportSound:Play() local BlockableAttacks = {"slash","stab","attack","punch","behead","swing","golemslash"} local CustomHitboxes = { ["golemslash"] = { Size = Vector3.new(6, 2, 7), Offset = CFrame.new(0,0,-5.5) }, } local FireSignal = GetFunction(firesignal,FireSignal) local SelfParams = OverlapParams.new() SelfParams.MaxParts = 1 SelfParams.FilterType = Enum.RaycastFilterType.Include local UseActorAbility = Network and Network:FindFirstChildOfClass("RemoteEvent") local ShowHitboxesSetting = PlayerData and PlayerData:FindFirstChild("Settings") and PlayerData.Settings:FindFirstChild("ShowHitboxes",true) local function HandleKiller(Killer) local Humanoid = Killer:FindFirstChildOfClass("Humanoid") or Killer:WaitForChild("Humanoid") local QueryHitbox = Killer:FindFirstChild("QueryHitbox") or Killer:WaitForChild("QueryHitbox") local Animator = Humanoid:FindFirstChildOfClass("Animator") if Animator then Animator.AnimationPlayed:Connect(function(Track) if GetValue("AutoBlock") and Players:GetPlayerFromCharacter(Killer) then local AnimType,KillerName = GetAnimationType(Track.Animation.AnimationId) if AnimType and type(AnimType) == type("") and table.find(BlockableAttacks,AnimType:lower()) and LocalCharacter and LocalCharacter:FindFirstChild("QueryHitbox") and LocalCharacter.Parent == SurvivorsFolder and MainUI:FindFirstChild("AbilityContainer") and MainUI:FindFirstChild("AbilityContainer"):FindFirstChild("Block") then local CustomHitbox = CustomHitboxes[AnimType:lower()] or CustomHitboxes[Killer.Name:lower()] for i = 1,12 do SelfParams.FilterDescendantsInstances = {LocalCharacter:FindFirstChild("QueryHitbox")} local Part = Instance.new("Part") Part.Name = "KillerDetectHitbox" Part.Color = BrickColor.new("Really black").Color Part.Size = (CustomHitbox and CustomHitbox["Size"] or Vector3.new(5.2, 6, 5.65)) * 2.2 Part.CFrame = QueryHitbox.CFrame * (CustomHitbox and CustomHitbox["Offset"] or CFrame.new(0,0,-3.5)) Part.CanCollide = false Part.Anchored = true Part.CastShadow = false Part.Material = Enum.Material.ForceField Part.Transparency = ShowHitboxesSetting.Value and 0.1 or 1 Part.Parent = Hitboxes Debris:AddItem(Part,0.4) local Hitbox = workspace:GetPartsInPart(Part,SelfParams) if #Hitbox > 0 then if FireSignal and MainUI:FindFirstChild("AbilityContainer"):FindFirstChild("Block") then FireSignal(MainUI.AbilityContainer.Block.MouseButton1Click) break end if GetValue("OfficialGame") then UseActorAbility:FireServer("UseActorAbility",{"Block"}) else UseActorAbility:FireServer("UseActorAbility","Block") UseActorAbility:FireServer("UseActorAbility",{"Block"}) end break end task.wait(0.02) end end end end) end end if KillersFolder then KillersFolder.ChildAdded:Connect(HandleKiller) for i,Killer in KillersFolder:GetChildren() do HandleKiller(Killer) end end local fireproximitypromptFunction = GetFunction(fireproximityprompt, fire_proximity_prompt) local fireprompt = fireproximitypromptFunction and function(ProximityPrompt) return ProximityPrompt and fireproximitypromptFunction(ProximityPrompt) end or function(ProximityPrompt) if ProximityPrompt then ProximityPrompt:InputHoldBegin();ProximityPrompt:InputHoldEnd() end end local RNG = Random.new() ThreadManager:Start("FeatureHandler", function() local ComputerInstance = GetValue("Computer",true) if ComputerInstance then ComputerInstance.Value = UserInputService.KeyboardEnabled end task.spawn(function() if LocalRoot and not IsFixingGenerator and (GetValue("AutoGeneratorPuzzle")) and GameMap then for i,Object in GameMap:QueryDescendants("Model#Generator:has(#Main)") do if LocalRoot and LocalRoot.Anchored ~= true and (Object:FindFirstChild("Main").Position - LocalRoot.Position).Magnitude < 6.7 then task.spawn(function() IsFixingGenerator = true local Remotes = Object:FindFirstChild("Remotes") local Progress = Remotes and Object:FindFirstChild("Progress") local RemoteEvent = Progress and Remotes:FindFirstChildOfClass("RemoteEvent") if RemoteEvent and SpeedMultipliers:FindFirstChild("FixingGenerator") then while true do if not IsFixingGenerator or not LocalCharacter or not SpeedMultipliers or not SpeedMultipliers:FindFirstChild("FixingGenerator") or not (GetValue("AutoGeneratorPuzzle")) then break end local IsNear = IsPlayersNear(32) local GenCD = (not IsNear and GetValue("SpeedUpCooldown") and GetValue("GeneratorCooldown") > 2 and (GetValue("GeneratorCooldown",true):GetAttribute("MinValue"))) or GetValue("GeneratorCooldown") task.wait(RNG:NextNumber(GenCD - 0.1 * GenCD,GenCD + 0.1 * GenCD)) if not IsFixingGenerator or not LocalCharacter or not SpeedMultipliers or not SpeedMultipliers:FindFirstChild("FixingGenerator") or not (GetValue("AutoGeneratorPuzzle")) then break end RemoteEvent:FireServer() PlaySound("puzzleDone", {["Parent"] = Object:FindFirstChild("Main")}) end end IsFixingGenerator = false end) break end end end end) local StaminaPreset = GetValue("StaminaPreset") if StaminaPreset ~= "Original" and MainModule and MainModule.MaxStamina then if StaminaPreset == "Infinite" then rawset(MainModule, "Stamina", MainModule.MaxStamina) else local MaxStamina = MainModule.MaxStamina if MainModule.Stamina < MaxStamina * 0.8 then rawset(MainModule, "Stamina", math.min(MainModule.Stamina + MaxStamina * (StaminaPreset == "Semi-Realistic" and 0.005 or 0.0025), MaxStamina)) end end end for i,v in PlayersFolder:QueryDescendants("#Killers > Instance,#Survivors > Instance") do task.spawn(function() local Player = v ~= LocalPlayer.Character and Players:GetPlayerFromCharacter(v) if Player and v:FindFirstChildOfClass("Humanoid") and v:FindFirstChildOfClass("Humanoid").Health > 0 and MainUI.Enabled == true then local FolderName = v.Parent.Name local FeatureValue, ColorValue, TargetRoot = GetValue(FolderName.."ESP"), ColorPresets[GetValue(FolderName.."Color")], v:FindFirstChild("HumanoidRootPart") CreateDynamicHighlight(FeatureValue, v, TargetRoot, {MaxDistance = 100,MinDistance = 10,Color = ColorValue }) CreateText(FeatureValue, v, TargetRoot, {MinDistance = 25,Text = Player.Name,Color = ColorValue}) else CreateDynamicHighlight(false, v) CreateText(false, v) end end) end if InGame and GameMap then task.spawn(function() local Tools = InGame:QueryDescendants("#Map > Tool") local DroppedTools = InGame.Parent:QueryDescendants("Folder > Tool") for i,v in table.move(Tools,1,#Tools,#DroppedTools+1,DroppedTools) do local FeatureValue, ColorValue, TargetRoot = GetValue("ItemsESP"), ColorPresets[GetValue("ItemsColor")], v:FindFirstChildWhichIsA("BasePart") CreateDynamicHighlight(FeatureValue, v, TargetRoot, {MaxDistance = 100,MinDistance = 12,Color = ColorValue}) CreateText(FeatureValue, v, TargetRoot, {MinDistance = 25,Text = v.Name, Color = ColorValue}) if v:IsA("Tool") and not LocalCharacter:FindFirstChild(v.Name) and not LocalPlayer:FindFirstChildOfClass("Backpack"):FindFirstChild(v.Name) and not v:GetAttribute("JustDropped") and GetValue("AutoPickup") then local Param = OverlapParams.new() Param.FilterType = Enum.RaycastFilterType.Include Param.FilterDescendantsInstances = {v} local Result = workspace:GetPartBoundsInRadius(LocalRoot.Position, 4.5, Param) if LocalRoot and #Result > 0 then fireprompt(v:FindFirstChildWhichIsA("ProximityPrompt",true)) end end end end) for i,v in GameMap:QueryDescendants("Model#Generator:has(#Main)") do task.spawn(function() if (GetValue("GeneratorsCheck")) == true and v:FindFirstChild("Progress") and v:FindFirstChild("Progress").Value >= 100 then CreateDynamicHighlight(false, v) CreateText(false, v) elseif v:FindFirstChild("Progress") then local FeatureValue, ColorValue, TargetRoot = GetValue("GeneratorsESP"), ColorPresets[GetValue("GeneratorsColor")], v:FindFirstChild("Main") or v:WaitForChild("Main") CreateDynamicHighlight(FeatureValue, v, TargetRoot, { MaxDistance = 100,MinDistance = 12,Color = ColorValue}) CreateText(FeatureValue, v, TargetRoot, { MinDistance = 25,Text = v.Name,Color = ColorValue}) end end) end end end,0.1) local LoadUI = Instance.new("TextButton") local Folder = Instance.new("Folder") local Dot1 = Instance.new("TextLabel") local Dot2 = Instance.new("TextLabel") local Dot3 = Instance.new("TextLabel") local TextButton = Instance.new("TextLabel") LoadUI.Name = "load" LoadUI.BackgroundColor3 = Color3.new(0, 0, 0) LoadUI.BackgroundTransparency = 0.4 LoadUI.BorderSizePixel = 0 LoadUI.Active = true LoadUI.Interactable = true LoadUI.AutoButtonColor = false LoadUI.Size = UDim2.new(1, 0, 1, 0) LoadUI.ZIndex = 7 LoadUI.Text = "" Folder.Parent = LoadUI Dot1.Name = "1" Dot1.Parent = Folder Dot1.AnchorPoint = Vector2.new(0.5, 0) Dot1.BackgroundColor3 = Color3.new(1, 1, 1) Dot1.BackgroundTransparency = 1 Dot1.BorderSizePixel = 0 Dot1.Position = UDim2.new(0.5, 0, -0.05, 0) Dot1.Size = UDim2.new(0.1, 0, 1, 0) Dot1.ZIndex = 4 Dot1.Font = Enum.Font.Cartoon Dot1.Text = "." Dot1.TextColor3 = Color3.new(1, 1, 1) Dot1.TextSize = 50 Dot1.TextScaled = true Dot1.TextStrokeTransparency = 0.9 Dot2.Name = "2" Dot2.Parent = Folder Dot2.AnchorPoint = Vector2.new(0.5, 0) Dot2.BackgroundColor3 = Color3.new(1, 1, 1) Dot2.BackgroundTransparency = 1 Dot2.BorderSizePixel = 0 Dot2.Position = UDim2.new(0.5, 0, -0.05, 0) Dot2.Size = UDim2.new(0.1, 0, 1, 0) Dot2.ZIndex = 4 Dot2.Font = Enum.Font.Cartoon Dot2.Text = "." Dot2.TextColor3 = Color3.new(1, 1, 1) Dot2.TextSize = 50 Dot2.TextScaled = true Dot2.TextStrokeTransparency = 0.9 Dot3.Name = "3" Dot3.Parent = Folder Dot3.AnchorPoint = Vector2.new(0.5, 0) Dot3.BackgroundColor3 = Color3.new(1, 1, 1) Dot3.BackgroundTransparency = 1 Dot3.BorderSizePixel = 0 Dot3.Position = UDim2.new(0.5, 0, -0.05, 0) Dot3.Size = UDim2.new(0.1, 0, 1, 0) Dot3.ZIndex = 4 Dot3.Font = Enum.Font.Cartoon Dot3.Text = "." Dot3.TextColor3 = Color3.new(1, 1, 1) Dot3.TextSize = 50 Dot3.TextScaled = true Dot3.TextStrokeTransparency = 0.9 TextButton.Name = "TextButton" TextButton.Parent = LoadUI TextButton.BackgroundColor3 = Color3.new(1, 1, 1) TextButton.BackgroundTransparency = 1 TextButton.BorderSizePixel = 0 TextButton.AnchorPoint = Vector2.new(0.5, 0.5) TextButton.Position = UDim2.new(0.5, 0, 0.6, 0) TextButton.Selectable = false TextButton.Size = UDim2.new(0.4, 0, 0.4, 0) TextButton.ZIndex = 7 TextButton.Font = Enum.Font.SciFi TextButton.Text = "Completing" TextButton.TextColor3 = Color3.new(1, 1, 1) TextButton.TextSize = 20 TextButton.TextScaled = true TextButton.TextStrokeTransparency = 0.9 PlayerGui.ChildAdded:Connect(function(Child) if Child.Name == "PuzzleUI" then local ClonedLoadUI = LoadUI:Clone() ClonedLoadUI.Parent = Child.Container.GridHolder local InstanceAuto = GetValue("AutoGeneratorPuzzle",true) ClonedLoadUI.Visible = InstanceAuto.Value InstanceAuto:GetPropertyChangedSignal("Value"):Connect(function() ClonedLoadUI.Visible = InstanceAuto.Value end) task.spawn(function() while task.wait() and ClonedLoadUI and ClonedLoadUI.Parent do if ClonedLoadUI.Visible then for i = 1, 3 do ClonedLoadUI.Folder[i].Rotation = math.cos(tick() + i * 10) * 360 end else wait(0.1) end end end) end end) if KillersFolder then KillersFolder.ChildAdded:Connect(function(Child) task.wait(0.5) HandleNoliNPC(GetValue("DisableNoliNPC")) end) end if InGame then InGame.ChildAdded:Connect(function(Child) task.wait(0.02) Handle007n7NPC(GetValue("Disable007n7NPC")) end) end RoundEvent.Event:Connect(function(Data) IsUnderground = false end) if TextChatService:FindFirstChildOfClass("ChatWindowConfiguration") then TextChatService:FindFirstChildOfClass("ChatWindowConfiguration"):GetPropertyChangedSignal("Enabled"):Connect(function() if GetValue("ShowChat") then TextChatService:FindFirstChildOfClass("ChatWindowConfiguration").Enabled = true end end) end if InGame then InGame.ChildAdded:Connect(function(Child) if Child:IsA("Tool") then Child:SetAttribute("JustDropped", true) task.delay(1.5, function() if Child then Child:SetAttribute("JustDropped", nil) end end) elseif Child:IsA("Folder") and (Child.Name):find("JohnDoeTrail") then task.wait() for i,v in Child:GetChildren() do if v:IsA("BasePart") then v.CanTouch = not GetValue("DisableToxicTrails") end end elseif Child:IsA("Folder") and (Child.Name):find("Shadows") then task.wait() for i,v in Child:GetChildren() do if v:IsA("BasePart") then v.CanTouch = not GetValue("DisableFootprints") end end if not Child:GetAttribute("Checked") then Child:SetAttribute("Checked", true) Child.ChildAdded:Connect(function(GrandChild) if GrandChild:IsA("BasePart") then GrandChild.CanTouch = not GetValue("DisableFootprints") end end) end elseif Child.Name == "SpikeCollision" then task.delay(3.5,function() Child.Size = GetValue("SmallerSpikeCollisions") and Vector3.new(11,3.5,3.5) or Vector3.new(11, 5, 5) Child.Shape = GetValue("SmallerSpikeCollisions") and Enum.PartType.Cylinder or Enum.PartType.Block end) end end) end if RagdollsFolder then RagdollsFolder.ChildAdded:Connect(function(Ragdoll) if GetValue("DeleteRagdolls") and GetValue("PrivateServer") then RagdollsFolder:ClearAllChildren() else for i,v in Ragdoll:QueryDescendants("Highlight[$Dynamic],BillboardGui[$Dynamic]") do v:Destroy() end end end) end local Graf2 = workspace:FindFirstChild("Graf2",true) if Graf2 and math.round(Graf2.Position.X) == -3600 and Graf2:FindFirstChildWhichIsA("ImageLabel",true) then Graf2.Position = Vector3.new(-3600, 19.25, 232.5) Graf2.Size = Vector3.new(4.25, 1.5, 0.13) Graf2.Rotation = Vector3.new(7, 90, 0) Graf2:FindFirstChildWhichIsA("ImageLabel",true).Image = "rbxassetid://86461599034861" Graf2:FindFirstChildWhichIsA("ImageLabel",true).ImageTransparency = 0.2 end local BaseTweenInfo = TweenInfo.new(0.25) local MenuData if NewUIVersion then local suc,err if IsRequireSupported then suc,err = pcall(function() MenuData = require(ReplicatedStorage.Systems.Player:FindFirstChild("SidebarHandler",true)) end) end if not suc or not MenuData then ColoredPrint("⚠ YOUR EXECUTOR DOES NOT SUPPORT THIS UI VERSION! ⚠\n Switch to a different executor or play a forsaken clone game that uses the V1 UI.\n The executor must fully support 'require' function for the script to work here", "error", Color3.new(1,0.4,0.25)) PlusButton.Visible = false SidePlusButton.Visible = false StarterGui:SetCore("DevConsoleVisible", true) if MainUI:FindFirstChild("UpdateScreen") then MainUI:FindFirstChild("UpdateScreen").Visible = false end return end MenuData.__index = MenuData local UICreator = {} UICreator.__index = UICreator function UICreator.new(MenuName, MenuScreen) local Metaverse = setmetatable({}, UICreator) Metaverse.Menu = MenuScreen:Clone() local MenuToggleBin = Instance.new("BindableEvent") Metaverse.Toggled = MenuToggleBin Metaverse.Button = nil Metaverse.MenuName = MenuName Metaverse.Menu.Visible = false Metaverse.Menu.Size = UDim2.fromScale() Metaverse.Menu.Parent = MainUI for i,v in Metaverse.Menu:QueryDescendants("ScrollingFrame") do v:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() v.ScrollBarThickness = v.AbsoluteSize.X / 44 end) end return Metaverse end function UICreator.ToggleMenu(selfdata) local DataSideBar = selfdata._sidebar if DataSideBar.TogglingMenus then return elseif DataSideBar.MenusHidden and selfdata.SidebarButton then return elseif not (false and selfdata.Menu.Visible) then DataSideBar.TogglingMenus = true local VisibleUI = selfdata.Menu.Visible PlaySound("select") local SideBarMenu for i, v in DataSideBar.SidebarMenus do if v.Menu ~= selfdata.Menu or VisibleUI then if v.Menu ~= selfdata.Menu then if v.Menu.Visible then SideBarMenu = v end end if v.Menu.Visible then v.Toggled:Fire(false) local UIModule = ReplicatedStorage.Systems.Player.UI.Menus:FindFirstChild(v.MenuName) local success, result = pcall(require, UIModule) if success and (result and result.OnTransitionState) then result.OnTransitionState(false) else TweenService:Create(v.Menu, BaseTweenInfo, { ["Size"] = UDim2.new(1, -20, 0, 0) }):Play() task.delay(0.25, function() v.Menu.Visible = false end) end SetButtonState(false) if v.Button then v.Button:SetAppearanceState(false) end end end end task.delay(0.3 + (SideBarMenu and 0.125 or 0), function() DataSideBar.TogglingMenus = nil end) if SideBarMenu then task.wait(0.125) if DataSideBar.MenusHidden then DataSideBar.TogglingMenus = nil return end end if not VisibleUI then selfdata.Toggled:Fire(true) local UIModule = ReplicatedStorage.Systems.Player.UI.Menus:FindFirstChild(selfdata.MenuName) local success, result = pcall(require, UIModule) if success and (result and result.OnTransitionState) then result.OnTransitionState(true) else selfdata.Menu.Visible = true TweenService:Create(selfdata.Menu, BaseTweenInfo, { ["Size"] = UDim2.new(1, -20, 1, -20) }):Play() end SetButtonState(true) if selfdata.Button then selfdata.Button:SetAppearanceState(true) end end end end function MenuData.CreateSidebarMenu(self, MenuName, MenuScreen) local Data = UICreator.new(MenuName, MenuScreen) Data._sidebar = self Data.SidebarButton = Buttons:FindFirstChild(MenuName) task.delay(0, function() Data.Button = MenuData.SidebarButtons[MenuName] end) MenuData.SidebarMenus[MenuName] = Data return Data end else MenuData = { ["SidebarMenus"] = {}, ["Sidebars"] = { ["Sidebar"] = MainUI.Sidebar, ["Bottombar"] = MainUI.Sidebar:FindFirstChild("Bottombar") or nil } } MenuData.__index = MenuData function MenuData.CreateSidebarMenu(self, ButtonName, Menu, Bottom) local Data = setmetatable({}, MenuData) Data.Menu = Menu Data.Menu.Visible = false Data.Menu.Size = UDim2.fromScale() Data.Menu.Parent = MainUI Data.SidebarButton = Buttons:FindFirstChild(ButtonName) local BindableEvent = Instance.new("BindableEvent") BindableEvent.Parent = Data.Menu Data.Toggled = BindableEvent.Event Data.__toggleEvent = BindableEvent for i,v in pairs(Data.Menu:QueryDescendants("ScrollingFrame")) do v:GetPropertyChangedSignal("AbsoluteSize"):Connect(function() v.ScrollBarThickness = v.AbsoluteSize.X / 44 end) end self.SidebarMenus[ButtonName] = Data return Data end function MenuData.ToggleMenu(UIData, p24) if MenuData.TogglingMenus then return elseif MenuData.MenusHidden and UIData.SidebarButton then return elseif not (p24 and UIData.Menu.Visible) then MenuData.TogglingMenus = true PlaySound("select") local Visible = UIData.Menu.Visible for i,v in SideBar:QueryDescendants(`#{Buttons.Name} > Frame:not(#Credits):not(#Spectate):not(#Plus):not(#TesterUi)`) do v.Button.Interactable = false task.delay(0.3, function() v.Button.Interactable = true end) end for i,Menu in pairs(MenuData.SidebarMenus) do if Menu.Menu ~= UIData.Menu or Visible then if Menu.Menu.Visible then Menu.__toggleEvent:Fire(false) TweenService:Create(Menu.Menu, BaseTweenInfo, {["Size"] = UDim2.new(1, -20, 0, 0)}):Play() if Menu.SidebarButton then TweenService:Create(Menu.SidebarButton.Inverted, BaseTweenInfo, {["ImageTransparency"] = 1}):Play() TweenService:Create(Menu.SidebarButton.InvertedIcon, BaseTweenInfo, {["ImageTransparency"] = 1}):Play() TweenService:Create(Menu.SidebarButton.PulloutHolder.PulloutFrame.Inverted, BaseTweenInfo, {["ImageTransparency"] = 1}):Play() TweenService:Create(Menu.SidebarButton.PulloutHolder.PulloutFrame.Title, BaseTweenInfo, { ["TextColor3"] = Menu.Menu.Name == "PlusScreen" and Color3.fromRGB(0, 170, 127) or Color3.new(1,1,1) }):Play() end task.delay(0.25, function() Menu.Menu.Visible = false end) end end end task.delay(0.3, function() MenuData.TogglingMenus = nil end) if MenuData.MenusHidden then return end if not Visible then UIData.__toggleEvent:Fire(true) UIData.Menu.Visible = true TweenService:Create(UIData.Menu, BaseTweenInfo, {["Size"] = UDim2.new(1, -20, 1, -20)}):Play() if UIData.SidebarButton then TweenService:Create(UIData.SidebarButton.Inverted, BaseTweenInfo, {["ImageTransparency"] = 0}):Play() TweenService:Create(UIData.SidebarButton.InvertedIcon, BaseTweenInfo, {["ImageTransparency"] = 0}):Play() TweenService:Create(UIData.SidebarButton.PulloutHolder.PulloutFrame.Inverted, BaseTweenInfo, {["ImageTransparency"] = 0}):Play() TweenService:Create(UIData.SidebarButton.PulloutHolder.PulloutFrame.Title, BaseTweenInfo, {["TextColor3"] = Color3.new()}):Play() end end end end end ModulesOptions = { ["Textbox"] = [=[ local u1 = {} u1.__index = u1 local PlaySound = ({...})[1] function u1.CreateSettingUI(_, u2, p3, u4) if not u2 then u2 = Instance.new("StringValue") u2.Name = "SettingValue" end local v6 = u1 local u7 = setmetatable({ ["SettingValue"] = u2 }, v6) u7.Value = u2.Value u7.Instance = p3 or game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.Textbox.Textbox:Clone() u7.Instance.TextboxBackground.Textbox.Focused:Connect(function() PlaySound("click") end) u7.Instance.TextboxBackground.Textbox.FocusLost:Connect(function() if u2.Name == "SettingValue" or u2.Name == "Value" then u7.Value = u7.Instance.TextboxBackground.Textbox.Text u7:OnUpdate() if u4 then u4(u7.Value) end else u2.Value = u7.Instance.TextboxBackground.Textbox.Text end PlaySound("click") end) return u7 end function u1.OnUpdate(p8) p8.Instance.TextboxBackground.Textbox.Text = p8.Value or "" end return u1 ]=], ["String"] = [=[ local u1 = {} u1.__index = u1 local u2 = 200 local PlaySound = ({...})[1] function u1.CreateSettingUI(_, u3, p4, u5) if not u3 then u3 = Instance.new("StringValue") u3.Name = "SettingValue" end local v7 = u1 local u8 = setmetatable({ ["SettingValue"] = u3 }, v7) u8.Value = u3.Value u8.Instance = p4 or game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.String.Dropdown:Clone() u8.DropdownVisible = false local UIListLayout = u8.Instance.DropdownFrame.Options:FindFirstChildOfClass("UIListLayout") or Instance.new("UIListLayout") UIListLayout.SortOrder = Enum.SortOrder.LayoutOrder UIListLayout.Parent = u8.Instance.DropdownFrame.Options u8.Instance.DropdownFrame.MouseButton1Click:Connect(function() PlaySound("click") local MainZIndex = u8.Instance.LayoutOrder u8.DropdownVisible = not u8.DropdownVisible u8.Instance.DropdownFrame.DropdownArrow.Rotation = u8.DropdownVisible and 180 or 0 u8.Instance.DropdownFrame.Options.Visible = u8.DropdownVisible u8.Instance.ZIndex = 50000 - (MainZIndex * 2) for _, v9 in pairs(u8.Instance.DropdownFrame.Options:GetChildren()) do if v9:IsA("GuiObject") then v9:Destroy() end end local function Update() local v10 = u3:GetAttribute("Options") if v10 then v10 = string.split(u3:GetAttribute("Options"), "|") end for _, v9 in pairs(u8.Instance.DropdownFrame.Options:GetChildren()) do if v9:IsA("GuiObject") then v9:Destroy() end end for v11, u12 in pairs(v10 or {}) do local v13 = game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.String.DropdownOption:Clone() v13.Name = u12 v13.LayoutOrder = v11 v13.Title.Text = v13.Name v13.Parent = u8.Instance.DropdownFrame.Options v13.MouseButton1Click:Connect(function() if u3.Name == "SettingValue" or u3.Name == "Value" then u8.Value = u12 u8:OnUpdate() if u5 then u5(u8.Value) end else u3.Value = u12 end PlaySound("switch0".. tostring(math.random(1,4))) end) end end Update() u3:GetAttributeChangedSignal("Options"):Connect(Update) end) return u8 end function u1.OnUpdate(p14) p14.Instance.DropdownFrame.ChosenValue.Title.Text = p14.Value p14.Instance.DropdownFrame.Options.Visible = false p14.Instance.DropdownFrame.DropdownArrow.Rotation = 0 p14.DropdownVisible = false end return u1 ]=], ["Number"] = [=[ local u1 = {} u1.__index = u1 local PlaySound = ({...})[1] function u1.CreateSettingUI(_, u2, p3, u4) if not u2 then u2 = Instance.new("NumberValue") u2.Name = "SettingValue" end local v6 = u1 local u7 = setmetatable({ ["SettingValue"] = u2 }, v6) u7.Instance = p3 or game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.Number.Slider:Clone() u7.Value = u2.Value local u8 = u7.Instance.DragBar local u9 = u8.Dragger local u10 = game.Players.LocalPlayer:GetMouse() local u11 = u2:GetAttribute("MinValue") local u12 = u2:GetAttribute("MaxValue") local u13 = u2:GetAttribute("Step") u7.__displayValue = Instance.new("NumberValue") u7.__displayValue.Name = "__displayValue" u7.__displayValue.Value = u2.Value u7.__displayValue.Parent = u7.Instance u7.__displayValue:GetPropertyChangedSignal("Value"):Connect(function() local v14 = u9.Title local v15 = u7.__displayValue.Value local v16 = tonumber(string.format("%.10g", math.floor((v15/u13) + 0.5) * u13)) v14.Text = v16 end) local v17 = u9.Title local v18 = u7.__displayValue.Value local v19 = tonumber(string.format("%.10g", math.floor((v18/u13) + 0.5) * u13)) v17.Text = tostring(v19) u9.MouseButton1Down:Connect(function() u7.Dragging = true PlaySound("switch0" .. tostring(math.random(1, 4))) while task.wait() and u7.Dragging do local v20 = u10.X local v21 = u8.AbsoluteSize.X local v22 = (v20 - u8.AbsolutePosition.X) / v21 local v23 = u11 local v24 = u12 local v25 = v23 + (v24 - v23) * v22 local v26 = math.clamp(v25, v23, v24) local RoundedNumber = tonumber(string.format("%.10g", math.floor((v26/u13) + 0.5) * u13)) local v27 = u13 if v27 ~= 0 or not v26 then local v28 = (v26 + v27 / 2) / v27 v26 = math.floor(v28) * v27 end if u7.Value ~= RoundedNumber then PlaySound("tick0"..tostring(math.random(1,3)), { ["Volume"] = 0.025 }) u7.Value = RoundedNumber u7:OnUpdate() if u7.__updatedEvent then u7.__updatedEvent:Fire() end end end end) game.UserInputService.InputEnded:Connect(function(p29) if u7.Dragging then if p29.UserInputType == Enum.UserInputType.MouseButton1 or (p29.UserInputType == Enum.UserInputType.Touch or p29.UserInputType == Enum.UserInputType.Gamepad1 and p29.KeyCode == Enum.KeyCode.ButtonR2) then u7.Dragging = false PlaySound("switch0".. tostring(math.random(1,4))) if u2.Name ~= "SettingValue" and u2.Name ~= "Value" then u2.Value = u7.Value end u7:OnUpdate() if u4 then u4(u7.Value) end end end end) return u7 end function u1.OnUpdate(p30) local v31 = p30.SettingValue:GetAttribute("MinValue") local v32 = p30.SettingValue:GetAttribute("MaxValue") local v33 = (p30.Value - v31) / (v32 - v31) local v34 = math.clamp(v33, 0, 1) local v35 = p30.Instance.DragBar.Dragger local v36 = math.clamp(v34, 0, 1) game.TweenService:Create(v35, TweenInfo.new(0.1), { ["Position"] = UDim2.fromScale(v36, 0.5) }):Play() game.TweenService:Create(p30.__displayValue, TweenInfo.new(0.1), { ["Value"] = p30.Value }):Play() end return u1 ]=], ["Keybind"] = [=[ local u1 = {} u1.__index = u1 local PlaySound = ({...})[1] function u1.CreateSettingUI(_, u2, p3) if not u2 then u2 = Instance.new("StringValue") u2.Name = "SettingValue" end local v6 = u1 local u7 = setmetatable({ ["SettingValue"] = u2 }, v6) u7.Instance = p3 or game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.Keybind.KeybindFrame:Clone() u7.IsKeybind = true local u8 = { "None", "Unknown", "MouseMovement", "Focus", "Accelerometer", "TextInput" } u7.Instance.KeybindButton.MouseButton1Click:Connect(function() PlaySound("click") if u1.__currentConnection then return elseif not u7.__debounce then u7.__debounce = true task.delay(0.25, function() u7.__debounce = nil end) task.wait(0.05) u7.Instance.KeybindButton.CurrentBind.Title.Text = "..." u1.__currentConnection = game.UserInputService.InputEnded:Connect(function(p9) if u1.__currentConnection then local v10 = p9.KeyCode == Enum.KeyCode.Unknown and p9.UserInputType.Name or p9.KeyCode.Name if table.find(u8, v10) or p9.KeyCode == Enum.KeyCode.Unknown and u2:GetAttribute("KeycodeOnly") then PlaySound("error") return end local v11 = require(game.ReplicatedStorage.Initializer) for v12, v13 in pairs(v11.PlayerSettings) do if v13.IsKeybind and (v13.Value == v10 and v12 ~= u2.Name) then PlaySound("error") return end end u2.Value = v10 PlaySound("switch0".. tostring(math.random(1,4))) if u1.__currentConnection then u1.__currentConnection:Disconnect() u1.__currentConnection = nil end u7.Instance.KeybindButton.CurrentBind.Title.Text = v10 end end) end end) local function v15() local v14 = "PC" if v14 == "Console" and u2.Name:find("~Console") then u7.Instance.Visible = true return elseif v14 == "PC" and not u2.Name:find("~Console") then u7.Instance.Visible = true else u7.Instance.Visible = false end end v15() return u7 end function u1.OnUpdate(p16) p16.Instance.KeybindButton.CurrentBind.Title.Text = p16.Value end return u1 ]=], ["Bool"] = [=[ local u1 = {} u1.__index = u1 local PlaySound = ({...})[1] function u1.CreateSettingUI(_, u2, p3) if not u2 then u2 = Instance.new("BoolValue") u2.Name = "SettingValue" end local v4 = u1 local u5 = setmetatable({ ["SettingValue"] = u2 }, v4) u5.isDebounce = false u5.Instance = p3 or game:GetService("ReplicatedStorage").Systems.Player.UI.Menus.Settings.Templates.Bool.Checkbox:Clone() u5.Instance.CheckboxButton.MouseButton1Click:Connect(function() if not u5.isDebounce then u5.isDebounce = true task.delay(0.25, function() u5.isDebounce = false end) PlaySound("switch0".. tostring(math.random(1,4))) u2.Value = not u2.Value end end) return u5 end function u1.OnUpdate(p6) p6.Value = p6.SettingValue.Value p6.Instance.CheckboxButton.Checked.Visible = p6.Value end return u1 ]=] } local Initializer = {} function Initializer.Start() local SettingsData = {} SettingsData.PlayerSettings = {} Initializer.SettingsMenu = MenuData:CreateSidebarMenu("Plus", PlusMenu) if NewUIVersion then PlusMenu:Destroy() PlusMenu = Initializer.SettingsMenu.Menu end local Contents = Initializer.SettingsMenu.Menu.SettingsContainer.Contents local Templates = ReplicatedStorage.Systems.Player.UI.Menus.Settings.Templates local function SetupSettingUI(SettingInstance, LayoutNumber) local v10 = LayoutNumber or 0 local LayoutOrder = SettingInstance:GetAttribute("LayoutOrder") local DisplayTitle = SettingInstance:GetAttribute("DisplayTitle") if LayoutOrder and DisplayTitle then if SettingInstance:IsA("Folder") then local Seperator = Templates.Seperator:Clone() Seperator.Name = SettingInstance.Name Seperator.LayoutOrder = LayoutOrder * 100 + v10 Seperator.Title.Text = DisplayTitle Seperator.Parent = Contents for i,v in pairs(SettingInstance:GetChildren()) do SetupSettingUI(v,LayoutOrder * 100) end elseif SettingInstance:IsA("ValueBase") then local SettingType = Templates:FindFirstChild(SettingInstance:GetAttribute("TemplateType") or string.gsub(SettingInstance.ClassName, "Value", "")) for i,Child in pairs(Templates:GetChildren()) do if SettingInstance.Parent.Name:find(Child.Name) then SettingType = Child end end if SettingType then local ModuleType = ModulesOptions[tostring(SettingType.Name)] SettingType = loadstring(tostring(ModuleType))(PlaySound) end if SettingType and SettingType.CreateSettingUI then local SettingUI = SettingType:CreateSettingUI(SettingInstance) SettingUI.Instance.Name = SettingInstance.Name SettingUI.Instance.LayoutOrder = LayoutOrder + v10 SettingUI.Instance.Parent = Contents local Requirement = SettingInstance:GetAttribute("Requirement") local BindableCallCheckRequirement = Instance.new("BindableEvent") local Requirements = {} BindableCallCheckRequirement.Event:Connect(function() local AllTrue = true for i,v in pairs(Requirements) do if not v then AllTrue = false break end end if AllTrue then SettingUI.Instance.Visible = true else SettingUI.Instance.Visible = false end end) if type(Requirement) == "string" and Requirement:find("|") then for i,v in (string.split(Requirement, "|")) do Requirements[v] = false end else Requirements = Requirement and {[Requirement] = false} or {} end for Requirement,v in pairs(Requirements) do Requirements[Requirement] = false local InstanceValue = type(Requirement) == "string" and PlusFolderSettings:FindFirstChild(Requirement, true) or nil if InstanceValue and Requirement ~= true then Requirements[Requirement] = InstanceValue.Value InstanceValue:GetPropertyChangedSignal("Value"):Connect(function() Requirements[Requirement] = InstanceValue.Value BindableCallCheckRequirement:Fire() end) elseif Requirement == true then Requirements[Requirement] = false BindableCallCheckRequirement:Fire() elseif Requirement:find("=") then local SplitData = string.split(Requirement, "=") local Value = SplitData[2] local CheckerInstance = PlusFolderSettings:FindFirstChild(SplitData[1], true) if CheckerInstance then local function Update() if tostring(CheckerInstance.Value) == Value or tostring(CheckerInstance.Value):lower() == "both" or tostring(CheckerInstance.Value):lower() == "all" then Requirements[Requirement] = true else Requirements[Requirement] = false end BindableCallCheckRequirement:Fire() end Update() CheckerInstance:GetPropertyChangedSignal("Value"):Connect(Update) end elseif Requirement:find("~") then local SplitData = string.split(Requirement, "~") local Value = SplitData[2] local CheckerInstance = PlusFolderSettings:FindFirstChild(SplitData[1], true) if CheckerInstance then local function Update() if tostring(CheckerInstance.Value) ~= Value then Requirements[Requirement] = true else Requirements[Requirement] = false end BindableCallCheckRequirement:Fire() end Update() CheckerInstance:GetPropertyChangedSignal("Value"):Connect(Update) end end end BindableCallCheckRequirement:Fire() SettingInstance:GetAttributeChangedSignal("Requirement"):Connect(function() Requirement = SettingInstance:GetAttribute("Requirement") Requirements = {} if type(Requirement) == "string" and Requirement:find("|") then for i,v in (string.split(Requirement, "|")) do Requirements[v] = false end else Requirements = Requirement and {[Requirement] = false} or {} end BindableCallCheckRequirement:Fire() end) local ResetButton = Templates.Reset:Clone() ResetButton.Parent = SettingUI.Instance ResetButton.MouseButton1Click:Connect(function() SettingInstance.Value = FeatureLoadout[SettingInstance.Parent.Name][SettingInstance.Name]["DefaultInstanceValue"] PlaySound("switch0".. tostring(math.random(1,4))) end) ResetButton.MouseEnter:Connect(function() PlaySound("hover") end) ResetButton.MouseLeave:Connect(function() PlaySound("hoverEnd") end) SettingUI.Instance:FindFirstChild("SettingName", true).Text = (DisplayTitle or "") SettingInstance:GetAttributeChangedSignal("DisplayTitle"):Connect(function() SettingUI.Instance:FindFirstChild("SettingName", true).Text = (SettingInstance:GetAttribute("DisplayTitle") or "") end) SettingUI.Instance:FindFirstChild("SettingDesc", true).Text = (SettingInstance:GetAttribute("DisplayDescription") or "") SettingInstance:GetAttributeChangedSignal("DisplayDescription"):Connect(function() SettingUI.Instance:FindFirstChild("SettingDesc", true).Text = (SettingInstance:GetAttribute("DisplayDescription") or "") end) SettingUI.__updatedEvent = Instance.new("BindableEvent", SettingUI.Instance) SettingUI.Updated = SettingUI.__updatedEvent.Event local SettingFeature = FeatureLoadout[SettingInstance.Parent.Name][SettingInstance.Name] if SettingFeature then SettingUI.Updated:Connect(function(Starting) SettingFeature:ScriptFunction(SettingUI.Value,Starting or false) end) end SettingUI.Value = SettingInstance.Value if SettingUI.OnUpdate then SettingUI:OnUpdate() end SettingUI.__updatedEvent:Fire(true) SettingInstance:GetPropertyChangedSignal("Value"):Connect(function() SettingUI.Value = SettingInstance.Value if SettingUI.OnUpdate then SettingUI:OnUpdate() end SettingUI.__updatedEvent:Fire() end) SettingsData.PlayerSettings[SettingInstance.Name] = SettingUI task.wait() end end else return end end task.spawn(function() for i,Child in pairs(PlusFolderSettings:GetChildren()) do SetupSettingUI(Child) end end) task.spawn(function() if game.GameId == 6331902150 then local JsonVersionData task.delay(5,function() if not JsonVersionData then ColoredPrint("Getting game version info is taking longer than usual.\nRovalra API has not responded in expected time.","warn") end task.wait(12) if not JsonVersionData then ColoredPrint(`Since it still has not gotten a response API still (after 17 seconds)\nYou can Manually check if the game has updated before the script has!\n(Last Script Update/Test : {GameVersionForScript})`,"info") end end) JsonVersionData = (game:HttpGet("https://apis.rovalra.com/v1/games/history?place_id=18687417158")) if not JsonVersionData then ColoredPrint(`Failed to get game version info.\n Automatic update check failed.\n `) return end local Success,TableVersionData = pcall(function() return HttpService:JSONDecode(tostring(JsonVersionData)) end) local CurrentGameVersion = (Success and TableVersionData and type(TableVersionData) == "table" and TableVersionData["history"] and TableVersionData["history"][1] and TableVersionData["history"][1]["first_seen"]) or GameVersionForScript CurrentGameVersion = CurrentGameVersion:sub(1,10) local y,m,d = GameVersionForScript:match("(%d+)-(%d+)-(%d+)") local ThenTime = os.time{year=y, month=m, day=d} y,m,d = CurrentGameVersion:match("(%d+)-(%d+)-(%d+)") local CurrentTime = os.time{year=y, month=m, day=d} local DaysSinceScriptUpdate = math.floor(math.abs(ThenTime - os.time()) / 86400) local DaysSinceGameUpdate = math.floor(math.abs(CurrentTime - os.time()) / 86400) if ThenTime < CurrentTime and DaysSinceScriptUpdate > 1 then ColoredPrint("Days since last script update: " .. DaysSinceScriptUpdate,"info", Color3.fromRGB(236, 48, 120)) ColoredPrint("Days since game update: " .. DaysSinceGameUpdate,"info", Color3.fromRGB(236, 48, 120)) FeatureLoadout["Outdated"] = { ["TabAttributes"] = { ["DisplayTitle"] = '' .. RichTextGradientColor(" SCRIPT ISN'T TESTED FOR THIS GAME VERSION ",{Color3.fromRGB(255, 166, 0), Color3.fromRGB(243, 227, 0)}) .. '', ["LayoutOrder"] = -2 } } local Folder = HandleUIFeatures("Outdated",FeatureLoadout["Outdated"]) SetupSettingUI(Folder) ColoredPrint("The game has updated and it has been detected that the script has not been tested/updated for this version.\nAll features have been disabled by default to prevent from you possibly getting detected.\n Use the features with caution or wait for a update from the script.", "warning", Color3.fromRGB(255, 166, 0)) for i,v in FeatureLoadout do for i2,v2 in v do v2["Savable"] = false if type(v2["DefaultInstanceValue"]) == "boolean" and v2["Instance"] and i ~= "Outdated" and i ~= "EnviromentFunctions" then v2["DefaultInstanceValue"] = false v2["Instance"].Value = false elseif type(v2["DefaultInstanceValue"]) ~= "boolean" and v2["Instance"] and i ~= "Outdated" and i ~= "EnviromentFunctions" then v2["Instance"].Value = v2["DefaultInstanceValue"] end end end end end end) end Initializer.Start() if SidePlusButton:IsA("Frame") then task.spawn(function() local Menu = MenuData.SidebarMenus[SidePlusButton.Name] if NewUIVersion then local CountingMod = false if Menu then SidePlusButton.Button.MouseButton1Click:Connect(function() MenuData.SidebarMenus["Plus"]["_sidebar"]["MenusHidden"] = false if not PlusMenu.Visible then for i,v in MainUI:GetChildren() do if v ~= PlusMenu and (v.Name):find("Screen") or v.Name == "Shop" then local ButtonName = v.Name:gsub("Screen","") local Button = SideBar:FindFirstChild(ButtonName,true) if not Button and ButtonName ~= "Mod" then continue end if (MenuData.SidebarMenus[ButtonName] and not MenuData.SidebarMenus[ButtonName]["Checked"]) or (ButtonName == "Mod" and not CountingMod) then if ButtonName == "Mod" then CountingMod = true else MenuData.SidebarMenus[ButtonName]["Checked"] = true end if Button then Button.Button.MouseButton1Click:Connect(function() if PlusMenu.Visible and MenuData.TogglingMenus == nil then SetButtonState(false) end end) elseif ButtonName == "Mod" and PlayerGui.TopbarStandard.Holders.Left:FindFirstChild("Widget") then local TopMod for i,v in PlayerGui.TopbarStandard.Holders.Left:GetChildren() do if v:FindFirstChildWhichIsA("TextLabel",true) and v:FindFirstChildWhichIsA("TextLabel",true).Text == "Command Panel" then TopMod = v break end end if TopMod then TopMod.IconButton.Menu.IconSpot.ClickRegion.MouseButton1Click:Connect(function() if PlusMenu.Visible and MenuData.TogglingMenus == nil then SetButtonState(false) end end) end end end end end end if MenuData.TogglingMenus == nil then Menu:ToggleMenu() end end) end else if Menu then SidePlusButton.Button.MouseButton1Click:Connect(function() if not PlusMenu.Visible then for i,v in MainUI:GetChildren() do if v ~= PlusMenu and (v.Name):find("Screen") then local ButtonName = v.Name:gsub("Screen","") local Button = Buttons:FindFirstChild(ButtonName) or (SideBar:FindFirstChild("Bottombar") and SideBar.Bottombar.Buttons:FindFirstChild(ButtonName)) or nil if not Button and ButtonName ~= "Mod" then continue end local Event = v:FindFirstChildOfClass("BindableEvent") if MenuData.SidebarMenus[ButtonName] == nil then if Button then Button.Button.MouseButton1Click:Connect(function() if PlusMenu.Visible and MenuData.TogglingMenus == nil then Menu:ToggleMenu() end end) elseif v.Name == "ModScreen" and PlayerGui.TopbarStandard.Holders.Left:FindFirstChild("Widget") then PlayerGui.TopbarStandard.Holders.Left.Widget.IconButton.Menu.IconSpot.ClickRegion.MouseButton1Click:Connect(function() if PlusMenu.Visible and MenuData.TogglingMenus == nil then Menu:ToggleMenu() end end) end MenuData.SidebarMenus[ButtonName] = { ["Toggled"] = Event and Event.Event or nil, ["SidebarButton"] = Buttons:FindFirstChild(ButtonName) or nil, ["Menu"] = MainUI:FindFirstChild(v.Name), ["__toggleEvent"] = Event or nil } end end end end if MenuData.TogglingMenus == nil then Menu:ToggleMenu() end end) end end end) if NewUIVersion then local OriginalSize = SidePlusButton.Size SidePlusButton.MouseEnter:Connect(function() TweenService:Create(SidePlusButton, BaseTweenInfo, { ["Size"] = UDim2.fromScale(OriginalSize.X.Scale * 1.1, OriginalSize.Y.Scale * 1.13) --UDim2.fromScale(0.69, 0.09) }):Play() PlaySound("hover") end) SidePlusButton.MouseLeave:Connect(function() TweenService:Create(SidePlusButton, BaseTweenInfo, { ["Size"] = OriginalSize --UDim2.fromScale(0.684, 0.073) }):Play() PlaySound("hoverEnd") end) else local IsBottomBar = SidePlusButton.Parent.Parent.Name == "Bottombar" local PulloutHolder = SidePlusButton.PulloutHolder PulloutHolder.Parent = IsBottomBar and (MenuData.Sidebars.Bottombar.Pullouts or SidePlusButton) or SidePlusButton local PulloutFrame = PulloutHolder.PulloutFrame PulloutFrame.Title.Text = SidePlusButton.Name SidePlusButton.MouseEnter:Connect(function() if SidePlusButton.Button.ImageTransparency <= 0.1 then TweenService:Create(SidePlusButton, BaseTweenInfo, { ["Size"] = UDim2.fromScale(1.05, IsBottomBar and 1.15 or 0.25) }):Play() if IsBottomBar then TweenService:Create(PulloutHolder, BaseTweenInfo, {["Position"] = UDim2.fromScale(0.65, 0.85),["Size"] = UDim2.fromScale(0.35, 0.75)}):Play() TweenService:Create(PulloutFrame.Display, BaseTweenInfo, {["ImageTransparency"] = 0}):Play() TweenService:Create(PulloutFrame.Title, BaseTweenInfo, {["TextTransparency"] = 0}):Play() else TweenService:Create(PulloutFrame, BaseTweenInfo, {["Position"] = UDim2.new(0.225, PulloutFrame.Title.AbsoluteSize.X ^ 1.03, 0.5, 0)}):Play() end PlaySound("hover") end end) SidePlusButton.MouseLeave:Connect(function() TweenService:Create(SidePlusButton, BaseTweenInfo, {["Size"] = UDim2.fromScale(1, IsBottomBar and 1 or 0.2)}):Play() if IsBottomBar then TweenService:Create(PulloutHolder, BaseTweenInfo, {["Position"] = UDim2.fromScale(0.65, 1),["Size"] = UDim2.fromScale(0.15, 0.45)}):Play() TweenService:Create(PulloutFrame.Display, BaseTweenInfo, {["ImageTransparency"] = 1}):Play() TweenService:Create(PulloutFrame.Title, BaseTweenInfo, {["TextTransparency"] = 1}):Play() else TweenService:Create(PulloutFrame, BaseTweenInfo, {["Position"] = UDim2.fromScale(0, 0.5)}):Play() end if SidePlusButton.Button.ImageTransparency <= 0.1 then PlaySound("hoverEnd") end end) end end local function UICheck() local Status = SideBar:GetAttribute("WasVisible") SetButtonState(false) if Status then if not NewUIVersion then local LayoutInstance = Buttons:FindFirstChildOfClass("UIListLayout") or Buttons:FindFirstChildOfClass("UIGridLayout") if LayoutInstance then LayoutInstance.VerticalAlignment = Enum.VerticalAlignment.Top end else SideBar:FindFirstChildOfClass("UIPadding").PaddingRight = UDim.new(0.2,0) SideBar:FindFirstChildOfClass("UIPadding").PaddingLeft = UDim.new(0,0) UIScale.Scale = 1 end PlusMenu.SettingsContainer.ImageTransparency = 0 PlusMenu.SettingsContainer.Contents.ScrollBarImageTransparency = 0 if SideBar:IsA("ImageLabel") then SideBar.ImageTransparency = 0 end for i,v in PlusMenu.SettingsContainer.Contents:GetChildren() do if v:IsA("ImageLabel") then v.ImageTransparency = 0 elseif v:IsA("Frame") then for i,v in v:GetChildren() do if v:IsA("ImageLabel") or v:IsA("ImageButton") then v.ImageTransparency = 0 end end end end else if NewUIVersion then MenuData.SidebarMenus["Plus"]["_sidebar"]["MenusHidden"] = false task.delay(0.5,function() MenuData.SidebarMenus["Plus"]["_sidebar"]["MenusHidden"] = false end) SideBar:FindFirstChildOfClass("UIPadding").PaddingRight = UDim.new(0,0) SideBar:FindFirstChildOfClass("UIPadding").PaddingLeft = UDim.new(0.2,0) UIScale.Scale = 1.3 end local LayoutInstance = Buttons:FindFirstChildOfClass("UIListLayout") or Buttons:FindFirstChildOfClass("UIGridLayout") if LayoutInstance then LayoutInstance.VerticalAlignment = Enum.VerticalAlignment.Center end PlusMenu.SettingsContainer.ImageTransparency = 0.3 PlusMenu.SettingsContainer.Contents.ScrollBarImageTransparency = 0.45 if SideBar:IsA("ImageLabel") then SideBar.ImageTransparency = 1 end for i,v in PlusMenu.SettingsContainer.Contents:GetChildren() do if v:IsA("ImageLabel") then v.ImageTransparency = 0.4 elseif v:IsA("Frame") then for i,v in v:GetChildren() do if v:IsA("ImageLabel") or v:IsA("ImageButton") then v.ImageTransparency = 0.3 end end end end end for i,v in SideBar:QueryDescendants(`#Bottom > Frame, #Money , #Bottombar , #{Buttons} > Frame {((not NewUIVersion) and ":not(#Credits)" or "")} :not(#TesterUi)`) do v.Visible = Status end SidePlusButton.Visible = true if not Status then RoundEvent:Fire("Start") else RoundEvent:Fire("End") end end MainUI.ChildAdded:Connect(function(Child) if Child.Name == "AbilityContainer" then if Child:FindFirstChild("Block") and not Child:FindFirstChild("Block"):FindFirstChild("AutoImage") then local AutoImage = Instance.new("ImageLabel") AutoImage.Name = "AutoImage" AutoImage.Interactable = false AutoImage.Parent = Child:FindFirstChild("Block") AutoImage.Image = "rbxassetid://114159864966636" AutoImage.BackgroundTransparency = 1 AutoImage.Size = UDim2.fromScale(0.8,0.8) AutoImage.Position = UDim2.fromScale(0.5,0) AutoImage.AnchorPoint = Vector2.new(0.5,0.4) AutoImage.Visible = GetValue("AutoBlock") end SideBar:SetAttribute("WasVisible", false) UICheck() end end) MainUI.ChildRemoved:Connect(function(Child) if Child.Name == "AbilityContainer" then SideBar:SetAttribute("WasVisible", true) UICheck() end end) SideBar:GetPropertyChangedSignal("Visible"):Connect(function() SideBar.Visible = true end) SideBar:SetAttribute("WasVisible",(MainUI:FindFirstChild("AbilityContainer") == nil)) UICheck() SideBar.Visible = true ColoredPrint("Forsaken plus has loaded successfully","success",Color3.fromRGB(0, 200, 125))