require(game.ReplicatedFirst.ReadyModule) local optionFrame = script.Parent:WaitForChild("OptionFrame") local options = optionFrame:WaitForChild("Options") function registerToggle(name,callback) local button = options:WaitForChild(name) local value = button.TextButton.Text == "On" button.TextButton.MouseButton1Click:Connect(function() value = not value local new = "On" if not value then new = "Off" end button.TextButton.Text = new callback(value) _G.Events.Notification:Fire(name,new) end) end local function registerSlider(name,callback) local slider = options:WaitForChild(name) local drag = slider:WaitForChild("Slider"):WaitForChild("Drag") local etch = slider:WaitForChild("Slider"):WaitForChild("Etch") local hold local position local event local function changed(object) if hold then local delta = (object.Position - hold).X local final = math.clamp((delta/(etch.AbsoluteSize.X))+position,0,1) drag.Position = UDim2.new(final,0,0,0) callback(final) else event:Disconnect() end end drag.InputBegan:Connect(function(object) if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.Touch then hold = object.Position position = drag.Position.X.Scale event = _G.Input.InputChanged:Connect(changed) end end) drag.InputEnded:Connect(function(object) if object.UserInputType == Enum.UserInputType.MouseButton1 or object.UserInputType == Enum.UserInputType.Touch then hold = nil position = nil end end) end local collaborateButton = options:WaitForChild("CollaborateButton") collaborateButton.MouseButton1Click:Connect(function() _G.Remotes.Collaborate:InvokeServer(nil,nil) end) registerSlider("Air",function(value) game.Workspace.CompensateDensity.Value = value * 2 end) registerToggle("Destruction",function(value) game.Workspace.Destruction.Value = value end) registerToggle("Combat",function(value) game.Workspace.Combat.Value = value if value then _G.Remotes.Combat:InvokeServer() end end) registerToggle("Debug",function(value) game.Workspace.DebugWings.Value = value end) registerToggle("Stats",function(value) _G.StatisticsFrame.Visible = value end) registerSlider("Dead",function(value) local val = value > 0.5 game.Lighting.ColorCorrection.Enabled = val game.Lighting.ColorGrading.Enabled = val end) local defaultDensity = 0.262 local defaultBlur = 24 local changeFog = function(value) game.Lighting.Atmosphere.Density = defaultDensity*value game.Lighting.Blur.Size = defaultBlur*value end local changeTime = function(value) game.Lighting.Time.Value = value * 24 end registerSlider("Fog",changeFog) registerSlider("Time",changeTime) --if _G.Statistics.fog_enabled then changeFog() options:WaitForChild("Fog").Text = "Off" end local minimized = true local toggle = _G:WaitFor("OptionsButton") local extended = optionFrame.Position local retracted = UDim2.new(UDim.new(0,-optionFrame.AbsoluteSize.X),extended.Y) optionFrame.Position = retracted optionFrame.Visible = true local function toggleMenu() print("toggle") minimized = not minimized optionFrame.Visible = not minimized --[[local new if minimized then new = retracted else new = extended end optionFrame:TweenPosition(new,Enum.EasingDirection.InOut,Enum.EasingStyle.Quad,0.4,true)]] end toggle.Activated:Connect(toggleMenu) local input = game:GetService("UserInputService") input.InputBegan:Connect(function(input,irrelevant) if not irrelevant and input.KeyCode == Enum.KeyCode.Backquote then if input:IsModifierKeyDown(Enum.ModifierKey.Shift) then minimized = true optionFrame.Visible = false optionFrame.Options.Command.CommandBox:ReleaseFocus() else minimized = false optionFrame.Visible = true wait() optionFrame.Options.Command.CommandBox:CaptureFocus() end end end) --game.StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat,false) local messageFrame = script.Parent:WaitForChild("MessageFrame") local messageBox = messageFrame:WaitForChild("TextBox") local messageContainer = messageFrame:WaitForChild("ScrollingFrame") _G.Remotes.Chat.OnClientEvent:Connect(function(title,content,color) local message = messageContainer.Template.Message:Clone() message.Parent = messageContainer message.Title.Text = title message.Content.Text = content message.Title.TextColor3 = color message.Visible = true messageContainer.CanvasPosition = Vector2.new(0, messageContainer.CanvasSize.Y.Offset - messageContainer.AbsoluteSize.Y) end) _G.Input.InputBegan:Connect(function(input,irrelevant) if not irrelevant and input.KeyCode == Enum.KeyCode.Slash then messageBox:CaptureFocus() end end) _G:WaitFor("ChatHideButton").Activated:Connect(function() messageFrame.Visible = not messageFrame.Visible end) messageBox.FocusLost:Connect(function(enterPressed) if enterPressed then local message = messageBox.Text :gsub("\n","
") :gsub("
","
") :gsub("(.-)","%1") :gsub("(.-)","%1") :gsub("(.-)","%1") :gsub("(.-)","%1") :gsub("(.-)","%1") :gsub("_(.-)_","%1") :gsub("*(.-)*","%1") if #message == 0 then return end _G.Remotes.Chat:FireServer(message) messageBox.Text = "" end end)