-- 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))