2013/processed/46295863.lua

1762 lines
69 KiB
Lua

print("[Mercury]: Loaded corescript 46295863")
local waitForChild
waitForChild = function(instance, name)
while not instance:FindFirstChild(name) do
instance.ChildAdded:wait()
end
end
local waitForProperty
waitForProperty = function(instance, property)
while not instance[property] do
instance.Changed:wait()
end
end
local gui
if script.Parent:FindFirstChild("ControlFrame") then
gui = script.Parent:FindFirstChild("ControlFrame")
else
gui = script.Parent
end
local helpButton
local updateCameraDropDownSelection
local updateVideoCaptureDropDownSelection
local tweenTime = 0.2
local mouseLockLookScreenUrl = "http://www.roblox.com/asset?id=54071825"
local classicLookScreenUrl = "http://www.roblox.com/Asset?id=45915798"
local hasGraphicsSlider = game:GetService("CoreGui").Version >= 5
local GraphicsQualityLevels = 10
local recordingVideo = false
local currentMenuSelection
local lastMenuSelection = { }
local centerDialogs = { }
local mainShield
local inStudioMode = UserSettings().GameSettings:InStudioMode()
local macClient = false
local success, isMac
success, isMac = pcall(function()
return not game.GuiService.IsWindows
end)
macClient = success and isMac
local Color3I
Color3I = function(r, g, b)
return Color3.new(r / 255, g / 255, b / 255)
end
local robloxLock
robloxLock = function(instance)
instance.RobloxLocked = true
local children = instance:GetChildren()
if children then
for _, child in ipairs(children) do
robloxLock(child)
end
end
end
local resumeGameFunction
resumeGameFunction = function(shield)
shield.Settings:TweenPosition(UDim2.new(0.5, -262, -0.5, -200), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
return delay(tweenTime, function()
shield.Visible = false
for i = 1, #centerDialogs do
centerDialogs[i].Visible = false
game.GuiService:RemoveCenterDialog(centerDialogs[i])
end
game.GuiService:RemoveCenterDialog(shield)
settingsButton.Active = true
currentMenuSelection = nil
lastMenuSelection = { }
end)
end
local goToMenu
goToMenu = function(container, menuName, moveDirection, size, position)
if type(menuName) ~= "string" then
return
end
table.insert(lastMenuSelection, currentMenuSelection)
if menuName == "GameMainMenu" then
lastMenuSelection = { }
end
local containerChildren = container:GetChildren()
for i = 1, #containerChildren do
if containerChildren[i].Name == menuName then
containerChildren[i].Visible = true
currentMenuSelection = {
container = container,
name = menuName,
direction = moveDirection,
lastSize = size
}
if size and position then
containerChildren[i]:TweenSizeAndPosition(size, position, Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
elseif size then
containerChildren[i]:TweenSizeAndPosition(size, UDim2.new(0.5, -size.X.Offset / 2, 0.5, -size.Y.Offset / 2), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
else
containerChildren[i]:TweenPosition(UDim2.new(0, 0, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end
else
if moveDirection == "left" then
containerChildren[i]:TweenPosition(UDim2.new(-1, -525, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
elseif moveDirection == "right" then
containerChildren[i]:TweenPosition(UDim2.new(1, 525, 0, 0), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
elseif moveDirection == "up" then
containerChildren[i]:TweenPosition(UDim2.new(0, 0, -1, -400), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
elseif moveDirection == "down" then
containerChildren[i]:TweenPosition(UDim2.new(0, 0, 1, 400), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end
delay(tweenTime, function()
containerChildren[i].Visible = false
end)
end
end
end
local resetLocalCharacter
resetLocalCharacter = function()
local player = game.Players.LocalPlayer
if player and player.Character and player.Character:FindFirstChild("Humanoid") then
player.Character.Humanoid.Health = 0
end
end
local createTextButton
createTextButton = function(text, style, fontSize, buttonSize, buttonPosition)
local newTextButton = Instance.new("TextButton")
newTextButton.Font = Enum.Font.Arial
newTextButton.FontSize = fontSize
newTextButton.Size = buttonSize
newTextButton.Position = buttonPosition
newTextButton.Style = style
newTextButton.TextColor3 = Color3.new(1, 1, 1)
newTextButton.Text = text
return newTextButton
end
local CreateTextButtons
CreateTextButtons = function(frame, buttons, yPos, ySize)
if #buttons < 1 then
error("Must have more than one button")
end
local buttonNum = 1
local buttonObjs = { }
local toggleSelection
toggleSelection = function(button)
for _, obj in ipairs(buttonObjs) do
if obj == button then
obj.Style = Enum.ButtonStyle.RobloxButtonDefault
else
obj.Style = Enum.ButtonStyle.RobloxButton
end
end
end
for _, obj in ipairs(buttons) do
local button = Instance.new("TextButton")
button.Name = "Button" .. buttonNum
button.Font = Enum.Font.Arial
button.FontSize = Enum.FontSize.Size18
button.AutoButtonColor = true
button.Style = Enum.ButtonStyle.RobloxButton
button.Text = obj.Text
button.TextColor3 = Color3.new(1, 1, 1)
button.MouseButton1Click:connect(function()
toggleSelection(button)
return obj.Function()
end)
button.Parent = frame
buttonObjs[buttonNum] = button
buttonNum = buttonNum + 1
end
toggleSelection(buttonObjs[1])
local numButtons = buttonNum - 1
if numButtons == 1 then
frame.Button1.Position = UDim2.new(0.35, 0, yPos.Scale, yPos.Offset)
frame.Button1.Size = UDim2.new(0.4, 0, ySize.Scale, ySize.Offset)
elseif numButtons == 2 then
frame.Button1.Position = UDim2.new(0.1, 0, yPos.Scale, yPos.Offset)
frame.Button1.Size = UDim2.new(0.35, 0, ySize.Scale, ySize.Offset)
frame.Button2.Position = UDim2.new(0.55, 0, yPos.Scale, yPos.Offset)
frame.Button2.Size = UDim2.new(0.35, 0, ySize.Scale, ySize.Offset)
elseif numButtons >= 3 then
local spacing = 0.1 / numButtons
local buttonSize = 0.9 / numButtons
buttonNum = 1
while buttonNum <= numButtons do
buttonObjs[buttonNum].Position = UDim2.new(spacing * buttonNum + (buttonNum - 1) * buttonSize, 0, yPos.Scale, yPos.Offset)
buttonObjs[buttonNum].Size = UDim2.new(buttonSize, 0, ySize.Scale, ySize.Offset)
buttonNum = buttonNum + 1
end
end
end
local setRecordGui
setRecordGui = function(recording, stopRecordButton, recordVideoButton)
if recording then
stopRecordButton.Visible = true
recordVideoButton.Text = "Stop Recording"
else
stopRecordButton.Visible = false
recordVideoButton.Text = "Record Video"
end
end
local recordVideoClick
recordVideoClick = function(recordVideoButton, stopRecordButton)
recordingVideo = not recordingVideo
return setRecordGui(recordingVideo, stopRecordButton, recordVideoButton)
end
local backToGame
backToGame = function(buttonClicked, shield, settingsButton)
buttonClicked.Parent.Parent.Parent.Parent.Visible = false
shield.Visible = false
for i = 1, #centerDialogs do
game.GuiService:RemoveCenterDialog(centerDialogs[i])
centerDialogs[i].Visible = false
end
centerDialogs = { }
game.GuiService:RemoveCenterDialog(shield)
settingsButton.Active = true
end
local setDisabledState
setDisabledState = function(guiObject)
if not guiObject then
return
end
if guiObject:IsA("TextLabel") then
guiObject.TextTransparency = 0.9
elseif guiObject:IsA("TextButton") then
guiObject.TextTransparency = 0.9
guiObject.Active = false
else
if guiObject["ClassName"] then
return print("setDisabledState! got object of unsupported type. object type is ", guiObject.ClassName)
end
end
end
local createHelpDialog
createHelpDialog = function(baseZIndex)
if helpButton == nil then
if gui:FindFirstChild("TopLeftControl" and gui.TopLeftControl:FindFirstChild("Help")) then
helpButton = gui.TopLeftControl.Help
elseif gui:FindFirstChild("BottomRightControl" and gui.BottomRightControl:FindFirstChild("Help")) then
helpButton = gui.BottomRightControl.Help
end
end
local shield = Instance.new("Frame")
shield.Name = "HelpDialogShield"
shield.Active = true
shield.Visible = false
shield.Size = UDim2.new(1, 0, 1, 0)
shield.BackgroundColor3 = Color3I(51, 51, 51)
shield.BorderColor3 = Color3I(27, 42, 53)
shield.BackgroundTransparency = 0.4
shield.ZIndex = baseZIndex + 1
local helpDialog = Instance.new("Frame")
helpDialog.Name = "HelpDialog"
helpDialog.Style = Enum.FrameStyle.RobloxRound
helpDialog.Position = UDim2.new(0.2, 0, 0.2, 0)
helpDialog.Size = UDim2.new(0.6, 0, 0.6, 0)
helpDialog.Active = true
helpDialog.Parent = shield
local titleLabel = Instance.new("TextLabel")
titleLabel.Name = "Title"
titleLabel.Text = "Keyboard & Mouse Controls"
titleLabel.Font = Enum.Font.ArialBold
titleLabel.FontSize = Enum.FontSize.Size36
titleLabel.Position = UDim2.new(0, 0, 0.025, 0)
titleLabel.Size = UDim2.new(1, 0, 0, 40)
titleLabel.TextColor3 = Color3.new(1, 1, 1)
titleLabel.BackgroundTransparency = 1
titleLabel.Parent = helpDialog
local buttonRow = Instance.new("Frame")
buttonRow.Name = "Buttons"
buttonRow.Position = UDim2.new(0.1, 0, 0.07, 40)
buttonRow.Size = UDim2.new(0.8, 0, 0, 45)
buttonRow.BackgroundTransparency = 1
buttonRow.Parent = helpDialog
local imageFrame = Instance.new("Frame")
imageFrame.Name = "ImageFrame"
imageFrame.Position = UDim2.new(0.05, 0, 0.075, 80)
imageFrame.Size = UDim2.new(0.9, 0, 0.9, -120)
imageFrame.BackgroundTransparency = 1
imageFrame.Parent = helpDialog
local layoutFrame = Instance.new("Frame")
layoutFrame.Name = "LayoutFrame"
layoutFrame.Position = UDim2.new(0.5, 0, 0, 0)
layoutFrame.Size = UDim2.new(1.5, 0, 1, 0)
layoutFrame.BackgroundTransparency = 1
layoutFrame.SizeConstraint = Enum.SizeConstraint.RelativeYY
layoutFrame.Parent = imageFrame
local image = Instance.new("ImageLabel")
image.Name = "Image"
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["Mouse Lock Switch"] then
image.Image = mouseLockLookScreenUrl
else
image.Image = classicLookScreenUrl
end
image.Position = UDim2.new(-0.5, 0, 0, 0)
image.Size = UDim2.new(1, 0, 1, 0)
image.BackgroundTransparency = 1
image.Parent = layoutFrame
local buttons = { }
buttons[1] = { }
buttons[1].Text = "Look"
buttons[1].Function = function()
if UserSettings().GameSettings.ControlMode == Enum.ControlMode["Mouse Lock Switch"] then
image.Image = mouseLockLookScreenUrl
else
image.Image = classicLookScreenUrl
end
end
buttons[2] = { }
buttons[2].Text = "Move"
buttons[2].Function = function()
image.Image = "http://www.roblox.com/Asset?id=45915811"
end
buttons[3] = { }
buttons[3].Text = "Gear"
buttons[3].Function = function()
image.Image = "http://www.roblox.com/Asset?id=45917596"
end
buttons[4] = { }
buttons[4].Text = "Zoom"
buttons[4].Function = function()
image.Image = "http://www.roblox.com/Asset?id=45915825"
end
CreateTextButtons(buttonRow, buttons, UDim.new(0, 0), UDim.new(1, 0))
delay(0, function()
waitForChild(gui, "UserSettingsShield")
waitForChild(gui.UserSettingsShield, "Settings")
waitForChild(gui.UserSettingsShield.Settings, "SettingsStyle")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle, "GameSettingsMenu")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu, "CameraField")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu.CameraField, "DropDownMenuButton")
return gui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu.CameraField.DropDownMenuButton.Changed:connect(function(prop)
if prop ~= "Text" then
return
end
if buttonRow.Button1.Style == Enum.ButtonStyle.RobloxButtonDefault then
if gui.UserSettingsShield.Settings.SettingsStyle.GameSettingsMenu.CameraField.DropDownMenuButton.Text == "Classic" then
image.Image = classicLookScreenUrl
else
image.Image = mouseLockLookScreenUrl
end
end
end)
end)
local okBtn = Instance.new("TextButton")
okBtn.Name = "OkBtn"
okBtn.Text = "OK"
okBtn.Modal = true
okBtn.Size = UDim2.new(0.3, 0, 0, 45)
okBtn.Position = UDim2.new(0.35, 0, 0.975, -50)
okBtn.Font = Enum.Font.Arial
okBtn.FontSize = Enum.FontSize.Size18
okBtn.BackgroundTransparency = 1
okBtn.TextColor3 = Color3.new(1, 1, 1)
okBtn.Style = Enum.ButtonStyle.RobloxButtonDefault
okBtn.MouseButton1Click:connect(function()
shield.Visible = false
return game.GuiService:RemoveCenterDialog(shield)
end)
okBtn.Parent = helpDialog
robloxLock(shield)
return shield
end
local createLeaveConfirmationMenu
createLeaveConfirmationMenu = function(baseZIndex, shield)
local frame = Instance.new("Frame")
frame.Name = "LeaveConfirmationMenu"
frame.BackgroundTransparency = 1
frame.Size = UDim2.new(1, 0, 1, 0)
frame.Position = UDim2.new(0, 0, 2, 400)
frame.ZIndex = baseZIndex + 4
local yesButton = createTextButton("Leave", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 128, 0, 50), UDim2.new(0, 313, 0.8, 0))
yesButton.Name = "YesButton"
yesButton.ZIndex = baseZIndex + 4
yesButton.Parent = frame
yesButton.Modal = true
yesButton:SetVerb("Exit")
local noButton = createTextButton("Stay", Enum.ButtonStyle.RobloxButtonDefault, Enum.FontSize.Size24, UDim2.new(0, 128, 0, 50), UDim2.new(0, 90, 0.8, 0))
noButton.Name = "NoButton"
noButton.Parent = frame
noButton.ZIndex = baseZIndex + 4
noButton.MouseButton1Click:connect(function()
goToMenu(shield.Settings.SettingsStyle, "GameMainMenu", "down", UDim2.new(0, 525, 0, 430))
return shield.Settings:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end)
local leaveText = Instance.new("TextLabel")
leaveText.Name = "LeaveText"
leaveText.Text = "Leave this game?"
leaveText.Size = UDim2.new(1, 0, 0.8, 0)
leaveText.TextWrap = true
leaveText.TextColor3 = Color3.new(1, 1, 1)
leaveText.Font = Enum.Font.ArialBold
leaveText.FontSize = Enum.FontSize.Size36
leaveText.BackgroundTransparency = 1
leaveText.ZIndex = baseZIndex + 4
leaveText.Parent = frame
return frame
end
local createResetConfirmationMenu
createResetConfirmationMenu = function(baseZIndex, shield)
local frame = Instance.new("Frame")
frame.Name = "ResetConfirmationMenu"
frame.BackgroundTransparency = 1
frame.Size = UDim2.new(1, 0, 1, 0)
frame.Position = UDim2.new(0, 0, 2, 400)
frame.ZIndex = baseZIndex + 4
local yesButton = createTextButton("Reset", Enum.ButtonStyle.RobloxButtonDefault, Enum.FontSize.Size24, UDim2.new(0, 128, 0, 50), UDim2.new(0, 313, 0, 299))
yesButton.Name = "YesButton"
yesButton.ZIndex = baseZIndex + 4
yesButton.Parent = frame
yesButton.Modal = true
yesButton.MouseButton1Click:connect(function()
resumeGameFunction(shield)
return resetLocalCharacter()
end)
local noButton = createTextButton("Cancel", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 128, 0, 50), UDim2.new(0, 90, 0, 299))
noButton.Name = "NoButton"
noButton.Parent = frame
noButton.ZIndex = baseZIndex + 4
noButton.MouseButton1Click:connect(function()
goToMenu(shield.Settings.SettingsStyle, "GameMainMenu", "down", UDim2.new(0, 525, 0, 430))
return shield.Settings:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end)
local resetCharacterText = Instance.new("TextLabel")
resetCharacterText.Name = "ResetCharacterText"
resetCharacterText.Text = "Are you sure you want to reset your character?"
resetCharacterText.Size = UDim2.new(1, 0, 0.8, 0)
resetCharacterText.TextWrap = true
resetCharacterText.TextColor3 = Color3.new(1, 1, 1)
resetCharacterText.Font = Enum.Font.ArialBold
resetCharacterText.FontSize = Enum.FontSize.Size36
resetCharacterText.BackgroundTransparency = 1
resetCharacterText.ZIndex = baseZIndex + 4
resetCharacterText.Parent = frame
local fineResetCharacterText = resetCharacterText:Clone()
fineResetCharacterText.Name = "FineResetCharacterText"
fineResetCharacterText.Text = "You will be put back on a spawn point"
fineResetCharacterText.Size = UDim2.new(0, 303, 0, 18)
fineResetCharacterText.Position = UDim2.new(0, 109, 0, 215)
fineResetCharacterText.FontSize = Enum.FontSize.Size18
fineResetCharacterText.Parent = frame
return frame
end
local createGameMainMenu
createGameMainMenu = function(baseZIndex, shield)
local gameMainMenuFrame = Instance.new("Frame")
gameMainMenuFrame.Name = "GameMainMenu"
gameMainMenuFrame.BackgroundTransparency = 1
gameMainMenuFrame.Size = UDim2.new(1, 0, 1, 0)
gameMainMenuFrame.ZIndex = baseZIndex + 4
gameMainMenuFrame.Parent = settingsFrame
local gameMainMenuTitle = Instance.new("TextLabel")
gameMainMenuTitle.Name = "Title"
gameMainMenuTitle.Text = "Game Menu"
gameMainMenuTitle.BackgroundTransparency = 1
gameMainMenuTitle.TextStrokeTransparency = 0
gameMainMenuTitle.Font = Enum.Font.ArialBold
gameMainMenuTitle.FontSize = Enum.FontSize.Size36
gameMainMenuTitle.Size = UDim2.new(1, 0, 0, 36)
gameMainMenuTitle.Position = UDim2.new(0, 0, 0, 4)
gameMainMenuTitle.TextColor3 = Color3.new(1, 1, 1)
gameMainMenuTitle.ZIndex = baseZIndex + 4
gameMainMenuTitle.Parent = gameMainMenuFrame
local robloxHelpButton = createTextButton("Help", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 164, 0, 50), UDim2.new(0, 82, 0, 256))
robloxHelpButton.Name = "HelpButton"
robloxHelpButton.ZIndex = baseZIndex + 4
robloxHelpButton.Parent = gameMainMenuFrame
helpButton = robloxHelpButton
local helpDialog = createHelpDialog(baseZIndex)
helpDialog.Parent = gui
helpButton.MouseButton1Click:connect(function()
table.insert(centerDialogs, helpDialog)
return game.GuiService:AddCenterDialog(helpDialog, Enum.CenterDialogType.ModalDialog, function()
helpDialog.Visible = true
mainShield.Visible = false
end, function()
helpDialog.Visible = false
end)
end)
helpButton.Active = true
local helpShortcut = Instance.new("TextLabel")
helpShortcut.Name = "HelpShortcutText"
helpShortcut.Text = "F1"
helpShortcut.Visible = false
helpShortcut.BackgroundTransparency = 1
helpShortcut.Font = Enum.Font.Arial
helpShortcut.FontSize = Enum.FontSize.Size12
helpShortcut.Position = UDim2.new(0, 85, 0, 0)
helpShortcut.Size = UDim2.new(0, 30, 0, 30)
helpShortcut.TextColor3 = Color3.new(0, 1, 0)
helpShortcut.ZIndex = baseZIndex + 4
helpShortcut.Parent = robloxHelpButton
local screenshotButton = createTextButton("Screenshot", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 168, 0, 50), UDim2.new(0, 254, 0, 256))
screenshotButton.Name = "ScreenshotButton"
screenshotButton.ZIndex = baseZIndex + 4
screenshotButton.Parent = gameMainMenuFrame
screenshotButton.Visible = not macClient
screenshotButton:SetVerb("Screenshot")
local screenshotShortcut = helpShortcut:clone()
screenshotShortcut.Name = "ScreenshotShortcutText"
screenshotShortcut.Text = "PrintSc"
screenshotShortcut.Position = UDim2.new(0, 118, 0, 0)
screenshotShortcut.Visible = true
screenshotShortcut.Parent = screenshotButton
local recordVideoButton = createTextButton("Record Video", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 168, 0, 50), UDim2.new(0, 254, 0, 306))
recordVideoButton.Name = "RecordVideoButton"
recordVideoButton.ZIndex = baseZIndex + 4
recordVideoButton.Parent = gameMainMenuFrame
recordVideoButton.Visible = not macClient
recordVideoButton:SetVerb("RecordToggle")
local recordVideoShortcut = helpShortcut:clone()
recordVideoShortcut.Visible = hasGraphicsSlider
recordVideoShortcut.Name = "RecordVideoShortcutText"
recordVideoShortcut.Text = "F12"
recordVideoShortcut.Position = UDim2.new(0, 120, 0, 0)
recordVideoShortcut.Parent = recordVideoButton
local stopRecordButton = Instance.new("ImageButton")
stopRecordButton.Name = "StopRecordButton"
stopRecordButton.BackgroundTransparency = 1
stopRecordButton.Image = "rbxasset://textures/ui/RecordStop.png"
stopRecordButton.Size = UDim2.new(0, 59, 0, 27)
stopRecordButton:SetVerb("RecordToggle")
stopRecordButton.MouseButton1Click:connect(function()
return recordVideoClick(recordVideoButton, stopRecordButton)
end)
stopRecordButton.Visible = false
stopRecordButton.Parent = gui
local reportAbuseButton = createTextButton("Report Abuse", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 164, 0, 50), UDim2.new(0, 82, 0, 306))
reportAbuseButton.Name = "ReportAbuseButton"
reportAbuseButton.ZIndex = baseZIndex + 4
reportAbuseButton.Parent = gameMainMenuFrame
local leaveGameButton = createTextButton("Leave Game", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 340, 0, 50), UDim2.new(0, 82, 0, 358))
leaveGameButton.Name = "LeaveGameButton"
leaveGameButton.ZIndex = baseZIndex + 4
leaveGameButton.Parent = gameMainMenuFrame
local resumeGameButton = createTextButton("Resume Game", Enum.ButtonStyle.RobloxButtonDefault, Enum.FontSize.Size24, UDim2.new(0, 340, 0, 50), UDim2.new(0, 82, 0, 54))
resumeGameButton.Name = "resumeGameButton"
resumeGameButton.ZIndex = baseZIndex + 4
resumeGameButton.Parent = gameMainMenuFrame
resumeGameButton.Modal = true
resumeGameButton.MouseButton1Click:connect(function()
return resumeGameFunction(shield)
end)
local gameSettingsButton = createTextButton("Game Settings", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 340, 0, 50), UDim2.new(0, 82, 0, 156))
gameSettingsButton.Name = "SettingsButton"
gameSettingsButton.ZIndex = baseZIndex + 4
gameSettingsButton.Parent = gameMainMenuFrame
if game:FindFirstChild("LoadingGuiService") and #game.LoadingGuiService:GetChildren() > 0 then
gameSettingsButton = createTextButton("Game Instructions", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 340, 0, 50), UDim2.new(0, 82, 0, 207))
gameSettingsButton.Name = "GameInstructions"
gameSettingsButton.ZIndex = baseZIndex + 4
gameSettingsButton.Parent = gameMainMenuFrame
gameSettingsButton.MouseButton1Click:connect(function()
if game:FindFirstChild("Players" and game.Players["LocalPlayer"]) then
local loadingGui = game.Players.LocalPlayer:FindFirstChild("PlayerLoadingGui")
if loadingGui then
loadingGui.Visible = true
end
end
end)
end
local resetButton = createTextButton("Reset Character", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size24, UDim2.new(0, 340, 0, 50), UDim2.new(0, 82, 0, 105))
resetButton.Name = "ResetButton"
resetButton.ZIndex = baseZIndex + 4
resetButton.Parent = gameMainMenuFrame
return gameMainMenuFrame
end
local createGameSettingsMenu
createGameSettingsMenu = function(baseZIndex, _)
local gameSettingsMenuFrame = Instance.new("Frame")
gameSettingsMenuFrame.Name = "GameSettingsMenu"
gameSettingsMenuFrame.BackgroundTransparency = 1
gameSettingsMenuFrame.Size = UDim2.new(1, 0, 1, 0)
gameSettingsMenuFrame.ZIndex = baseZIndex + 4
local title = Instance.new("TextLabel")
title.Name = "Title"
title.Text = "Settings"
title.Size = UDim2.new(1, 0, 0, 48)
title.Position = UDim2.new(0, 9, 0, -9)
title.Font = Enum.Font.ArialBold
title.FontSize = Enum.FontSize.Size36
title.TextColor3 = Color3.new(1, 1, 1)
title.ZIndex = baseZIndex + 4
title.BackgroundTransparency = 1
title.Parent = gameSettingsMenuFrame
local fullscreenText = Instance.new("TextLabel")
fullscreenText.Name = "FullscreenText"
fullscreenText.Text = "Fullscreen Mode"
fullscreenText.Size = UDim2.new(0, 124, 0, 18)
fullscreenText.Position = UDim2.new(0, 62, 0, 145)
fullscreenText.Font = Enum.Font.Arial
fullscreenText.FontSize = Enum.FontSize.Size18
fullscreenText.TextColor3 = Color3.new(1, 1, 1)
fullscreenText.ZIndex = baseZIndex + 4
fullscreenText.BackgroundTransparency = 1
fullscreenText.Parent = gameSettingsMenuFrame
local fullscreenShortcut = Instance.new("TextLabel")
fullscreenShortcut.Visible = hasGraphicsSlider
fullscreenShortcut.Name = "FullscreenShortcutText"
fullscreenShortcut.Text = "F11"
fullscreenShortcut.BackgroundTransparency = 1
fullscreenShortcut.Font = Enum.Font.Arial
fullscreenShortcut.FontSize = Enum.FontSize.Size12
fullscreenShortcut.Position = UDim2.new(0, 186, 0, 141)
fullscreenShortcut.Size = UDim2.new(0, 30, 0, 30)
fullscreenShortcut.TextColor3 = Color3.new(0, 1, 0)
fullscreenShortcut.ZIndex = baseZIndex + 4
fullscreenShortcut.Parent = gameSettingsMenuFrame
local studioText = Instance.new("TextLabel")
studioText.Visible = false
studioText.Name = "StudioText"
studioText.Text = "Studio Mode"
studioText.Size = UDim2.new(0, 95, 0, 18)
studioText.Position = UDim2.new(0, 62, 0, 179)
studioText.Font = Enum.Font.Arial
studioText.FontSize = Enum.FontSize.Size18
studioText.TextColor3 = Color3.new(1, 1, 1)
studioText.ZIndex = baseZIndex + 4
studioText.BackgroundTransparency = 1
studioText.Parent = gameSettingsMenuFrame
local studioShortcut = fullscreenShortcut:clone()
studioShortcut.Name = "StudioShortcutText"
studioShortcut.Visible = false
studioShortcut.Text = "F2"
studioShortcut.Position = UDim2.new(0, 154, 0, 175)
studioShortcut.Parent = gameSettingsMenuFrame
local studioCheckbox
if hasGraphicsSlider then
local qualityText = Instance.new("TextLabel")
qualityText.Name = "QualityText"
qualityText.Text = "Graphics Quality"
qualityText.Size = UDim2.new(0, 128, 0, 18)
qualityText.Position = UDim2.new(0, 30, 0, 239)
qualityText.Font = Enum.Font.Arial
qualityText.FontSize = Enum.FontSize.Size18
qualityText.TextColor3 = Color3.new(1, 1, 1)
qualityText.ZIndex = baseZIndex + 4
qualityText.BackgroundTransparency = 1
qualityText.Parent = gameSettingsMenuFrame
qualityText.Visible = not inStudioMode
local autoText = qualityText:clone()
autoText.Name = "AutoText"
autoText.Text = "Auto"
autoText.Position = UDim2.new(0, 183, 0, 214)
autoText.TextColor3 = Color3.new(128 / 255, 128 / 255, 128 / 255)
autoText.Size = UDim2.new(0, 34, 0, 18)
autoText.Parent = gameSettingsMenuFrame
autoText.Visible = not inStudioMode
local fasterText = autoText:clone()
fasterText.Name = "FasterText"
fasterText.Text = "Faster"
fasterText.Position = UDim2.new(0, 185, 0, 274)
fasterText.TextColor3 = Color3.new(95, 95, 95)
fasterText.FontSize = Enum.FontSize.Size14
fasterText.Parent = gameSettingsMenuFrame
fasterText.Visible = not inStudioMode
local fasterShortcut = fullscreenShortcut:clone()
fasterShortcut.Name = "FasterShortcutText"
fasterShortcut.Text = "F10 + Shift"
fasterShortcut.Position = UDim2.new(0, 185, 0, 283)
fasterShortcut.Parent = gameSettingsMenuFrame
fasterShortcut.Visible = not inStudioMode
local betterQualityText = autoText:clone()
betterQualityText.Name = "BetterQualityText"
betterQualityText.Text = "Better Quality"
betterQualityText.TextWrap = true
betterQualityText.Size = UDim2.new(0, 41, 0, 28)
betterQualityText.Position = UDim2.new(0, 390, 0, 269)
betterQualityText.TextColor3 = Color3.new(95, 95, 95)
betterQualityText.FontSize = Enum.FontSize.Size14
betterQualityText.Parent = gameSettingsMenuFrame
betterQualityText.Visible = not inStudioMode
local betterQualityShortcut = fullscreenShortcut:clone()
betterQualityShortcut.Name = "BetterQualityShortcut"
betterQualityShortcut.Text = "F10"
betterQualityShortcut.Position = UDim2.new(0, 394, 0, 288)
betterQualityShortcut.Parent = gameSettingsMenuFrame
betterQualityShortcut.Visible = not inStudioMode
local autoGraphicsButton = createTextButton("X", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 25, 0, 25), UDim2.new(0, 187, 0, 239))
autoGraphicsButton.Name = "AutoGraphicsButton"
autoGraphicsButton.ZIndex = baseZIndex + 4
autoGraphicsButton.Parent = gameSettingsMenuFrame
autoGraphicsButton.Visible = not inStudioMode
local graphicsSlider, graphicsLevel = RbxGui.CreateSlider(GraphicsQualityLevels, 150, UDim2.new(0, 230, 0, 280))
graphicsSlider.Parent = gameSettingsMenuFrame
graphicsSlider.Bar.ZIndex = baseZIndex + 4
graphicsSlider.Bar.Slider.ZIndex = baseZIndex + 5
graphicsSlider.Visible = not inStudioMode
graphicsLevel.Value = math.floor((settings().Rendering:GetMaxQualityLevel() - 1) / 2)
local graphicsSetter = Instance.new("TextBox")
graphicsSetter.Name = "GraphicsSetter"
graphicsSetter.BackgroundColor3 = Color3.new(0, 0, 0)
graphicsSetter.BorderColor3 = Color3.new(128 / 255, 128 / 255, 128 / 255)
graphicsSetter.Size = UDim2.new(0, 50, 0, 25)
graphicsSetter.Position = UDim2.new(0, 450, 0, 269)
graphicsSetter.TextColor3 = Color3.new(1, 1, 1)
graphicsSetter.Font = Enum.Font.Arial
graphicsSetter.FontSize = Enum.FontSize.Size18
graphicsSetter.Text = "Auto"
graphicsSetter.ZIndex = 1
graphicsSetter.TextWrap = true
graphicsSetter.Parent = gameSettingsMenuFrame
graphicsSetter.Visible = not inStudioMode
local isAutoGraphics = true
if not inStudioMode then
isAutoGraphics = (UserSettings().GameSettings.SavedQualityLevel == Enum.SavedQualitySetting.Automatic)
else
settings().Rendering.EnableFRM = false
end
local listenToGraphicsLevelChange = true
local setAutoGraphicsGui
setAutoGraphicsGui = function(active)
isAutoGraphics = active
if active then
autoGraphicsButton.Text = "X"
betterQualityText.ZIndex = 1
betterQualityShortcut.ZIndex = 1
fasterShortcut.ZIndex = 1
fasterText.ZIndex = 1
graphicsSlider.Bar.ZIndex = 1
graphicsSlider.Bar.Slider.ZIndex = 1
graphicsSetter.ZIndex = 1
graphicsSetter.Text = "Auto"
else
autoGraphicsButton.Text = ""
graphicsSlider.Bar.ZIndex = baseZIndex + 4
graphicsSlider.Bar.Slider.ZIndex = baseZIndex + 5
betterQualityShortcut.ZIndex = baseZIndex + 4
fasterShortcut.ZIndex = baseZIndex + 4
betterQualityText.ZIndex = baseZIndex + 4
fasterText.ZIndex = baseZIndex + 4
graphicsSetter.ZIndex = baseZIndex + 4
end
end
local goToAutoGraphics
goToAutoGraphics = function()
setAutoGraphicsGui(true)
UserSettings().GameSettings.SavedQualityLevel = Enum.SavedQualitySetting.Automatic
settings().Rendering.QualityLevel = Enum.QualityLevel.Automatic
end
local setGraphicsQualityLevel
setGraphicsQualityLevel = function(newLevel)
local percentage = newLevel / GraphicsQualityLevels
local newSetting = math.floor((settings().Rendering:GetMaxQualityLevel() - 1) * percentage)
if newSetting == 20 then
newSetting = 21
elseif newLevel == 1 then
newSetting = 1
elseif newSetting > settings().Rendering:GetMaxQualityLevel() then
newSetting = settings().Rendering:GetMaxQualityLevel() - 1
end
UserSettings().GameSettings.SavedQualityLevel = newLevel
settings().Rendering.QualityLevel = newSetting
end
local goToManualGraphics
goToManualGraphics = function(explicitLevel)
setAutoGraphicsGui(false)
if explicitLevel then
graphicsLevel.Value = explicitLevel
else
graphicsLevel.Value = math.floor((settings().Rendering.AutoFRMLevel / (settings().Rendering:GetMaxQualityLevel() - 1))({
GraphicsQualityLevels
}))
end
if explicitLevel == graphicsLevel.Value then
setGraphicsQualityLevel(graphicsLevel.Value)
end
if not explicitLevel then
UserSettings().GameSettings.SavedQualityLevel = graphicsLevel.Value
end
graphicsSetter.Text = tostring(graphicsLevel.Value)
end
local showAutoGraphics
showAutoGraphics = function()
autoText.ZIndex = baseZIndex + 4
autoGraphicsButton.ZIndex = baseZIndex + 4
end
local hideAutoGraphics
hideAutoGraphics = function()
autoText.ZIndex = 1
autoGraphicsButton.ZIndex = 1
end
local showManualGraphics
showManualGraphics = function()
graphicsSlider.Bar.ZIndex = baseZIndex + 4
graphicsSlider.Bar.Slider.ZIndex = baseZIndex + 5
betterQualityShortcut.ZIndex = baseZIndex + 4
fasterShortcut.ZIndex = baseZIndex + 4
betterQualityText.ZIndex = baseZIndex + 4
fasterText.ZIndex = baseZIndex + 4
graphicsSetter.ZIndex = baseZIndex + 4
end
local hideManualGraphics
hideManualGraphics = function()
betterQualityText.ZIndex = 1
betterQualityShortcut.ZIndex = 1
fasterShortcut.ZIndex = 1
fasterText.ZIndex = 1
graphicsSlider.Bar.ZIndex = 1
graphicsSlider.Bar.Slider.ZIndex = 1
graphicsSetter.ZIndex = 1
end
local translateSavedQualityLevelToInt
translateSavedQualityLevelToInt = function(savedQualityLevel)
if Enum.SavedQualitySetting.Automatic == savedQualityLevel then
return 0
elseif Enum.SavedQualitySetting.QualityLevel1 == savedQualityLevel then
return 1
elseif Enum.SavedQualitySetting.QualityLevel2 == savedQualityLevel then
return 2
elseif Enum.SavedQualitySetting.QualityLevel3 == savedQualityLevel then
return 3
elseif Enum.SavedQualitySetting.QualityLevel4 == savedQualityLevel then
return 4
elseif Enum.SavedQualitySetting.QualityLevel5 == savedQualityLevel then
return 5
elseif Enum.SavedQualitySetting.QualityLevel6 == savedQualityLevel then
return 6
elseif Enum.SavedQualitySetting.QualityLevel7 == savedQualityLevel then
return 7
elseif Enum.SavedQualitySetting.QualityLevel8 == savedQualityLevel then
return 8
elseif Enum.SavedQualitySetting.QualityLevel9 == savedQualityLevel then
return 9
elseif Enum.SavedQualitySetting.QualityLevel10 == savedQualityLevel then
return 10
end
end
local enableGraphicsWidget
enableGraphicsWidget = function()
settings().Rendering.EnableFRM = true
isAutoGraphics = UserSettings().GameSettings.SavedQualityLevel == Enum.SavedQualitySetting.Automatic
if isAutoGraphics then
showAutoGraphics()
return goToAutoGraphics()
else
showAutoGraphics()
showManualGraphics()
return goToManualGraphics(translateSavedQualityLevelToInt(UserSettings().GameSettings.SavedQualityLevel))
end
end
local disableGraphicsWidget
disableGraphicsWidget = function()
hideManualGraphics()
hideAutoGraphics()
settings().Rendering.EnableFRM = false
end
graphicsSetter.FocusLost:connect(function()
if isAutoGraphics then
graphicsSetter.Text = tostring(graphicsLevel.Value)
return
end
local newGraphicsValue = tonumber(graphicsSetter.Text)
if newGraphicsValue == nil then
graphicsSetter.Text = tostring(graphicsLevel.Value)
return
end
if newGraphicsValue < 1 then
newGraphicsValue = 1
elseif newGraphicsValue >= settings().Rendering:GetMaxQualityLevel() then
newGraphicsValue = settings().Rendering:GetMaxQualityLevel() - 1
end
graphicsLevel.Value = newGraphicsValue
setGraphicsQualityLevel(graphicsLevel.Value)
graphicsSetter.Text = tostring(graphicsLevel.Value)
end)
graphicsLevel.Changed:connect(function(_)
if isAutoGraphics then
return
end
if not listenToGraphicsLevelChange then
return
end
graphicsSetter.Text = tostring(graphicsLevel.Value)
return setGraphicsQualityLevel(graphicsLevel.Value)
end)
if inStudioMode or UserSettings().GameSettings.SavedQualityLevel == Enum.SavedQualitySetting.Automatic then
if inStudioMode then
settings().Rendering.EnableFRM = false
disableGraphicsWidget()
else
settings().Rendering.EnableFRM = true
goToAutoGraphics()
end
else
settings().Rendering.EnableFRM = true
goToManualGraphics(translateSavedQualityLevelToInt(UserSettings().GameSettings.SavedQualityLevel))
end
autoGraphicsButton.MouseButton1Click:connect(function()
if inStudioMode and not game.Players.LocalPlayer then
return
end
if not isAutoGraphics then
return goToAutoGraphics()
else
return goToManualGraphics(graphicsLevel.Value)
end
end)
game.GraphicsQualityChangeRequest:connect(function(graphicsIncrease)
if isAutoGraphics then
return
end
if graphicsIncrease then
if (graphicsLevel.Value + 1) > GraphicsQualityLevels then
return
end
graphicsLevel.Value = graphicsLevel.Value + 1
graphicsSetter.Text = tostring(graphicsLevel.Value)
setGraphicsQualityLevel(graphicsLevel.Value)
return game:GetService("GuiService"):SendNotification("Graphics Quality", "Increased to (" .. tostring(graphicsSetter.Text) .. ")", "", 2, function() end)
else
if (graphicsLevel.Value - 1) <= 0 then
return
end
graphicsLevel.Value = graphicsLevel.Value - 1
graphicsSetter.Text = tostring(graphicsLevel.Value)
setGraphicsQualityLevel(graphicsLevel.Value)
return game:GetService("GuiService"):SendNotification("Graphics Quality", "Decreased to (" .. tostring(graphicsSetter.Text) .. ")", "", 2, function() end)
end
end)
game.Players.PlayerAdded:connect(function(player)
if player == game.Players.LocalPlayer and inStudioMode then
return enableGraphicsWidget()
end
end)
game.Players.PlayerRemoving:connect(function(player)
if player == game.Players.LocalPlayer and inStudioMode then
return disableGraphicsWidget()
end
end)
studioCheckbox = createTextButton("", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 25, 0, 25), UDim2.new(0, 30, 0, 176))
studioCheckbox.Name = "StudioCheckbox"
studioCheckbox.ZIndex = baseZIndex + 4
studioCheckbox:SetVerb("TogglePlayMode")
studioCheckbox.Visible = false
local wasManualGraphics = (settings().Rendering.QualityLevel ~= Enum.QualityLevel.Automatic)
if inStudioMode and not game.Players.LocalPlayer then
studioCheckbox.Text = "X"
disableGraphicsWidget()
elseif inStudioMode then
studioCheckbox.Text = "X"
enableGraphicsWidget()
end
if hasGraphicsSlider then
UserSettings().GameSettings.StudioModeChanged:connect(function(isStudioMode)
inStudioMode = isStudioMode
if isStudioMode then
wasManualGraphics = (settings().Rendering.QualityLevel ~= Enum.QualityLevel.Automatic)
goToAutoGraphics()
studioCheckbox.Text = "X"
autoGraphicsButton.ZIndex = 1
autoText.ZIndex = 1
else
if wasManualGraphics then
goToManualGraphics()
end
studioCheckbox.Text = ""
autoGraphicsButton.ZIndex = baseZIndex + 4
autoText.ZIndex = baseZIndex + 4
end
end)
else
studioCheckbox.MouseButton1Click:connect(function()
if not studioCheckbox.Active then
return
end
if studioCheckbox.Text == "" then
studioCheckbox.Text = "X"
else
studioCheckbox.Text = ""
end
end)
end
end
local fullscreenCheckbox = createTextButton("", Enum.ButtonStyle.RobloxButton, Enum.FontSize.Size18, UDim2.new(0, 25, 0, 25), UDim2.new(0, 30, 0, 144))
fullscreenCheckbox.Name = "FullscreenCheckbox"
fullscreenCheckbox.ZIndex = baseZIndex + 4
fullscreenCheckbox.Parent = gameSettingsMenuFrame
fullscreenCheckbox:SetVerb("ToggleFullScreen")
if UserSettings().GameSettings:InFullScreen() then
fullscreenCheckbox.Text = "X"
end
if hasGraphicsSlider then
UserSettings().GameSettings.FullscreenChanged:connect(function(isFullscreen)
if isFullscreen then
fullscreenCheckbox.Text = "X"
else
fullscreenCheckbox.Text = ""
end
end)
else
fullscreenCheckbox.MouseButton1Click:connect(function()
if fullscreenCheckbox.Text == "" then
fullscreenCheckbox.Text = "X"
else
fullscreenCheckbox.Text = ""
end
end)
end
if game:FindFirstChild("NetworkClient") then
setDisabledState(studioText)
setDisabledState(studioShortcut)
setDisabledState(studioCheckbox)
end
local backButton
if hasGraphicsSlider then
backButton = createTextButton("OK", Enum.ButtonStyle.RobloxButtonDefault, Enum.FontSize.Size24, UDim2.new(0, 180, 0, 50), UDim2.new(0, 170, 0, 330))
backButton.Modal = true
else
backButton = createTextButton("OK", Enum.ButtonStyle.RobloxButtonDefault, Enum.FontSize.Size24, UDim2.new(0, 180, 0, 50), UDim2.new(0, 170, 0, 270))
backButton.Modal = true
end
backButton.Name = "BackButton"
backButton.ZIndex = baseZIndex + 4
backButton.Parent = gameSettingsMenuFrame
syncVideoCaptureSetting = nil
if not macClient then
local videoCaptureLabel = Instance.new("TextLabel")
videoCaptureLabel.Name = "VideoCaptureLabel"
videoCaptureLabel.Text = "After Capturing Video"
videoCaptureLabel.Font = Enum.Font.Arial
videoCaptureLabel.FontSize = Enum.FontSize.Size18
videoCaptureLabel.Position = UDim2.new(0, 32, 0, 100)
videoCaptureLabel.Size = UDim2.new(0, 164, 0, 18)
videoCaptureLabel.BackgroundTransparency = 1
videoCaptureLabel.TextColor3 = Color3I(255, 255, 255)
videoCaptureLabel.TextXAlignment = Enum.TextXAlignment.Left
videoCaptureLabel.ZIndex = baseZIndex + 4
videoCaptureLabel.Parent = gameSettingsMenuFrame
local videoNames = { }
local videoNameToItem = { }
videoNames[1] = "Just Save to Disk"
videoNameToItem[videoNames[1]] = Enum.UploadSetting["Never"]
videoNames[2] = "Upload to YouTube"
videoNameToItem[videoNames[2]] = Enum.UploadSetting["Ask me first"]
local videoCaptureDropDown
videoCaptureDropDown, updateVideoCaptureDropDownSelection = RbxGui.CreateDropDownMenu(videoNames, function(text)
UserSettings().GameSettings.VideoUploadPromptBehavior = videoNameToItem[text]
end)
videoCaptureDropDown.Name = "VideoCaptureField"
videoCaptureDropDown.ZIndex = baseZIndex + 4
videoCaptureDropDown.DropDownMenuButton.ZIndex = baseZIndex + 4
videoCaptureDropDown.DropDownMenuButton.Icon.ZIndex = baseZIndex + 4
videoCaptureDropDown.Position = UDim2.new(0, 270, 0, 94)
videoCaptureDropDown.Size = UDim2.new(0, 200, 0, 32)
videoCaptureDropDown.Parent = gameSettingsMenuFrame
syncVideoCaptureSetting = function()
return updateVideoCaptureDropDownSelection((function()
if UserSettings().GameSettings.VideoUploadPromptBehavior == Enum.UploadSetting["Never"] then
return videoNames[1]
elseif UserSettings().GameSettings.VideoUploadPromptBehavior == Enum.UploadSetting["Ask me first"] then
return videoNames[2]
else
UserSettings().GameSettings.VideoUploadPromptBehavior = Enum.UploadSetting["Ask me first"]
return videoNames[2]
end
end)())
end
end
local cameraLabel = Instance.new("TextLabel")
cameraLabel.Name = "CameraLabel"
cameraLabel.Text = "Character & Camera Controls"
cameraLabel.Font = Enum.Font.Arial
cameraLabel.FontSize = Enum.FontSize.Size18
cameraLabel.Position = UDim2.new(0, 31, 0, 58)
cameraLabel.Size = UDim2.new(0, 224, 0, 18)
cameraLabel.TextColor3 = Color3I(255, 255, 255)
cameraLabel.TextXAlignment = Enum.TextXAlignment.Left
cameraLabel.BackgroundTransparency = 1
cameraLabel.ZIndex = baseZIndex + 4
cameraLabel.Parent = gameSettingsMenuFrame
local mouseLockLabel = game.CoreGui.RobloxGui:FindFirstChild("MouseLockLabel", true)
local enumItems = Enum.ControlMode:GetEnumItems()
local enumNames = { }
local enumNameToItem = { }
for i, obj in ipairs(enumItems) do
enumNames[i] = obj.Name
enumNameToItem[obj.Name] = obj
end
local cameraDropDown
cameraDropDown, updateCameraDropDownSelection = RbxGui.CreateDropDownMenu(enumNames, function(text)
UserSettings().GameSettings.ControlMode = enumNameToItem[text]
return pcall(function()
if mouseLockLabel and UserSettings().GameSettings.ControlMode == Enum.ControlMode["Mouse Lock Switch"] then
mouseLockLabel.Visible = true
elseif mouseLockLabel then
mouseLockLabel.Visible = false
end
end)
end)
cameraDropDown.Name = "CameraField"
cameraDropDown.ZIndex = baseZIndex + 4
cameraDropDown.DropDownMenuButton.ZIndex = baseZIndex + 4
cameraDropDown.DropDownMenuButton.Icon.ZIndex = baseZIndex + 4
cameraDropDown.Position = UDim2.new(0, 270, 0, 52)
cameraDropDown.Size = UDim2.new(0, 200, 0, 32)
cameraDropDown.Parent = gameSettingsMenuFrame
return gameSettingsMenuFrame
end
if LoadLibrary then
RbxGui = LoadLibrary("RbxGui")
local baseZIndex = 0
if UserSettings then
local createSettingsDialog
createSettingsDialog = function()
waitForChild(gui, "BottomLeftControl")
settingsButton = gui.BottomLeftControl:FindFirstChild("SettingsButton")
if settingsButton == nil then
settingsButton = Instance.new("ImageButton")
settingsButton.Name = "SettingsButton"
settingsButton.Image = "rbxasset://textures/ui/SettingsButton.png"
settingsButton.BackgroundTransparency = 1
settingsButton.Active = false
settingsButton.Size = UDim2.new(0, 54, 0, 46)
settingsButton.Position = UDim2.new(0, 2, 0, 50)
settingsButton.Parent = gui.BottomLeftControl
end
local shield = Instance.new("TextButton")
shield.Text = ""
shield.Name = "UserSettingsShield"
shield.Active = true
shield.AutoButtonColor = false
shield.Visible = false
shield.Size = UDim2.new(1, 0, 1, 0)
shield.BackgroundColor3 = Color3I(51, 51, 51)
shield.BorderColor3 = Color3I(27, 42, 53)
shield.BackgroundTransparency = 0.4
shield.ZIndex = baseZIndex + 2
mainShield = shield
local frame = Instance.new("Frame")
frame.Name = "Settings"
frame.Position = UDim2.new(0.5, -262, -0.5, -200)
frame.Size = UDim2.new(0, 525, 0, 430)
frame.BackgroundTransparency = 1
frame.Active = true
frame.Parent = shield
local settingsFrame = Instance.new("Frame")
settingsFrame.Name = "SettingsStyle"
settingsFrame.Size = UDim2.new(1, 0, 1, 0)
settingsFrame.Style = Enum.FrameStyle.RobloxRound
settingsFrame.Active = true
settingsFrame.ZIndex = baseZIndex + 3
settingsFrame.Parent = frame
local gameMainMenu = createGameMainMenu(baseZIndex, shield)
gameMainMenu.Parent = settingsFrame
gameMainMenu.ScreenshotButton.MouseButton1Click:connect(function()
return backToGame(gameMainMenu.ScreenshotButton, shield, settingsButton)
end)
gameMainMenu.RecordVideoButton.MouseButton1Click:connect(function()
recordVideoClick(gameMainMenu.RecordVideoButton, gui.StopRecordButton)
return backToGame(gameMainMenu.RecordVideoButton, shield, settingsButton)
end)
if settings():FindFirstChild("Game Options") then
pcall(function()
return settings():FindFirstChild("Game Options").VideoRecordingChangeRequest:connect(function(recording)
recordingVideo = recording
return setRecordGui(recording, gui.StopRecordButton, gameMainMenu.RecordVideoButton)
end)
end)
end
game.CoreGui.RobloxGui.Changed:connect(function(prop)
if prop == "AbsoluteSize" and recordingVideo then
return recordVideoClick(gameMainMenu.RecordVideoButton, gui.StopRecordButton)
end
end)
local localPlayerChange
localPlayerChange = function()
gameMainMenu.ResetButton.Visible = game.Players.LocalPlayer
if game.Players.LocalPlayer then
settings().Rendering.EnableFRM = true
elseif inStudioMode then
settings().Rendering.EnableFRM = false
end
end
gameMainMenu.ResetButton.Visible = game.Players.LocalPlayer
if (game.Players.LocalPlayer ~= nil) then
game.Players.LocalPlayer.Changed:connect(function()
return localPlayerChange()
end)
else
delay(0, function()
waitForProperty(game.Players, "LocalPlayer")
gameMainMenu.ResetButton.Visible = game.Players.LocalPlayer
return game.Players.LocalPlayer.Changed:connect(function()
return localPlayerChange()
end)
end)
end
gameMainMenu.ReportAbuseButton.Visible = game:FindFirstChild("NetworkClient")
if not gameMainMenu.ReportAbuseButton.Visible then
game.ChildAdded:connect(function(child)
if child:IsA("NetworkClient") then
gameMainMenu.ReportAbuseButton.Visible = game:FindFirstChild("NetworkClient")
end
end)
end
gameMainMenu.ResetButton.MouseButton1Click:connect(function()
return goToMenu(settingsFrame, "ResetConfirmationMenu", "up", UDim2.new(0, 525, 0, 370))
end)
gameMainMenu.LeaveGameButton.MouseButton1Click:connect(function()
return goToMenu(settingsFrame, "LeaveConfirmationMenu", "down", UDim2.new(0, 525, 0, 300))
end)
if game.CoreGui.Version >= 4 then
game:GetService("GuiService").EscapeKeyPressed:connect(function()
if currentMenuSelection == nil then
return game.GuiService:AddCenterDialog(shield, Enum.CenterDialogType.ModalDialog, function()
settingsButton.Active = false
updateCameraDropDownSelection(UserSettings().GameSettings.ControlMode.Name)
if syncVideoCaptureSetting then
syncVideoCaptureSetting()
end
goToMenu(settingsFrame, "GameMainMenu", "right", UDim2.new(0, 525, 0, 430))
shield.Visible = true
shield.Active = true
settingsFrame.Parent:TweenPosition(UDim2.new(0.5, -262, 0.5, -200), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
return settingsFrame.Parent:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end, function()
settingsFrame.Parent:TweenPosition(UDim2.new(0.5, -262, -0.5, -200), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
settingsFrame.Parent:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
shield.Visible = false
settingsButton.Active = true
end)
elseif #lastMenuSelection > 0 then
if #centerDialogs > 0 then
for i = 1, #centerDialogs do
game.GuiService:RemoveCenterDialog(centerDialogs[i])
centerDialogs[i].Visible = false
end
centerDialogs = { }
end
goToMenu(lastMenuSelection[#lastMenuSelection]["container"], lastMenuSelection[#lastMenuSelection]["name"], lastMenuSelection[#lastMenuSelection]["direction"], lastMenuSelection[#lastMenuSelection]["lastSize"])
table.remove(lastMenuSelection, #lastMenuSelection)
if #lastMenuSelection == 1 then
lastMenuSelection = { }
end
else
return resumeGameFunction(shield)
end
end)
end
local gameSettingsMenu = createGameSettingsMenu(baseZIndex, shield)
gameSettingsMenu.Visible = false
gameSettingsMenu.Parent = settingsFrame
gameMainMenu.SettingsButton.MouseButton1Click:connect(function()
return goToMenu(settingsFrame, "GameSettingsMenu", "left", UDim2.new(0, 525, 0, 350))
end)
gameSettingsMenu.BackButton.MouseButton1Click:connect(function()
return goToMenu(settingsFrame, "GameMainMenu", "right", UDim2.new(0, 525, 0, 430))
end)
local resetConfirmationWindow = createResetConfirmationMenu(baseZIndex, shield)
resetConfirmationWindow.Visible = false
resetConfirmationWindow.Parent = settingsFrame
local leaveConfirmationWindow = createLeaveConfirmationMenu(baseZIndex, shield)
leaveConfirmationWindow.Visible = false
leaveConfirmationWindow.Parent = settingsFrame
robloxLock(shield)
settingsButton.MouseButton1Click:connect(function()
return game.GuiService:AddCenterDialog(shield, Enum.CenterDialogType.ModalDialog, function()
settingsButton.Active = false
updateCameraDropDownSelection(UserSettings().GameSettings.ControlMode.Name)
if syncVideoCaptureSetting then
syncVideoCaptureSetting()
end
goToMenu(settingsFrame, "GameMainMenu", "right", UDim2.new(0, 525, 0, 430))
shield.Visible = true
settingsFrame.Parent:TweenPosition(UDim2.new(0.5, -262, 0.5, -200), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
return settingsFrame.Parent:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
end, function()
settingsFrame.Parent:TweenPosition(UDim2.new(0.5, -262, -0.5, -200), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
settingsFrame.Parent:TweenSize(UDim2.new(0, 525, 0, 430), Enum.EasingDirection.InOut, Enum.EasingStyle.Sine, tweenTime, true)
shield.Visible = false
settingsButton.Active = true
end)
end)
return shield
end
delay(0, function()
createSettingsDialog().Parent = gui
gui.BottomLeftControl.SettingsButton.Active = true
gui.BottomLeftControl.SettingsButton.Position = UDim2.new(0, 2, 0, -2)
if mouseLockLabel and UserSettings().GameSettings.ControlMode == Enum.ControlMode["Mouse Lock Switch"] then
mouseLockLabel.Visible = true
elseif mouseLockLabel then
mouseLockLabel.Visible = false
end
local leaveGameButton = gui.BottomLeftControl:FindFirstChild("Exit")
if leaveGameButton then
leaveGameButton:Remove()
end
local topLeft = gui:FindFirstChild("TopLeftControl")
if topLeft then
leaveGameButton = topLeft:FindFirstChild("Exit")
if leaveGameButton then
leaveGameButton:Remove()
end
return topLeft:Remove()
end
end)
end
local createSaveDialogs
createSaveDialogs = function()
local shield = Instance.new("TextButton")
shield.Text = ""
shield.AutoButtonColor = false
shield.Name = "SaveDialogShield"
shield.Active = true
shield.Visible = false
shield.Size = UDim2.new(1, 0, 1, 0)
shield.BackgroundColor3 = Color3I(51, 51, 51)
shield.BorderColor3 = Color3I(27, 42, 53)
shield.BackgroundTransparency = 0.4
shield.ZIndex = baseZIndex + 1
local clearAndResetDialog, save, saveLocal, dontSave, cancel
local messageBoxButtons = { }
messageBoxButtons[1] = { }
messageBoxButtons[1].Text = "Save"
messageBoxButtons[1].Style = Enum.ButtonStyle.RobloxButtonDefault
messageBoxButtons[1].Function = function()
return save()
end
messageBoxButtons[2] = { }
messageBoxButtons[2].Text = "Cancel"
messageBoxButtons[2].Function = function()
return cancel()
end
messageBoxButtons[3] = { }
messageBoxButtons[3].Text = "Don't Save"
messageBoxButtons[3].Function = function()
return dontSave()
end
local saveDialogMessageBox = RbxGui.CreateStyledMessageDialog("Unsaved Changes", "Save your changes to Mercury before leaving?", "Confirm", messageBoxButtons)
saveDialogMessageBox.Visible = true
saveDialogMessageBox.Parent = shield
local errorBoxButtons = { }
local buttonOffset = 1
if game.LocalSaveEnabled then
errorBoxButtons[buttonOffset] = { }
errorBoxButtons[buttonOffset].Text = "Save to Disk"
errorBoxButtons[buttonOffset].Function = function()
return saveLocal()
end
buttonOffset = buttonOffset + 1
end
errorBoxButtons[buttonOffset] = { }
errorBoxButtons[buttonOffset].Text = "Keep Playing"
errorBoxButtons[buttonOffset].Function = function()
return cancel()
end
errorBoxButtons[buttonOffset + 1] = { }
errorBoxButtons[buttonOffset + 1].Text = "Don't Save"
errorBoxButtons[buttonOffset + 1].Function = function()
return dontSave()
end
local errorDialogMessageBox = RbxGui.CreateStyledMessageDialog("Upload Failed", "Sorry, we could not save your changes to Mercury.", "Error", errorBoxButtons)
errorDialogMessageBox.Visible = false
errorDialogMessageBox.Parent = shield
local spinnerDialog = Instance.new("Frame")
spinnerDialog.Name = "SpinnerDialog"
spinnerDialog.Style = Enum.FrameStyle.RobloxRound
spinnerDialog.Size = UDim2.new(0, 350, 0, 150)
spinnerDialog.Position = UDim2.new(0.5, -175, 0.5, -75)
spinnerDialog.Visible = false
spinnerDialog.Active = true
spinnerDialog.Parent = shield
local waitingLabel = Instance.new("TextLabel")
waitingLabel.Name = "WaitingLabel"
waitingLabel.Text = "Saving to Mercury..."
waitingLabel.Font = Enum.Font.ArialBold
waitingLabel.FontSize = Enum.FontSize.Size18
waitingLabel.Position = UDim2.new(0.5, 25, 0.5, 0)
waitingLabel.TextColor3 = Color3.new(1, 1, 1)
waitingLabel.Parent = spinnerDialog
local spinnerFrame = Instance.new("Frame")
spinnerFrame.Name = "Spinner"
spinnerFrame.Size = UDim2.new(0, 80, 0, 80)
spinnerFrame.Position = UDim2.new(0.5, -150, 0.5, -40)
spinnerFrame.BackgroundTransparency = 1
spinnerFrame.Parent = spinnerDialog
local spinnerIcons = { }
local spinnerNum = 1
while spinnerNum <= 8 do
local spinnerImage = Instance.new("ImageLabel")
spinnerImage.Name = "Spinner" .. spinnerNum
spinnerImage.Size = UDim2.new(0, 16, 0, 16)
spinnerImage.Position = UDim2.new(0.5 + 0.3 * math.cos(math.rad(45 * spinnerNum)), -8, 0.5 + 0.3 * math.sin(math.rad(45 * spinnerNum)), -8)
spinnerImage.BackgroundTransparency = 1
spinnerImage.Image = "http://www.roblox.com/Asset?id=45880710"
spinnerImage.Parent = spinnerFrame
spinnerIcons[spinnerNum] = spinnerImage
spinnerNum = spinnerNum + 1
end
save = function()
saveDialogMessageBox.Visible = false
spinnerDialog.Visible = true
local spin = true
delay(0, function()
local spinPos = 0
while spin do
local pos = 0
while pos < 8 do
if pos == spinPos or pos == ((spinPos + 1) % 8) then
spinnerIcons[pos + 1].Image = "http://www.roblox.com/Asset?id=45880668"
else
spinnerIcons[pos + 1].Image = "http://www.roblox.com/Asset?id=45880710"
end
pos = pos + 1
end
spinPos = (spinPos + 1) % 8
wait(0.2)
end
end)
local result = game:SaveToRoblox()
if not result then
result = game:SaveToRoblox()
end
spinnerDialog.Visible = false
spin = false
if result then
game:FinishShutdown(false)
return clearAndResetDialog()
else
errorDialogMessageBox.Visible = true
end
end
saveLocal = function()
errorDialogMessageBox.Visible = false
game:FinishShutdown(true)
return clearAndResetDialog()
end
dontSave = function()
saveDialogMessageBox.Visible = false
errorDialogMessageBox.Visible = false
game:FinishShutdown(false)
return clearAndResetDialog()
end
cancel = function()
saveDialogMessageBox.Visible = false
errorDialogMessageBox.Visible = false
return clearAndResetDialog()
end
clearAndResetDialog = function()
saveDialogMessageBox.Visible = true
errorDialogMessageBox.Visible = false
spinnerDialog.Visible = false
shield.Visible = false
return game.GuiService:RemoveCenterDialog(shield)
end
robloxLock(shield)
shield.Visible = false
return shield
end
local createReportAbuseDialog
createReportAbuseDialog = function()
waitForChild(game, "NetworkClient")
waitForChild(game, "Players")
waitForProperty(game.Players, "LocalPlayer")
local localPlayer = game.Players.LocalPlayer
local reportAbuseButton
waitForChild(gui, "UserSettingsShield")
waitForChild(gui.UserSettingsShield, "Settings")
waitForChild(gui.UserSettingsShield.Settings, "SettingsStyle")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle, "GameMainMenu")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle.GameMainMenu, "ReportAbuseButton")
reportAbuseButton = gui.UserSettingsShield.Settings.SettingsStyle.GameMainMenu.ReportAbuseButton
local shield = Instance.new("TextButton")
shield.Name = "ReportAbuseShield"
shield.Text = ""
shield.AutoButtonColor = false
shield.Active = true
shield.Visible = false
shield.Size = UDim2.new(1, 0, 1, 0)
shield.BackgroundColor3 = Color3I(51, 51, 51)
shield.BorderColor3 = Color3I(27, 42, 53)
shield.BackgroundTransparency = 0.4
shield.ZIndex = baseZIndex + 1
local closeAndResetDialog
local messageBoxButtons = { }
messageBoxButtons[1] = { }
messageBoxButtons[1].Text = "Ok"
messageBoxButtons[1].Modal = true
messageBoxButtons[1].Function = function()
return closeAndResetDialog()
end
local calmingMessageBox = RbxGui.CreateMessageDialog("Thanks for your report!", "Our moderators will review the chat logs and determine what happened. The other user is probably just trying to make you mad.\n\nIf anyone used swear words, inappropriate language, or threatened you in real life, please report them for Bad Words or Threats", messageBoxButtons)
calmingMessageBox.Visible = false
calmingMessageBox.Parent = shield
local recordedMessageBox = RbxGui.CreateMessageDialog("Thanks for your report!", "We've recorded your report for evaluation.", messageBoxButtons)
recordedMessageBox.Visible = false
recordedMessageBox.Parent = shield
local normalMessageBox = RbxGui.CreateMessageDialog("Thanks for your report!", "Our moderators will review the chat logs and determine what happened.", messageBoxButtons)
normalMessageBox.Visible = false
normalMessageBox.Parent = shield
local frame = Instance.new("Frame")
frame.Name = "Settings"
frame.Position = UDim2.new(0.5, -250, 0.5, -200)
frame.Size = UDim2.new(0, 500, 0, 400)
frame.BackgroundTransparency = 1
frame.Active = true
frame.Parent = shield
local settingsFrame = Instance.new("Frame")
settingsFrame.Name = "ReportAbuseStyle"
settingsFrame.Size = UDim2.new(1, 0, 1, 0)
settingsFrame.Style = Enum.FrameStyle.RobloxRound
settingsFrame.Active = true
settingsFrame.ZIndex = baseZIndex + 1
settingsFrame.Parent = frame
local title = Instance.new("TextLabel")
title.Name = "Title"
title.Text = "Report Abuse"
title.TextColor3 = Color3I(221, 221, 221)
title.Position = UDim2.new(0.5, 0, 0, 30)
title.Font = Enum.Font.ArialBold
title.FontSize = Enum.FontSize.Size36
title.ZIndex = baseZIndex + 2
title.Parent = settingsFrame
local description = Instance.new("TextLabel")
description.Name = "Description"
description.Text = "This will send a complete report to a moderator. The moderator will review the chat log and take appropriate action."
description.TextColor3 = Color3I(221, 221, 221)
description.Position = UDim2.new(0, 0, 0, 55)
description.Size = UDim2.new(1, 0, 0, 40)
description.BackgroundTransparency = 1
description.Font = Enum.Font.Arial
description.FontSize = Enum.FontSize.Size18
description.TextWrap = true
description.ZIndex = baseZIndex + 2
description.TextXAlignment = Enum.TextXAlignment.Left
description.TextYAlignment = Enum.TextYAlignment.Top
description.Parent = settingsFrame
local playerLabel = Instance.new("TextLabel")
playerLabel.Name = "PlayerLabel"
playerLabel.Text = "Which player?"
playerLabel.BackgroundTransparency = 1
playerLabel.Font = Enum.Font.Arial
playerLabel.FontSize = Enum.FontSize.Size18
playerLabel.Position = UDim2.new(0.025, 0, 0, 100)
playerLabel.Size = UDim2.new(0.4, 0, 0, 36)
playerLabel.TextColor3 = Color3I(255, 255, 255)
playerLabel.TextXAlignment = Enum.TextXAlignment.Left
playerLabel.ZIndex = baseZIndex + 2
playerLabel.Parent = settingsFrame
local abusingPlayer
local abuse
local submitReportButton
local updatePlayerSelection
local createPlayersDropDown
createPlayersDropDown = function()
local players = game:GetService("Players")
local playerNames = { }
local nameToPlayer = { }
local children = players:GetChildren()
local pos = 1
if children then
for _, player in ipairs(children) do
if player:IsA("Player") and player ~= localPlayer then
playerNames[pos] = player.Name
nameToPlayer[player.Name] = player
pos = pos + 1
end
end
end
local playerDropDown
playerDropDown, updatePlayerSelection = RbxGui.CreateDropDownMenu(playerNames, function(playerName)
abusingPlayer = nameToPlayer[playerName]
if abuse and abusingPlayer then
submitReportButton.Active = true
end
end)
playerDropDown.Name = "PlayersComboBox"
playerDropDown.ZIndex = baseZIndex + 2
playerDropDown.Position = UDim2.new(0.425, 0, 0, 102)
playerDropDown.Size = UDim2.new(0.55, 0, 0, 32)
return playerDropDown
end
local abuseLabel = Instance.new("TextLabel")
abuseLabel.Name = "AbuseLabel"
abuseLabel.Text = "Type of Abuse:"
abuseLabel.Font = Enum.Font.Arial
abuseLabel.BackgroundTransparency = 1
abuseLabel.FontSize = Enum.FontSize.Size18
abuseLabel.Position = UDim2.new(0.025, 0, 0, 140)
abuseLabel.Size = UDim2.new(0.4, 0, 0, 36)
abuseLabel.TextColor3 = Color3I(255, 255, 255)
abuseLabel.TextXAlignment = Enum.TextXAlignment.Left
abuseLabel.ZIndex = baseZIndex + 2
abuseLabel.Parent = settingsFrame
local abuses = {
"Swearing",
"Bullying",
"Scamming",
"Dating",
"Cheating/Exploiting",
"Personal Questions",
"Offsite Links",
"Bad Model or Script",
"Bad Username"
}
local abuseDropDown, updateAbuseSelection = RbxGui.CreateDropDownMenu(abuses, function(abuseText)
abuse = abuseText
if abuse and abusingPlayer then
submitReportButton.Active = true
end
end, true)
abuseDropDown.Name = "AbuseComboBox"
abuseDropDown.ZIndex = baseZIndex + 2
abuseDropDown.Position = UDim2.new(0.425, 0, 0, 142)
abuseDropDown.Size = UDim2.new(0.55, 0, 0, 32)
abuseDropDown.Parent = settingsFrame
local shortDescriptionLabel = Instance.new("TextLabel")
shortDescriptionLabel.Name = "ShortDescriptionLabel"
shortDescriptionLabel.Text = "Short Description: (optional)"
shortDescriptionLabel.Font = Enum.Font.Arial
shortDescriptionLabel.FontSize = Enum.FontSize.Size18
shortDescriptionLabel.Position = UDim2.new(0.025, 0, 0, 180)
shortDescriptionLabel.Size = UDim2.new(0.95, 0, 0, 36)
shortDescriptionLabel.TextColor3 = Color3I(255, 255, 255)
shortDescriptionLabel.TextXAlignment = Enum.TextXAlignment.Left
shortDescriptionLabel.BackgroundTransparency = 1
shortDescriptionLabel.ZIndex = baseZIndex + 2
shortDescriptionLabel.Parent = settingsFrame
local shortDescriptionWrapper = Instance.new("Frame")
shortDescriptionWrapper.Name = "ShortDescriptionWrapper"
shortDescriptionWrapper.Position = UDim2.new(0.025, 0, 0, 220)
shortDescriptionWrapper.Size = UDim2.new(0.95, 0, 1, -310)
shortDescriptionWrapper.BackgroundColor3 = Color3I(0, 0, 0)
shortDescriptionWrapper.BorderSizePixel = 0
shortDescriptionWrapper.ZIndex = baseZIndex + 2
shortDescriptionWrapper.Parent = settingsFrame
local shortDescriptionBox = Instance.new("TextBox")
shortDescriptionBox.Name = "TextBox"
shortDescriptionBox.Text = ""
shortDescriptionBox.ClearTextOnFocus = false
shortDescriptionBox.Font = Enum.Font.Arial
shortDescriptionBox.FontSize = Enum.FontSize.Size18
shortDescriptionBox.Position = UDim2.new(0, 3, 0, 3)
shortDescriptionBox.Size = UDim2.new(1, -6, 1, -6)
shortDescriptionBox.TextColor3 = Color3I(255, 255, 255)
shortDescriptionBox.TextXAlignment = Enum.TextXAlignment.Left
shortDescriptionBox.TextYAlignment = Enum.TextYAlignment.Top
shortDescriptionBox.TextWrap = true
shortDescriptionBox.BackgroundColor3 = Color3I(0, 0, 0)
shortDescriptionBox.BorderSizePixel = 0
shortDescriptionBox.ZIndex = baseZIndex + 2
shortDescriptionBox.Parent = shortDescriptionWrapper
submitReportButton = Instance.new("TextButton")
submitReportButton.Name = "SubmitReportBtn"
submitReportButton.Active = false
submitReportButton.Modal = true
submitReportButton.Font = Enum.Font.Arial
submitReportButton.FontSize = Enum.FontSize.Size18
submitReportButton.Position = UDim2.new(0.1, 0, 1, -80)
submitReportButton.Size = UDim2.new(0.35, 0, 0, 50)
submitReportButton.AutoButtonColor = true
submitReportButton.Style = Enum.ButtonStyle.RobloxButtonDefault
submitReportButton.Text = "Submit Report"
submitReportButton.TextColor3 = Color3I(255, 255, 255)
submitReportButton.ZIndex = baseZIndex + 2
submitReportButton.Parent = settingsFrame
submitReportButton.MouseButton1Click:connect(function()
if submitReportButton.Active then
if abuse and abusingPlayer then
frame.Visible = false
game.Players:ReportAbuse(abusingPlayer, abuse, shortDescriptionBox.Text)
if abuse == "Cheating/Exploiting" then
recordedMessageBox.Visible = true
elseif abuse == "Bullying" or abuse == "Swearing" then
calmingMessageBox.Visible = true
else
normalMessageBox.Visible = true
end
else
return closeAndResetDialog()
end
end
end)
local cancelButton = Instance.new("TextButton")
cancelButton.Name = "CancelBtn"
cancelButton.Font = Enum.Font.Arial
cancelButton.FontSize = Enum.FontSize.Size18
cancelButton.Position = UDim2.new(0.55, 0, 1, -80)
cancelButton.Size = UDim2.new(0.35, 0, 0, 50)
cancelButton.AutoButtonColor = true
cancelButton.Style = Enum.ButtonStyle.RobloxButtonDefault
cancelButton.Text = "Cancel"
cancelButton.TextColor3 = Color3I(255, 255, 255)
cancelButton.ZIndex = baseZIndex + 2
cancelButton.Parent = settingsFrame
closeAndResetDialog = function()
local oldComboBox = settingsFrame:FindFirstChild("PlayersComboBox")
if oldComboBox then
oldComboBox.Parent = nil
end
abusingPlayer = nil
updatePlayerSelection(nil)
abuse = nil
updateAbuseSelection(nil)
submitReportButton.Active = false
shortDescriptionBox.Text = ""
frame.Visible = true
calmingMessageBox.Visible = false
recordedMessageBox.Visible = false
normalMessageBox.Visible = false
shield.Visible = false
reportAbuseButton.Active = true
return game.GuiService:RemoveCenterDialog(shield)
end
cancelButton.MouseButton1Click:connect(closeAndResetDialog)
reportAbuseButton.MouseButton1Click:connect(function()
createPlayersDropDown().Parent = settingsFrame
table.insert(centerDialogs, shield)
return game.GuiService:AddCenterDialog(shield, Enum.CenterDialogType.ModalDialog, function()
reportAbuseButton.Active = false
shield.Visible = true
mainShield.Visible = false
end, function()
reportAbuseButton.Active = true
shield.Visible = false
end)
end)
robloxLock(shield)
return shield
end
local isSaveDialogSupported = pcall(function() end)
if isSaveDialogSupported then
delay(0, function()
local saveDialogs = createSaveDialogs()
saveDialogs.Parent = gui
game.RequestShutdown = function()
table.insert(centerDialogs, saveDialogs)
game.GuiService:AddCenterDialog(saveDialogs, Enum.CenterDialogType.QuitDialog, function()
saveDialogs.Visible = true
end, function()
saveDialogs.Visible = false
end)
return true
end
end)
end
delay(0, function()
createReportAbuseDialog().Parent = gui
waitForChild(gui, "UserSettingsShield")
waitForChild(gui.UserSettingsShield, "Settings")
waitForChild(gui.UserSettingsShield.Settings, "SettingsStyle")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle, "GameMainMenu")
waitForChild(gui.UserSettingsShield.Settings.SettingsStyle.GameMainMenu, "ReportAbuseButton")
gui.UserSettingsShield.Settings.SettingsStyle.GameMainMenu.ReportAbuseButton.Active = true
end)
pcall(function()
return game.GuiService.UseLuaChat
end)
local BurningManPlaceID = 41324860
return delay(0, function()
waitForChild(game, "NetworkClient")
waitForChild(game, "Players")
waitForProperty(game.Players, "LocalPlayer")
waitForProperty(game.Players.LocalPlayer, "Character")
waitForChild(game.Players.LocalPlayer.Character, "Humanoid")
waitForProperty(game, "PlaceId")
if game.PlaceId == BurningManPlaceID then
game.Players.LocalPlayer.Character.Humanoid:SetClickToWalkEnabled(false)
return game.Players.LocalPlayer.CharacterAdded:connect(function(character)
waitForChild(character, "Humanoid")
return character.Humanoid:SetClickToWalkEnabled(false)
end)
end
end)
end