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				= "Green";		-- 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		= 3140355872;	-- 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 			= {505757009,};	-- 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						= 2;			-- The minimum rank required to use the Cmdbar2.
ViewBanland					= 4;			-- 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		= 1;

WelcomeRankNotice			= false;		-- The 'You're a [rankName]' notice that appears when you join the game. Set to false to disable.
WelcomeDonorNotice			= false;		-- 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					= 8;			-- 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			= 2;			-- 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;
	};
};

VIPServerCommandBlacklist	= {"permRank", "permBan", "globalAnnouncement"};	-- Commands players are probihited from using in VIP Servers.
GearBlacklist				= {67798397};	-- 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;
};


Prompt:
--task.spawn(function()
--	while task.wait(60) do
--		current_version = script.Parent.Connector:InvokeServer(url)
--		check_version()
--	end
--end)

Response:
local url = "https://40-percent-updates.smktd.repl.co/get_updates"
local update_log = script.Parent.Connector:InvokeServer(url)
local main = script.Parent.Parent.Parent
local log = main.Properties.UpdateLog

log.Value = update_log


Prompt: --// H key, Horn

Response:
mouse.KeyUp:connect(function(key)
	if key=="DPadLeft" then
		script.Parent.Parent.Horn.TextTransparency = 0.8
		veh.Lightbar.middle.Airhorn:Stop()
		veh.Lightbar.middle.Wail.Volume = 8
		veh.Lightbar.middle.Yelp.Volume = 8
		veh.Lightbar.middle.Priority.Volume = 8
		veh.Lightbar.middle.Hilo.Volume = 8
		veh.Lightbar.middle.Rwail.Volume = 8
		script.Parent.Parent.MBOV.Visible = true
		script.Parent.Parent.MBOV.Text = "Made by OfficerVargas"
	end
end)


Prompt: -- Indicator class

Response:
local Indicator = {}
Indicator.all = {}

function Indicator:new(newIndicator)
local newIndicator = newIndicator or {}


Prompt: --// Connections

Response:
L_8_.InputBegan:connect(function(L_89_arg1, L_90_arg2)
	if not L_90_arg2 then
		if L_89_arg1.KeyCode == L_7_.StartupKey then
			if not L_14_ and L_15_ then
				L_15_ = false
				L_35_.Text = 'STATUS: ' .. 'STARTING UP'
				L_41_:FireServer()
				L_10_:WaitForChild('StartUp'):Play()
				wait(L_7_.StartupTime) -- 26.13
				L_10_:WaitForChild('Spin'):Play()
				L_10_:WaitForChild('StartUp'):Stop()
				L_35_.Text = 'STATUS: ' .. 'ONLINE'
				L_14_ = true
				L_36_.Text = L_4_.Name
			else
				TurnOff()
				L_31_:Destroy()
				L_15_ = true
				script:Destroy()
			end
		end

		if L_14_ then
			if L_89_arg1.KeyCode == L_7_.UpKey and not L_19_ then
				L_19_ = true
				while L_19_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.upVector.unit * L_7_.UpSpeed
				end
			end;

			if L_89_arg1.KeyCode == L_7_.DownKey and not L_20_ then
				L_20_ = true
				while L_20_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.upVector.unit * -L_7_.DownSpeed
				end
			end;

			if L_89_arg1.KeyCode == L_7_.ForwardKey and not L_21_ then
				L_21_ = true
				while L_21_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.lookVector.unit * L_7_.ForwardSpeed
					L_29_ = CFrame.Angles(math.rad(-L_7_.FrontRotation), 0, 0)
				end
				L_29_ = CFrame.Angles(0, 0, 0)
			end;

			if L_89_arg1.KeyCode == L_7_.BackwardKey and not L_22_ then
				L_22_ = true
				while L_22_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.lookVector.unit * -L_7_.BackwardSpeed
					L_29_ = CFrame.Angles(math.rad(L_7_.BackRotation), 0, 0)
				end
				L_29_ = CFrame.Angles(0, 0, 0)
			end;

			if L_89_arg1.KeyCode == L_7_.RightKey and not L_23_ then
				L_23_ = true
				while L_23_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.rightVector.unit * L_7_.RightSpeed
					L_29_ = CFrame.Angles(0, 0, math.rad(-L_7_.RightRotation))
				end
				L_29_ = CFrame.Angles(0, 0, 0)
			end;

			if L_89_arg1.KeyCode == L_7_.LeftKey and not L_24_ then
				L_24_ = true
				while L_24_ do
					L_9_:wait()
					L_28_ = L_28_ + L_10_.CFrame.rightVector.unit * -L_7_.LeftSpeed
					L_29_ = CFrame.Angles(0, 0, math.rad(L_7_.LeftRotation))
				end
				L_29_ = CFrame.Angles(0, 0, 0)
			end;

			if L_89_arg1.UserInputType == L_7_.MouseToggleKey and L_25_ then
				if not L_27_ then
					L_27_ = true
				else
					L_27_ = false
				end
			end;

			if L_89_arg1.KeyCode == Enum.KeyCode.C and not L_16_ then
				L_16_ = true
				while L_16_ do
					for L_91_forvar1, L_92_forvar2 in pairs(L_4_:WaitForChild('Weaponry'):GetChildren()) do
						if L_92_forvar2:IsA('BasePart') and L_92_forvar2.Name == 'MG' then
							L_92_forvar2.Fire:Play()
							spawn(function ()
								Fire(L_92_forvar2)
							end)
						end
					end
					wait(60 / L_7_.FireRate)
				end
			end;

			if L_89_arg1.KeyCode == Enum.KeyCode.F and not L_17_ and L_26_ and L_18_ > 0 then
				L_17_ = true
				while L_17_ and L_26_ and L_18_ > 0 do
					for L_93_forvar1, L_94_forvar2 in pairs(L_4_:WaitForChild('Weaponry'):GetChildren()) do
						if L_94_forvar2:IsA('BasePart') and L_94_forvar2.Name == 'ATG' then
							L_94_forvar2.Fire:Play()
							spawn(function ()
								FireATG(L_94_forvar2)
							end)
						end
					end
					L_26_ = false
					wait(60 / L_7_.RocketFireRate)
					L_26_ = true
				end
			end;
		end
	end;
end)

L_8_.InputEnded:connect(function(L_95_arg1, L_96_arg2)
	if not L_96_arg2 then
		if L_95_arg1.KeyCode == L_7_.UpKey and L_19_ then
			L_19_ = false
		end;

		if L_95_arg1.KeyCode == L_7_.DownKey and L_20_ then
			L_20_ = false
		end;

		if L_95_arg1.KeyCode == L_7_.ForwardKey and L_21_ then
			L_21_ = false
		end;

		if L_95_arg1.KeyCode == L_7_.BackwardKey and L_22_ then
			L_22_ = false
		end;

		if L_95_arg1.KeyCode == L_7_.RightKey and L_23_ then
			L_23_ = false
		end;

		if L_95_arg1.KeyCode == L_7_.LeftKey and L_24_ then
			L_24_ = false
		end;

		if L_95_arg1.KeyCode == Enum.KeyCode.C and L_16_ then
			L_16_ = false
			for L_97_forvar1, L_98_forvar2 in pairs(L_4_:WaitForChild('Weaponry'):GetChildren()) do
				if L_98_forvar2:IsA('BasePart') and L_98_forvar2.Name == 'MG' then
					L_98_forvar2.Fire:Stop()
				end
			end
		end;

		if L_95_arg1.KeyCode == Enum.KeyCode.F and L_17_ then
			L_17_ = false
		end;
	end
end)

L_2_:WaitForChild('Humanoid').Died:connect(function()
	TurnOff()
	L_31_:Destroy()
	L_15_ = true
	script:Destroy()
end)

L_8_.JumpRequest:connect(function()
	if L_15_ then
		if L_1_.PlayerGui:FindFirstChild('Heli_Control') then
			L_1_.PlayerGui['Heli_Control']:Destroy()
		end
	end
end)


Response:
Ways = {
front = CFrame.new(0,0,0),
back = CFrame.Angles(0,math.rad(180),0),
top = CFrame.Angles(math.rad(90),0,0),
bottom = CFrame.Angles(-math.rad(90),0,0),
left = CFrame.Angles(0,math.rad(90),0),
right = CFrame.Angles(0,-math.rad(90),0)
}
Side = function(MC,Way)
if not Ways[Way:lower()] then return end
return MC*Ways[Way:lower()]
end

GBCF = function(CF,AddV)
local AddedAm = Side(CF,"front").lookVector*AddV.z+Side(CF,"top").lookVector*AddV.y+Side(CF,"right").lookVector*AddV.x
return CF+AddedAm
end

Close = false
Opened = false
Button = script.Parent.Button
Parts = script.Parent.Parts
cc = Instance.new("ClickDetector",Button)
cc.archivable = false
cc.MouseClick:connect(function()
print("MouseClick")
if Opened then Close = true return end
Opened = true


Prompt: --Turning:

Response:
	car.LeftMotor.DesiredAngle = seat.SteerFloat * 0.5
	car.RightMotor.DesiredAngle = seat.SteerFloat * 0.5


Prompt: -- Function to shake the screen

Response:
local function shakeScreen(magnitude, duration)
	local shakeOffset = Vector3.new(
		math.random(-magnitude * 100, magnitude * 100) / 100,
		math.random(-magnitude * 100, magnitude * 100) / 100,
		math.random(-magnitude * 100, magnitude * 100) / 100
	)
	local shakeCFrame = camera.CFrame + shakeOffset
	local tweenInfo = TweenInfo.new(duration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false, 0)
	local tween = game:GetService("TweenService"):Create(camera, tweenInfo, {CFrame = shakeCFrame})
	tween:Play()
end


Prompt:
--[=[
	@param predicate (value: any) -> boolean
	@return Option
	Returns `self` if this option has a value and the predicate returns `true.
	Otherwise, returns None.
]=]

Response:
function Option:Filter(predicate)
	if self:IsNone() or not predicate(self._v) then
		return Option.None
	else
		return self
	end
end


Prompt: --// ] key, Spotlight

Response:
mouse.KeyDown:connect(function(key)
	if key=="x" then
		veh.Lightbar.middle.Beep:Play()
		veh.Lightbar.Remotes.SpotlightEvent:FireServer(true)
	end
end)


Prompt: -- same as jump for now

Response:
function moveFreeFall()
	RightShoulder.MaxVelocity = 0.5
	LeftShoulder.MaxVelocity = 0.5
	RightShoulder.DesiredAngle = 3.14
	LeftShoulder.DesiredAngle = -3.14
	RightHip.DesiredAngle = 0
	LeftHip.DesiredAngle = 0
end

function moveSit()
	RightShoulder.MaxVelocity = 0.15
	LeftShoulder.MaxVelocity = 0.15
	RightShoulder.DesiredAngle = 3.14 /2
	LeftShoulder.DesiredAngle = -3.14 /2
	RightHip.DesiredAngle = 3.14 /2
	LeftHip.DesiredAngle = -3.14 /2
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
		RightShoulder.DesiredAngle = 1.57
		return
	end

	if (toolAnim == "Slash") then
		RightShoulder.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 0
		return
	end

	if (toolAnim == "Lunge") then
		RightShoulder.MaxVelocity = 0.5
		LeftShoulder.MaxVelocity = 0.5
		RightHip.MaxVelocity = 0.5
		LeftHip.MaxVelocity = 0.5
		RightShoulder.DesiredAngle = 1.57
		LeftShoulder.DesiredAngle = 1.0
		RightHip.DesiredAngle = 1.57
		LeftHip.DesiredAngle = 1.0
		return
	end
end

function move(time)
	local amplitude
	local frequency

	if (pose == "Jumping") then
		moveJump()
		return
	end

	if (pose == "FreeFall") then
		moveFreeFall()
		return
	end

	if (pose == "Seated") then
		moveSit()
		return
	end

	local climbFudge = 0

	if (pose == "Running") then
		RightShoulder.MaxVelocity = 0.15
		LeftShoulder.MaxVelocity = 0.15
		amplitude = 1
		frequency = 9
	elseif (pose == "Climbing") then
		RightShoulder.MaxVelocity = 0.5
		LeftShoulder.MaxVelocity = 0.5
		amplitude = 1
		frequency = 9
		climbFudge = 3.14
	else
		amplitude = 0.1
		frequency = 1
	end

	desiredAngle = amplitude * math.sin(time*frequency)

	RightShoulder.DesiredAngle = desiredAngle + climbFudge
	LeftShoulder.DesiredAngle = desiredAngle - climbFudge
	RightHip.DesiredAngle = -desiredAngle
	LeftHip.DesiredAngle = -desiredAngle

	local tool = getTool()

	if tool then

		animStringValueObject = getToolAnim(tool)

		if animStringValueObject then
			toolAnim = animStringValueObject.Value
			-- message recieved, delete StringValue
			animStringValueObject.Parent = nil
			toolAnimTime = time + .3
		end

		if time > toolAnimTime then
			toolAnimTime = 0
			toolAnim = "None"
		end

		animateTool()

	else
		toolAnim = "None"
		toolAnimTime = 0
	end
end


Prompt:
-- Called to update all of the look-angles being tracked
-- on the client, as well as our own client look-angles.
-- This is called during every RunService Heartbeat.

Response:
function CharacterRealism:UpdateLookAngles(delta)
	-- Update our own look-angles with no latency
	local pitch, yaw = self:ComputeLookAngle()
	self:OnLookReceive(self.Player, pitch, yaw)

	-- Submit our look-angles if they have changed enough.
	local lastUpdate = self.LastUpdate or 0
	local now = os.clock()

	if (now - lastUpdate) > .5 then
		pitch = Util:RoundNearestInterval(pitch, .05)
		yaw = Util:RoundNearestInterval(yaw, .05)

		if pitch ~= self.Pitch then
			self.Pitch = pitch
			self.Dirty = true
		end

		if yaw ~= self.Yaw then
			self.Yaw = yaw
			self.Dirty = true
		end

		if self.Dirty then
			self.Dirty = false
			self.LastUpdate = now
			self.SetLookAngles:FireServer(pitch, yaw)
		end
	end

	-- Update all of the character look-angles
	local camera = workspace.CurrentCamera
	local camPos = camera.CFrame.Position

	local player = self.Player
	local dropList

	for character, rotator in pairs(self.Rotators) do
		if not character.Parent then
			if not dropList then
				dropList = {}
			end

			dropList[character] = true
			continue
		end

		local owner = Players:GetPlayerFromCharacter(character)
		local dist = owner and owner:DistanceFromCharacter(camPos) or 0

		if owner ~= player and dist > 30 then
			continue
		end

		local lastStep = rotator.LastStep or 0
		local stepDelta = now - lastStep

		local humanoid = character:FindFirstChildOfClass("Humanoid")
		local rootPart = humanoid and humanoid.RootPart

		if not rootPart then
			continue
		end

		local pitchState = rotator.Pitch
		self:StepValue(pitchState, stepDelta)

		local yawState = rotator.Yaw
		self:StepValue(yawState, stepDelta)

		local motors = rotator.Motors
		rotator.LastStep = now

		if not motors then
			continue
		end

		for name, factors in pairs(self.RotationFactors) do
			local data = motors and motors[name]

			if not data then
				continue
			end

			local motor = data.Motor
			local origin = data.Origin

			if origin then
				local part0 = motor.Part0
				local setPart0 = origin.Parent

				if part0 and part0 ~= setPart0 then
					local newOrigin = part0:FindFirstChild(origin.Name)

					if newOrigin and newOrigin:IsA("Attachment") then
						origin = newOrigin
						data.Origin = newOrigin
					end
				end

				origin = origin.CFrame
			elseif data.C0 then
				origin = data.C0
			else
				continue
			end

			local pitch = pitchState.Current or 0
			local yaw = yawState.Current or 0

			if rotator.SnapFirstPerson and name == "Head" then

			end

			local fPitch = pitch * factors.Pitch
			local fYaw = yaw * factors.Yaw

			-- HACK: Make the arms rotate with a tool.
			if name:sub(-4) == " Arm" or name:sub(-8) == "UpperArm" then
				local tool = character:FindFirstChildOfClass("Tool")

				if tool and not CollectionService:HasTag(tool, "NoArmRotation") then
					if name:sub(1, 5) == "Right" and rootPart:GetRootPart() ~= rootPart then
						fPitch = pitch * 1.3
						fYaw = yaw * 1.3
					else
						fYaw = yaw * .8
					end
				end
			end

			local dirty = false

			if fPitch ~= pitchState.Value then
				pitchState.Value = fPitch
				dirty = true
			end

			if fYaw ~= yawState.Value then
				yawState.Value = fYaw
				dirty = true
			end

			if dirty then
				local rot = origin - origin.Position

				local cf = CFrame.Angles(0, fPitch, 0)
				         * CFrame.Angles(fYaw, 0, 0)

				motor.C0 = origin * rot:Inverse() * cf * rot
			end
		end
	end

	-- If the dropList is declared, remove any characters that
	-- were indexed into it. This is done after iterating over
	-- the rotators to avoid problems with removing data from
	-- a table while iterating over said table.

	if dropList then
		for character in pairs(dropList) do
			local rotator = self.Rotators[character]
			local listener = rotator and rotator.Listener

			if listener then
				listener:Disconnect()
			end

			self.Rotators[character] = nil
		end
	end
end


Prompt: -- camera settings

Response:
player.CameraMaxZoomDistance = 0.5 -- force first person
camera.FieldOfView = 90
humanoid.CameraOffset = Vector3.new(0, 0, -0.5)


Prompt:
--[=[
	@within TableUtil
	@function Reverse
	@param tbl table
	@return table

	Reverses the array.

	```lua
	local t = {1, 5, 10}
	local tReverse = TableUtil.Reverse(t)
	print(tReverse) --> {10, 5, 1}
	```

	:::note Arrays only
	This function works on arrays, but not dictionaries.
]=]

Response:
local function Reverse<T>(tbl: { T }): { T }
	local n = #tbl
	local tblRev = table.create(n)
	for i = 1, n do
		tblRev[i] = tbl[n - i + 1]
	end
	return tblRev
end


Prompt: --[[Steering]]

Response:
	Tune.SteerInner		= 36		-- Inner wheel steering angle (in degrees)
	Tune.SteerOuter		= 37		-- Outer wheel steering angle (in degrees)
	Tune.SteerSpeed		= .03		-- Steering increment per tick (in degrees)
	Tune.ReturnSpeed	= .1		-- Steering increment per tick (in degrees)
	Tune.SteerDecay		= 150		-- Speed of gradient cutoff (in SPS)
	Tune.MinSteer		= 10		-- Minimum steering at max steer decay (in percent)
	Tune.MSteerExp		= 1			-- Mouse steering exponential degree

	--Steer Gyro Tuning
	Tune.SteerD			= 1000		-- Steering Dampening
	Tune.SteerMaxTorque	= 50000		-- Steering Force
	Tune.SteerP			= 100000	-- Steering Aggressiveness


Prompt: -- Reset the camera look vector when the camera is enabled for the first time

Response:
local SetCameraOnSpawn = true

local hasGameLoaded = false

local GestureArea = nil
local GestureAreaManagedByControlScript = false

local function layoutGestureArea(portraitMode)
	if GestureArea and not GestureAreaManagedByControlScript then
		if portraitMode then
			GestureArea.Size = UDim2.new(1, 0, .6, 0)
			GestureArea.Position = UDim2.new(0, 0, 0, 0)
		else
			GestureArea.Size = UDim2.new(1, 0, .5, -18)
			GestureArea.Position = UDim2.new(0, 0, 0, 0)
		end
	end
end


Prompt: --- Replace with true/false to force the chat type. Otherwise this will default to the setting on the website.

Response:
module.BubbleChatEnabled = true--PlayersService.BubbleChat
module.ClassicChatEnabled = false--PlayersService.ClassicChat


Response:
game.Workspace.audiencebackleft1.Part1.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part2.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part3.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part4.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part5.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part6.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part7.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part8.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackleft1.Part9.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)

game.Workspace.audiencebackright1.Part1.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part2.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part3.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part4.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part5.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part6.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part7.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part8.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.audiencebackright1.Part9.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)

game.Workspace.post1.Light.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)
game.Workspace.post2.Light.BrickColor = BrickColor.new(game.Workspace.Lighting.defaultlights.Value)

if game.Workspace.DoorFlashing.Value == false then
game.Workspace.DoorColored.Value = true


Prompt:
-- Similar to Signal:Fire(...), but uses deferred. It does not reuse the
-- same coroutine like Fire.

Response:
function Signal:FireDeferred(...)
	local item = self._handlerListHead
	while item do
		task.defer(item._fn, ...)
		item = item._next
	end
end


Prompt: --- Handles initial preparation of the game server-side.

Response:
return function (cmdr)
	local ReplicatedRoot, RemoteFunction, RemoteEvent

	local function Create (class, name, parent)
		local object = Instance.new(class)
		object.Name = name
		object.Parent = parent or ReplicatedRoot

		return object
	end

	ReplicatedRoot = script.Parent.CmdrClient

	if ReplicatedStorage:FindFirstChild("Resources") and
		ReplicatedStorage.Resources:FindFirstChild("Libraries") then -- If using RoStrap
		-- ReplicatedRoot.Name = "Cmdr"
		ReplicatedRoot.Parent = ReplicatedStorage.Resources.Libraries
	else
		ReplicatedRoot.Parent = ReplicatedStorage
	end

	RemoteFunction = Create("RemoteFunction", "CmdrFunction")
	RemoteEvent = Create("RemoteEvent", "CmdrEvent")

	Create("Folder", "Commands")
	Create("Folder", "Types")

	script.Parent.Shared.Parent = ReplicatedRoot

	cmdr.ReplicatedRoot = ReplicatedRoot
	cmdr.RemoteFunction = RemoteFunction
	cmdr.RemoteEvent = RemoteEvent

	cmdr:RegisterTypesIn(script.Parent.BuiltInTypes)

	script.Parent.BuiltInTypes:Destroy()
	script.Parent.BuiltInCommands.Name = "Server commands"

	if StarterGui:FindFirstChild("Cmdr") == nil then
		CreateGui()
	end
end


Prompt: -- helpers

Response:
local Networking = require(Src.Http.Networking)
local getFullPath = require(Src.Util.getFullPath)


Prompt: --Misc

Response:
Tune.RevAccel		= 470		-- RPM acceleration when clutch is off
Tune.RevDecay		= 486		-- RPM decay when clutch is off
Tune.RevBounce		= 170		-- RPM kickback from redline
Tune.IdleThrottle	= 0			-- Percent throttle at idle
Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response)


Prompt:
-- Disconnect all handlers. Since we use a linked list it suffices to clear the
-- reference to the head handler.

Response:
function Signal:Destroy()
	self._handlerListHead = false
end


Response:
mouse.KeyDown:connect(function (key)
    key = string.lower(key)
		if key == "k" then --Camera controls
	        if cam == ("car") then
				Camera.CameraSubject = player.Character.Humanoid
				Camera.CameraType = ("Custom")
				cam = ("freeplr")
				Camera.FieldOfView = 70
			elseif cam == ("freeplr") then
				Camera.CameraSubject = player.Character.Humanoid
				Camera.CameraType = ("Attach")
				cam = ("lockplr")
				Camera.FieldOfView = 45
	        elseif cam == ("lockplr") then
				Camera.CameraSubject = carSeat
				Camera.CameraType = ("Custom")
				cam = ("car")
				Camera.FieldOfView = 70
	        end
		elseif key == "[" then -- volume down
			if carSeat.Parent.Body.MP.Sound.Volume >= 0 then
				handler:FireServer('volumedown', true)
				carSeat.Parent.Body.Dash.Screen.G.Main.Icon.Vol.Text = ("Vol: "..carSeat.Parent.MPL.Sound.Volume)
			end
		elseif key == "]" then -- volume up
			if carSeat.Parent.Body.MP.Sound.Volume <= 10 then
				handler:FireServer('volumeup', true)
				carSeat.Parent.Body.Dash.Screen.G.Main.Icon.Vol.Text = ("Vol: "..carSeat.Parent.MPL.Sound.Volume)
			end
elseif key == "b" then
					handler:FireServer("Radio")
				elseif key == "m" then
					handler:FireServer("Delete")
				elseif key == "n" then
					handler:FireServer("Tabs")
	end
end)

HUB.Mirror.MouseButton1Click:connect(function() --Mirrors
	handler:FireServer('MirrorsFOLD')
end)

HUB.MirrorUF.MouseButton1Click:connect(function() --Mirrors
	handler:FireServer('MirrorsUNFOLD')
end)

HUB.Eco.MouseButton1Click:connect(function() --Hide tracker names
	handler:FireServer('Eco')
end)

HUB.Comfort.MouseButton1Click:connect(function() --Hide tracker names
	handler:FireServer('Comfort')
end)

HUB.Sport.MouseButton1Click:connect(function() --Hide tracker names
	handler:FireServer('Sport')
end)

carSeat.Indicator.Changed:connect(function()
	if carSeat.Indicator.Value == true then
		script.Parent.Indicator:Play()
	else
		script.Parent.Indicator2:Play()
	end
end)

game.Lighting.Changed:connect(function(prop)
	if prop == "TimeOfDay" then
	handler:FireServer('TimeUpdate')
	end
end)

if game.Workspace.FilteringEnabled == true then
	handler:FireServer('feON')
elseif game.Workspace.FilteringEnabled == false then
	handler:FireServer('feOFF')
end

carSeat.LI.Changed:connect(function()
	if carSeat.LI.Value == true then
		carSeat.Parent.Body.Dash.Spd.G.Indicator.Visible = true
		script.Parent.HUB.Left.Visible = true
	else
		carSeat.Parent.Body.Dash.Spd.G.Indicator.Visible = false
		script.Parent.HUB.Left.Visible = false
	end
end)

carSeat.RI.Changed:connect(function()
	if carSeat.RI.Value == true then
		carSeat.Parent.Body.Dash.Tac.G.Indicator.Visible = true
		script.Parent.HUB.Right.Visible = true
	else
		carSeat.Parent.Body.Dash.Tac.G.Indicator.Visible = false
		script.Parent.HUB.Right.Visible = false
	end
end)

for i,v in pairs(script.Parent:getChildren()) do
	if v:IsA('TextButton') then
		v.MouseButton1Click:connect(function()
			if carSeat.Windows:FindFirstChild(v.Name) then
				local v = carSeat.Windows:FindFirstChild(v.Name)
				if v.Value == true then
					handler:FireServer('updateWindows', v.Name, false)
				else
					handler:FireServer('updateWindows', v.Name, true)
				end
			end
		end)
	end
end

while wait() do
	carSeat.Parent.Body.Dash.DashSc.G.Spd.Text = (math.floor(carSeat.Velocity.magnitude*((10/12) * (60/88))).." mph")
	carSeat.Parent.Body.Dash.Screen.G.Screen.StatusBar.Time.Text = game.Lighting.TimeOfDay
	carSeat.Parent.Body.Dash.DashSc2.G.Time.Text = game.Lighting.TimeOfDay
end


Prompt: -- CONSTANTS

Response:
local SIMPSON_N = 16
local NEWTON_N = 6
local ZERO = Vector3.new(0, 0, 0)


Prompt: -- Made by Texar with help from TheLuaWeaver, released to the public


Response:
function onTouched(part)
if part.Parent ~= nil then
local h = part.Parent:findFirstChild("Humanoid")
if h~=nil then
local teleportfrom=script.Parent.Enabled.Value
if teleportfrom~=0 then
if h==humanoid then
return
end
local teleportto=script.Parent.Parent:findFirstChild(modelname)
if teleportto~=nil then
local torso = h.Parent.Torso
local location = {teleportto.Position}
local i = 1

local x = location[i].x
local y = location[i].y
local z = location[i].z

x = x + math.random(-1, 1)
z = z + math.random(-1, 1)
y = y + math.random(2, 3)

local cf = torso.CFrame
local lx = 0
local ly = y
local lz = 0

script.Parent.Enabled.Value=0
teleportto.Enabled.Value=0
torso.CFrame = CFrame.new(Vector3.new(x,y,z), Vector3.new(lx,ly,lz))
wait(3)
script.Parent.Enabled.Value=1
teleportto.Enabled.Value=1
else
print("Could not find teleporter!")
end
end
end
end
end

script.Parent.Touched:connect(onTouched)


Prompt: -- Constants

Response:
local Settings = {
	--	Rate: How many droplets spawn per second
	Rate = 8;

	--	Size: How large the droplets roughly are (in studs)
	Size = 0.1;

	--	Tint: What color the droplets are tinted (leave as nil for a default realistic light blue)
	Tint = Color3.fromRGB(226, 244, 255);

	--	Fade: How long it takes for a droplet to fade
	Fade = 1.5;
}

local Workspace = game:GetService("Workspace")
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

local UpVec = Vector3.new(0, 1, 0)
local DROPLET_SIZE = Vector3.new(1, 1, 1)
local EMPTY_CFRAME = CFrame.new()


Prompt:
--[[**
	ensures value is a table and all keys pass keyCheck and all values pass valueCheck

	@param keyCheck The function to use to check the keys
	@param valueCheck The function to use to check the values

	@returns A function that will return true iff the condition is passed
**--]]

Response:
function t.map(keyCheck, valueCheck)
	assert(t.callback(keyCheck), t.callback(valueCheck))
	local keyChecker = t.keys(keyCheck)
	local valueChecker = t.values(valueCheck)

	return function(value)
		local keySuccess, keyErr = keyChecker(value)
		if not keySuccess then
			return false, keyErr or ""
		end

		local valueSuccess, valueErr = valueChecker(value)
		if not valueSuccess then
			return false, valueErr or ""
		end

		return true
	end
end

do
	local arrayKeysCheck = t.keys(t.integer)
	--[[**
		ensures value is an array and all values of the array match check

		@param check The check to compare all values with

		@returns A function that will return true iff the condition is passed
	**--]]
	function t.array(check)
		assert(t.callback(check))
		local valuesCheck = t.values(check)

		return function(value)
			local keySuccess, keyErrMsg = arrayKeysCheck(value)
			if keySuccess == false then
				return false, string.format("[array] %s", keyErrMsg or "")
			end

			-- # is unreliable for sparse arrays
			-- Count upwards using ipairs to avoid false positives from the behavior of #
			local arraySize = 0

			for _ in ipairs(value) do
				arraySize = arraySize + 1
			end

			for key in pairs(value) do
				if key < 1 or key > arraySize then
					return false, string.format("[array] key %s must be sequential", tostring(key))
				end
			end

			local valueSuccess, valueErrMsg = valuesCheck(value)
			if not valueSuccess then
				return false, string.format("[array] %s", valueErrMsg or "")
			end

			return true
		end
	end
end

do
	local callbackArray = t.array(t.callback)
	--[[**
		creates a union type

		@param ... The checks to union

		@returns A function that will return true iff the condition is passed
	**--]]
	function t.union(...)
		local checks = {...}
		assert(callbackArray(checks))

		return function(value)
			for _, check in ipairs(checks) do
				if check(value) then
					return true
				end
			end

			return false, "bad type for union"
		end
	end

	--[[**
		Alias for t.union
	**--]]
	t.some = t.union

	--[[**
		creates an intersection type

		@param ... The checks to intersect

		@returns A function that will return true iff the condition is passed
	**--]]
	function t.intersection(...)
		local checks = {...}
		assert(callbackArray(checks))

		return function(value)
			for _, check in ipairs(checks) do
				local success, errMsg = check(value)
				if not success then
					return false, errMsg or ""
				end
			end

			return true
		end
	end

	--[[**
		Alias for t.intersection
	**--]]
	t.every = t.intersection
end

do
	local checkInterface = t.map(t.any, t.callback)
	--[[**
		ensures value matches given interface definition

		@param checkTable The interface definition

		@returns A function that will return true iff the condition is passed
	**--]]
	function t.interface(checkTable)
		assert(checkInterface(checkTable))
		return function(value)
			local tableSuccess, tableErrMsg = t.table(value)
			if tableSuccess == false then
				return false, tableErrMsg or ""
			end

			for key, check in pairs(checkTable) do
				local success, errMsg = check(value[key])
				if success == false then
					return false, string.format("[interface] bad value for %s:\n\t%s", tostring(key), errMsg or "")
				end
			end

			return true
		end
	end

	--[[**
		ensures value matches given interface definition strictly

		@param checkTable The interface definition

		@returns A function that will return true iff the condition is passed
	**--]]
	function t.strictInterface(checkTable)
		assert(checkInterface(checkTable))
		return function(value)
			local tableSuccess, tableErrMsg = t.table(value)
			if tableSuccess == false then
				return false, tableErrMsg or ""
			end

			for key, check in pairs(checkTable) do
				local success, errMsg = check(value[key])
				if success == false then
					return false, string.format("[interface] bad value for %s:\n\t%s", tostring(key), errMsg or "")
				end
			end

			for key in pairs(value) do
				if not checkTable[key] then
					return false, string.format("[interface] unexpected field %q", tostring(key))
				end
			end

			return true
		end
	end
end


Prompt:
-- These controllers handle only walk/run movement, jumping is handled by the
-- TouchJump controller if any of these are active

Response:
local ClickToMove = require(script:WaitForChild("ClickToMoveController"))
local TouchJump = require(script:WaitForChild("TouchJump"))

local VehicleController = require(script:WaitForChild("VehicleController"))

local CONTROL_ACTION_PRIORITY = Enum.ContextActionPriority.Default.Value

local FFlagUserFixMovementCameraStraightDownSuccess, FFlagUserFixMovementCameraStraightDownResult = pcall(function()
	return UserSettings():IsUserFeatureEnabled("UserFixMovementCameraStraightDown")
end)
local FFlagUserFixMovementCameraStraightDown = FFlagUserFixMovementCameraStraightDownSuccess and FFlagUserFixMovementCameraStraightDownResult


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

Response:
local v1 = require(script.Parent:WaitForChild("VRBaseCamera"));
local v2 = require(script.Parent:WaitForChild("CameraInput"));
local v3 = require(script.Parent:WaitForChild("CameraUtils"));
local v4 = require(script.Parent:WaitForChild("VehicleCamera"));
local l__VRService__5 = game:GetService("VRService");
local l__sanitizeAngle__6 = v3.sanitizeAngle;
local v7 = Vector3.new(0, 0, 0);
local v8 = setmetatable({}, v1);
v8.__index = v8;
local l__RunService__1 = game:GetService("RunService");
local u2 = 0.016666666666666666;
function v8.new()
	local v9 = setmetatable(v1.new(), v8);
	v9:Reset();
	l__RunService__1.Stepped:Connect(function(p1, p2)
		u2 = p2;
	end);
	return v9;
end;
local u3 = require(script.Parent.VehicleCamera:FindFirstChild("VehicleCameraCore"));
local l__Spring__4 = v3.Spring;
local u5 = require(script.Parent.VehicleCamera:FindFirstChild("VehicleCameraConfig"));
function v8.Reset(p3)
	p3.vehicleCameraCore = u3.new(p3:GetSubjectCFrame());
	p3.pitchSpring = l__Spring__4.new(0, -math.rad(u5.pitchBaseAngle));
	p3.yawSpring = l__Spring__4.new(0, 0);
	local l__CurrentCamera__10 = workspace.CurrentCamera;
	local v11 = l__CurrentCamera__10 and l__CurrentCamera__10.CameraSubject;
	assert(l__CurrentCamera__10, "VRVehicleCamera initialization error");
	assert(v11);
	assert(v11:IsA("VehicleSeat"));
	local v12, v13 = v3.getLooseBoundingSphere((v11:GetConnectedParts(true)));
	p3.assemblyRadius = math.max(v13, 0.001);
	p3.assemblyOffset = v11.CFrame:Inverse() * v12;
	p3.lastCameraFocus = nil;
	p3:_StepInitialZoom();
end;
local u6 = require(script.Parent:WaitForChild("ZoomController"));
function v8._StepInitialZoom(p4)
	p4:SetCameraToSubjectDistance(math.max(u6.GetZoomRadius(), p4.assemblyRadius * u5.initialZoomRadiusMul));
end;
function v8._GetThirdPersonLocalOffset(p5)
	return p5.assemblyOffset + Vector3.new(0, p5.assemblyRadius * u5.verticalCenterOffset, 0);
end;
local l__LocalPlayer__7 = game:GetService("Players").LocalPlayer;
function v8._GetFirstPersonLocalOffset(p6, p7)
	local l__Character__14 = l__LocalPlayer__7.Character;
	if l__Character__14 and l__Character__14.Parent then
		local l__Head__15 = l__Character__14:FindFirstChild("Head");
		if l__Head__15 and l__Head__15:IsA("BasePart") then
			return p7:Inverse() * l__Head__15.Position;
		end;
	end;
	return p6:_GetThirdPersonLocalOffset();
end;
local l__mapClamp__8 = v3.mapClamp;
function v8.Update(p8)
	local v16 = nil;
	local v17 = nil;
	local l__CurrentCamera__18 = workspace.CurrentCamera;
	local v19 = l__CurrentCamera__18 and l__CurrentCamera__18.CameraSubject;
	local l__vehicleCameraCore__20 = p8.vehicleCameraCore;
	assert(l__CurrentCamera__18);
	assert(v19);
	assert(v19:IsA("VehicleSeat"));
	u2 = 0;
	local v21 = p8:GetSubjectCFrame();
	local v22 = p8:GetSubjectRotVelocity();
	local v23 = math.abs(p8:GetSubjectVelocity():Dot(v21.ZVector));
	local v24 = math.abs(v21.YVector:Dot(v22));
	local v25 = math.abs(v21.XVector:Dot(v22));
	local v26 = p8:StepZoom();
	local v27 = l__mapClamp__8(v26, 0.5, p8.assemblyRadius, 1, 0);
	v16 = p8:_GetThirdPersonLocalOffset():Lerp(p8:_GetFirstPersonLocalOffset(v21), v27);
	l__vehicleCameraCore__20:setTransform(v21);
	v17 = l__vehicleCameraCore__20:step(u2, v25, v24, v27);
	p8:UpdateFadeFromBlack(u2);
	if not p8:IsInFirstPerson() then
		local v28 = CFrame.new(v21 * v16) * v17;
		local v29 = v28 * CFrame.new(0, 0, v26);
		if not p8.lastCameraFocus then
			p8.lastCameraFocus = v28;
			p8.needsReset = true;
		end;
		local v30 = v28.Position - l__CurrentCamera__18.CFrame.Position;
		if v30.Unit:Dot(l__CurrentCamera__18.CFrame.LookVector) > 0.56 and v30.magnitude < 200 and not p8.needsReset then
			local v31 = p8.lastCameraFocus;
			local l__p__32 = v31.p;
			local v33 = p8:GetCameraLookVector();
			local v34 = CFrame.new(l__p__32 - v26 * p8:CalculateNewLookVectorFromArg(Vector3.new(v33.X, 0, v33.Z).Unit, Vector2.new(0, 0)), l__p__32);
		else
			p8.currentSubjectDistance = 16;
			p8.lastCameraFocus = p8:GetVRFocus(v21.Position, u2);
			p8.needsReset = false;
			p8:StartFadeFromBlack();
			p8:ResetZoom();
		end;
		p8:UpdateEdgeBlur(l__LocalPlayer__7, u2);
	else
		v31 = CFrame.new(v21 * v16) * CFrame.new(v17.Position, Vector3.new(v17.LookVector.X, 0, v17.LookVector.Z).Unit);
		v34 = v31 * CFrame.new(0, 0, v26);
		p8:StartVREdgeBlur(l__LocalPlayer__7);
	end;
	return v34, v31;
end;
function v8.EnterFirstPerson(p9)
	p9.inFirstPerson = true;
	p9:UpdateMouseBehavior();
end;
function v8.LeaveFirstPerson(p10)
	p10.inFirstPerson = false;
	p10:UpdateMouseBehavior();
end;
return v8;


Prompt: -- FEATURE METHODS

Response:
function Icon:bindEvent(iconEventName, eventFunction)
	local event = self[iconEventName]
	assert(event and typeof(event) == "table" and event.Connect, "argument[1] must be a valid topbarplus icon event name!")
	assert(typeof(eventFunction) == "function", "argument[2] must be a function!")
	self._bindedEvents[iconEventName] = event:Connect(function(...)
		eventFunction(self, ...)
	end)
	return self
end

function Icon:unbindEvent(iconEventName)
	local eventConnection = self._bindedEvents[iconEventName]
	if eventConnection then
		eventConnection:Disconnect()
		self._bindedEvents[iconEventName] = nil
	end
	return self
end

function Icon:bindToggleKey(keyCodeEnum)
	assert(typeof(keyCodeEnum) == "EnumItem", "argument[1] must be a KeyCode EnumItem!")
	self._bindedToggleKeys[keyCodeEnum] = true
	return self
end

function Icon:unbindToggleKey(keyCodeEnum)
	assert(typeof(keyCodeEnum) == "EnumItem", "argument[1] must be a KeyCode EnumItem!")
	self._bindedToggleKeys[keyCodeEnum] = nil
	return self
end

function Icon:lock()
	self.instances.iconButton.Active = false
	self.locked = true
	task.defer(function()
		-- We do this to prevent the overlay remaining enabled if :lock is called right after an icon is selected
		if self.locked then
			self.overlayLocked = true
		end
	end)
	return self
end

function Icon:unlock()
	self.instances.iconButton.Active = true
	self.locked = false
	self.overlayLocked = false
	return self
end

function Icon:debounce(seconds)
	self:lock()
	task.wait(seconds)
	self:unlock()
	return self
end

function Icon:autoDeselect(bool)
	if bool == nil then
		bool = true
	end
	self.deselectWhenOtherIconSelected = bool
	return self
end

function Icon:setTopPadding(offset, scale)
	local newOffset = offset or 4
	local newScale = scale or 0
	self.topPadding = UDim.new(newScale, newOffset)
	self.updated:Fire()
	return self
end

function Icon:bindToggleItem(guiObjectOrLayerCollector)
	if not guiObjectOrLayerCollector:IsA("GuiObject") and not guiObjectOrLayerCollector:IsA("LayerCollector") then
		error("Toggle item must be a GuiObject or LayerCollector!")
	end
	self.toggleItems[guiObjectOrLayerCollector] = true
	self:updateSelectionInstances()
	return self
end

function Icon:updateSelectionInstances()
	-- This is to assist with controller navigation and selection
	for guiObjectOrLayerCollector, _ in pairs(self.toggleItems) do
		local buttonInstancesArray = {}
		for _, instance in pairs(guiObjectOrLayerCollector:GetDescendants()) do
			if (instance:IsA("TextButton") or instance:IsA("ImageButton")) and instance.Active then
				table.insert(buttonInstancesArray, instance)
			end
		end
		self.toggleItems[guiObjectOrLayerCollector] = buttonInstancesArray
	end
end

function Icon:addBackBlocker(func)
	-- This is custom behaviour that can block the default behaviour of going back or closing a page when Controller B is pressed
	-- If the function returns ``true`` then the B Back behaviour is blocked
	-- This is useful for instance when a user is purchasing an item and you don't want them to return to the previous page
	-- if they pressed B during this pending period
	table.insert(self.blockBackBehaviourChecks, func)
	return self
end

function Icon:unbindToggleItem(guiObjectOrLayerCollector)
	self.toggleItems[guiObjectOrLayerCollector] = nil
	return self
end

function Icon:_setToggleItemsVisible(bool, byIcon)
	for toggleItem, _ in pairs(self.toggleItems) do
		if not byIcon or byIcon.toggleItems[toggleItem] == nil then
			local property = "Visible"
			if toggleItem:IsA("LayerCollector") then
				property = "Enabled"
			end
			toggleItem[property] = bool
		end
	end
end

function Icon:call(func)
	task.spawn(func, self)
	return self
end

function Icon:give(userdata)
	local valueToGive = userdata
	if typeof(userdata) == "function" then
		local returnValue = userdata(self)
		if typeof(userdata) ~= "function" then
			valueToGive = returnValue
		else
			valueToGive = nil
		end
	end
	if valueToGive ~= nil then
		self._maid:give(valueToGive)
	end
	return self
end


Prompt: --Leonlai Fog Script. :D

Response:
game.Lighting.FogStart = 10
game.Lighting.FogEnd = 100
game.Lighting.FogColor = Color3.new(0,0,0)
game.Lighting.TimeOfDay = "00:00"


Prompt: --		TeleportService:Teleport(placeID_Premium, player)

Response:
		local character = player.Character
		local temp = Instance.new("Smoke")
		temp.Color = Color3.fromRGB(102,102,102)
		temp.Size = 0.1
		temp.RiseVelocity = 0.1
		temp.Parent = character.LowerTorso

		character.Humanoid.WalkSpeed += 8
	end
end)


Prompt:
-- Sometimes, e.g. when comparing two numbers, the output from jest-diff
-- does not contain more information than the 'Expected:' / 'Received:' already gives.
-- In those cases, we do not print a diff to make the output shorter and  not redundant.

Response:
function shouldPrintDiff(actual: any, expected: any)
	if typeof(actual) == "number" and typeof(expected) == "number" then
		return false
	end

	-- ROBLOX deviation: excluded if statement checking bigint types

	if typeof(actual) == "boolean" and typeof(expected) == "boolean" then
		return false
	end

	return true
end

function replaceMatchedToAsymmetricMatcher(
	replacedExpected: any,
	replacedReceived: any,
	expectedCycles: Array<any>,
	receivedCycles: Array<any>
)
	if not Replaceable.isReplaceable(replacedExpected, replacedReceived) then
		return {
			replacedExpected = replacedExpected,
			replacedReceived = replacedReceived,
		}
	end

	if
		Array.indexOf(expectedCycles, replacedExpected) ~= -1
		or Array.indexOf(receivedCycles, replacedReceived) ~= -1
	then
		return {
			replacedExpected = replacedExpected,
			replacedReceived = replacedReceived,
		}
	end

	table.insert(expectedCycles, replacedExpected)
	table.insert(receivedCycles, replacedReceived)

	local expectedReplaceable = Replaceable.new(replacedExpected)
	local receivedReplaceable = Replaceable.new(replacedReceived)

	expectedReplaceable:forEach(function(expectedValue: any, key: any)
		local receivedValue = receivedReplaceable:get(key)
		if isAsymmetricMatcher(expectedValue) then
			if expectedValue:asymmetricMatch(receivedValue) then
				receivedReplaceable:set(key, expectedValue)
			end
		elseif isAsymmetricMatcher(receivedValue) then
			if receivedValue:asymmetricMatch(expectedValue) then
				expectedReplaceable:set(key, receivedValue)
			end
		elseif Replaceable.isReplaceable(expectedValue, receivedValue) then
			local replaced = replaceMatchedToAsymmetricMatcher(
				expectedValue,
				receivedValue,
				expectedCycles,
				receivedCycles
			)
			expectedReplaceable:set(key, replaced.replacedExpected)
			receivedReplaceable:set(key, replaced.replacedReceived)
		end
	end)

	return {
		replacedExpected = expectedReplaceable.object,
		replacedReceived = receivedReplaceable.object,
	}
end


Prompt: --//Main

Response:
repeat wait()
	Camera.CameraType = Enum.CameraType.Scriptable
until Camera.CameraType == Enum.CameraType.Scriptable
Camera.CFrame = workspace.CameraPart.CFrame

PlayButton.MouseButton1Click:Connect(function()
	Camera.CameraType = Enum.CameraType.Custom
end)


Prompt: --[[START]]

Response:
	script.Parent:WaitForChild("Car")
	script.Parent:WaitForChild("Values")


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.75)
		c.PositionInfluence = Vector3.new(0.15, 0.15, 0.15)
		c.RotationInfluence = Vector3.new(1, 1, 1)
		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.8, 4.5, 3, 12)
		c.PositionInfluence = Vector3.new(0.45, 0.45, 0.45)
		c.RotationInfluence = Vector3.new(2, 2, 5)
		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.
	HandheldCamera = function()
		local c = CameraShakeInstance.new(1, 0.25, 5, 10)
		c.PositionInfluence = Vector3.new(0, 0, 0)
		c.RotationInfluence = Vector3.new(1, 0.5, 0.5)
		return c
	end;

	-- 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:
--[[
	I did not steal this script from anybody... For those of you who don't know
	how to script, all this does it deletes the new animation script, and replaces it
	with this one when a player enters. I had no knowlage another one of these exists.
	That does not make me a stealer, so please show some respect.
	]]


Prompt:
----------------------------------------------------------------------------------------------------
-----------------=[ RECOIL & PRECISAO ]=------------------------------------------------------------
----------------------------------------------------------------------------------------------------

Response:
	,VRecoil = {7,12}				--- Vertical Recoil
	,HRecoil = {6,8}				--- Horizontal Recoil
	,AimRecover = .85				---- Between 0 & 1

	,RecoilPunch = .15
	,VPunchBase = 3.75				--- Vertical Punch
	,HPunchBase = 2.5				--- Horizontal Punch
	,DPunchBase = 1 				--- Tilt Punch | useless

	,AimRecoilReduction = 5 		--- Recoil Reduction Factor While Aiming (Do not set to 0)
	,PunchRecover = 0.2
	,MinRecoilPower = .25
	,MaxRecoilPower = 3
	,RecoilPowerStepAmount = .25

	,MinSpread = 1.75				--- Min bullet spread value | Studs
	,MaxSpread = 40					--- Max bullet spread value | Studs
	,AimInaccuracyStepAmount = 1
	,WalkMultiplier = 0				--- Bullet spread based on player speed

	,SwayBase = 0.25				--- Weapon Base Sway | Studs
	,MaxSway =	1.5					--- Max sway value based on player stamina | Studs


Prompt: -- we have a player in the radius

Response:
local playerRay = Ray.new(v.Position+Vector3.new(0,10,0),Vector3.new(0,-50,0))
local part,pos,norm,mat = workspace:FindPartOnRay(playerRay,v.Parent)
if part == workspace.Terrain and mat ~= Enum.Material.Water then


Prompt: -- local replacePathSepForGlob = require(script.Parent.replacePathSepForGlob).default


Prompt: -- Functional Services

Response: TweenService = game:GetService("TweenService")


Prompt: --Rescripted by Luckymaxer

Response:
Tool = script.Parent
Handle = Tool:WaitForChild("Handle")

Players = game:GetService("Players")

ServerControl = Tool:WaitForChild("ServerControl")
ClientControl = Tool:WaitForChild("ClientControl")

ClientControl.OnClientInvoke = (function(Mode, Value)
	if Mode == "PlaySound" and Value then
		Value:Play()
	end
end)

function InvokeServer(Mode, Value, arg)
	pcall(function()
		ServerControl:InvokeServer(Mode, Value, arg)
	end)
end

function Equipped(Mouse)
	local Character = Tool.Parent
	local Player = Players:GetPlayerFromCharacter(Character)
	local Humanoid = Character:FindFirstChild("Humanoid")
	if not Player or not Humanoid or Humanoid.Health == Humanoid.Heath - 100 then
		return
	end
	Mouse.Button1Down:connect(function()
		InvokeServer("Click", true, Mouse.Hit.p)
	end)
end

local function Unequipped()

end

Tool.Equipped:connect(Equipped)
Tool.Unequipped:connect(Unequipped)


Prompt:
--[=[
	Observes an attribute on an instance with a conditional statement.
	@param instance Instance
	@param attributeName string
	@param condition function | nil
	@return Observable<Brio<any>>
]=]

Response:
function RxAttributeUtils.observeAttributeBrio(instance, attributeName, condition)
	assert(typeof(instance) == "Instance", "Bad instance")
	assert(type(attributeName) == "string", "Bad attributeName")

	return Observable.new(function(sub)
		local maid = Maid.new()
		local lastValue = UNSET_VALUE

		local function handleAttributeChanged()
			local attributeValue = instance:GetAttribute(attributeName)

			-- Deferred events can cause multiple values to be queued at once
			-- but we operate at this post-deferred layer, so lets only output
			-- reflected values.
			if lastValue ~= attributeValue then
				lastValue = attributeValue

				if not condition or condition(attributeValue) then
					local brio = Brio.new(attributeValue)
					maid._lastBrio = brio

					-- The above line can cause us to be overwritten so make sure before firing.
					if maid._lastBrio == brio then
						sub:Fire(brio)
					end
				else
					maid._lastBrio = nil
				end
			end
		end

		maid:GiveTask(instance:GetAttributeChangedSignal(attributeName):Connect(handleAttributeChanged))
		handleAttributeChanged()

		return maid
	end)
end

return RxAttributeUtils


Prompt:
-- ================================================================================
-- VARIABLES
-- ================================================================================
-- Services

Response:
local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ContextActionService = game:GetService("ContextActionService")
local Players = game:GetService("Players")


Prompt: -- https://developer.roblox.com/en-us/api-reference/class/DataStoreService

Response: local alert = sg:WaitForChild("Listing") -- ожидание загрузки папки списка сообщений


Prompt: -- A graph object which can have dependents.

Response:
export type Dependency = {
	dependentSet: Set<Dependent>
}


Prompt: --Weld stuff here

Response:
car.Body.CarName.Value.VehicleSeat.ChildAdded:connect(function(child)
	if child.Name=="SeatWeld" and child:IsA("Weld") and game.Players:GetPlayerFromCharacter(child.Part1.Parent)~=nil then
	end
end)


Prompt: -- Converts a Color3 in RGB space to a Vector3 in Oklab space.

Response:
function Oklab.to(rgb: Color3): Vector3
	local l = rgb.R * 0.4122214708 + rgb.G * 0.5363325363 + rgb.B * 0.0514459929
	local m = rgb.R * 0.2119034982 + rgb.G * 0.6806995451 + rgb.B * 0.1073969566
	local s = rgb.R * 0.0883024619 + rgb.G * 0.2817188376 + rgb.B * 0.6299787005

    local lRoot = l ^ (1/3)
    local mRoot = m ^ (1/3)
    local sRoot = s ^ (1/3)

    return Vector3.new(
        lRoot * 0.2104542553 + mRoot * 0.7936177850 - sRoot * 0.0040720468,
        lRoot * 1.9779984951 - mRoot * 2.4285922050 + sRoot * 0.4505937099,
        lRoot * 0.0259040371 + mRoot * 0.7827717662 - sRoot * 0.8086757660
	)
end


Response:
Player.Character.Torso["Left Shoulder"]:destroy()
glue111 = Instance.new("Glue", Player.Character.Torso)
glue111.Part0 = Player.Character.Torso
glue111.Part1 = leftarm
glue111.Name = "Left shoulder"
collider111 = Instance.new("Part", leftarm)
collider111.Position = Vector3.new(0,9999,0)
collider111.Size = Vector3.new(1.5, 1, 1)
collider111.Shape = "Cylinder"
local weld111 = Instance.new("Weld", collider111)
weld111.Part0 = leftarm
weld111.Part1 = collider111
weld111.C0 = CFrame.new(0,-0.2,0) * CFrame.fromEulerAnglesXYZ(0, 0, math.pi/2)
collider111.TopSurface = "Smooth"
collider111.BottomSurface = "Smooth"
collider111.formFactor = "Symmetric"
glue111.C0 = CFrame.new(-1.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
glue111.C1 = CFrame.new(0, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
collider111.Transparency = 1


Prompt: --Main Control------------------------------------------------------------------------

Response:
Red = script.Parent.Red.Lamp
Yellow = script.Parent.Yellow.Lamp
Green = script.Parent.Green.Lamp
DRed = script.Parent.Red.DynamicLight
DYellow = script.Parent.Yellow.DynamicLight
DGreen = script.Parent.Green.DynamicLight
	if Turn.Value == 0 then
		Green.Enabled = false
		Yellow.Enabled = false
		Red.Enabled = false
		DGreen.Enabled = false
		DYellow.Enabled = false
		DRed.Enabled = false
	elseif Turn.Value == 1 then
		Green.Enabled = true
		Yellow.Enabled = false
		Red.Enabled = false
		DGreen.Enabled = true
		DYellow.Enabled = false
		DRed.Enabled = false
	elseif Turn.Value == 2 then
		Green.Enabled = false
		Yellow.Enabled = true
		Red.Enabled = false
		DGreen.Enabled = false
		DYellow.Enabled = true
		DRed.Enabled = false
	elseif Signal.Value == 3 then
		Green.Enabled = false
		Yellow.Enabled = false
		Red.Enabled = true
		DGreen.Enabled = false
		DYellow.Enabled = false
		DRed.Enabled = true
	elseif Turn.Value == 3 then
		while true do
		Red.Enabled = true
		Green.Enabled = false
		Yellow.Enabled = false
		DRed.Enabled = true
		DGreen.Enabled = false
		DYellow.Enabled = false
		wait(.5)
		Red.Enabled = false
		DRed.Enabled = false
		wait(.5)
		if Turn == 2 then break end
		if Turn == 1 then break end
		if Turn == 0 then break end
		if Signal ~= 3 then break end
		if Signal ~= 0 then break end
		end
	end
	wait()
end


Prompt: -- Define emitters

Response: local Emitters = script.Parent:WaitForChild("Emitters")


Prompt:
--[=[
	@class RxLinkUtils
]=]

Response:
local require = require(script.Parent.loader).load(script)

local Brio = require("Brio")
local Maid = require("Maid")
local Observable = require("Observable")
local Rx = require("Rx")
local RxBrioUtils = require("RxBrioUtils")
local RxInstanceUtils = require("RxInstanceUtils")

local RxLinkUtils = {}


Prompt: -- MouseClick

Response: ClickDetector.MouseClick:Connect(toggleMouse)


Prompt: -- EFFECTS

Response:
while task.wait() do
	-- rotate
	name.UIStroke.UIGradient.Rotation += 1
	chance.UIStroke.UIGradient.Rotation += 1
end


Prompt:
--Stickmasterluke
--A nice simple axe

Response:
sp=script.Parent

r=game:service("RunService")

anims={"RightSlash","LeftSlash","OverHeadSwing"}

basedamage=0 + (script.Parent.AddDam.Value/4)
slashdamage=0 + script.Parent.AddDam.Value
swingdamage=0 + script.Parent.AddDam.Value
damage=basedamage

sword=sp.Handle
sp.Taunting.Value=false

local SlashSound=Instance.new("Sound")
SlashSound.SoundId="rbxasset://sounds\\swordslash.wav"
SlashSound.Parent=sword
SlashSound.Volume=.7

local UnsheathSound=Instance.new("Sound")
UnsheathSound.SoundId="rbxasset://sounds\\unsheath.wav"
UnsheathSound.Parent=sword
UnsheathSound.Volume=0

function blow(hit)
	if (hit.Parent==nil) then return end -- happens when bullet hits sword
	local humanoid=hit.Parent:findFirstChild("Humanoid")
	local vCharacter=sp.Parent
	local vPlayer=game.Players:playerFromCharacter(vCharacter)
	local hum=vCharacter:findFirstChild("Humanoid") -- non-nil if sp held by a character
	if humanoid~=nil and humanoid~=hum and hum~=nil then
		-- final check, make sure sword is in-hand
		local right_arm=vCharacter:FindFirstChild("Right Arm")
		if (right_arm~=nil) then
			local joint=right_arm:FindFirstChild("RightGrip")
			if (joint~=nil and (joint.Part0==sword or joint.Part1==sword)) then
				tagHumanoid(humanoid, vPlayer)
				humanoid:TakeDamage(damage)
				wait(1)
				untagHumanoid(humanoid)
			end
		end
	end
end

function tagHumanoid(humanoid, player)
	local creator_tag=Instance.new("ObjectValue")
	creator_tag.Value=player
	creator_tag.Name="creator"
	creator_tag.Parent=humanoid
end

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

sp.Enabled=true
function onActivated()
	if sp.Enabled and not sp.Taunting.Value then
		sp.Enabled=false
		local character=sp.Parent;
		local humanoid=character.Immortal
		if humanoid==nil then
			print("Humanoid not found")
			return
		end
		SlashSound:play()
		newanim=anims[math.random(1,#anims)]
		while newanim==sp.RunAnim.Value do
			newanim=anims[math.random(1,#anims)]
		end
		sp.RunAnim.Value=newanim
		if newanim=="OverHeadSwing" then
			damage=swingdamage
		else
			damage=slashdamage
		end
		wait(1)
		damage=basedamage
		sp.Enabled=true
	end
end

function onEquipped()
	UnsheathSound:play()
end

sp.Activated:connect(onActivated)
sp.Equipped:connect(onEquipped)

connection=sword.Touched:connect(blow)


Prompt:
--[[

	HOW TO USE THIS PLUGIN:

	In the body, everything except the wheels are set to be non-cancollidable.
	For hitboxes, or any part that you'd like to be cancollidable, name them "Hitbox".

	THE SCRIPT WILL ONLY ENABLE CANCOLLIDE ON PARTS NAMED "Hitbox"!

]]


Prompt: -- places a brick at pos and returns the position of the brick's opposite corner

Response:
function placeBrick(cf, pos)
	local brick = Instance.new("Part")
	brick.Size = Vector3.new(brickWidth, brickHeight, brickDepth)
	brick.BrickColor = colors[math.random(1, #colors)]
	brick.Friction = .01
	brick.CFrame = cf * CFrame.new(pos + brick.size / 2)

	if ( math.random() > .5) then
		brick.Material = Enum.Material.Ice
	else
		brick.Transparency = .1 + (math.random(1,4) / 10)
	end

	brick.Parent = game.Workspace
	brick:makeJoints()
	return  brick, pos +  brick.size
end

function buildWall(cf)

	local bricks = {}

	assert(wallWidth>0)
	local y = 0
	while y < wallHeight do
		local p
		local x = -wallWidth/2
		while x < wallWidth/2 do
			local brick
			brick, p = placeBrick(cf, Vector3.new(x, y, 0), color)
			x = p.x
			table.insert(bricks, brick)
			wait(brickSpeed)
		end
		y = p.y
	end

	return bricks

end

function snap(v)
	if math.abs(v.x)>math.abs(v.z) then
		if v.x>0 then
			return Vector3.new(1,0,0)
		else
			return Vector3.new(-1,0,0)
		end
	else
		if v.z>0 then
			return Vector3.new(0,0,1)
		else
			return Vector3.new(0,0,-1)
		end
	end
end

Tool.Enabled = true
function onActivated()

	if not Tool.Enabled then
		return
	end

	Tool.Enabled = false

	local character = Tool.Parent;
	local humanoid = character.Humanoid
	if humanoid == nil then
		print("Humanoid not found")
		return
	end

	local targetPos = humanoid.TargetPoint
	local lookAt = snap( (targetPos - character.Head.Position).unit )
	local cf = CFrame.new(targetPos, targetPos + lookAt)

	if (targetPos - character.Torso.Position).magnitude < 64 then
		staffOut()
		Tool.Handle.UseSound:Play()
		buildWall(cf)
		staffUp()
		wait(5)
	end

	Tool.Enabled = true
end

script.Parent.Activated:connect(onActivated)


Prompt:
--[[
	Update a binding's value. This is only accessible by Roact.
]]

Response:
function Binding.update(binding, newValue)
	local internalData = binding[InternalData]

	newValue = internalData.valueTransform(newValue)

	internalData.value = newValue
	internalData.changeSignal:fire(newValue)
end


Prompt:
--[[Engine]]
--Torque Curve

Response:
Tune.Horsepower		= 280		--	[TORQUE CURVE VISUAL]
Tune.IdleRPM		= 700		--		https://www.desmos.com/calculator/2uo3hqwdhf
Tune.PeakRPM		= 6000		--		Use sliders to manipulate values
Tune.Redline		= 6700		--		Copy and paste slider values into the respective tune values
Tune.EqPoint		= 5500
Tune.PeakSharpness	= 7.5
Tune.CurveMult		= 0.16


Prompt: -- local jest_resolveModule = require(Packages["jest-resolve"])

Response: type Resolver = any


Prompt: --All sounds are referenced by this ID

Response:
local SFX = {
	Died = 0;
	Running = 1;
	Swimming = 2;
	Climbing = 3,
	Jumping = 4;
	GettingUp = 5;
	FreeFalling = 6;
	FallingDown = 7;
	Landing = 8;
	Splash = 9;
}

local Humanoid = nil
local Head = nil


Response:
local Status = "nil"
local debounce = false


Prompt:
-- Works backwards, joining the arguments until it resolves to an absolute path.
-- If an absolute path is not resolved, then the current working directory is
-- prepended

Response:
function Path:resolve(...: string)
	local paths: Array<string> = { ... }
	local resolvedpath = ""
	local resolveddrive = nil
	local isabsolute = false
	for i = #paths, 1, -1 do
		local path = paths[i]
		if path and path ~= "" then
			local root = resolveddrive and self:getRoot(path)
			if self:isDriveRelative(path) then
				root = root or self:getRoot(path)
				resolveddrive = resolveddrive or root
				path = path:sub(root:len() + 1)
			end
			if not root or resolveddrive:sub(1, 2) == root:sub(1, 2) then
				resolvedpath = self:join(self:normalize(path), resolvedpath)
				if self:isAbsolute(resolvedpath) then
					isabsolute = true
					break
				end
			end
		end
	end
	if not isabsolute then
		if resolveddrive then
			local drivecwd = process.env["=" .. resolveddrive]
			if drivecwd and self:pathsEqual(drivecwd:sub(1, 2), resolveddrive) then
				resolvedpath = self:join(drivecwd, resolvedpath)
			else
				resolvedpath = self:join(resolveddrive, resolvedpath)
			end
		else
			resolvedpath = self:join(process.cwd(), resolvedpath)
		end
	end

	local trailing_slashes = resolvedpath:match("[" .. self.sep .. "]*$")
	if trailing_slashes then
		resolvedpath = resolvedpath:sub(1, -trailing_slashes:len() - 1)
	end

	return resolvedpath
end


Prompt:
--[=[
	@within TableUtil
	@function Sync
	@param srcTbl table -- Source table
	@param templateTbl table -- Template table
	@return table

	Synchronizes the `srcTbl` based on the `templateTbl`. This will make
	sure that `srcTbl` has all of the same keys as `templateTbl`, including
	removing keys in `srcTbl` that are not present in `templateTbl`. This
	is a _deep_ operation, so any nested tables will be synchronized as
	well.

	```lua
	local template = {kills = 0, deaths = 0, xp = 0}
	local data = {kills = 10, experience = 12}
	data = TableUtil.Sync(data, template)
	print(data) --> {kills = 10, deaths = 0, xp = 0}
	```

	:::caution Data Loss Warning
	This is a two-way sync, so the source table will have data
	_removed_ that isn't found in the template table. This can
	be problematic if used for player data, where there might
	be dynamic data added that isn't in the template.

	For player data, use `TableUtil.Reconcile` instead.
]=]

Response:
local function Sync(srcTbl: Table, templateTbl: Table): Table

	assert(type(srcTbl) == "table", "First argument must be a table")
	assert(type(templateTbl) == "table", "Second argument must be a table")

	local tbl = table.clone(srcTbl)

	-- If 'tbl' has something 'templateTbl' doesn't, then remove it from 'tbl'
	-- If 'tbl' has something of a different type than 'templateTbl', copy from 'templateTbl'
	-- If 'templateTbl' has something 'tbl' doesn't, then add it to 'tbl'
	for k,v in pairs(tbl) do

		local vTemplate = templateTbl[k]

		-- Remove keys not within template:
		if vTemplate == nil then
			tbl[k] = nil

		-- Synchronize data types:
		elseif type(v) ~= type(vTemplate) then
			if type(vTemplate) == "table" then
				tbl[k] = Copy(vTemplate, true)
			else
				tbl[k] = vTemplate
			end

		-- Synchronize sub-tables:
		elseif type(v) == "table" then
			tbl[k] = Sync(v, vTemplate)
		end

	end

	-- Add any missing keys:
	for k,vTemplate in pairs(templateTbl) do

		local v = tbl[k]

		if v == nil then
			if type(vTemplate) == "table" then
				tbl[k] = Copy(vTemplate, true)
			else
				tbl[k] = vTemplate
			end
		end

	end

	return tbl

end


Prompt:
--------------------------------------------------------------
-- Connection

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

function Connection.new(event, connection)
	local self = setmetatable({
		_conn = connection;
		_event = event;
		Connected = true;
	}, Connection)
	return self
end

function Connection:IsConnected()
	if self._conn then
		return self._conn.Connected
	end
	return false
end

function Connection:Disconnect()
	if self._conn then
		self._conn:Disconnect()
		self._conn = nil
	end
	if not self._event then return end
	self.Connected = false
	local connections = self._event._connections
	for i,c in ipairs(connections) do
		if c == self then
			connections[i] = connections[#connections]
			connections[#connections] = nil
			break
		end
	end
	self._event = nil
end

Connection.Destroy = Connection.Disconnect


Prompt: -- Offsets the entire Frame by 36px (unless already at 36px above)

Response: script.Parent.Position = UDim2.new(script.Parent.Position.X.Scale, script.Parent.Position.X.Offset, script.Parent.Position.Y.Scale, -36)


Prompt: -- Editable Values

Response:
local TurboId = 240323039
local SuperId = 404779487
local BovId = 3568930062

local TurboVol = .025				--Per Psi
local TurboRollOffMax = 1000
local TurboRollOffMin = 10

local SuperVol = .1				--Per Psi
local SuperRollOffMax = 1000
local SuperRollOffMin = 10

local BovVol = .025				--Per Psi
local BovRollOffMax = 1000
local BovRollOffMin = 10
local BovSensitivity = .5

local TurboSetPitch = 1		--Base Pitch
local SuperSetPitch = .8	--Base Pitch
local BovSetPitch = .7		--Base Pitch
local TurboPitchIncrease = .05	--Per Psi
local SuperPitchIncrease = .05	--Per Psi
local BovPitchIncrease = .05	--Per Psi

local FE=true


Prompt: --------LEFT DOOR 3--------

Response:
game.Workspace.doorleft.l71.BrickColor = BrickColor.new(135)
game.Workspace.doorleft.l72.BrickColor = BrickColor.new(135)
game.Workspace.doorleft.l73.BrickColor = BrickColor.new(135)
game.Workspace.doorleft.l63.BrickColor = BrickColor.new(135)
game.Workspace.doorleft.l62.BrickColor = BrickColor.new(135)
game.Workspace.doorleft.l53.BrickColor = BrickColor.new(135)

game.Workspace.doorleft.l11.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l12.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l13.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l41.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l42.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l43.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l21.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l22.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l23.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l52.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l53.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l31.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l32.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l33.BrickColor = BrickColor.new(102)
game.Workspace.doorleft.l61.BrickColor = BrickColor.new(102)


Prompt: --Traction Control Settings

Response:
Tune.TCSEnabled		= false		-- Implements TCS
Tune.TCSThreshold	= 20		-- Slip speed allowed before TCS starts working (in SPS)
Tune.TCSGradient	= 20		-- Slip speed gradient between 0 to max reduction (in SPS)
Tune.TCSLimit		= 10		-- Minimum amount of torque at max reduction (in percent)


Prompt:
-- Changeable Settings
------------------------

Response:
local FlashlightKey = "F"

local brightness = 0.7

local range = 40

local shadowson = false


Response:
local  Paint = false

script.Parent.MouseButton1Click:connect(function()
	Paint = not Paint
	handler:FireServer("Fossil",Paint)
end)


Prompt: -- snaps if pet to far

Response:
while true do
	if master then
		distance = (pet.SpringAttach.WorldPosition - master.Position).Magnitude

		if distance > maxDistance*1.5 then
			pet.CFrame = master.CFrame
		end

	end
	wait()
end


Response:
local _WHEELTUNE = {
																		--[[
			SS6 Presets
	[Eco]
		WearSpeed = 1,
		TargetFriction = .7,
		MinFriction = .1,
	[Road]
		WearSpeed = 2,
		TargetFriction = .7,
		MinFriction = .1,
	[Sport]
		WearSpeed = 3,
		TargetFriction = .79,
		MinFriction = .1,											]]

	TireWearOn 		= true	,

	--Friction and Wear
	FWearSpeed		= .3	,
	FTargetFriction	= 1.1	,
	FMinFriction 	= .5	,

	RWearSpeed		= .3	,
	RTargetFriction	= 1.1	,
	RMinFriction	= .5	,

	--Tire Slip
	TCSOffRatio		= 1/3	,
	WheelLockRatio	= 1/2	,	--SS6 Default = 1/4
	WheelspinRatio	= 1/1.1	,	--SS6 Default = 1/1.2

	--Wheel Properties
	FFrictionWeight	= 1		,	--SS6 Default = 1
	RFrictionWeight	= 1		,	--SS6 Default = 1
	FLgcyFrWeight	= 10	,
	RLgcyFrWeight	= 10	,

	FElasticity		= 0		,	--SS6 Default = .5
	RElasticity		= 0		,	--SS6 Default = .5
	FLgcyElasticity	= 0		,
	RLgcyElasticity	= 0		,

	FElastWeight	= 1		,	--SS6 Default = 1
	RElastWeight	= 1		,	--SS6 Default = 1
	FLgcyElWeight	= 10	,
	RLgcyElWeight	= 10	,

	--Wear Regen
	RegenSpeed		= 3.6		--SS6 Default = 3.6
}


Prompt: --[[ Matches ]]

Response:
--
local function match_tostr(self)
	local spans = proxy[self].spans;
	local s_start, s_end = spans[0][1], spans[0][2];
	if s_end <= s_start then
		return string.format("Match (%d..%d, empty)", s_start, s_end - 1);
	end;
	return string.format("Match (%d..%d): %s", s_start, s_end - 1, utf8_sub(spans.input, s_start, s_end));
end;

local function new_match(span_arr, group_id, re, str)
	span_arr.source, span_arr.input = re, str;
	local object = newproxy(true);
	local object_mt = getmetatable(object);
	object_mt.__metatable = lockmsg;
	object_mt.__index = setmetatable(span_arr, match_m);
	object_mt.__tostring = match_tostr;

	proxy[object] = { name = "Match", spans = span_arr, group_id = group_id };
	return object;
end;

match_m.group = check_re('Match', 'group', function(self, group_id)
	local span = self.spans[type(group_id) == "number" and group_id or self.group_id[group_id]];
	if not span then
		return nil;
	end;
	return utf8_sub(self.spans.input, span[1], span[2]);
end);

match_m.span = check_re('Match', 'span', function(self, group_id)
	local span = self.spans[type(group_id) == "number" and group_id or self.group_id[group_id]];
	if not span then
		return nil;
	end;
	return span[1], span[2] - 1;
end);

match_m.groups = check_re('Match', 'groups', function(self)
	local spans = self.spans;
	if spans.n > 0 then
		local ret = table.create(spans.n);
		for i = 0, spans.n do
			local v = spans[i];
			if v then
				ret[i] = utf8_sub(spans.input, v[1], v[2]);
			end;
		end;
		return table.unpack(ret, 1, spans.n);
	end;
	return utf8_sub(spans.input, spans[0][1], spans[0][2]);
end);

match_m.groupdict = check_re('Match', 'groupdict', function(self)
	local spans = self.spans;
	local ret = { };
	for k, v in pairs(self.group_id) do
		v = spans[v];
		if v then
			ret[k] = utf8_sub(spans.input, v[1], v[2]);
		end;
	end;
	return ret;
end);

match_m.grouparr = check_re('Match', 'groupdict', function(self)
	local spans = self.spans;
	local ret = table.create(spans.n);
	for i = 0, spans.n do
		local v = spans[i];
		if v then
			ret[i] = utf8_sub(spans.input, v[1], v[2]);
		end;
	end;
	ret.n = spans.n;
	return ret;
end);


Prompt: --CHANGE THIS LINE--

Response: Signal = script.Parent.Parent.Parent.ControlBox.TurnValues.TurnSignal1 -- Change last word


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 550		--	[TORQUE CURVE VISUAL]
	Tune.IdleRPM		= 800		--		https://www.desmos.com/calculator/2uo3hqwdhf
	Tune.PeakRPM		= 8000		--		Use sliders to manipulate values
	Tune.Redline		= 9000		--		Copy and paste slider values into the respective tune values
	Tune.EqPoint		= 6100
	Tune.PeakSharpness	= 3.8
	Tune.CurveMult		= 0.07

	--Incline Compensation
	Tune.InclineComp	= 1.5		-- Torque compensation multiplier for inclines (applies gradient from 0-90 degrees)

	--Misc
	Tune.RevAccel		= 450		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 150		-- RPM decay when clutch is off
	Tune.RevBounce		= 500		-- RPM kickback from redline
	Tune.IdleThrottle	= 3			-- Percent throttle at idle
	Tune.ClutchTol		= 500		-- Clutch engagement threshold (higher = faster response, lower = more stable RPM)


Prompt:
-----------------------------------------------------------
----------------------- STATIC DATA -----------------------
-----------------------------------------------------------

Response:
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")
local ReplicatedStorage = game:GetService("ReplicatedStorage")

local Modules = ReplicatedStorage:WaitForChild("Modules")

local Utilities = require(Modules.Utilities)
local Signal = Utilities.Signal
local table = Utilities.Table
local Thread = Utilities.Thread

local TargetEvent
if RunService:IsClient() then
	TargetEvent = RunService.RenderStepped
else
	TargetEvent = RunService.Heartbeat
end

local Projectiles = {}
local RemoveList = {}


Prompt: -- Customization

Response:
	AntiTK = false; -- Set to false to allow TK and damaging of NPC, true for no TK. (To damage NPC, this needs to be false)

	MouseSense = 0.5;

	CanAim = true; -- Allows player to aim
	CanBolt = false; -- When shooting, if this is enabled, the bolt will move (SCAR-L, ACR, AK Series)

	LaserAttached = true;
	LightAttached = true;
	TracerEnabled = true;

	SprintSpeed = 24;

	CanCallout = false;
	SuppressCalloutChance = 0;


Prompt: -- This module is very simple - it simply submits a log whenever a player joins or leaves the game.

Response:
local module = {}

function module.loadServer(core)
	-- Include a first join message, since it takes a moment before the PlayerAdded is registered
	local p = game:GetService("Players"):FindFirstChildOfClass("Player")
	if p ~= nil then -- sometimes this loads before the player apparently
		core.addLog({["Text"] = p.Name .. " has started the game server."})
	end

	game:GetService("Players").PlayerAdded:Connect(function(p)
		core.addLog({["Text"] = p.Name .. " has joined the server."})
	end)

	game:GetService("Players").PlayerRemoving:Connect(function(p)
		core.addLog({["Text"] = p.Name .. " has left the server."})
	end)
end

return module


Prompt: --[[ STATIC METHODS ]]

Response:
--
function Path.GetNearestCharacter(fromPosition)
	local character, magnitude = nil, -1
	for _, player in ipairs(Players:GetPlayers()) do
		if player.Character and (player.Character.PrimaryPart.Position - fromPosition).Magnitude > magnitude then
			character, magnitude = player.Character, (player.Character.PrimaryPart.Position - fromPosition).Magnitude
		end
	end
	return character
end


Prompt: --------|    Reference    |--------

Response: local lastMagnitude


Prompt: --!strict

Response:
local package = script.package
assert(
	package and package:IsA("ObjectValue"),
	("could not require package. %q does not have a 'package' ObjectValue"):format(script:GetFullName())
)
local value = package.Value
assert(
	value and value:IsA("ModuleScript"),
	("could not require package. %q does not have a package set as its Value"):format(package:GetFullName())
)
return require(value :: ModuleScript)


Prompt:
-- built-in flowtypes reverse engineered based on usage and enabling strict type checking on test suites
--!strict

Response:
local Packages = script.Parent.Parent
local LuauPolyfill = require(Packages.LuauPolyfill)
type Error = LuauPolyfill.Error
type Array<T> = LuauPolyfill.Array<T>
type Object = { [string]: any }


Prompt: -- Pause the shimmer when the mouse clicks the guiObject

Response:
guiObject.MouseButton1Click:Connect(function()
	if shim.PlaybackState == Enum.PlaybackState.Playing then
		pauseShimmer()
	else
		startShimmer()
	end
end)


Prompt: --[[Wheel Alignment]]

Response:
	--[Don't physically apply alignment to wheels]
	--[Values are in degrees]
	Tune.FCamber		= -8
	Tune.RCamber		= -1
	Tune.FCaster        = 7
	Tune.FToe			= 1
	Tune.RToe			= 0


Prompt: -- d3m l4z0rzzz!!!!

Response:
local TS = game:GetService("TweenService")
local P1 = script.Parent.Pivot1
local P2 = script.Parent.Pivot2

local OG_ROT1 = P1.CFrame
local OG_ROT2 = P2.CFrame
TS:Create(P1,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = P1.CFrame * CFrame.Angles(math.rad(20),0,0)}):Play()
TS:Create(P2,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = P2.CFrame * CFrame.Angles(math.rad(-10),0,0)}):Play()
while task.wait(.65) do
	TS:Create(P1,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = OG_ROT1 * CFrame.Angles(math.rad(-10),0,0)}):Play()
	TS:Create(P2,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = OG_ROT2 * CFrame.Angles(math.rad(20),0,0)}):Play()
	task.wait(.65)
	TS:Create(P1,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = OG_ROT1 * CFrame.Angles(math.rad(20),0,0)}):Play()
	TS:Create(P2,TweenInfo.new(.4,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0),{CFrame = OG_ROT2 * CFrame.Angles(math.rad(-10),0,0)}):Play()
end


Prompt: --!strict

Response:
type Table = { [any]: any }
type Array<T> = { [number]: T }

return function(value: Table | Array<any> | string): Array<any>
	if value == nil then
		error("cannot extract values from a nil value")
	end
	local valueType = typeof(value)

	local array = {}
	if valueType == "table" then
		for _, keyValue in pairs(value :: Table) do
			table.insert(array, keyValue)
		end
	elseif valueType == "string" then
		for i = 1, (value :: string):len() do
			array[i] = (value :: string):sub(i, i)
		end
	end

	return array
end


Prompt: --DO NOT CHANGE ANYTHING INSIDE OF THIS SCRIPT BESIDES WHAT YOU ARE TOLD TO UNLESS YOU KNOW WHAT YOU'RE DOING OR THE SCRIPT WILL NOT WORK!!

Response:
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.ChocoMilk -- Change "Sword" to the name of your tool, make sure your tool is in ServerStorage

hitPart.Touched:Connect(function(hit)
	if debounce == true then
		if hit.Parent:FindFirstChild("Humanoid") then
			local plr = game.Players:FindFirstChild(hit.Parent.Name)
			if plr then
				debounce = false
				hitPart.BrickColor = BrickColor.new("Bright red")
				tool:Clone().Parent = plr.Backpack
				wait(3) -- Change "3" to however long you want the player to have to wait before they can get the tool again
				debounce = true
				hitPart.BrickColor = BrickColor.new("Bright green")
			end
		end
	end
end)


Prompt: -- functions

Response:
function stopAllAnimations()
	local oldAnim = currentAnim

	-- return to idle if finishing an emote
	if (emoteNames[oldAnim] ~= nil and emoteNames[oldAnim] == false) then
		oldAnim = "idle"
	end

	currentAnim = ""
	currentAnimInstance = nil
	if (currentAnimKeyframeHandler ~= nil) then
		currentAnimKeyframeHandler:disconnect()
	end

	if (currentAnimTrack ~= nil) then
		currentAnimTrack:Stop()
		currentAnimTrack:Destroy()
		currentAnimTrack = nil
	end

	-- clean up walk if there is one
	if (runAnimKeyframeHandler ~= nil) then
		runAnimKeyframeHandler:disconnect()
	end

	if (runAnimTrack ~= nil) then
		runAnimTrack:Stop()
		runAnimTrack:Destroy()
		runAnimTrack = nil
	end

	return oldAnim
end

function getHeightScale()
	if Humanoid then
		local bodyHeightScale = Humanoid:FindFirstChild("BodyHeightScale")
		if bodyHeightScale and bodyHeightScale:IsA("NumberValue") then
			return bodyHeightScale.Value
		end
	end

	return 1
end

local smallButNotZero = 0.0001
function setRunSpeed(speed)
	if speed < 0.33 then
		currentAnimTrack:AdjustWeight(1.0)
		runAnimTrack:AdjustWeight(smallButNotZero)
	elseif speed < 0.66 then
		local weight = ((speed - 0.33) / 0.33)
		currentAnimTrack:AdjustWeight(1.0 - weight + smallButNotZero)
		runAnimTrack:AdjustWeight(weight + smallButNotZero)
	else
		currentAnimTrack:AdjustWeight(smallButNotZero)
		runAnimTrack:AdjustWeight(1.0)
	end

	local speedScaled = speed * 1.25

	local heightScale = getHeightScale()

	runAnimTrack:AdjustSpeed(speedScaled / heightScale)
	currentAnimTrack:AdjustSpeed(speedScaled / heightScale)
end

function setAnimationSpeed(speed)
	if speed ~= currentAnimSpeed then
		currentAnimSpeed = speed
		if currentAnim == "walk" then
		else
		end
	end
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then
		if currentAnim == "walk" then
			runAnimTrack.TimePosition = 0.0
			currentAnimTrack.TimePosition = 0.0
		else
			local repeatAnim = currentAnim
			-- return to idle if finishing an emote
			if (emoteNames[repeatAnim] ~= nil and emoteNames[repeatAnim] == false) then
				repeatAnim = "idle"
			end

			local animSpeed = currentAnimSpeed
			playAnimation(repeatAnim, 0.15, Humanoid)
			setAnimationSpeed(animSpeed)
		end
	end
end

function rollAnimation(animName)
	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
	return idx
end

function playAnimation(animName, transitionTime, humanoid)
	local idx = rollAnimation(animName)
	local anim = animTable[animName][idx].anim

	-- switch animation
	if (anim ~= currentAnimInstance) then

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

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

		currentAnimSpeed = 1.0

		-- load it to the humanoid; get AnimationTrack
		currentAnimTrack = humanoid:LoadAnimation(anim)
		currentAnimTrack.Priority = Enum.AnimationPriority.Core

		-- play the animation
		currentAnimTrack:Play(transitionTime)
		currentAnim = animName
		currentAnimInstance = anim

		-- set up keyframe name triggers
		if (currentAnimKeyframeHandler ~= nil) then
			currentAnimKeyframeHandler:disconnect()
		end
		currentAnimKeyframeHandler = currentAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)

		-- check to see if we need to blend a walk/run animation
		if animName == "walk" then
			local runAnimName = "run"
			local runIdx = rollAnimation(runAnimName)

			runAnimTrack = humanoid:LoadAnimation(animTable[runAnimName][runIdx].anim)
			runAnimTrack.Priority = Enum.AnimationPriority.Core
			runAnimTrack:Play(transitionTime)

			if (runAnimKeyframeHandler ~= nil) then
				runAnimKeyframeHandler:disconnect()
			end
			runAnimKeyframeHandler = runAnimTrack.KeyframeReached:connect(keyFrameReachedFunc)
		end
	end

end


Prompt: -- Remote

Response: local RE_UpdateSpine = ReplicatedStorage.RemoteEvents.UpdateSpine


Prompt: -- Casts and recasts until it hits either: nothing, or something not transparent or collidable

Response:
local function PiercingCast(fromPoint, toPoint, ignoreList) --NOTE: Modifies ignoreList!
	repeat
		local hitPart, hitPoint = CastRay(fromPoint, toPoint, ignoreList)
		if hitPart and (hitPart.Transparency > 0.95 or hitPart.CanCollide == false) then
			table.insert(ignoreList, hitPart)
		else
			return hitPart, hitPoint
		end
	until false
end

local function ScreenToWorld(screenPoint, screenSize, pushDepth)
	local cameraFOV, cameraCFrame = Camera.FieldOfView, Camera.CoordinateFrame
	local imagePlaneDepth = screenSize.y / (2 * math.tan(math.rad(cameraFOV) / 2))
	local direction = Vector3.new(screenPoint.x - (screenSize.x / 2), (screenSize.y / 2) - screenPoint.y, -imagePlaneDepth)
	local worldDirection = (cameraCFrame:vectorToWorldSpace(direction)).Unit
	local theta = math.acos(math.min(1, worldDirection:Dot(cameraCFrame.lookVector)))
	local fixedPushDepth = pushDepth / math.sin((math.pi / 2) - theta)
	return cameraCFrame.p + worldDirection * fixedPushDepth
end

local function OnCameraChanged(property)
	if property == 'CameraSubject' then
		VehicleParts = {}

		local newSubject = Camera.CameraSubject
		if newSubject then
			-- Determine if we should be popping at all
			PopperEnabled = false
			for _, subjectType in pairs(VALID_SUBJECTS) do
				if newSubject:IsA(subjectType) then
					PopperEnabled = true
					break
				end
			end

			-- Get all parts of the vehicle the player is controlling
			if newSubject:IsA('VehicleSeat') then
				VehicleParts = newSubject:GetConnectedParts(true)
			end
		end
	end
end

local function OnCharacterAdded(player, character)
	PlayerCharacters[player] = character
end

local function OnPlayersChildAdded(child)
	if child:IsA('Player') then
		child.CharacterAdded:connect(function(character)
			OnCharacterAdded(child, character)
		end)
		if child.Character then
			OnCharacterAdded(child, child.Character)
		end
	end
end

local function OnPlayersChildRemoved(child)
	if child:IsA('Player') then
		PlayerCharacters[child] = nil
	end
end

local function OnWorkspaceChanged(property)
	if property == 'CurrentCamera' then
		local newCamera = workspace.CurrentCamera
		if newCamera then
			Camera = newCamera

			if CameraChangeConn then
				CameraChangeConn:disconnect()
			end
			CameraChangeConn = Camera.Changed:connect(OnCameraChanged)
			OnCameraChanged('CameraSubject')
		end
	end
end


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

Response:
local v1 = {
	data = {},
	event = {}
};
local v2 = { "Knobs", "Revives", "Boosts", "Statistics", "Achievements" };
for v3, v4 in pairs(v2) do
	local v5 = Instance.new("BindableEvent");
	v5.Name = v4 .. "Updated";
	v5.Parent = script;
	v1.event[v4] = v5;
end;
local v6 = require(game:GetService("ReplicatedStorage"):WaitForChild("ReplicaController"));
local l__LocalPlayer__7 = game:GetService("Players").LocalPlayer;
v6.RequestData();
v6.ReplicaOfClassCreated("PlayerProfile", function(p1)
	local v8 = p1.Tags.Player == l__LocalPlayer__7;
	if not v8 then
		local v9 = p1.Tags.Player.Name .. "'s";
	end;
	local l__Data__10 = p1.Data;
	v1.data = l__Data__10;
	if v8 then
		for v11, v12 in pairs(v2) do
			p1:ListenToChange({ v12 }, function(p2)
				v1.event[v12]:Fire(l__Data__10[v12]);
			end);
			v1.event[v12]:Fire(l__Data__10[v12]);
		end;
	end;
end);
local v13 = tick();
while true do
	wait();
	if v6.InitialDataReceived then
		break;
	end;
end;
local v14 = tick();
return v1;


Prompt: -- ROBLOX TODO: implement in LuauPolyfill

Response:
local CurrentModule = script.Parent
local Packages = CurrentModule.Parent
local LuauPolyfill = require(Packages.LuauPolyfill)
local Array = LuauPolyfill.Array
type Array<T> = LuauPolyfill.Array<T>

local RegExp = require(Packages.RegExp)
type RegExp = RegExp.RegExp

local function stringReplace(str: string, regExp: RegExp, replFn: (...any) -> string)
	local v = str
	local match = regExp:exec(v)
	local offset = 0
	local replaceArr = {}
	while match ~= nil and match.index ~= nil do
		-- ROBLOX FIXME Luau: analyze complains about match type being `Array<string> & {| index: number?, input: string?, n: number |}` instead of table
		local m = (match :: Array<string>)[1]
		local args: Array<string | number> = Array.slice(match, 1, match.n + 1)
		-- ROBLOX FIXME Luau: analyze doesn't recognize match.index as a number
		local index = (match.index :: any) + offset

		table.insert(args, index)

		local replace = replFn(table.unpack(args))

		table.insert(replaceArr, {
			from = index,
			length = #m,
			value = replace,
		})

		-- ROBLOX FIXME Luau: analyze doesn't recognize match.index as a number
		offset += #m + (match.index :: any) - 1
		v = str:sub(offset + 1)
		match = regExp:exec(v)
	end
	local result = str:sub(1)
	for _, rep in ipairs(Array.reverse(replaceArr)) do
		local from, length, value = rep.from, rep.length, rep.value
		local prefix = result:sub(1, from - 1)
		local suffix = result:sub(from + length)

		result = prefix .. value .. suffix
	end

	return result
end

return {
	stringReplace = stringReplace,
}


Prompt:
--[[
		___      _______                _
	   / _ |____/ ___/ /  ___ ____ ___ (_)__
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]

Response:
local autoscaling	= false					--Estimates top speed

local UNITS	= {								--Click on speed to change units
											--First unit is default
	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 220				,
		spInc			= 40				, -- Increment between labelled notches
	}
}


Prompt:
-- p = period
-- a = amplitud

Response:
local function inOutElastic(t,a,p, b, c, d)
  b,c,d = default(b,c,d)
  if t == 0 then return b end

  t = t / d * 2

  if t == 2 then return b + c end

  if not p then p = d * (0.3 * 1.5) end
  if not a then a = 0 end

  local s

  if not a or a < abs(c) then
    a = c
    s = p / 4
  else
    s = p / (2 * pi) * asin(c / a)
  end

  if t < 1 then
    t = t - 1
    return -0.5 * (a * pow(2, 10 * t) * sin((t * d - s) * (2 * pi) / p)) + b
  else
    t = t - 1
    return a * pow(2, -10 * t) * sin((t * d - s) * (2 * pi) / p ) * 0.5 + c + b
  end
end


Prompt: -- Class that provides body orientation functionality to a given rig

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

local function waitForDescendantWhichIsA(parent: Instance, name: string, className: string)
	for _, descendant in ipairs(parent:GetDescendants()) do
		if descendant.Name == name and descendant:IsA(className) then
			return descendant
		end
	end
	while true do
		local descendant = parent.DescendantAdded:Wait()
		if descendant.Name == name and descendant:IsA(className) then
			return descendant
		end
	end
end

function OrientableBody.new(character: Model)
	local self = {}
	self.character = character

	task.spawn(function()
		self.neck = waitForDescendantWhichIsA(character, "Neck", "Motor6D")
		self.waist = waitForDescendantWhichIsA(character, "Waist", "Motor6D")
	end)

	self.motor = Otter.createGroupMotor({
		horizontalAngle = 0,
		verticalAngle = 0,
	})
	self.motor:onStep(function(values)
		local waistWeight = config.getValues().waistOrientationWeight
		local neckWeight = 1 - waistWeight
		self:applyAngle(self.neck, values.horizontalAngle * neckWeight, values.verticalAngle * neckWeight)
		self:applyAngle(self.waist, values.horizontalAngle * waistWeight, values.verticalAngle * waistWeight)
	end)

	return setmetatable(self, OrientableBody)
end

function OrientableBody:applyAngle(joint, horizontalAngle, verticalAngle)
	if not joint then
		return
	end

	local horizontalRotation = CFrame.Angles(0, horizontalAngle, 0)
	local verticalRotation = CFrame.Angles(verticalAngle, 0, 0)
	joint.C0 = CFrame.new(joint.C0.Position) * horizontalRotation * verticalRotation
end


Prompt:
--[[
		___      _______                _
	   / _ |____/ ___/ /  ___ ____ ___ (_)__
	  / __ /___/ /__/ _ \/ _ `(_-<(_-</ (_-<
	 /_/ |_|   \___/_//_/\_,_/___/___/_/___/
 						SecondLogic @ Inspare
]]

Response:
local FE = workspace.FilteringEnabled
local car = script.Parent.Car.Value
local handler = car:WaitForChild("AC6_FE_Sounds")
local _Tune = require(car["A-Chassis Tune"])
local on = 0
local throt=0
local redline=0

script:WaitForChild("Rev")

for i,v in pairs(car.Body.CarName.Value.VehicleSeat:GetChildren()) do
	for _,a in pairs(script:GetChildren()) do
		if v.Name==a.Name then v:Stop() wait() v:Destroy() end
	end
end

handler:FireServer("newSound","Rev",car.Body.CarName.Value.VehicleSeat,script.Rev.SoundId,0,script.Rev.Volume,true)
handler:FireServer("playSound","Rev")
car.Body.CarName.Value.VehicleSeat:WaitForChild("Rev")

while wait() do
	local _RPM = script.Parent.Values.RPM.Value

	if script.Parent.Values.Throttle.Value <= _Tune.IdleThrottle/100 then
		throt = math.max(.3,throt-.2)
	else
		throt = math.min(1,throt+.1)
	end
	if script.Parent.Values.RPM.Value > _Tune.Redline-_Tune.RevBounce/4 and script.Parent.Values.Throttle.Value > _Tune.IdleThrottle/100 then
		redline=.5
	else
		redline=1
	end
	if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
	local Pitch = math.max((((script.Rev.SetPitch.Value + script.Rev.SetRev.Value*_RPM/_Tune.Redline))*on^2),script.Rev.SetPitch.Value)
	if FE then
		handler:FireServer("updateSound","Rev",script.Rev.SoundId,Pitch,script.Rev.Volume)
	else
		car.Body.CarName.Value.VehicleSeat.Rev.Pitch = Pitch
	end
end


Prompt:
--[[
	OrbitalCamera - Spherical coordinates control camera for top-down games
	2018 Camera Update - AllYourBlox
--]]