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

	Returns `true` if the given table is empty. This is
	simply performed by checking if `next(tbl)` is `nil`
	and works for both arrays and dictionaries. This is
	useful when needing to check if a table is empty but
	not knowing if it is an array or dictionary.

	```lua
	TableUtil.IsEmpty({}) -- true
	TableUtil.IsEmpty({"abc"}) -- false
	TableUtil.IsEmpty({abc = 32}) -- false
	```
]=]

Response:
local function IsEmpty(tbl: { any }): boolean
	return not next(tbl)
end


Prompt: --[[Susupension]]

Response:
	Tune.SusEnabled		= true		-- works only in with PGSPhysicsSolverEnabled, defaults to false when PGS is disabled

	--Front Suspension
	Tune.FSusDamping	= 1500		-- Spring Dampening
	Tune.FSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50000		-- Anti-Roll (Gyro Dampening)

	Tune.FSusLength		= 2.00			-- Suspension length (in studs)
	Tune.FPreCompress	= .2		-- Pre-compression adds resting length force
	Tune.FExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.FCompressLim	= 0		-- Max Compression Travel (in studs)
	Tune.FSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

	Tune.FWsBoneLen		= 5			-- Wishbone Length
	Tune.FWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.FAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Rear Suspension
	Tune.RSusDamping	= 1500		-- Spring Dampening
	Tune.RSusStiffness	= 9000		-- Spring Force
	Tune.FAntiRoll 		= 50000		-- Anti-Roll (Gyro Dampening)

	Tune.RSusLength		= 2.00			-- Suspension length (in studs)
	Tune.RPreCompress	= -0.3		-- Pre-compression adds resting length force
	Tune.RExtensionLim	= .3		-- Max Extension Travel (in studs)
	Tune.RCompressLim	= 0		-- Max Compression Travel (in studs)
	Tune.RSusAngle		= 80		-- Suspension Angle (degrees from horizontal)

	Tune.RWsBoneLen		= 5			-- Wishbone Length
	Tune.RWsBoneAngle	= 0			-- Wishbone angle (degrees from horizontal)
	Tune.RAnchorOffset	= {			-- Suspension anchor point offset (relative to center of wheel)
	 --[[Lateral]]		-.4		,	-- positive = outward
	 --[[Vertical]]		-.5		,	-- positive = upward
	 --[[Forward]]		0		}	-- positive = forward

	--Aesthetics
	Tune.SusVisible		= true			-- Spring Visible
	Tune.WsBVisible		= false			-- Wishbone Visible
	Tune.SusRadius		= .2			-- Suspension Coil Radius
	Tune.SusThickness	= .1			-- Suspension Coil Thickness
	Tune.SusColor		= "Bright red"	-- Suspension Color [BrickColor]
	Tune.SusCoilCount	= 6				-- Suspension Coil Count
	Tune.WsColor		= "Black"		-- Wishbone Color [BrickColor]
	Tune.WsThickness	= .1			-- Wishbone Rod Thickness


Prompt: --A simple function to check if the car is grounded

Response:
local function IsGrounded()
	local hit, position = Raycast.new((car.Chassis.CFrame * CFrame.new(0, 0, (car.Chassis.Size.Z / 2) - 1)).p, car.Chassis.CFrame:vectorToWorldSpace(Vector3.new(0, -1, 0)) * (stats.Height.Value + 0.2))
	if hit and hit.CanCollide then
		return(true)
	end
	return(false)
end

local oldCameraType = camera.CameraType
camera.CameraType = cameraType

spawn(function()
	while character.Humanoid.SeatPart == car.DriveSeat do
		game:GetService("RunService").RenderStepped:wait()

		--Broken gyro input
		--[[if userInputService.GyroscopeEnabled then
			local inputObject, cframe = userInputService:GetDeviceRotation()
			local up = cframe:vectorToWorldSpace(Vector3.new(0, 1, 0))
			local angle = (1 - up.Y) * (math.abs(up.X) / up.X)
			movement = Vector2.new(angle, movement.Y)
		end]]

		if IsGrounded() then
			if movement.Y ~= 0 then
				local velocity = car.Chassis.CFrame.lookVector * movement.Y * stats.Speed.Value
				car.Chassis.Velocity = car.Chassis.Velocity:Lerp(velocity, 0.1)
				bodyVelocity.maxForce = Vector3.new(0, 0, 0)
			else
				bodyVelocity.maxForce = Vector3.new(mass / 2, mass / 4, mass / 2)
			end
			local rotVelocity = car.Chassis.CFrame:vectorToWorldSpace(Vector3.new(movement.Y * stats.Speed.Value / 50, 0, -car.Chassis.RotVelocity.Y * 5 * movement.Y))
			local speed = -car.Chassis.CFrame:vectorToObjectSpace(car.Chassis.Velocity).unit.Z
			rotation = rotation + math.rad((-stats.Speed.Value / 5) * movement.Y)
			if math.abs(speed) > 0.1 then
				rotVelocity = rotVelocity + car.Chassis.CFrame:vectorToWorldSpace((Vector3.new(0, -movement.X * speed * stats.TurnSpeed.Value, 0)))
				bodyAngularVelocity.maxTorque = Vector3.new(0, 0, 0)
			else
				bodyAngularVelocity.maxTorque = Vector3.new(mass / 4, mass / 2, mass / 4)
			end
			car.Chassis.RotVelocity = car.Chassis.RotVelocity:Lerp(rotVelocity, 0.1)

			--bodyVelocity.maxForce = Vector3.new(mass / 3, mass / 6, mass / 3)
			--bodyAngularVelocity.maxTorque = Vector3.new(mass / 6, mass / 3, mass / 6)
		else
			bodyVelocity.maxForce = Vector3.new(0, 0, 0)
			bodyAngularVelocity.maxTorque = Vector3.new(0, 0, 0)
		end

		for i, part in pairs(car:GetChildren()) do
			if part.Name == "Thruster" then
				UpdateThruster(part)
			end
		end
	end
	for i, v in pairs(car:GetChildren()) do
		if v:FindFirstChild("BodyThrust") then
			v.BodyThrust:Destroy()
		end
	end
	bodyVelocity:Destroy()
	bodyAngularVelocity:Destroy()
	camera.CameraType = oldCameraType
	userInputService.ModalEnabled = false
	script:Destroy()
end)


Prompt: -- check if the player is moving and not climbing

Response:
humanoid.Running:Connect(function(speed)
	if humanoid.MoveDirection.Magnitude > 0 and speed > 0 and humanoid:GetState() ~= Enum.HumanoidStateType.Climbing then
		getSoundProperties()
		update()
		currentSound.Playing = true
		currentSound.Looped = true
	else
		currentSound:Stop()
	end
end)

print("Walking sounds successfully loaded!")


Prompt:
--	if (pose == "Standing" and emoteNames[emote] ~= nil) then
--		playAnimation(emote, EMOTE_TRANSITION_TIME, Humanoid)
--	end
--end)


Prompt: --Stickmasterluke

Response:
sp=script.Parent

function Equipped(mouse)
	if mouse~=nil then
		mouse.Icon="rbxasset://textures\\GunCursor.png"
	end
end
sp.Equipped:connect(Equipped)


Prompt:
--////////////////////////////////////////////////////////////////////////////////////////////
--///////////////////////////////////////////////// Code to hook client UI up to server events
--////////////////////////////////////////////////////////////////////////////////////////////

Response:
function DoChatBarFocus()
	if (not ChatWindow:GetCoreGuiEnabled()) then return end
	if (not ChatBar:GetEnabled()) then return end

	if (not ChatBar:IsFocused() and ChatBar:GetVisible()) then
		moduleApiTable:SetVisible(true)
		InstantFadeIn()
		ChatBar:CaptureFocus()
		moduleApiTable.ChatBarFocusChanged:fire(true)
	end
end

chatBarFocusChanged.Event:connect(function(focused)
	moduleApiTable.ChatBarFocusChanged:fire(focused)
end)

function DoSwitchCurrentChannel(targetChannel)
	if (ChatWindow:GetChannel(targetChannel)) then
		ChatWindow:SwitchCurrentChannel(targetChannel)
	end
end

function SendMessageToSelfInTargetChannel(message, channelName, extraData)
	local channelObj = ChatWindow:GetChannel(channelName)
	if (channelObj) then
		local messageData = {
			ID = -1,
			FromSpeaker = nil,
			SpeakerUserId = 0,
			OriginalChannel = channelName,
			IsFiltered = true,
			MessageLength = string.len(message),
			MessageLengthUtf8 = utf8.len(utf8.nfcnormalize(message)),
			Message = trimTrailingSpaces(message),
			MessageType = ChatConstants.MessageTypeSystem,
			Time = os.time(),
			ExtraData = extraData,
		}

		channelObj:AddMessageToChannel(messageData)
	end
end

function chatBarFocused()
	if (not mouseIsInWindow) then
		DoBackgroundFadeIn()
		if (textIsFaded) then
			DoTextFadeIn()
		end
	end

	chatBarFocusChanged:Fire(true)
end


Prompt:
--//Unloading\\--
--[[
Always have these if you intend to have a script unload,
It removes all unwanted storage to improve performance instead of maintaining it, lagging it behind.
Under no circumstance should you try to stop the script by deleting it,
Simply delete Zombie or Spawner.

It is safe to remove spawner,
Simply delete this script.
If you plan to have this script work later,
Simply delete the spawner and maintain this script,
as for it will stay on standby until useable.
]]

Response:
if Zombie then Zombie:Destroy() end
if Spawner then Spawner:Destroy() end
script:Destroy()


Prompt:
-----------------
--| Constants |--
-----------------

Response:
local SPAWN_RADIUS = 8 -- Studs

local SUMMON_COOLDOWN = 16

local SKELETON_ASSET_ID = 132805224

local SKELETON_DURATION = 60


Prompt: -- / Functions / --

Response:
FadeModule.Fade = function(FadeObject: Instance, TweenValue: NumberValue, TweenTime: number?, DelayTime: number?)
	if FadeObject:IsA("Frame") then
		local FadeTween = TweenService:Create(
			FadeObject,

			TweenInfo.new(TweenTime),

			{
				BackgroundTransparency = TweenValue
			}
		)

		FadeTween:Play()

	elseif FadeObject:IsA("BlurEffect") then

		local FadeTween = TweenService:Create(
			FadeObject,

			TweenInfo.new(TweenTime),

			{
				Size = TweenValue
			}
		)

		FadeTween:Play()

	end

	if DelayTime then
		task.wait(DelayTime)

	end
end


Prompt:
--		if userPlayEmoteByIdAnimTrackReturn then
--			return true, currentAnimTrack
--		else
--			return true
--		end
--	end


Prompt: --[[Transmission]]

Response:
	Tune.TransModes		= {"Semi"}--"Auto", "Semi", or "Manual". Can have more than one; order from first to last
	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"	--"Speed" or "RPM"
	Tune.AutoUpThresh	= -200		--Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 2000		--Automatic downshift point (relative to peak RPM, positive = Under-rev)

	--Gear Ratios
	Tune.FinalDrive		= 3.84
			-- Gearing determines top speed and wheel torque
	Tune.Ratios			= {				-- Higher ratio = more torque, Lower ratio = higher top speed
		--[[Reverse]]	3.42		,	-- Copy and paste a ratio to add a gear
		--[[Neutral]]	0			,	-- Ratios can also be deleted
		--[[ 1 ]]		4.37		,	-- Reverse, Neutral, and 1st gear are required
		--[[ 2 ]]		2.76		,
		--[[ 3 ]]		1.94		,
		--[[ 4 ]]		1.45		,
		--[[ 5 ]]		1.05		,
		--[[ 6 ]]		.85			,
		--[[ 7 ]]		.69			,
	}
	Tune.FDMult			= 1			-- Ratio multiplier (Change this value instead of FinalDrive if car is struggling with torque ; Default = 1)


Prompt: --// Aim|Zoom|Sensitivity Customization

Response:
	ZoomSpeed = 0.25; -- The lower the number the slower and smoother the tween
	AimZoom = 45; -- Default zoom
	AimSpeed = 0.45;
	UnaimSpeed = 0.35;
	CycleAimZoom = 4; -- Cycled zoom
	MouseSensitivity = 0.5; -- Number between 0.1 and 1
	SensitivityIncrement = 0.05; -- No touchy


Prompt:
--[=[
	@param fn ConnectionFn
	@return SignalConnection

	Connects a function to the signal, which will be called the next time the signal fires. Once
	the connection is triggered, it will disconnect itself.
	```lua
	signal:ConnectOnce(function(msg, num)
		print(msg, num)
	end)

	signal:Fire("Hello", 25)
	signal:Fire("This message will not go through", 10)
	```
]=]

Response:
function Signal:ConnectOnce(fn)
	local connection
	local done = false
	connection = self:Connect(function(...)
		if done then
			return
		end
		done = true
		connection:Disconnect()
		fn(...)
	end)
	return connection
end

function Signal:GetConnections()
	local items = {}
	local item = self._handlerListHead
	while item do
		table.insert(items, item)
		item = item._next
	end
	return items
end


Prompt: -- Basic Settings

Response:
AdminCredit=false;				-- Enables the credit GUI for that appears in the bottom right
AutoClean=false;				-- Enables automatic cleaning of hats & tools in the Workspace
AutoCleanDelay=60;				-- The delay between each AutoClean routine
CommandBar=true;				-- Enables the Command Bar | GLOBAL KEYBIND: \
FunCommands=true;				-- Enables fun yet unnecessary commands
FreeAdmin=false;				-- Set to 1-5 to grant admin powers to all, otherwise set to false
PublicLogs=false;				-- Allows all users to see the command & chat logs
Prefix=':';						-- Character to begin a command
								--[[
	Admin Powers

0			Player
1			VIP					Can use nonabusive commands only on self
2			Moderator			Can kick, mute, & use most commands
3			Administrator		Can ban, crash, & set Moderators/VIP
4			SuperAdmin			Can grant permanent powers, & shutdown the game
5			Owner				Can set SuperAdmins, & use all the commands
6			Game Creator		Can set owners & use all the commands

	Group & VIP Admin

		You can set multiple Groups & Ranks to grant users admin powers:

GroupAdmin={
[12345]={[254]=4,[253]=3};
[GROUPID]={[RANK]=ADMINPOWER}
};

		You can set multiple Assets to grant users admin powers:

VIPAdmin={
[12345]=3;
[54321]=4;
[ITEMID]=ADMINPOWER;
};								]]

GroupAdmin={

};

VIPAdmin={

};


Prompt: -- When Tool UnEqiopped

Response:
tool.Unequipped:Connect(function()
	if track and track1 then
		track:Stop()
		track1:Stop()
	end
end)


Prompt: --//Configs

Response:
local REAPPEAR_TIME = 2 --//Once the part becomes invisible, after this amount of seconds it'll appear again
local FADE_TIME = 1 --//How long it takes for the part to become fully visible/invisible

local function Animate()
	if isAnimating then return end

	isAnimating = true

	local targetProperties = {}
	targetProperties.Transparency = 1

	local disappearFade = tweenService:Create(script.Parent, TweenInfo.new(FADE_TIME), targetProperties)

	disappearFade:Play()
	disappearFade.Completed:Wait()

	wait(REAPPEAR_TIME)

	targetProperties.Transparency = 0

	local appearFade = tweenService:Create(script.Parent, TweenInfo.new(FADE_TIME), targetProperties)

	appearFade:Play()
	appearFade.Completed:Wait()

	isAnimating = false
end

script.Parent.Touched:Connect(Animate)


Prompt:
--[[
    Server Init
]]

Response:
local RunServ = game:GetService("RunService")
local ServStore = game:GetService("ServerStorage")

local ServerScripts = ServStore.Modules:GetChildren()

local modules, priority = {}, {}
for _, module: ModuleScript in ipairs(ServerScripts) do
	if module:IsA("ModuleScript") and not module.Name:find("IGNORE") then
		local mod = require(module)
		priority[mod.InitPriority] = mod
		modules[module.Name] = mod
	end
end

local function call_loop(dt: number)
	for _, module in modules do
		module:Loop(dt)
	end
end

for _, module in ipairs(priority) do
	module:Init()
end

RunServ.Heartbeat:Connect(call_loop)


Prompt:
--Flingi2's Lap
--This script is free to use for anyone

Response:
local ting = 0 --debouncer

function onTouched(hit)

	if ting == 0 then --debounce check
	ting = 1 --activate debounce
	check = hit.Parent:FindFirstChild("Humanoid") --Find the human that touched the button

	if check ~= nil then --If a human is found, then

		local user = game.Players:GetPlayerFromCharacter(hit.Parent) --get player from touching human
		local stats = user:findFirstChild("leaderstats") --Find moneyholder

		if stats ~= nil then --If moneyholder exists then
			local cash = stats:findFirstChild("Laps") --Change Cash To The Money In The Leaderboard
			cash.Value  = cash.Value +1 --increase amount of money by the number displayed here (1)
			wait(0.1) --wait-time before button works again
		end

	end

	ting = 0 --remove debounce
	end

end

script.Parent.Touched:connect(onTouched)


Prompt: --[[Flip]]

Response:
	function Flip()
		--Detect Orientation
		if (car.DriveSeat.CFrame*CFrame.Angles(math.pi/2,0,0)).lookVector.y > .1 or FlipDB then
			FlipWait=tick()

		--Apply Flip
		else
			if tick()-FlipWait>=3 then
				FlipDB=true
				local gyro = car.DriveSeat.Flip
				gyro.maxTorque = Vector3.new(10000,0,10000)
				gyro.P=3000
				gyro.D=500
				wait(1)
				gyro.maxTorque = Vector3.new(0,0,0)
				gyro.P=0
				gyro.D=0
				FlipDB=false
			end
		end
	end

game:GetService("RunService").RenderStepped:connect(function()
	if script.Parent.AssistantBrake.Value == true and _CGear ~= -1 and _SteerL == false and _SteerR == false then
		RBrakeForce = _Tune.RBrakeForce
		FBrakeForce = _Tune.FBrakeForce
		_GBrake = 1
		script.Parent.Lights.Value:FireServer({["EnableBrakes"]=true})
		if script.Parent.AssistantAlarm.IsPlaying == false then
			script.Parent.AssistantAlarm:Play()
		end
		script.Parent["AC6_Stock_Gauges"].EBrake.Visible = true
		script.Parent.FEAssistantBrake.DisableAssistantBrake:FireServer()
		wait(3.5)
		script.Parent["AC6_Stock_Gauges"].EBrake.Visible = false
		_GBrake = 0
		script.Parent.Lights.Value:FireServer({["DisableBrakes"]=true})
	elseif _CGear == -1 and script.Parent.AssistantBrake.Value == true then
		script.Parent.FEAssistantBrake.DisableAssistantBrake:FireServer()
	elseif (_SteerL == true or _SteerR == true) and script.Parent.AssistantBrake.Value == true then
		script.Parent.FEAssistantBrake.DisableAssistantBrake:FireServer()
	end
end)


Prompt: -- For me: In hell dont forget to fix the structuring way fix when options are published!


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 = PlayersService.ClassicChat


Prompt:
--[[
	Recursively iterates through the object to construct strings and add it to the localization table

	@param localizationTable LocalizationTable
	@param localeId string -- The localizationid to add
	@param baseKey string -- the key to add
	@param object any -- The value to iterate over
]]

Response:
local function recurseAdd(localizationTable, localeId, baseKey, object, tableName)
	if baseKey ~= "" then
		baseKey = baseKey .. "."
	end

	for index, value in pairs(object) do
		local key = baseKey .. index
		if type(value) == "table" then
			recurseAdd(localizationTable, localeId, key, value, tableName)
		elseif type(value) == "string" then
			local source = ""

			-- Guarantee the context is unique. This is important because Roblox will not
			-- allow something with the same source without a differing context value.
			local context = tableName .. "." .. key

			if localeId == "en" then
				source = value
			end

			localizationTable:SetEntryValue(key, source, context, localeId, value)
		else
			error("Bad type for value in '" .. key .. "'.")
		end
	end
end


Prompt: -- services

Response:
local ReplicatedStorage		= game:GetService("ReplicatedStorage")
local TweenService			= game:GetService("TweenService")
local Players				= game:GetService("Players")


Prompt: --- Fire

Response:
Signal.Fire = function(eventName, ...)
	--- Variables
	eventName = string.lower(eventName)

	--- Get/create event
	local event = GetEvent(eventName)

	--- Signal for visualization/tracking purposes on Debug (Client only) META AF BTW
	if (not isServer) and eventName ~= "core signal fired" then
		Signal.Fire("CORE Signal Fired", eventName)
	end

	--- Fire event w/ data
	event:Fire(...)
end


Prompt: -- / Setting / --

Response:
local Settings = {
	Scale = 2
}


Prompt:
--don't go after the left side if the opponent is hugging the wall
--don't spam hit while not in range (gives opportunity for enemy to attack while lunge is down)
--make it go closer when the opponent's attack is on cooldown
--realize that once it's being attacked, if the opponent is plays optimally it can't dodge so try maneuvers while attacking
--make it not attempt to back off when it's already being hit
--back off when lunging Almost over and down


Prompt:
--[=[
	Invokes the function once at renderstepped, unless the cancel callback is called.

	@param func function -- Function to call
	@return function -- Call this function to cancel call
]=]

Response:
function StepUtils.onceAtRenderStepped(func)
	return StepUtils.onceAtEvent(RunService.RenderStepped, func)
end


Prompt: -- Functions

Response:
function SPRING.new(self, mass, force, damping, speed)

	local spring	= {
		Target		= Vector3.new();
		Position	= Vector3.new();
		Velocity	= Vector3.new();

		Mass		= mass or 5;
		Force		= force or 50;
		Damping		= damping or 4;
		Speed		= speed  or 4;
	}

	function spring.getstats(self)
		return self.Mass, self.Force, self.Damping, self.Speed
	end

	function spring.changestats(self, mass, force, damping, speed)
		self.Mass = mass or self.Mass
		self.Force = force or self.Force
		self.Damping = damping or self.Damping
		self.Speed = speed or self.Speed
	end

	function spring.shove(self, force)
		local x, y, z	= force.X, force.Y, force.Z
		if x ~= x or x == math.huge or x == -math.huge then
			x	= 0
		end
		if y ~= y or y == math.huge or y == -math.huge then
			y	= 0
		end
		if z ~= z or z == math.huge or z == -math.huge then
			z	= 0
		end
		self.Velocity	= self.Velocity + Vector3.new(x, y, z)
	end

	function spring.update(self, dt)
		local scaledDeltaTime = dt * self.Speed / ITERATIONS
		for i = 1, ITERATIONS do
			local iterationForce= self.Target - self.Position
			local acceleration	= (iterationForce * self.Force) / self.Mass

			acceleration		= acceleration - self.Velocity * self.Damping

			self.Velocity	= self.Velocity + acceleration * scaledDeltaTime
			self.Position	= self.Position + self.Velocity * scaledDeltaTime
		end

		return self.Position
	end

	return spring
end


Prompt: --[[ END OF SERVICES ]]

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

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")


Response:
elseif script.Parent.Parent.Parent.TrafficControl.Value == ">" then

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.C.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.D.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.E.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.D.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.E.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.E.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.E.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.E.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.E.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.F.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.E.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.F.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.G.BrickColor = BrickColor.new("New Yeller")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.B.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.C.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.D.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.E.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.F.BrickColor = BrickColor.new("New Yeller")

	script.Parent.Parent.G.BrickColor = BrickColor.new("New Yeller")

	wait(0.2)

	script.Parent.Parent.A.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.B.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.C.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.D.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.E.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.F.BrickColor = BrickColor.new("Medium stone grey")

	script.Parent.Parent.G.BrickColor = BrickColor.new("Medium stone grey")

	wait(0.2)


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 2300		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6		,
	 --[[Height]]		3.5		,
	 --[[Length]]		14		}
	Tune.WeightDist		= 50		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .5		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible

	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]

	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members


Prompt:
--[=[
	Stops all motors on the gamepad.

	```lua
	gamepad:SetMotor(Enum.VibrationMotor.Large, 1)
	gamepad:SetMotor(Enum.VibrationMotor.Small, 1)
	task.wait(0.1)
	gamepad:StopMotors()
	```
]=]

Response:
function Gamepad:StopMotors()
	for _,motor in ipairs(Enum.VibrationMotor:GetEnumItems()) do
		if self:IsMotorSupported(motor) then
			self:StopMotor(motor)
		end
	end
end


Prompt: -- Fire with whitelist

Response:
function FastCast:FireWithWhitelist(origin, directionWithMagnitude, velocity, whitelist, cosmeticBulletObject, ignoreWater, bulletAcceleration, tool, clientModule, miscs, replicate, penetrationData)
	assert(getmetatable(self) == FastCast, ERR_NOT_INSTANCE:format("FireWithWhitelist", "FastCast.new()"))
	BaseFireMethod(self, origin, directionWithMagnitude, velocity, cosmeticBulletObject, nil, ignoreWater, bulletAcceleration, tool, clientModule, miscs, replicate, whitelist, true, penetrationData)
end


Prompt: -- Color Changing Script ~ Rainbow!

Response:
while true do
script.Parent.Color = Color3.fromRGB(255, 0, 0)
wait(1)
script.Parent.Color = Color3.fromRGB(255, 149, 0)
wait(1)
script.Parent.Color = Color3.fromRGB(255, 247, 0)
wait(1)
script.Parent.Color = Color3.fromRGB(4, 255, 0)
wait(1)
script.Parent.Color = Color3.fromRGB(0, 255, 255)
wait(1)
script.Parent.Color = Color3.fromRGB(8, 0, 255)
wait(1)
script.Parent.Color = Color3.fromRGB(226, 0, 255)
wait(1)
end


Prompt: --easter egg

Response:
mouse.KeyDown:connect(function(key)
	if key=="u" and script.Blown.Value == false then
		Heat = Heat+1
	end
end)

if not FE then

radiator.Oil.Enabled = false
radiator.Antifreeze.Enabled = false
radiator.Liquid.Volume = 0
radiator.Fan:Play()
radiator.Fan.Pitch = 1+FanSpeed
radiator.Steam:Play()
radiator.Liquid:Play()
script.Blown.Value = false

while wait(.2) do
	if Heat > FanTemp and Fan == true then
		FanCool = -FanSpeed
		radiator.Fan.Volume = FanVolume
	elseif Heat < FanTempAlpha then
		FanCool = 0
		radiator.Fan.Volume = 0
	end

	Load = ((script.Parent.Parent.Values.Throttle.Value*script.Parent.Parent.Values.RPM.Value*10*OverheatSpeed)/math.ceil((car.DriveSeat.Velocity.magnitude+.0000001)/100)/75000)-CoolingEfficiency
	Heat = math.max(RunningTemp,(Heat+Load)+FanCool)

	if Heat >= BlowupTemp then
		Heat = BlowupTemp
		radiator.Break:Play()
		radiator.Liquid.Volume = .5
		radiator.Oil.Enabled = true
		radiator.Antifreeze.Enabled = true
		script.Parent.Parent.IsOn.Value = false
		script.Blown.Value = true
	elseif Heat >= BlowupTemp-10 then
		radiator.Smoke.Transparency = NumberSequence.new((BlowupTemp-Heat)/10,1)
		radiator.Smoke.Enabled = true
		radiator.Steam.Volume = math.abs(((BlowupTemp-Heat)-10)/10)
	else
		radiator.Smoke.Enabled = false
		radiator.Steam.Volume = 0
	end

	script.Celsius.Value = Heat
	script.Parent.Temp.Text = math.floor(Heat).."°c"
	script.Parent.Temp.TextColor3 = Color3.fromRGB(255,255-((Heat-FanTemp)*10),255-((Heat-FanTemp)*10))
end

else

	handler:FireServer("Initialize",FanSpeed)
while wait(.2) do

	if Heat > FanTemp and Fan == true then
		FanCool = -FanSpeed
		handler:FireServer("FanVolume",FanVolume)
	else
		FanCool = 0
		handler:FireServer("FanVolume",0)
	end

	Load = ((script.Parent.Parent.Values.Throttle.Value*script.Parent.Parent.Values.RPM.Value*10*OverheatSpeed)/math.ceil((car.DriveSeat.Velocity.magnitude+.0000001)/100)/75000)-CoolingEfficiency
	Heat = math.max(RunningTemp,(Heat+Load)+FanCool)

	if Heat >= BlowupTemp then
		Heat = BlowupTemp
		handler:FireServer("Blown")
		script.Parent.Parent.IsOn.Value = false
		script.Blown.Value = true
	elseif Heat >= BlowupTemp-10 then
		handler:FireServer("Smoke",true,BlowupTemp,Heat)
	else
		handler:FireServer("Smoke",false,BlowupTemp,Heat)
	end

	script.Celsius.Value = Heat
	script.Parent.Temp.Text = math.floor(Heat).."°c"
end
end


Prompt: -- Camera mod

Response:
local Camera = require(cameraModule)

local lastUpCFrame = IDENTITYCF

Camera.UpVector = Vector3.new(0, 1, 0)
Camera.TransitionRate = 0.15
Camera.UpCFrame = IDENTITYCF

Camera.SpinPart = TERRAIN
Camera.LastSpinPart = TERRAIN
Camera.LastSpinCFrame = TERRAIN.CFrame
Camera.SpinCFrame = IDENTITYCF

function Camera:GetUpVector(oldUpVector)
	return oldUpVector
end

function Camera:CalculateUpCFrame()
	local oldUpVector = self.UpVector
	local newUpVector = self:GetUpVector(oldUpVector)

	local backup = game.Workspace.CurrentCamera.CFrame.RightVector
	local transitionCF = getRotationBetween(oldUpVector, newUpVector, backup)
	local vecSlerpCF = IDENTITYCF:Lerp(transitionCF, self.TransitionRate)

	self.UpVector = vecSlerpCF * oldUpVector
	self.UpCFrame = vecSlerpCF * self.UpCFrame

	lastUpCFrame = self.UpCFrame
end

function Camera:SetSpinPart(part)
	self.SpinPart = part
end

function Camera:CalculateSpinCFrame()
	local delta = 0
	local part = self.SpinPart

	if (part == self.LastSpinPart) then
		local lastCF = self.LastSpinCFrame

		local rotation = part.CFrame - part.CFrame.p
		local prevRotation = lastCF - lastCF.p

		local direction = rotation:VectorToObjectSpace(self.UpVector)
		delta = twistAngle(prevRotation:ToObjectSpace(rotation), direction)
	end

	self.SpinCFrame = CFrame.fromEulerAnglesYXZ(0, delta, 0)
	self.LastSpinPart = part
	self.LastSpinCFrame = part.CFrame
end

function Camera:Update(dt)
	if self.activeCameraController then
		if Camera.FFlagUserCameraToggle then
			self.activeCameraController:UpdateMouseBehavior()
		end

		local newCameraCFrame, newCameraFocus = self.activeCameraController:Update(dt)
		self.activeCameraController:ApplyVRTransform()

		self:CalculateUpCFrame()
		self:CalculateSpinCFrame()
		self.activeCameraController:UpdateUpCFrame(self.UpCFrame)

		-- undo shift-lock offset

		local lockOffset = Vector3.new(0, 0, 0)
		if (self.activeMouseLockController and self.activeMouseLockController:GetIsMouseLocked()) then
			lockOffset = self.activeMouseLockController:GetMouseLockOffset()
		end

		local offset = newCameraFocus:ToObjectSpace(newCameraCFrame)
		local camRotation = self.UpCFrame * self.SpinCFrame * offset
		newCameraFocus = newCameraFocus - newCameraCFrame:VectorToWorldSpace(lockOffset) + camRotation:VectorToWorldSpace(lockOffset)
		newCameraCFrame = newCameraFocus * camRotation

		--local offset = newCameraFocus:Inverse() * newCameraCFrame
		--newCameraCFrame = newCameraFocus * self.UpCFrame * offset

		if (self.activeCameraController.lastCameraTransform) then
			self.activeCameraController.lastCameraTransform = newCameraCFrame
			self.activeCameraController.lastCameraFocus = newCameraFocus
		end

		if self.activeOcclusionModule then
			newCameraCFrame, newCameraFocus = self.activeOcclusionModule:Update(dt, newCameraCFrame, newCameraFocus)
		end

		game.Workspace.CurrentCamera.CFrame = newCameraCFrame
		game.Workspace.CurrentCamera.Focus = newCameraFocus

		if self.activeTransparencyController then
			self.activeTransparencyController:Update()
		end
	end
end

function Camera:IsFirstPerson()
	if self.activeCameraController then
		return self.activeCameraController:InFirstPerson()
	end
	return false
end

function Camera:IsMouseLocked()
	if self.activeCameraController then
		return self.activeCameraController:GetIsMouseLocked()
	end
	return false
end

function Camera:IsToggleMode()
	if self.activeCameraController then
		return self.activeCameraController.isCameraToggle
	end
	return false
end

function Camera:IsCamRelative()
	return self:IsMouseLocked() or self:IsFirstPerson()
	--return self:IsToggleMode(), self:IsMouseLocked(), self:IsFirstPerson()
end


Prompt:
-- BEHAVIOUR
--Controller support

Response:
coroutine.wrap(function()

	-- Create PC 'Enter Controller Mode' Icon
	runService.Heartbeat:Wait() -- This is required to prevent an infinite recursion
	local Icon = require(script.Parent)
	local controllerOptionIcon = Icon.new()
		:setName("_TopbarControllerOption")
		:setOrder(100)
		:setImage("rbxassetid://5278150942")
		:setRight()
		:setEnabled(false)
		:setTip("Controller mode")
	controllerOptionIcon.deselectWhenOtherIconSelected = false

	-- This decides what controller widgets and displays to show based upon their connected inputs
	-- For example, if on PC with a controller, give the player the option to enable controller mode with a toggle
	-- While if using a console (no mouse, but controller) then bypass the toggle and automatically enable controller mode
	local function determineDisplay()
		local mouseEnabled = userInputService.MouseEnabled
		local controllerEnabled = userInputService.GamepadEnabled
		local iconIsSelected = controllerOptionIcon.isSelected
		if mouseEnabled and controllerEnabled then
			-- Show icon
			controllerOptionIcon:setEnabled(true)
		elseif mouseEnabled and not controllerEnabled then
			-- Hide icon, disableControllerMode
			controllerOptionIcon:setEnabled(false)
			IconController._enableControllerMode(false)
			controllerOptionIcon:deselect()
		elseif not mouseEnabled and controllerEnabled then
			-- Hide icon, _enableControllerMode
			controllerOptionIcon:setEnabled(false)
			IconController._enableControllerMode(true)
		end
	end
	userInputService:GetPropertyChangedSignal("MouseEnabled"):Connect(determineDisplay)
	userInputService.GamepadConnected:Connect(determineDisplay)
	userInputService.GamepadDisconnected:Connect(determineDisplay)
	determineDisplay()

	-- Enable/Disable Controller Mode when icon clicked
	local function iconClicked()
		local isSelected = controllerOptionIcon.isSelected
		local iconTip = (isSelected and "Normal mode") or "Controller mode"
		controllerOptionIcon:setTip(iconTip)
		IconController._enableControllerMode(isSelected)
	end
	controllerOptionIcon.selected:Connect(iconClicked)
	controllerOptionIcon.deselected:Connect(iconClicked)

	-- Hide/show topbar when indicator action selected in controller mode
	userInputService.InputBegan:Connect(function(input,gpe)
		if not IconController.controllerModeEnabled then return end
		if input.KeyCode == Enum.KeyCode.DPadDown then
			if not guiService.SelectedObject and checkTopbarEnabledAccountingForMimic() then
				IconController.setTopbarEnabled(true,false)
			end
		elseif input.KeyCode == Enum.KeyCode.ButtonB then
			IconController._previousSelectedObject = guiService.SelectedObject
			IconController._setControllerSelectedObject(nil)
			IconController.setTopbarEnabled(false,false)
		end
		input:Destroy()
	end)

	-- Setup overflow icons
	for alignment, detail in pairs(alignmentDetails) do
		if alignment ~= "mid" then
			local overflowName = "_overflowIcon-"..alignment
			local overflowIcon = Icon.new()
				:setImage(6069276526)
				:setName(overflowName)
				:setEnabled(false)
			detail.overflowIcon = overflowIcon
			overflowIcon.accountForWhenDisabled = true
			if alignment == "left" then
				overflowIcon:setOrder(math.huge)
				overflowIcon:setLeft()
				overflowIcon:set("dropdownAlignment", "right")
			elseif alignment == "right" then
				overflowIcon:setOrder(-math.huge)
				overflowIcon:setRight()
				overflowIcon:set("dropdownAlignment", "left")
			end
			overflowIcon.lockedSettings = {
				["iconImage"] = true,
				["order"] = true,
				["alignment"] = true,
			}
		end
	end
end)()


Prompt: --[[Engine]]

Response:
	--Torque Curve
	Tune.Horsepower		= 278		--	[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

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

	--Misc
	Tune.RevAccel		= 150		-- RPM acceleration when clutch is off
	Tune.RevDecay		= 75		-- 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)


Prompt: --[[Weight and CG]]

Response:
	Tune.Weight			= 5000		-- Total weight (in pounds)
	Tune.WeightBSize	= {			-- Size of weight brick (dimmensions in studs ; larger = more stable)
	 --[[Width]]		6.8		,
	 --[[Height]]		6.2		,
	 --[[Length]]		16		}
	Tune.WeightDist		= 51		-- Weight distribution (0 - on rear wheels, 100 - on front wheels, can be <0 or >100)
	Tune.CGHeight		= .8		-- Center of gravity height (studs relative to median of all wheels)
	Tune.WBVisible		= false		-- Makes the weight brick visible

	--Unsprung Weight
	Tune.FWheelDensity	= .35		-- Front Wheel Density
	Tune.RWheelDensity	= .35		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 3.5			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 3.5			-- Rear Wheel Density [PGS OFF]

	Tune.AxleSize		= 2			-- Size of structural members (larger = MORE STABLE / carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members

	--Unsprung Weight
	Tune.FWheelDensity	= .1		-- Front Wheel Density
	Tune.RWheelDensity	= .1		-- Rear Wheel Density
	Tune.FWLgcyDensity	= 1			-- Front Wheel Density [PGS OFF]
	Tune.RWLgcyDensity	= 1			-- Rear Wheel Density [PGS OFF]

	Tune.AxleSize		= 2			-- Size of structural members (larger = more stable/carry more weight)
	Tune.AxleDensity	= .1		-- Density of structural members


Prompt: --get member data associated with a roblox entity

Response:
local PublicMembers = {}

local Data = {}

script.SyncMember.OnClientEvent:connect(function(object,memberName,value)

	if not Data[object] then
		Data[object] = {}
	end
	Data[object][memberName] = value

	script.PublicMemberChanged:Fire(object,memberName,value)
end)

function PublicMembers:GetMemberValue(object,memberName)
	if Data[object] then
		return Data[object][memberName]
	end
end

return PublicMembers


Prompt: --// Anti-Exploit

Response:
return function(Vargs)
	local server = Vargs.Server;
	local service = Vargs.Service;

	local Functions, Admin, Anti, Core, HTTP, Logs, Remote, Process, Variables, Settings
	local function Init()
		Functions = server.Functions;
		Admin = server.Admin;
		Anti = server.Anti;
		Core = server.Core;
		HTTP = server.HTTP;
		Logs = server.Logs;
		Remote = server.Remote;
		Process = server.Process;
		Variables = server.Variables;
		Settings = server.Settings;

		Logs:AddLog("Script", "AntiExploit Module Initialized")
	end;

	server.Anti = {
		Init = Init;
		SpoofCheckCache = {};
		RemovePlayer = function(p, info)
			info = info or "No Reason Given"
			pcall(function() service.UnWrap(p):Kick(tostring(info)) end)
			--pcall(function() Remote.Send(p,"Function","Kill") end)
			wait(1)
			pcall(p.Destroy, p)
			pcall(service.Delete, p)
			Logs.AddLog("Script",{
				Text = "Server removed "..tostring(p);
				Desc = tostring(info);
			})
		end;

		UserSpoofCheck = function(p)
			--// Supplied by BetterAccount
			if not service.RunService:IsStudio() then
				local userService = service.UserService;
				local success,err = pcall(function()
					local userInfo = Anti.SpoofCheckCache[p.UserId] or userService:GetUserInfosByUserIdsAsync({p.UserId})
					local data = userInfo and userInfo[1];

					Anti.SpoofCheckCache[p.UserId] = userInfo;

					if data and data.Id == p.UserId then
						if p.Name ~= data.Username or p.DisplayName ~= data.DisplayName then
							return true
						end
					else
						for i,user in next,userInfo do
							if user.Id == p.UserId then
								if p.Name ~= user.Username or p.DisplayName ~= user.DisplayName then
									return true
								end
							end
						end
					end
				end)

				if not success then
					warn("Failed to check validity of player's name, reason: ".. tostring(err))
				end
			end
		end;

		Sanitize = function(obj, classList)
			if Anti.RLocked(obj) then
				pcall(service.Delete, obj)
			else
				for i,child in next,obj:GetChildren() do
					if Anti.RLocked(child) or Functions.IsClass(child, classList) then
						pcall(service.Delete, child)
					else
						pcall(Anti.Sanitize, child, classList)
					end
				end
			end
		end;

		isFake = function(p)
			if Anti.ObjRLocked(p) or not p:IsA("Player") then
				return true,1
			else
				local players = service.Players:GetChildren()
				local found = 0

				if service.NetworkServer then
					local net = false
					for i,v in pairs(service.NetworkServer:GetChildren()) do
						if v:IsA("NetworkReplicator") and v:GetPlayer() == p then
							net = true
						end
					end
					if not net then
						return true,1
					end
				end

				for i,v in pairs(players) do
					if tostring(v) == tostring(p) then
						found = found+1
					end
				end

				if found>1 then
					return true,found
				else
					return false
				end
			end
		end;

		RemoveIfFake = function(p)
			local isFake
			local ran,err = pcall(function() isFake = Anti.isFake(p) end)
			if isFake or not ran then
				Anti.RemovePlayer(p)
			end
		end;

		FindFakePlayers = function()
			for i,v in pairs(service.Players:GetChildren()) do
				if Anti.isFake(v) then
					Anti.RemovePlayer(v, "Fake")
				end
			end
		end;

		GetClassName = function(obj)
			local testName = tostring(math.random()..math.random())
			local ran,err = pcall(function()
				local test = obj[testName]
			end)
			if err then
				local class = err:match(testName.." is not a valid member of (.*)")
				if class then
					return class
				end
			end
		end;

		RLocked = function(obj)
			return not pcall(function() return obj.GetFullName(obj) end)
			--[[local ran,err = pcall(function() service.New("StringValue", obj):Destroy() end)
			if ran then
				return false
			else
				return true
			end--]]
		end;

		ObjRLocked = function(obj)
			return not pcall(function() return obj.GetFullName(obj) end)
			--[[local ran,err = pcall(function() obj.Parent = obj.Parent end)
			if ran then
				return false
			else
				return true
			end--]]
		end;

		AssignName = function()
			local name = math.random(100000,999999)
			return name
		end;

		Detected = function(player,action,info)
			local info = string.gsub(tostring(info), "\n", "")

			if Core.DebugMode or service.RunService:IsStudio() then
				warn("ANTI-EXPLOIT: "..player.Name.." "..action.." "..info)
			elseif service.NetworkServer then
				if player then
					if action:lower() == 'log' then
						-- yay?
					elseif action:lower() == 'kick' then
						Anti.RemovePlayer(player, info)
						--player:Kick("Adonis; Disconnected by server; \n"..tostring(info))
					elseif action:lower() == 'kill' then
						player.Character:BreakJoints()
					elseif action:lower() == 'crash' then
						Remote.Send(player,'Function','Kill')
						wait(5)
						pcall(function()
							local scr = Core.NewScript("LocalScript",[[while true do end]])
							scr.Parent = player.Backpack
							scr.Disabled = false
						end)

						Anti.RemovePlayer(player, info)
					else
						-- fake log (thonk?)
						Anti.Detected(player, "Kick", "Spoofed log")
						return;
					end
				end
			end

			Logs.AddLog(Logs.Script,{
				Text = "AE Detected "..tostring(player);
				Desc = "The Anti-Exploit system detected strange activity from "..tostring(player);
				Player = player;
			})

			Logs.AddLog(Logs.Exploit,{
				Text = "[Action: "..tostring(action).." User: (".. tostring(player) ..")] ".. tostring(info:sub(1, 50)) .. " (Mouse over full info)";
				Desc = tostring(info);
				Player = player;
			})
		end;

		CheckNameID = function(p)
			if p.userId > 0 and p.userId ~= game.CreatorId and p.Character then
				local realId = service.Players:GetUserIdFromNameAsync(p.Name) or p.userId
				local realName = service.Players:GetNameFromUserIdAsync(p.userId) or p.Name

				if realName and realId then
					if (tonumber(realId) and realId~=p.userId) or (tostring(realName)~="nil" and realName~=p.Name) then
						Anti.Detected(p,'log','Name/UserId does not match')
					end

					Remote.Send(p,"LaunchAnti","NameId",{RealID = realId; RealName = realName})
				end
			end
		end;
	};
end


Prompt: -- reloading

Response:
GUI.MobileButtons.ReloadButton.MouseButton1Click:connect(function()
    Reload()
end)


Prompt: --		child.C0 = CFrame.new(0,-0.6,0)*CFrame.fromEulerAnglesXYZ(-(math.pi/2),0,0) --// Reposition player

Response:
		if child.Part1.Name == "HumanoidRootPart" then
			player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			if player and (not player.PlayerGui:FindFirstChild("Screen")) then --// The part after the "and" prevents multiple GUI's to be copied over.
				GUI.CarSeat.Value = script.Parent --// Puts a reference of the seat in this ObjectValue, now you can use this ObjectValue's value to find the car directly.
				GUI:Clone().Parent = player.PlayerGui --// Compact version
				script.Parent.Occupied.Value = true
				if script.Parent.L.Value == true then
					wait()
					script.Parent.Disabled = true
					wait()
					script.Parent.Disabled = false
				end
			end
		end
	end
end)

script.Parent.ChildRemoved:connect(function(child)
	if child:IsA("Weld") then
		if child.Part1.Name == "HumanoidRootPart" then
			game.Workspace.CurrentCamera.FieldOfView = 70
			player = game.Players:GetPlayerFromCharacter(child.Part1.Parent)
			if player and player.PlayerGui:FindFirstChild("SS3") then
				player.PlayerGui:FindFirstChild("SS3"):Destroy()
				script.Parent.Occupied.Value = false
			end
		end
	end
end)


Prompt:
-- function SliderClass.Create(axis)
-- 	local slider = nil


Prompt: --Tweens

Response:
local OpenTween = TweenService:Create(Hinge,OpenTweenInfo,{CFrame = OpenHinge.CFrame})
local CloseTween = TweenService:Create(Hinge,CloseTweenInfo,{CFrame = ClosedHinge.CFrame})


Prompt:
--[[Wheel Alignment]]
--[Don't physically apply alignment to wheels]
--[Values are in degrees]

Response:
Tune.FCamber		= 1.5
Tune.RCamber		= 1.5
Tune.FToe			= 0
Tune.RToe			= 0


Prompt: -- Turns off body orientation. Developer-facing.

Response:
function BodyOrientation.disable()
	if not enabled then
		return
	end

	playerAddedConnection:Disconnect()
	playerRemovingConnection:Disconnect()
	for _, player in ipairs(Players:GetChildren()) do
		onPlayerRemoving(player)
	end

	enabled = false
end

return BodyOrientation


Prompt: -- This stops all of the public Adonis bypasses. Though they would still be detected in time but it may be better to kick them before load??

Response:
do
	local game = game
	local task_spawn, xpcall, require, task_wait
		= task.spawn, xpcall, require, task.wait
	local Players =  game:FindFirstChildWhichIsA("Players") or game:FindService("Players")
	local localPlayer = Players.LocalPlayer
	local triggered = false

	local function loadingDetected(reason)
		(localPlayer or Players.LocalPlayer):Kick(`:: Adonis Loader - Security ::\n{reason}`)
		while true do end
	end

	task_spawn(xpcall, function()
		local exampleService = game:GetService("Workspace") or game:GetService("ReplicatedStorage")
		local success, err = pcall(require, game)

		if not exampleService then
			task_spawn(xpcall, function() loadingDetected("Service not returning") end, function(err) loadingDetected(err) end)
			while true do end
		end

		if success or not string.match(err, "^Attempted to call require with invalid argument%(s%)%.$") then
			task_spawn(xpcall, function() loadingDetected(`Require load fail. {err}`) end, function(err) loadingDetected(err) end)
			while true do end
		end

		triggered = true
	end, function(err) task_spawn(loadingDetected, err) while true do end end)

	task_spawn(xpcall, function()
		task_wait()
		task_wait()

		if not triggered then
			task_spawn(xpcall, function() loadingDetected(`Loading detectors failed to load{triggered}`) end, function(err) loadingDetected(err) end)
			while true do end
		end
	end, function(err) task_spawn(loadingDetected, err) while true do end end)
end

local players = game:GetService("Players");
local player = players.LocalPlayer;
local folder = script.Parent;
local container = folder.Parent;
local Kick = player.Kick;
local module = folder:WaitForChild("Client");
local target = player;
local realPrint = print;
local realWarn = warn;
local start = time();

local function print(...)
	--realPrint(...)
end

local function warn(str)
	if DebugMode or player.UserId == 1237666 then
		realWarn(`ACLI: {str}`)
	end
end

local function Kill(info)
	if DebugMode then warn(info) return end
	pcall(function() Kick(player, info) end)
	wait(1)
	pcall(function() while not DebugMode and wait() do pcall(function() while true do end end) end end)
end

local function Locked(obj)
	return (not obj and true) or not pcall(function() return obj.GetFullName(obj) end)
end

local function loadingTime()
	warn("LoadingTime Called")
	setfenv(1,{})
	warn(tostring(time() - start))
end

local function callCheck(child)
	warn(`CallCheck: {child}`)
	if Locked(child) then
		warn("Child locked?")
		Kill("ACLI: Locked")
	else
		warn("Child not locked")
		xpcall(function()
			return child[{}]
		end, function()
			if getfenv(1) ~= getfenv(2) then
				Kill("ACLI: Error")
			end
		end)
	end
end

local function doPcall(func, ...)
	local ran,ret = pcall(func, ...)
	if ran then
		return ran,ret
	else
		warn(tostring(ret))
		Kill(`ACLI: Error\n{ret}`)
		return ran,ret
	end
end

if module and module:IsA("ModuleScript") then
	warn("Loading Folder...")
	local nameVal
	local origName
	local depsFolder
	local clientModule

	warn("Waiting for Client & Special")
	nameVal = folder:WaitForChild("Special", 30)

	warn("Checking Client & Special")
	--callCheck(nameVal)
	--callCheck(clientModule)

	warn("Getting origName")
	origName = (nameVal and nameVal.Value) or folder.Name
	warn(`Got name: {origName}`)

	warn("Removing old client folder...")
	local starterPlayer = game:GetService("StarterPlayer");
	local playerScripts = starterPlayer:FindFirstChildOfClass("StarterPlayerScripts");
	local found = playerScripts:FindFirstChild(folder.Name);
	warn(`FOUND?! {found}`);
	warn(`LOOKED FOR : {folder.Name}`)
	if found then
		print("REMOVED!")
		found.Parent = nil --found:Destroy();
	end
	--// Sometimes we load a little too fast and generate a warning from Roblox so we need to introduce some (minor) artificial loading lag...
	warn("Changing child parent...")
	folder.Name = "";
	wait(0.01);
	folder.Parent = nil; --// We cannot do this assynchronously or it will disconnect events that manage to connect before it changes parent to nil...

	warn("Destroying parent...")

	print("Debug: Loading the client?")
	local meta = require(module)
	warn(`Got metatable: {meta}`)
	if meta and type(meta) == "userdata" and tostring(meta) == "Adonis" then
		local ran,ret = pcall(meta,{
			Module = module,
			Start = start,
			Loader = script,
			Name = origName,
			Folder = folder;
			LoadingTime = loadingTime,
			CallCheck = callCheck,
			Kill = Kill
		})

		warn(`Got return: {ret}`)
		if ret ~= "SUCCESS" then
			realWarn(ret)
			Kill("ACLI: Loading Error [Bad Module Return]")
		else
			print("Debug: The client was found and loaded?")
			warn("Client Loaded")

			if container and container:IsA("ScreenGui") then
				container.Parent = nil --container:Destroy();
			end
		end
	end
end


Prompt: -- constants

Response:
local PLAYER_DATA	= ReplicatedStorage:WaitForChild("PlayerData")
local PLAYER		= Players.LocalPlayer


Prompt: -- Updates metadata for one merch item, given its asset id

Response:
local function updateItemInfo(itemId: string, info: types.ItemInfo)
	return {
		itemId = itemId,
		info = info,
	}
end

return Rodux.makeActionCreator(script.Name, updateItemInfo)


Prompt: --AI Booleans

Response:
local attackCool = true
local chasing = false
local pathFailCount = 0


Prompt: -- script inside the NPC

Response:
local humanoid = script.Parent.Humanoid
local replicatedStorage = game:GetService("ReplicatedStorage")
local lootFolder = replicatedStorage.Loot
local dropChance = 100

local function onDeath()
	local randomChance = math.random(1, dropChance)
	if randomChance == 100 then
		local randomItem = lootFolder:GetChildren()[math.random(1, #lootFolder:GetChildren())]:Clone()
		local player = game.Players:GetPlayerFromCharacter(humanoid.Parent)
		if player then
			randomItem.Parent = player.Backpack
			local gui = Instance.new("ScreenGui", player.PlayerGui)
			local imageLabel = Instance.new("ImageLabel", gui)
			imageLabel.Size = UDim2.new(0, 200, 0, 200)
			imageLabel.Position = UDim2.new(0.5, -100, 0.5, -100)
			imageLabel.Image = randomItem.ImageId
			task.wait(3)
			gui:Destroy()
		end
	end
end

humanoid.Died:Connect(onDeath)


Prompt: -- Sample assumes a Main Portal Template and Image Ad Unit 1 model exists under Workspace

Response:
local mainPortal = Workspace:WaitForChild("Main Portal Template")
local mainImageAdUnit = Workspace:WaitForChild("Image Ad Unit 1")


Prompt: -- do not touch --

Response:
local parent = script.Parent.Parent.LoadingScreen
local first = game.ReplicatedFirst
parent.Parent = first
script:Destroy()


Response:
local plane = script.Parent.Plane.Value
local cam = workspace.CurrentCamera
local player = game.Players.LocalPlayer
local CamV = "third"
local run = false
local AimPart = plane.AimPart
local input = game:GetService("UserInputService")
local Settings = require(plane.Parent.Settings.Config)
cam.CameraSubject = plane.PilotSeat


Response:
end
wait(0.15)

until game.Workspace.DoorFlashing.Value == false

end

end
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)


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.ScarySword -- 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:
--[=[
	@tag Component Instance
	@within Component
	@prop Instance Instance

	A reference back to the _Roblox_ instance from within a _component_ instance. When
	a component instance is created, it is bound to a specific Roblox instance, which
	will always be present through the `Instance` property.

	```lua
	MyComponent.Started:Connect(function(component)
		local robloxInstance: Instance = component.Instance
		print("Component is bound to " .. robloxInstance:GetFullName())
	end)
	```
]=]

Response:
local CollectionService = game:GetService("CollectionService")
local RunService = game:GetService("RunService")

local Signal = require(script.Parent.Signal)
local Symbol = require(script.Parent.Symbol)
local Trove = require(script.Parent.Trove)
local Promise = require(script.Parent.Promise)

local IS_SERVER = RunService:IsServer()
local DEFAULT_ANCESTORS = {workspace, game:GetService("Players")}
local DEFAULT_TIMEOUT = 60


Prompt:
----------------
--[[SETTINGS]]--
----------------

Response:
local ViewAccessories = true
local ViewHeadAccessories = false
local RealisticView = true
local AutoLockFirstPerson = false


Prompt:
--[=[
	@param inboundMiddleware ClientMiddleware?
	@param outboundMiddleware ClientMiddleware?
	@return table
	Returns an object which maps RemoteFunctions as methods
	and RemoteEvents as fields.
	```lua
	-- Server-side:
	serverComm:BindFunction("Test", function(player) end)
	serverComm:CreateSignal("MySignal")

	-- Client-side
	local obj = clientComm:BuildObject()
	obj:Test()
	obj.MySignal:Connect(function() end)
	```
]=]

Response:
function ClientComm:BuildObject(inboundMiddleware: ClientMiddleware?, outboundMiddleware: ClientMiddleware?)
	local obj = {}
	local rfFolder = self._instancesFolder:FindFirstChild("RF")
	local reFolder = self._instancesFolder:FindFirstChild("RE")
	if rfFolder then
		for _,rf in ipairs(rfFolder:GetChildren()) do
			if not rf:IsA("RemoteFunction") then continue end
			local f = self:GetFunction(rf.Name, inboundMiddleware, outboundMiddleware)
			obj[rf.Name] = function(_self, ...)
				return f(...)
			end
		end
	end
	if reFolder then
		for _,re in ipairs(reFolder:GetChildren()) do
			if not re:IsA("RemoteEvent") then continue end
			obj[re.Name] = self:GetSignal(re.Name, inboundMiddleware, outboundMiddleware)
		end
	end
	return obj
end


Prompt: -- Concatenate these two tables, return result.

Response:
function CommonUtil.TableConcat(t1,t2)
	for i=1,#t2 do
		t1[#t1+1] = t2[i]
	end
	return t1
end


Response:
gui.Track.Text = radio.TName.Value
radio.TName.Changed:connect(function()
	gui.Track.Text = radio.TName.Value
	seat.Parent.Body.Dash.Screen.G.Song.Text = radio.TName.Value
	seat.Parent.Body.Dash.RL.G.Song.Text = radio.TName.Value
	seat.Parent.Misc.SFR.RR.G.Song.Text = radio.TName.Value
end)
gui.Stop.MouseButton1Click:connect(function()
	if radio.Stopped.Value == false then
		radio.Stopped.Value = true
	end
end)
gui.Pause.MouseButton1Click:connect(function()
	if radio.Paused.Value == false and radio.Stopped.Value == false then
		radio.Paused.Value = true
	end
end)
gui.Play.MouseButton1Click:connect(function()
	if radio.Stopped.Value == true then
		radio.Play.Value = not radio.Play.Value
	else
		if radio.Paused.Value == true then
			radio.Paused.Value = false
		end
	end
end)
gui.Forward.MouseButton1Click:connect(function()
	local n = radio.Track.Value+1
	if n>#radio.Songs:GetChildren() then
		n = 1
	end
	radio.Track.Value = n
end)
gui.Back.MouseButton1Click:connect(function()
	local n = radio.Track.Value-1
	if n<=0 then
		n = #radio.Songs:GetChildren()
	end
	radio.Track.Value = n
end)
gui.AutoplayOn.MouseButton1Click:connect(function()
	if radio.Autoplay.Value == true then
		radio.Autoplay.Value = false
	end
end)
gui.AutoplayOff.MouseButton1Click:connect(function()
	if radio.Autoplay.Value == false then
		radio.Autoplay.Value = true
	end
end)
gui.List.MouseButton1Click:connect(function()
	gui.Menu.Visible=not gui.Menu.Visible
end)
gui.Id.MouseButton1Click:connect(function()
	gui.IdPlayer.Visible=not gui.IdPlayer.Visible
	if gui.IdPlayer.Visible then gui.Id.Rotation=180 else gui.Id.Rotation=0 end
end)
gui.IdPlayer.Play.MouseButton1Click:connect(function()
	if radio.IdPlay.Value==gui.IdPlayer.TextBox.Text then
		radio.IdPlay.Value=""
	wait()
	end
	radio.IdPlay.Value=gui.IdPlayer.TextBox.Text
end)
for i,v in pairs(gui.Menu:GetChildren()) do
	v.MouseButton1Click:connect(function()
		radio.Track.Value = i
	end)
end
function Stopped()
	if radio.Stopped.Value == true then
		gui.Pause.Visible = false
		gui.Play.Visible = true
	else
		gui.Play.Visible = false
		gui.Pause.Visible = true
	end
end
function Paused()
	if radio.Paused.Value == true then
		gui.Pause.Visible = false
		gui.Play.Visible = true
	else
		if radio.Stopped.Value == false then
			gui.Play.Visible = false
			gui.Pause.Visible = true
		end
	end
end
function Autoplay()
	if radio.Autoplay.Value == true then
		gui.AutoplayOff.Visible = false
		gui.AutoplayOn.Visible = true
	else
		gui.AutoplayOn.Visible = false
		gui.AutoplayOff.Visible = true
	end
end
radio.Stopped.Changed:connect(Stopped)
radio.Paused.Changed:connect(Paused)
radio.Autoplay.Changed:connect(Autoplay)
Stopped()
Paused()
Autoplay()
while wait(.5) do
	if seat:FindFirstChild("SeatWeld") == nil then
		script.Parent:Destroy()
	end
end


Prompt: --[[ Public API ]]

Response:
--
function Thumbstick:Enable()
	ThumbstickFrame.Visible = true
end

function Thumbstick:Disable()
	ThumbstickFrame.Visible = false
	OnTouchEnded()
end

function Thumbstick:Create(parentFrame)
	if ThumbstickFrame then
		ThumbstickFrame:Destroy()
		ThumbstickFrame = nil
		if OnTouchMovedCn then
			OnTouchMovedCn:disconnect()
			OnTouchMovedCn = nil
		end
		if OnTouchEndedCn then
			OnTouchEndedCn:disconnect()
			OnTouchEndedCn = nil
		end
	end

	local isSmallScreen = parentFrame.AbsoluteSize.y <= 500
	local thumbstickSize = isSmallScreen and 70 or 120
	local position = isSmallScreen and UDim2.new(0, (thumbstickSize/2) - 10, 1, -thumbstickSize - 20) or
		UDim2.new(0, thumbstickSize/2, 1, -thumbstickSize * 1.75)

	ThumbstickFrame = Instance.new('Frame')
	ThumbstickFrame.Name = "ThumbstickFrame"
	ThumbstickFrame.Active = true
	ThumbstickFrame.Visible = false
	ThumbstickFrame.Size = UDim2.new(0, thumbstickSize, 0, thumbstickSize)
	ThumbstickFrame.Position = position
	ThumbstickFrame.BackgroundTransparency = 1

	local outerImage = Instance.new('ImageLabel')
	outerImage.Name = "OuterImage"
	outerImage.Image = TOUCH_CONTROL_SHEET
	outerImage.ImageRectOffset = Vector2.new()
	outerImage.ImageRectSize = Vector2.new(220, 220)
	outerImage.BackgroundTransparency = 1
	outerImage.Size = UDim2.new(0, thumbstickSize, 0, thumbstickSize)
	outerImage.Position = UDim2.new(0, 0, 0, 0)
	outerImage.Parent = ThumbstickFrame

	StickImage = Instance.new('ImageLabel')
	StickImage.Name = "StickImage"
	StickImage.Image = TOUCH_CONTROL_SHEET
	StickImage.ImageRectOffset = Vector2.new(220, 0)
	StickImage.ImageRectSize = Vector2.new(111, 111)
	StickImage.BackgroundTransparency = 1
	StickImage.Size = UDim2.new(0, thumbstickSize/2, 0, thumbstickSize/2)
	StickImage.Position = UDim2.new(0, thumbstickSize/2 - thumbstickSize/4, 0, thumbstickSize/2 - thumbstickSize/4)
	StickImage.ZIndex = 2
	StickImage.Parent = ThumbstickFrame

	local centerPosition = nil
	local deadZone = 0.05
	local function doMove(direction)
		MasterControl:AddToPlayerMovement(-currentMoveVector)

		currentMoveVector = direction / (thumbstickSize/2)

		-- Scaled Radial Dead Zone
		local inputAxisMagnitude = currentMoveVector.magnitude
		if inputAxisMagnitude < deadZone then
			currentMoveVector = Vector3.new()
		else
			currentMoveVector = currentMoveVector.unit * ((inputAxisMagnitude - deadZone) / (1 - deadZone))
			-- NOTE: Making currentMoveVector a unit vector will cause the player to instantly go max speed
			-- must check for zero length vector is using unit
			currentMoveVector = Vector3.new(currentMoveVector.x, 0, currentMoveVector.y)
		end

		MasterControl:AddToPlayerMovement(currentMoveVector)
	end

	local function moveStick(pos)
		local relativePosition = Vector2.new(pos.x - centerPosition.x, pos.y - centerPosition.y)
		local length = relativePosition.magnitude
		local maxLength = ThumbstickFrame.AbsoluteSize.x/2
		if IsFollowStick and length > maxLength then
			local offset = relativePosition.unit * maxLength
			ThumbstickFrame.Position = UDim2.new(
				0, pos.x - ThumbstickFrame.AbsoluteSize.x/2 - offset.x,
				0, pos.y - ThumbstickFrame.AbsoluteSize.y/2 - offset.y)
		else
			length = math.min(length, maxLength)
			relativePosition = relativePosition.unit * length
		end
		StickImage.Position = UDim2.new(0, relativePosition.x + StickImage.AbsoluteSize.x/2, 0, relativePosition.y + StickImage.AbsoluteSize.y/2)
	end

	-- input connections
	ThumbstickFrame.InputBegan:connect(function(inputObject)
		if MoveTouchObject or inputObject.UserInputType ~= Enum.UserInputType.Touch then
			return
		end

		MoveTouchObject = inputObject
		ThumbstickFrame.Position = UDim2.new(0, inputObject.Position.x - ThumbstickFrame.Size.X.Offset/2, 0, inputObject.Position.y - ThumbstickFrame.Size.Y.Offset/2)
		centerPosition = Vector2.new(ThumbstickFrame.AbsolutePosition.x + ThumbstickFrame.AbsoluteSize.x/2,
			ThumbstickFrame.AbsolutePosition.y + ThumbstickFrame.AbsoluteSize.y/2)
		local direction = Vector2.new(inputObject.Position.x - centerPosition.x, inputObject.Position.y - centerPosition.y)
		moveStick(inputObject.Position)
	end)

	OnTouchMovedCn = UserInputService.TouchMoved:connect(function(inputObject, isProcessed)
		if inputObject == MoveTouchObject then
			centerPosition = Vector2.new(ThumbstickFrame.AbsolutePosition.x + ThumbstickFrame.AbsoluteSize.x/2,
				ThumbstickFrame.AbsolutePosition.y + ThumbstickFrame.AbsoluteSize.y/2)
			local direction = Vector2.new(inputObject.Position.x - centerPosition.x, inputObject.Position.y - centerPosition.y)
			doMove(direction)
			moveStick(inputObject.Position)
		end
	end)

	OnTouchEnded = function()
		ThumbstickFrame.Position = position
		StickImage.Position = UDim2.new(0, ThumbstickFrame.Size.X.Offset/2 - thumbstickSize/4, 0, ThumbstickFrame.Size.Y.Offset/2 - thumbstickSize/4)
		MoveTouchObject = nil

		MasterControl:AddToPlayerMovement(-currentMoveVector)
		currentMoveVector = Vector3.new(0,0,0)
	end

	OnTouchEndedCn = UserInputService.TouchEnded:connect(function(inputObject, isProcessed)
		if inputObject == MoveTouchObject then
			OnTouchEnded()
		end
	end)

	ThumbstickFrame.Parent = parentFrame
end

return Thumbstick


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

function Signal.new()
	local self = setmetatable({
		_bindable = Instance.new("BindableEvent");
		_connections = {};
		_args = {};
		_threads = 0;
		_id = 0;
	}, Signal)
	return self
end

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

function Signal:Fire(...)
	local id = self._id
	self._id = self._id + 1
	self._args[id] = {#self._connections + self._threads, {n = select("#", ...), ...}}
	self._threads = 0
	self._bindable:Fire(id)
end

function Signal:Wait()
	self._threads = self._threads + 1
	local id = self._bindable.Event:Wait()
	local args = self._args[id]
	args[1] = args[1] - 1
	if (args[1] <= 0) then
		self._args[id] = nil
	end
	return table.unpack(args[2], 1, args[2].n)
end

function Signal:Connect(handler)
	local connection = Connection.new(self, self._bindable.Event:Connect(function(id)
		local args = self._args[id]
		args[1] = args[1] - 1
		if (args[1] <= 0) then
			self._args[id] = nil
		end
		handler(table.unpack(args[2], 1, args[2].n))
	end))
	table.insert(self._connections, connection)
	return connection
end

function Signal:DisconnectAll()
	for _,c in ipairs(self._connections) do
		if (c._conn) then
			c._conn:Disconnect()
		end
	end
	self._connections = {}
	self._args = {}
end

function Signal:Destroy()
	self:DisconnectAll()
	self._bindable:Destroy()
end

return Signal


Prompt:
--[=[
	@param obj any
	@return boolean
	Returns `true` if `obj` is an Option.
]=]

Response:
function Option.Is(obj)
	return type(obj) == "table" and getmetatable(obj) == Option
end


Prompt:
--======================================--
--==============Weld Creation(WCR)==============--
--======================================--

Response:
function onChanged()
local w1 = Instance.new("Weld")
local w2 = Instance.new("Weld")
local w3 = Instance.new("Weld")
local w4 = Instance.new("Weld")
local w5 = Instance.new("Weld")
local w6 = Instance.new("Weld")
local w7 = Instance.new("Weld")
local w8 = Instance.new("Weld")
local w9 = Instance.new("Weld")
local w10 = Instance.new("Weld")
local w11 = Instance.new("Weld")
local w12 = Instance.new("Weld")


Prompt:
--end
--if TurnValues.TurnSignal1.Value == 2 then

Response: TurnValues.TurnSignal1.Value = 3


Prompt: -- Legacy implementation renamed

Response:
function CameraUtils.GetAngleBetweenXZVectors(v1: Vector3, v2: Vector3): number
	return math.atan2(v2.X*v1.Z-v2.Z*v1.X, v2.X*v1.X+v2.Z*v1.Z)
end

function CameraUtils.RotateVectorByAngleAndRound(camLook: Vector3, rotateAngle: number, roundAmount: number): number
	if camLook.Magnitude > 0 then
		camLook = camLook.unit
		local currAngle = math.atan2(camLook.z, camLook.x)
		local newAngle = round((math.atan2(camLook.z, camLook.x) + rotateAngle) / roundAmount) * roundAmount
		return newAngle - currAngle
	end
	return 0
end


Prompt:
--- Internal function that returns a point type
-- @param group string name
-- @param castMode numeric enum value
-- @param lastPosition Vector3 value

Response:
function Hitbox:_CreatePoint(group: string?, castMode: number, lastPosition: Vector3?): Point
	return {
		Group = group,
		CastMode = castMode,
		LastPosition = lastPosition,
		WorldSpace = nil,
		Instances = {},
	}
end


Prompt: -- Construct skydive button indicator GUI

Response:
local function createIndicatorImage(imageId)
	local image = Instance.new("ImageLabel")
	image.Image = imageId
	image.BackgroundTransparency = 1
	image.Size = UDim2.new(0, 100, 0, 100)
	return image
end

local Skydiver = {}
Skydiver.__index = Skydiver

function Skydiver:setOnDisabled(cb)
	self.onDisabled = cb
end

function Skydiver.new()
	local self = setmetatable({}, Skydiver)

	self.enabled = false
	self.enabledTime = 0

	self.straightDive = false

	self.character = nil
	self.humanoid = nil
	self.humanoidRootPart = nil

	self.autoDeploy = true
	self.onlyAutoDeployOnce = true

	self.waitingForJump = false
	self.didJump = false
	self.Jumped = Instance.new("BindableEvent")

	self.freefallAnimation = nil
	self.fallAnimationAsset = Instance.new("Animation")
	self.fallAnimationAsset.AnimationId = "rbxassetid://616087089"

	self.onClientEventConn = nil

	--[[
		Character management
	]]

	local character = localPlayer.Character
	if character then
		self:onCharacterAdded(character)
	end

	localPlayer.CharacterAdded:Connect(function(char)
		self:onCharacterAdded(char)
	end)

	--[[
		User Interface
	]]

	-- The skydiver prompt is an optional dependency.
	-- Only create a skydiver prompt if the depedency was provided.
	if Skydiver.ActionPromptGui then
		local actionPromptImages = {
			keyboard = createIndicatorImage("rbxassetid://2032127907"),
			gamepad = createIndicatorImage("rbxassetid://2032438935"),
			touch = createIndicatorImage("rbxassetid://3869394984"),
		}

		self.actionPromptGui = Skydiver.ActionPromptGui.new("", "To Skydive", actionPromptImages)
	end

	return self
end

function Skydiver:createContrail(part)
	local contrail = BeamTemplate:Clone()
	contrail.Name = part.Name
	contrail.BeamHolder.Position = part.Position
	contrail.BeamPart.Position = part.Position
	contrail.WeldConstraint.Part1 = part
	contrail.BeamPart.HeightBodyPosition.Position = part.Position + Vector3.new(0,30,0)
	contrail.Parent = self.character
	return contrail
end

function Skydiver:setupContrails()
	if not self.humanoidRootPart then return end

	self.LeftFootBeam = self:createContrail(self.character:WaitForChild("LeftFoot"))
	self.RightFootBeam = self:createContrail(self.character:WaitForChild("RightFoot"))
	self.LeftHandBeam = self:createContrail(self.character:WaitForChild("LeftHand"))
	self.RightHandBeam = self:createContrail(self.character:WaitForChild("RightHand"))
end

function Skydiver:destroyContrails()
	if self.LeftFootBeam then
		self.LeftFootBeam:Destroy()
		self.LeftFootBeam = nil
	end
	if self.RightFootBeam then
		self.RightFootBeam:Destroy()
		self.RightFootBeam = nil
	end
	if self.LeftHandBeam then
		self.LeftHandBeam:Destroy()
		self.LeftHandBeam = nil
	end
	if self.RightHandBeam then
		self.RightHandBeam:Destroy()
		self.RightHandBeam = nil
	end
end

function Skydiver:disableContrails()
	self.LeftFootBeam.Beam.Enabled = false
	self.RightFootBeam.Beam.Enabled = false
	self.LeftHandBeam.Beam.Enabled = false
	self.RightHandBeam.Beam.Enabled = false
end

function Skydiver:enableContrails()
	self.LeftFootBeam.Beam.Enabled = true
	self.RightFootBeam.Beam.Enabled = true
	self.LeftHandBeam.Beam.Enabled = true
	self.RightHandBeam.Beam.Enabled = true
end

function Skydiver:updateContrails()
	local leftFootPos = self.character:WaitForChild("LeftFoot").Position
	local rightFootPos = self.character:WaitForChild("RightFoot").Position
	local leftHandPos = self.character:WaitForChild("LeftHand").Position
	local rightHandPos = self.character:WaitForChild("RightHand").Position

	self.LeftFootBeam.BeamPart.HeightBodyPosition.Position = leftFootPos + Vector3.new(0,30,0)
	self.RightFootBeam.BeamPart.HeightBodyPosition.Position = rightFootPos + Vector3.new(0,30,0)
	self.LeftHandBeam.BeamPart.HeightBodyPosition.Position = leftHandPos + Vector3.new(0,30,0)
	self.RightHandBeam.BeamPart.HeightBodyPosition.Position = rightHandPos + Vector3.new(0,30,0)

	self.LeftFootBeam.BeamPart.XZBodyPosition.Position = leftFootPos + (self.character.LeftFoot.CFrame.RightVector * Vector3.new(-5,0,-7))
	self.RightFootBeam.BeamPart.XZBodyPosition.Position = rightFootPos + (self.character.RightFoot.CFrame.RightVector  * Vector3.new(5,0,7))
	self.LeftHandBeam.BeamPart.XZBodyPosition.Position = leftHandPos + (self.character.LeftHand.CFrame.RightVector * Vector3.new(-7,0,-5))
	self.RightHandBeam.BeamPart.XZBodyPosition.Position = rightHandPos + (self.character.RightHand.CFrame.RightVector * Vector3.new(7,0,5))
end

function Skydiver:setWaitingForJump(waiting)
	if waiting == self.waitingForJump then
		return
	end
	self.waitingForJump = waiting

	if self.waitingForJump then
		ContextActionService:BindActionAtPriority("ExitDeliveryVehicle", function(...) self:onJumpAction(...) end, false, 1000000, Enum.KeyCode.Space, Enum.KeyCode.ButtonA, Enum.UserInputType.Touch)

		if self.actionPromptGui then
			self.actionPromptGui:setVisible(true)
		end
	else
		ContextActionService:UnbindAction("ExitDeliveryVehicle")

		if self.actionPromptGui then
			self.actionPromptGui:setVisible(false)
		end
	end
end

function Skydiver:waitForJumped()
	if not self.didJump then
		self.Jumped.Event:Wait()
	end
end

function Skydiver:setEnabled(enabled)
	if enabled == self.enabled then
		return
	end
	self.enabled = enabled
	if enabled then
		self.enabledTime = tick()

		if self.humanoid then -- make sure player is in correct state to start skydiving
			self.humanoid:ChangeState(Enum.HumanoidStateType.Physics)
			local activeTracks = self.humanoid:GetPlayingAnimationTracks() -- stop any previous animations
			for i, v in pairs(activeTracks) do
				v:Stop()
			end
		end

		if self.character and self.humanoidRootPart then
			self:setupSkydivingForCharacter()
		end

		RunService:BindToRenderStep("SkydiverUpdate", Enum.RenderPriority.Last.Value, function(dt) self:onUpdate(dt) end)
	else
		if self.onlyAutoDeployOnce then
			self.autoDeploy = false
		end

		if self.freefallAnimation then
			self.freefallAnimation:Stop()
			self.freefallAnimation:Destroy()
			self.freefallAnimation = nil
		end

		if self.PitchAttachment then
			self.PitchAttachment:Destroy()
			self.PitchAttachment = nil
		end

		if self.RootRigAttachment then
			self.RootRigAttachment:Destroy()
			self.RootRigAttachment = nil
		end

		if self.SkydivePart then
			self.SkydivePart:Destroy()
			self.SkydivePart = nil
		end

		if self.BodyVelocity then
			self.BodyVelocity:Destroy()
			self.BodyVelocity = nil
		end

		if self.humanoid then
			self.humanoid:ChangeState(Enum.HumanoidStateType.Running)
		end

		if self.onClientEventConn then
			self.onClientEventConn:Disconnect()
			self.onClientEventConn = nil
		end

		self:destroyContrails()

		if self.onDisabled then
			self:onDisabled()
		end

		RunService:UnbindFromRenderStep("SkydiverUpdate")
	end
end

function Skydiver:onCharacterAdded(character)
	self.character = character

	self.humanoid = self.character:WaitForChild("Humanoid")
	self.humanoidRootPart = self.character:WaitForChild("HumanoidRootPart")

	if self.enabled then
		self:setupSkydivingForCharacter()
	end

	self.onClientEventConn = EventData.OnClientEvent:Connect(function(cmd)
		if cmd == "ExitedDeliveryVehicle" then
			if not self.didJump then
				self:setWaitingForJump(false)
				self.didJump = true
				self.Jumped:Fire()
			end
		end
	end)
end

function Skydiver:setupSkydivingForCharacter()
	if not self.humanoidRootPart then
		return
	end

	if self.humanoid and not self.freefallAnimation then
		self.freefallAnimation = self.humanoid:LoadAnimation(self.fallAnimationAsset)
		self.freefallAnimation.Looped = true
		self.freefallAnimation.Priority = Enum.AnimationPriority.Action
		self.freefallAnimation:Play()
	end

	if not self.PitchAttachment then
		self.PitchAttachment = Instance.new("Attachment")
		self.PitchAttachment.Orientation = Vector3.new(0,-90,0)
		self.PitchAttachment.Position = Vector3.new(0,-0.35,0)
		self.PitchAttachment.Axis = Vector3.new(0,0,1)
		self.PitchAttachment.SecondaryAxis = Vector3.new(0,1,0)
		self.PitchAttachment.Parent = self.humanoidRootPart
	end

	if not self.RootRigAttachment then
		self.RootRigAttachment = Instance.new("Attachment")
		self.RootRigAttachment.Orientation = Vector3.new(0,0,0)
		self.RootRigAttachment.Position = Vector3.new(0,-0.35,0)
		self.RootRigAttachment.Axis = Vector3.new(1,0,0)
		self.RootRigAttachment.SecondaryAxis = Vector3.new(0,1,0)
		self.RootRigAttachment.Parent = self.humanoidRootPart
	end

	if not self.SkydivePart then
		self.SkydivePart = SkydivePartTemplate:Clone()
		self.SkydivePart.PitchAndRollOrientation.Attachment1 = self.PitchAttachment
		self.SkydivePart.YawOrientation.Attachment0 = self.RootRigAttachment
		self.SkydivePart.Parent = workspace
	end

	if not self.BodyVelocity then
		self.BodyVelocity = Instance.new("BodyVelocity")
		self.BodyVelocity.P = 6000
		self.BodyVelocity.MaxForce = Vector3.new(1000,2000,1000)
		self.BodyVelocity.Parent = self.humanoidRootPart
	end

	self:setupContrails()
end

function Skydiver:doJump()
	if not self.waitingForJump then
		return
	end

	EventData:FireServer("ExitDeliveryVehicle")
end

function Skydiver:onJumpAction(actionName, inputState)
	if inputState == Enum.UserInputState.Begin then
		self:doJump()
	end
end

function Skydiver:getAltitudeAboveGround()
	if not self.humanoidRootPart then
		return 0
	end

	debug.profilebegin("getAltitudeAboveGround")
	local ignoreList = {
		workspace.CurrentCamera,
		self.SkydivePart,
		workspace:FindFirstChild("DeliveryVehicle" .. tostring(PlayerMatchInfo.GetField(localPlayer, "teamNumber")))
	}
	for _, player in pairs(Players:GetPlayers()) do
		if player.Character then
			table.insert(ignoreList, player.Character)
		end
	end

	local rayDown = Ray.new(self.humanoidRootPart.Position, Vector3.new(0, -ALTITUDE_TEST_LENGTH, 0))
	local hitObject, hitPoint = workspace:FindPartOnRayWithIgnoreList(rayDown, ignoreList, false, false)
	debug.profileend()
	if not hitObject then
		return ALTITUDE_TEST_LENGTH
	else
		return math.abs(rayDown.Origin.Y - hitPoint.Y)
	end
end

function Skydiver:onUpdate(dt)
	if not self.enabled then
		return
	end

	local timeSinceEnabled = tick() - self.enabledTime
	local altitude = self:getAltitudeAboveGround()

	if altitude < DISABLE_ALTITUDE and self.enabledTime ~= 0 and timeSinceEnabled > 0.5 then
		self:setEnabled(false)
		return
	end

	if not self.humanoidRootPart or not self.humanoid then return end

	local pitchRange = FALLING_PITCH_RANGE
	local pitchOffset = 0
	local rollRange = FALLING_ROLL_RANGE
	local cameraPitchContribution = 0.3

	local cameraCFrame = workspace.CurrentCamera.CFrame
	local globalMoveVector = self.humanoid.MoveDirection
	local relativeMoveVector = cameraCFrame:vectorToObjectSpace(globalMoveVector)

	local cameraLook = cameraCFrame.lookVector
	local cameraYaw = math.atan2(-cameraLook.X, -cameraLook.Z)
	local cameraPitch = math.asin(cameraLook.Y)

	self.straightDive = cameraLook.Y < -0.95 and -relativeMoveVector.Z > 0.1

	local desiredPitch = (cameraPitchContribution * cameraPitch) + (pitchRange * relativeMoveVector.Z) + pitchOffset
	local desiredRoll = (rollRange * -relativeMoveVector.X)
	local targetCFrame = CFrame.new(self.humanoidRootPart.Position) *
							CFrame.Angles(0, cameraYaw, 0) *
							CFrame.Angles(self.straightDive and DIVE_PITCH or desiredPitch, 0, 0) *
							CFrame.Angles(0, 0, desiredRoll)

	self.SkydivePart.CFrame = targetCFrame

	local globalForce = Vector3.new(globalMoveVector.x, 0, globalMoveVector.z)
	local cameraLookXZ = Vector3.new(cameraLook.x, 0, cameraLook.z)

	local dot = globalForce:Dot(cameraLookXZ)
	local planeNormal = Vector3.new(0,1,0)
	local det = globalForce.x*cameraLookXZ.y*planeNormal.z + cameraLookXZ.x*planeNormal.y*globalForce.z + planeNormal.x*globalForce.y*cameraLookXZ.z -
				globalForce.z*cameraLookXZ.y*planeNormal.x - cameraLookXZ.z*planeNormal.y*globalForce.x - planeNormal.z*globalForce.y*cameraLookXZ.x
	local angle = math.atan2(det,dot) + math.pi/2

	local XZVelocity = XZ_VELOCITY

	-- do not apply too much force when moving backwards
	if angle < -math.pi * 0.05 or angle > math.pi * 1.05 then
		XZVelocity = XZVelocity * 0.3
	end

	local yVelocity = FREEFALL_VELOCITY
	if self.straightDive then
		yVelocity = DIVE_VELOCITY
	end

	self.BodyVelocity.Velocity = Vector3.new(globalForce.x * XZVelocity, yVelocity, globalForce.z * XZVelocity)
	self:updateContrails()
end

return Skydiver


Prompt: -- How many times per second the gun can fire

Response: local FireRate = 5 / 30000


Prompt: -- Tween

Response:
local tween = game:GetService("TweenService")
local info = TweenInfo.new(
	3,
	Enum.EasingStyle.Linear,
	Enum.EasingDirection.In,
	0,
	false,
	0
)

local abrindo = {
	CFrame = cf1.CFrame
}

local fechando = {
    CFrame = doorpos
}

local create1 = tween:Create(portao,info,abrindo)
local create2 = tween:Create(portao,info,fechando)


Prompt:
--[=[
	http://reactivex.io/documentation/operators/filter.html

	Filters out values

	```lua
	Rx.of(1, 2, 3, 4, 5):Pipe({
		Rx.where(function(value)
			return value % 2 == 0;
		end)
	}):Subscribe(print) --> 2, 4
	```
	@param predicate (value: T) -> boolean
	@return (source: Observable<T>) -> Observable<T>
]=]

Response:
function Rx.where(predicate)
	assert(type(predicate) == "function", "Bad predicate callback")

	return function(source)
		assert(Observable.isObservable(source), "Bad observable")

		return Observable.new(function(sub)
			return source:Subscribe(
				function(...)
					if predicate(...) then
						sub:Fire(...)
					end
				end,
				sub:GetFailComplete()
			)
		end)
	end
end


Prompt: -- get when the key is pressed

Response:
local function HandleKeyDown(inputObject,InUse)
	if InUse then return end
	for k,f in pairs (Actions) do
		if k == inputObject.KeyCode then
			f(inputObject)
		end
	end
end

local UIS = game:GetService("UserInputService")
local InputBeganConnection


Prompt: --DevVince was here. :o

Response:
local shelly = script.Parent
local origin = shelly.PrimaryPart.CFrame
local tether = 15
local bg = shelly.PrimaryPart:WaitForChild'BodyGyro'
local bp = shelly.PrimaryPart:WaitForChild'BodyPosition'
bp.Position = origin.p
bg.CFrame = shelly.PrimaryPart.CFrame
local shellyGood = true
local ostrich = tick()

function MoveShelly()
	bp.Parent = shelly.PrimaryPart
	local goal
	repeat
	local ray = Ray.new(Vector3.new(origin.p.x+math.random(-tether,tether), shelly.PrimaryPart.Position.Y+100, origin.p.z+math.random(-tether,tether)),Vector3.new(0,-130,0))
	local part,pos,norm,mat = workspace:FindPartOnRay(ray, shelly)
	if part == workspace.Terrain and mat ~= Enum.Material.Water then
		goal = pos+Vector3.new(0,.35,0)
	end
	wait()
	until goal
	--Set new goal for banto to MoveTo :)
	local pos = shelly.PrimaryPart.Position
	local cf = CFrame.new(Vector3.new(pos.X, 0, pos.Z), Vector3.new(goal.X, 0, goal.Z))
	bg.CFrame = cf
	bp.Position = (cf*CFrame.new(0,0,-100)).p

	local start = tick()
	repeat wait(.5)
	local ray = Ray.new(shelly.PrimaryPart.Position, Vector3.new(0,-140,0))

	until (shelly.PrimaryPart.Position-goal).magnitude < 10 or tick()-start >15 or not shellyGood
	if not shellyGood then bp.Parent,bg.Parent= nil,nil return end
	bp.Parent = nil
	wait(math.random(3,8))
end

local soundBank = game.ServerStorage.Sounds.NPC.Shelly:GetChildren()
shelly.Health.Changed:connect(function()
	if shellyGood then
		bp.Parent,bg.Parent= nil,nil
		shelly.PrimaryPart.Transparency =1
		shelly.PrimaryPart.CanCollide = false
		shelly.Shell.Transparency = 1
		shelly.HitShell.Transparency = 0
		shelly.HitShell.CanCollide = true
		shellyGood = false
		ostrich = tick()
		shelly:SetPrimaryPartCFrame(shelly.PrimaryPart.CFrame*CFrame.new(0,2,0))
		local hitSound = soundBank[math.random(1,#soundBank)]:Clone()
		hitSound.PlayOnRemove = true
		hitSound.Parent = shelly.PrimaryPart
		wait()
		hitSound:Destroy()

		repeat wait() until tick()-ostrich > 10
		shelly.PrimaryPart.Transparency = 0
		shelly.PrimaryPart.CanCollide = true
		shelly.Shell.Transparency = 0
		shelly.HitShell.Transparency = 1
		shelly.HitShell.CanCollide = false
		bp.Parent,bg.Parent = shelly.PrimaryPart,shelly.PrimaryPart
		shellyGood = true
	end
end)

while true do
	if shellyGood then
		MoveShelly()
	else
		wait(1)
	end
end


Prompt: -- [[ Update ]]--

Response:
function OrbitalCamera:Update(dt)
	local now = tick()
	local timeDelta = (now - self.lastUpdate)
	local userPanningTheCamera = (self.UserPanningTheCamera == true)
	local camera = 	workspace.CurrentCamera
	local newCameraCFrame = camera.CFrame
	local newCameraFocus = camera.Focus
	local player = PlayersService.LocalPlayer
	local cameraSubject = camera and camera.CameraSubject
	local isInVehicle = cameraSubject and cameraSubject:IsA('VehicleSeat')
	local isOnASkateboard = cameraSubject and cameraSubject:IsA('SkateboardPlatform')

	if self.lastUpdate == nil or timeDelta > 1 then
		self.lastCameraTransform = nil
	end

	if self.lastUpdate then
		local gamepadRotation = self:UpdateGamepad()

		if self:ShouldUseVRRotation() then
			self.RotateInput = self.RotateInput + self:GetVRRotationInput()
		else
			-- Cap out the delta to 0.1 so we don't get some crazy things when we re-resume from
			local delta = math.min(0.1, timeDelta)

			if gamepadRotation ~= ZERO_VECTOR2 then
				userPanningTheCamera = true
				self.rotateInput = self.rotateInput + (gamepadRotation * delta)
			end

			local angle = 0
			if not (isInVehicle or isOnASkateboard) then
				angle = angle + (self.TurningLeft and -120 or 0)
				angle = angle + (self.TurningRight and 120 or 0)
			end

			if angle ~= 0 then
				self.rotateInput = self.rotateInput +  Vector2.new(math.rad(angle * delta), 0)
				userPanningTheCamera = true
			end
		end
	end

	-- Reset tween speed if user is panning
	if userPanningTheCamera then
		self.lastUserPanCamera = tick()
	end

	local subjectPosition = self:GetSubjectPosition()

	if subjectPosition and player and camera then

		-- Process any dollying being done by gamepad
		-- TODO: Move this
		if self.gamepadDollySpeedMultiplier ~= 1 then
			self:SetCameraToSubjectDistance(self.currentSubjectDistance * self.gamepadDollySpeedMultiplier)
		end

		local VREnabled = VRService.VREnabled
		newCameraFocus = VREnabled and self:GetVRFocus(subjectPosition, timeDelta) or CFrame.new(subjectPosition)

		local cameraFocusP = newCameraFocus.p
		if VREnabled and not self:IsInFirstPerson() then
			local cameraHeight = self:GetCameraHeight()
			local vecToSubject = (subjectPosition - camera.CFrame.p)
			local distToSubject = vecToSubject.magnitude

			-- Only move the camera if it exceeded a maximum distance to the subject in VR
			if distToSubject > self.currentSubjectDistance or self.rotateInput.x ~= 0 then
				local desiredDist = math.min(distToSubject, self.currentSubjectDistance)

				-- Note that CalculateNewLookVector is overridden from BaseCamera
				vecToSubject = self:CalculateNewLookVector(vecToSubject.unit * X1_Y0_Z1, Vector2.new(self.rotateInput.x, 0)) * desiredDist

				local newPos = cameraFocusP - vecToSubject
				local desiredLookDir = camera.CFrame.lookVector
				if self.rotateInput.x ~= 0 then
					desiredLookDir = vecToSubject
				end
				local lookAt = Vector3.new(newPos.x + desiredLookDir.x, newPos.y, newPos.z + desiredLookDir.z)
				self.RotateInput = ZERO_VECTOR2

				newCameraCFrame = CFrame.new(newPos, lookAt) + Vector3.new(0, cameraHeight, 0)
			end
		else
			-- self.RotateInput is a Vector2 of mouse movement deltas since last update
			self.curAzimuthRad = self.curAzimuthRad - self.rotateInput.x

			if self.useAzimuthLimits then
				self.curAzimuthRad = math.clamp(self.curAzimuthRad, self.minAzimuthAbsoluteRad, self.maxAzimuthAbsoluteRad)
			else
				self.curAzimuthRad = (self.curAzimuthRad ~= 0) and (math.sign(self.curAzimuthRad) * (math.abs(self.curAzimuthRad) % TAU)) or 0
			end

			self.curElevationRad = math.clamp(self.curElevationRad + self.rotateInput.y, self.minElevationRad, self.maxElevationRad)

			local cameraPosVector = self.currentSubjectDistance * ( CFrame.fromEulerAnglesYXZ( -self.curElevationRad, self.curAzimuthRad, 0 ) * UNIT_Z )
			local camPos = subjectPosition + cameraPosVector

			newCameraCFrame = CFrame.new(camPos, subjectPosition)

			self.rotateInput = ZERO_VECTOR2
		end

		self.lastCameraTransform = newCameraCFrame
		self.lastCameraFocus = newCameraFocus
		if (isInVehicle or isOnASkateboard) and cameraSubject:IsA('BasePart') then
			self.lastSubjectCFrame = cameraSubject.CFrame
		else
			self.lastSubjectCFrame = nil
		end
	end

	self.lastUpdate = now
	return newCameraCFrame, newCameraFocus
end

return OrbitalCamera


Prompt: --// Above was taken directly from Util.GetStringTextBounds() in the old chat corescripts.

Response:
function methods:GetMessageHeight(BaseMessage, BaseFrame, xSize)
	xSize = xSize or BaseFrame.AbsoluteSize.X
	local textBoundsSize = self:GetStringTextBounds(BaseMessage.Text, BaseMessage.Font, BaseMessage.TextSize, Vector2.new(xSize, 1000))
	if textBoundsSize.Y ~= math.floor(textBoundsSize.Y) then
		-- HACK Alert. TODO: Remove this when we switch UDim2 to use float Offsets
		-- This is nessary due to rounding issues on mobile devices when translating between screen pixels and native pixels
		return textBoundsSize.Y + 1
	end
	return textBoundsSize.Y
end

function methods:GetNumberOfSpaces(str, font, textSize)
	local strSize
	if typeof(str)=="string" then
		strSize = self:GetStringTextBounds(str, font, textSize)
	elseif typeof(str)=="Instance" then
		strSize=str.AbsoluteSize
	end
	local singleSpaceSize = self:GetStringTextBounds(" ", font, textSize)
	return math.ceil(strSize.X / singleSpaceSize.X)
end

function methods:CreateBaseMessage(message, font, textSize, chatColor)
	local BaseFrame = self:GetFromObjectPool("Frame")
	BaseFrame.Selectable = false
	BaseFrame.Size = UDim2.new(1, 0, 0, 18)
	BaseFrame.Visible = true
	BaseFrame.BackgroundTransparency = 1

	local messageBorder = 8

	local BaseMessage = self:GetFromObjectPool("TextLabel")
	BaseMessage.Selectable = false
	BaseMessage.Size = UDim2.new(1, -(messageBorder + 6), 1, 0)
	BaseMessage.Position = UDim2.new(0, messageBorder, 0, 0)
	BaseMessage.BackgroundTransparency = 1
	BaseMessage.Font = font
	BaseMessage.TextSize = textSize
	BaseMessage.TextXAlignment = Enum.TextXAlignment.Left
	BaseMessage.TextYAlignment = Enum.TextYAlignment.Top
	BaseMessage.TextTransparency = 0
	BaseMessage.TextStrokeTransparency = 0.75
	BaseMessage.TextColor3 = chatColor
	BaseMessage.TextWrapped = true
	BaseMessage.ClipsDescendants = true
	BaseMessage.Text = message
	BaseMessage.Visible = true
	BaseMessage.Parent = BaseFrame

	return BaseFrame, BaseMessage
end

function methods:AddNameButtonToBaseMessage(BaseMessage, nameColor, formatName, playerName)
	local speakerNameSize = self:GetStringTextBounds(formatName, BaseMessage.Font, BaseMessage.TextSize)
	local NameButton = self:GetFromObjectPool("TextButton")
	NameButton.Selectable = false
	NameButton.Size = UDim2.new(0, speakerNameSize.X, 0, speakerNameSize.Y)
	NameButton.Position = UDim2.new(0, 0, 0, 0)
	NameButton.BackgroundTransparency = 1
	NameButton.Font = BaseMessage.Font
	NameButton.TextSize = BaseMessage.TextSize
	NameButton.TextXAlignment = BaseMessage.TextXAlignment
	NameButton.TextYAlignment = BaseMessage.TextYAlignment
	NameButton.TextTransparency = BaseMessage.TextTransparency
	NameButton.TextStrokeTransparency = BaseMessage.TextStrokeTransparency
	NameButton.TextColor3 = nameColor
	NameButton.Text = formatName
	NameButton.Visible = true
	NameButton.Parent = BaseMessage

	local clickedConn = NameButton.MouseButton1Click:connect(function()
		self:NameButtonClicked(NameButton, playerName)
	end)

	local changedConn = nil
	changedConn = NameButton.Changed:connect(function(prop)
		if prop == "Parent" then
			clickedConn:Disconnect()
			changedConn:Disconnect()
		end
	end)

	return NameButton
end

function methods:AddChannelButtonToBaseMessage(BaseMessage, channelColor, formatChannelName, channelName)
	local channelNameSize = self:GetStringTextBounds(formatChannelName, BaseMessage.Font, BaseMessage.TextSize)
	local ChannelButton = self:GetFromObjectPool("TextButton")
	ChannelButton.Selectable = false
	ChannelButton.Size = UDim2.new(0, channelNameSize.X, 0, channelNameSize.Y)
	ChannelButton.Position = UDim2.new(0, 0, 0, 0)
	ChannelButton.BackgroundTransparency = 1
	ChannelButton.Font = BaseMessage.Font
	ChannelButton.TextSize = BaseMessage.TextSize
	ChannelButton.TextXAlignment = BaseMessage.TextXAlignment
	ChannelButton.TextYAlignment = BaseMessage.TextYAlignment
	ChannelButton.TextTransparency = BaseMessage.TextTransparency
	ChannelButton.TextStrokeTransparency = BaseMessage.TextStrokeTransparency
	ChannelButton.TextColor3 = channelColor
	ChannelButton.Text = formatChannelName
	ChannelButton.Visible = true
	ChannelButton.Parent = BaseMessage

	local clickedConn = ChannelButton.MouseButton1Click:connect(function()
		self:ChannelButtonClicked(ChannelButton, channelName)
	end)

	local changedConn = nil
 	changedConn = ChannelButton.Changed:connect(function(prop)
		if prop == "Parent" then
			clickedConn:Disconnect()
			changedConn:Disconnect()
		end
	end)

	return ChannelButton
end

function methods:AddTagLabelToBaseMessage(BaseMessage, tagColor, formatTagText)
	local tagNameSize = self:GetStringTextBounds(formatTagText, BaseMessage.Font, BaseMessage.TextSize)
	local TagLabel = self:GetFromObjectPool("TextLabel")
	TagLabel.Selectable = false
	TagLabel.Size = UDim2.new(0, tagNameSize.X, 0, tagNameSize.Y)
	TagLabel.Position = UDim2.new(0, 0, 0, 0)
	TagLabel.BackgroundTransparency = 1
	TagLabel.Font = BaseMessage.Font
	TagLabel.TextSize = BaseMessage.TextSize
	TagLabel.TextXAlignment = BaseMessage.TextXAlignment
	TagLabel.TextYAlignment = BaseMessage.TextYAlignment
	TagLabel.TextTransparency = BaseMessage.TextTransparency
	TagLabel.TextStrokeTransparency = BaseMessage.TextStrokeTransparency
	TagLabel.TextColor3 = tagColor
	TagLabel.Text = formatTagText
	TagLabel.Visible = true
	TagLabel.Parent = BaseMessage

	return TagLabel
end

function methods:AddIconLabelToBaseMessage(BaseMessage,iconAddress)
	local iconSize=DEFAULT_ICON_SIZE
	local IconLabel=self:GetFromObjectPool("ImageLabel")
	IconLabel.Selectable = false
	IconLabel.Position = UDim2.new(0, 0, 0, 0)
	IconLabel.Size = UDim2.new(0, iconSize.X, 0, iconSize.Y)
	IconLabel.BackgroundTransparency = 1
	IconLabel.Visible = true
	IconLabel.ImageTransparency=0
	IconLabel.ScaleType=Enum.ScaleType.Fit
	IconLabel.ImageColor3=Color3.new(1,1,1)
	IconLabel.Image=iconAddress
	IconLabel.Parent = BaseMessage
	return IconLabel
end

function GetWhisperChannelPrefix()
	if ChatConstants.WhisperChannelPrefix then
		return ChatConstants.WhisperChannelPrefix
	end
	return "To "
end

function methods:NameButtonClicked(nameButton, playerName)
	if not self.ChatWindow then
		return
	end

	if ChatSettings.ClickOnPlayerNameToWhisper then
		local player = Players:FindFirstChild(playerName)
		if player and player ~= LocalPlayer then
			local whisperChannel = GetWhisperChannelPrefix() ..playerName
			if self.ChatWindow:GetChannel(whisperChannel) then
				self.ChatBar:ResetCustomState()
				local targetChannelName = self.ChatWindow:GetTargetMessageChannel()
				if targetChannelName ~= whisperChannel then
					self.ChatWindow:SwitchCurrentChannel(whisperChannel)
				end

				local whisperMessage = "/w " ..playerName
				self.ChatBar:SetText(whisperMessage)

				self.ChatBar:CaptureFocus()
			elseif not self.ChatBar:IsInCustomState() then
				local whisperMessage = "/w " ..playerName
				self.ChatBar:SetText(whisperMessage)

				self.ChatBar:CaptureFocus()
			end
		end
	end
end

function methods:ChannelButtonClicked(channelButton, channelName)
	if not self.ChatWindow then
		return
	end

	if ChatSettings.ClickOnChannelNameToSetMainChannel then
		if self.ChatWindow:GetChannel(channelName) then
			self.ChatBar:ResetCustomState()
			local targetChannelName = self.ChatWindow:GetTargetMessageChannel()
			if targetChannelName ~= channelName then
				self.ChatWindow:SwitchCurrentChannel(channelName)
			end
			self.ChatBar:ResetText()
			self.ChatBar:CaptureFocus()
		end
	end
end

function methods:RegisterChatWindow(chatWindow)
	self.ChatWindow = chatWindow
	self.ChatBar = chatWindow:GetChatBar()
end

function methods:GetFromObjectPool(className)
	if self.ObjectPool == nil then
		return Instance.new(className)
	end
	return self.ObjectPool:GetInstance(className)
end

function methods:RegisterObjectPool(objectPool)
	self.ObjectPool = objectPool
end


Response:
	 TeamKill = true					--- Enable TeamKill?
	,TeamDamageMultiplier = 0.2			--- Between 0-1 | This will make you cause less damage if you hit your teammate

	,ReplicatedBullets = true			--- Keep in mind that some bullets will pass through surfaces...

	,AntiBunnyHop = true				--- Enable anti bunny hop system?
	,JumpCoolDown = 1				--- Seconds before you can jump again
	,JumpPower = 30						--- Jump power, default is 50

	,RealisticLaser = true				--- True = Laser line is invisible
	,ReplicatedLaser = true
	,ReplicatedFlashlight = true

	,EnableRagdoll = true				--- Enable ragdoll death?
	,TeamTags = true					--- Aaaaaaa
	,HitmarkerSound = false				--- GGWP MLG 360 NO SCOPE xD