Prompt: --Aux Card, 8 Step

Response:
script.Parent.Parent.Amp.Value = true
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 640/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 400/850

for i = 1, 25 do
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 795/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 640/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 25 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 474/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 720/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 25 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 474/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 400/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 50 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 640/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 400/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 25 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 474/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 720/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 25 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 640/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 794/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 25 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Parent.Sound.Sound.PlaybackSpeed = 640/850
script.Parent.Parent.Parent.Sound.Sound2.PlaybackSpeed = 400/850
script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10
script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.SoundblockSize.Value/10

for i = 1, 70 do
	script.Parent.Parent.Parent.Sound.Sound.EmitterSize = script.Parent.Parent.Parent.Sound.Sound.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	script.Parent.Parent.Parent.Sound.Sound2.EmitterSize = script.Parent.Parent.Parent.Sound.Sound2.EmitterSize - script.Parent.Parent.SoundblockSize.Value/600
	wait(0.030)
end
script.Parent.Parent.Amp.Value = false


Prompt: -- Simulate a raycast by one tick.

Response:
local function SimulateCast(cast: ActiveCast, delta: number, expectingShortCall: boolean)
	assert(cast.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	PrintDebug("Casting for frame.")
	local latestTrajectory = cast.StateInfo.Trajectories[#cast.StateInfo.Trajectories]

	local origin = latestTrajectory.Origin
	local totalDelta = cast.StateInfo.TotalRuntime - latestTrajectory.StartTime
	local initialVelocity = latestTrajectory.InitialVelocity
	local acceleration = latestTrajectory.Acceleration

	local lastPoint = GetPositionAtTime(totalDelta, origin, initialVelocity, acceleration)
	local lastVelocity = GetVelocityAtTime(totalDelta, initialVelocity, acceleration)
	local lastDelta = cast.StateInfo.TotalRuntime - latestTrajectory.StartTime

	cast.StateInfo.TotalRuntime += delta

	-- Recalculate this.
	totalDelta = cast.StateInfo.TotalRuntime - latestTrajectory.StartTime

	local currentTarget = GetPositionAtTime(totalDelta, origin, initialVelocity, acceleration)
	local segmentVelocity = GetVelocityAtTime(totalDelta, initialVelocity, acceleration)
	local totalDisplacement = currentTarget - lastPoint -- This is the displacement from where the ray was on the last from to where the ray is now.

	local rayDir = totalDisplacement.Unit * segmentVelocity.Magnitude * delta
	local targetWorldRoot = cast.RayInfo.WorldRoot

	local function castFunction(lastPoint, rayDir, params) -- Main Cast
		local resultOfCast = targetWorldRoot:Raycast(lastPoint, rayDir, params)

		local needRecast = false

		if resultOfCast then
			local hitInstance = resultOfCast.Instance

			if hitInstance.Parent:IsA("Accoutrement") then
				local newIgnoreTable = {hitInstance}

				for i,v in pairs(params.FilterDescendantsInstances) do
					table.insert(newIgnoreTable, v)
				end

				cast.RayInfo.Parameters.FilterDescendantsInstances = newIgnoreTable
				resultOfCast = nil

				needRecast = true
			end

			if hitInstance.CanCollide == false and not FindCharacterAncestor(hitInstance) then
				local newIgnoreTable = {hitInstance}

				for i,v in pairs(params.FilterDescendantsInstances) do
					table.insert(newIgnoreTable, v)
				end

				cast.RayInfo.Parameters.FilterDescendantsInstances = newIgnoreTable
				resultOfCast = nil

				needRecast = true
			end

			if hitInstance.CanCollide == false and hitInstance.Transparency > 0.2 and not FindCharacterAncestor(hitInstance) then
				local newIgnoreTable = {hitInstance}

				for i,v in pairs(params.FilterDescendantsInstances) do
					table.insert(newIgnoreTable, v)
				end

				cast.RayInfo.Parameters.FilterDescendantsInstances = newIgnoreTable
				resultOfCast = nil

				needRecast = true
			end
		end

		if needRecast == true then
			return castFunction(lastPoint, rayDir, cast.RayInfo.Parameters)
		end

		return resultOfCast
	end

	local resultOfCast = castFunction(lastPoint, rayDir, cast.RayInfo.Parameters)

	local point = currentTarget
	local part: Instance? = nil
	local material = Enum.Material.Air
	local normal = Vector3.new()

	if (resultOfCast ~= nil) then
		point = resultOfCast.Position
		part = resultOfCast.Instance
		material = resultOfCast.Material
		normal = resultOfCast.Normal
	end

	local rayDisplacement = (point - lastPoint).Magnitude
	-- For clarity -- totalDisplacement is how far the ray would have traveled if it hit nothing,
	-- and rayDisplacement is how far the ray really traveled (which will be identical to totalDisplacement if it did indeed hit nothing)

	SendLengthChanged(cast, lastPoint, rayDir.Unit, rayDisplacement, segmentVelocity, cast.RayInfo.CosmeticBulletObject)
	cast.StateInfo.DistanceCovered += rayDisplacement

	local rayVisualization: ConeHandleAdornment? = nil
	if (delta > 0) then
		rayVisualization = DbgVisualizeSegment(CFrame.new(lastPoint, lastPoint + rayDir), rayDisplacement)
	end

	-- HIT DETECTED. Handle all that garbage, and also handle behaviors 1 and 2 (default behavior, go high res when hit) if applicable.
	-- CAST BEHAVIOR 2 IS HANDLED IN THE CODE THAT CALLS THIS FUNCTION.

	if part and part ~= cast.RayInfo.CosmeticBulletObject then
		local start = tick()
		PrintDebug("Hit something, testing now.")

		-- SANITY CHECK: Don't allow the user to yield or run otherwise extensive code that takes longer than one frame/heartbeat to execute.
		if (cast.RayInfo.CanPierceCallback ~= nil) then
			if expectingShortCall == false then
				if (cast.StateInfo.IsActivelySimulatingPierce) then
					cast:Terminate()
					error("ERROR: The latest call to CanPierceCallback took too long to complete! This cast is going to suffer desyncs which WILL cause unexpected behavior and errors. Please fix your performance problems, or remove statements that yield (e.g. wait() calls)")
					-- Use error. This should absolutely abort the cast.
				end
			end
			-- expectingShortCall is used to determine if we are doing a forced resolution increase, in which case this will be called several times in a single frame, which throws this error.
			cast.StateInfo.IsActivelySimulatingPierce = true
		end
		------------------------------

		if cast.RayInfo.CanPierceCallback == nil or (cast.RayInfo.CanPierceCallback ~= nil and cast.RayInfo.CanPierceCallback(cast, resultOfCast, segmentVelocity, cast.RayInfo.CosmeticBulletObject) == false) then
			PrintDebug("Piercing function is nil or it returned FALSE to not pierce this hit.")
			cast.StateInfo.IsActivelySimulatingPierce = false

			if (cast.StateInfo.HighFidelityBehavior == 2 and latestTrajectory.Acceleration ~= Vector3.new() and cast.StateInfo.HighFidelitySegmentSize ~= 0) then
				cast.StateInfo.CancelHighResCast = false -- Reset this here.

				if cast.StateInfo.IsActivelyResimulating then
					cast:Terminate()
					error("Cascading cast lag encountered! The caster attempted to perform a high fidelity cast before the previous one completed, resulting in exponential cast lag. Consider increasing HighFidelitySegmentSize.")
				end

				cast.StateInfo.IsActivelyResimulating = true

				-- This is a physics based cast and it needs to be recalculated.
				PrintDebug("Hit was registered, but recalculation is on for physics based casts. Recalculating to verify a real hit...")

				-- Split this ray segment into smaller segments of a given size.
				-- In 99% of cases, it won't divide evently (e.g. I have a distance of 1.25 and I want to divide into 0.1 -- that won't work)
				-- To fix this, the segments need to be stretched slightly to fill the space (rather than having a single shorter segment at the end)

				local numSegmentsDecimal = rayDisplacement / cast.StateInfo.HighFidelitySegmentSize -- say rayDisplacement is 5.1, segment size is 0.5 -- 10.2 segments
				local numSegmentsReal = math.floor(numSegmentsDecimal) -- 10 segments + 0.2 extra segments
				local realSegmentLength = rayDisplacement / numSegmentsReal -- this spits out 0.51, which isn't exact to the defined 0.5, but it's close

				-- Now the real hard part is converting this to time.
				local timeIncrement = delta / numSegmentsReal
				for segmentIndex = 1, numSegmentsReal do
					if cast.StateInfo.CancelHighResCast then
						cast.StateInfo.CancelHighResCast = false
						break
					end

					local subPosition = GetPositionAtTime(lastDelta + (timeIncrement * segmentIndex), origin, initialVelocity, acceleration)
					local subVelocity = GetVelocityAtTime(lastDelta + (timeIncrement * segmentIndex), initialVelocity, acceleration)
					local subRayDir = subVelocity * delta

					local function castFunction(subPosition, subRayDir, params)
						local subResult = targetWorldRoot:Raycast(subPosition, subRayDir, params)

						if subResult then
							local hitInstance = subResult.Instance

							if hitInstance.Parent:IsA("Accoutrement") then
								table.insert(params.FilterDescendantsInstances, hitInstance)
								subResult = nil
							end

							if hitInstance.CanCollide == false then
								table.insert(params.FilterDescendantsInstances, hitInstance)
								subResult = nil
							end

							if hitInstance.CanCollide == false and hitInstance.Transparency > 0.2 then
								table.insert(params.FilterDescendantsInstances, hitInstance)
								subResult = nil
							end
						end

						return subResult
					end

					local subResult = castFunction(subPosition, subRayDir, cast.RayInfo.Parameters)

					local subDisplacement = (subPosition - (subPosition + subVelocity)).Magnitude

					if (subResult ~= nil) then
						local subDisplacement = (subPosition - subResult.Position).Magnitude
						local dbgSeg = DbgVisualizeSegment(CFrame.new(subPosition, subPosition + subVelocity), subDisplacement)
						if (dbgSeg ~= nil) then dbgSeg.Color3 = Color3.new(0.286275, 0.329412, 0.247059) end

						if cast.RayInfo.CanPierceCallback == nil or (cast.RayInfo.CanPierceCallback ~= nil and cast.RayInfo.CanPierceCallback(cast, subResult, subVelocity, cast.RayInfo.CosmeticBulletObject) == false) then
							-- Still hit even at high res
							cast.StateInfo.IsActivelyResimulating = false

							SendRayHit(cast, subResult, subVelocity, cast.RayInfo.CosmeticBulletObject)
							cast:Terminate()
							local vis = DbgVisualizeHit(CFrame.new(point), false)
							if (vis ~= nil) then vis.Color3 = Color3.new(0.0588235, 0.87451, 1) end
							return
						else
							-- Recalculating hit something pierceable instead.
							SendRayPierced(cast, subResult, subVelocity, cast.RayInfo.CosmeticBulletObject) -- This may result in CancelHighResCast being set to true.
							local vis = DbgVisualizeHit(CFrame.new(point), true)
							if (vis ~= nil) then vis.Color3 = Color3.new(1, 0.113725, 0.588235) end
							if (dbgSeg ~= nil) then dbgSeg.Color3 = Color3.new(0.305882, 0.243137, 0.329412) end
						end
					else
						local dbgSeg = DbgVisualizeSegment(CFrame.new(subPosition, subPosition + subVelocity), subDisplacement)
						if (dbgSeg ~= nil) then dbgSeg.Color3 = Color3.new(0.286275, 0.329412, 0.247059) end
					end
				end

				-- If the script makes it here, then it wasn't a real hit (higher resolution revealed that the low-res hit was faulty)
				-- Just let it keep going.
				cast.StateInfo.IsActivelyResimulating = false
			elseif (cast.StateInfo.HighFidelityBehavior ~= 1 and cast.StateInfo.HighFidelityBehavior ~= 3) then
				cast:Terminate()
				error("Invalid value " .. (cast.StateInfo.HighFidelityBehavior) .. " for HighFidelityBehavior.")
			else
				-- This is not a physics cast, or recalculation is off.
				PrintDebug("Hit was successful. Terminating.")
				SendRayHit(cast, resultOfCast, segmentVelocity, cast.RayInfo.CosmeticBulletObject)
				cast:Terminate()
				DbgVisualizeHit(CFrame.new(point), false)
				return
			end
		else
			PrintDebug("Piercing function returned TRUE to pierce this part.")
			if rayVisualization ~= nil then
				rayVisualization.Color3 = Color3.new(0.4, 0.05, 0.05) -- Turn it red to signify that the cast was scrapped.
			end
			DbgVisualizeHit(CFrame.new(point), true)

			local params = cast.RayInfo.Parameters
			local alteredParts = {}
			local currentPierceTestCount = 0
			local originalFilter = params.FilterDescendantsInstances
			local brokeFromSolidObject = false
			while true do
				-- So now what I need to do is redo this entire cast, just with the new filter list

				-- Catch case: Is it terrain?
				if resultOfCast.Instance:IsA("Terrain") then
					if material == Enum.Material.Water then
						-- Special case: Pierced on water?
						cast:Terminate()
						error("Do not add Water as a piercable material. If you need to pierce water, set cast.RayInfo.Parameters.IgnoreWater = true instead", 0)
					end
					warn("WARNING: The pierce callback for this cast returned TRUE on Terrain! This can cause severely adverse effects.")
				end

				if params.FilterType == Enum.RaycastFilterType.Blacklist then
					-- blacklist
					-- DO NOT DIRECTLY TABLE.INSERT ON THE PROPERTY
					local filter = params.FilterDescendantsInstances
					table.insert(filter, resultOfCast.Instance)
					table.insert(alteredParts, resultOfCast.Instance)
					params.FilterDescendantsInstances = filter
				else
					-- whitelist
					-- method implemeneted by custom table system
					-- DO NOT DIRECTLY TABLE.REMOVEOBJECT ON THE PROPERTY
					local filter = params.FilterDescendantsInstances
					table.removeObject(filter, resultOfCast.Instance)
					table.insert(alteredParts, resultOfCast.Instance)
					params.FilterDescendantsInstances = filter
				end

				SendRayPierced(cast, resultOfCast, segmentVelocity, cast.RayInfo.CosmeticBulletObject)

				-- List has been updated, so let's cast again.

				local function castFunction(lastPoint, rayDir, params)
					local resultOfCast = targetWorldRoot:Raycast(lastPoint, rayDir, params)

					if resultOfCast then
						local hitInstance = resultOfCast.Instance

						if hitInstance.Parent:IsA("Accoutrement") then
							table.insert(params.FilterDescendantsInstances, hitInstance)
							resultOfCast = nil
						end

						if hitInstance.CanCollide == false then
							table.insert(params.FilterDescendantsInstances, hitInstance)
							resultOfCast = nil
						end

						if hitInstance.CanCollide == false and hitInstance.Transparency > 0.2 then
							table.insert(params.FilterDescendantsInstances, hitInstance)
							resultOfCast = nil
						end
					end

					return resultOfCast
				end

				resultOfCast = castFunction(lastPoint, rayDir, params)

				-- No hit? No simulation. Break.
				if resultOfCast == nil then
					break
				end

				if currentPierceTestCount >= MAX_PIERCE_TEST_COUNT then
					warn("WARNING: Exceeded maximum pierce test budget for a single ray segment (attempted to test the same segment " .. MAX_PIERCE_TEST_COUNT .. " times!)")
					break
				end
				currentPierceTestCount = currentPierceTestCount + 1;

				if cast.RayInfo.CanPierceCallback(cast, resultOfCast, segmentVelocity, cast.RayInfo.CosmeticBulletObject) == false then
					brokeFromSolidObject = true
					break
				end
			end

			-- Restore the filter to its default state.
			cast.RayInfo.Parameters.FilterDescendantsInstances = originalFilter
			cast.StateInfo.IsActivelySimulatingPierce = false

			if brokeFromSolidObject then
				-- We actually hit something while testing.
				PrintDebug("Broke because the ray hit something solid (" .. tostring(resultOfCast.Instance) .. ") while testing for a pierce. Terminating the cast.")
				SendRayHit(cast, resultOfCast, segmentVelocity, cast.RayInfo.CosmeticBulletObject)
				cast:Terminate()
				DbgVisualizeHit(CFrame.new(resultOfCast.Position), false)
				return
			end

			-- And exit the function here too.
		end
	end

	if (cast.StateInfo.DistanceCovered >= cast.RayInfo.MaxDistance) then
		-- SendRayHit(cast, nil, segmentVelocity, cast.RayInfo.CosmeticBulletObject)
		cast:Terminate()
		DbgVisualizeHit(CFrame.new(currentTarget), false)
	end
end


Prompt:
--[[
	Returns first value (success), and packs all following values.
]]

Response:
local function packResult(success, ...)
	return success, select("#", ...), { ... }
end

local function makeErrorHandler(traceback)
	assert(traceback ~= nil)

	return function(err)
		-- If the error object is already a table, forward it directly.
		-- Should we extend the error here and add our own trace?

		if type(err) == "table" then
			return err
		end

		return Error.new({
			error = err,
			kind = Error.Kind.ExecutionError,
			trace = debug.traceback(tostring(err), 2),
			context = "Promise created at:\n\n" .. traceback,
		})
	end
end


Prompt: -- Private Functions

Response:
local function defaultButton(index, option)
	local button = LIST_BUTTON:Clone()
	button.Name = option .. "_button"
	button.Label.Text = option
	return button
end


Prompt: --- Skill

Response:
local UIS = game:GetService("UserInputService")
local plr = game.Players.LocalPlayer
local Mouse = plr:GetMouse()
local Debounce = true
Player = game.Players.LocalPlayer

UIS.InputBegan:Connect(function(Input)
	if Input.KeyCode == Enum.KeyCode.Z and Debounce == true and Tool.Equip.Value == true and Tool.Active.Value == "None" then
		Debounce = false
		Tool.Active.Value = "LightBarrage"
		Track1 = Player.Character.Humanoid:LoadAnimation(script.Anim01)
		Track1:Play()
		wait(0.3)
		script.Fire:FireServer(plr)
	local hum =  Player.Character.Humanoid
	for i = 1,30 do
		wait()
		hum.CameraOffset = Vector3.new(
			math.random(-1,1),
			math.random(-1,1),
			math.random(-1,1)
		)
	end
	hum.CameraOffset = Vector3.new(0,0,0)
		Tool.Active.Value = "None"
		wait(2)
		Debounce = true
	end
end)


Prompt: --GreenEgg--

Response:
Event.Hitbox.Touched:Connect(function(hit)
	if hit.Parent:IsA("Tool") and hit.Parent.Name == ToolRequired2 then
		if game.ReplicatedStorage.ItemSwitching.Value == true then
			hit.Parent:Destroy()
		end
		Event.GreenGear.Transparency = 0
		Event.Glass.Insert:Play()
		Event.LocksLeft.Value = Event.LocksLeft.Value - 1
		script.Disabled = true
	end
end)

Event.Hitbox.ClickDetector.MouseClick:Connect(function(plr)
	if plr.Backpack:FindFirstChild(ToolRequired2) then
		if game.ReplicatedStorage.ItemSwitching.Value == true then
			plr.Backpack:FindFirstChild(ToolRequired2):Destroy()
		end
		Event.GreenGear.Transparency = 0
		Event.Glass.Insert:Play()
		Event.LocksLeft.Value = Event.LocksLeft.Value - 1
		script.Disabled = true
	end
end)


Prompt: -- functions

Response:
function onDied()
	stopLoopedSounds()
	sDied:Play()
end

local fallCount = 0
local fallSpeed = 0
function onStateFall(state, sound)
	fallCount = fallCount + 1
	if state then
		sound.Volume = 0
		sound:Play()
		Spawn( function()
			local t = 0
			local thisFall = fallCount
			while t < 1.5 and fallCount == thisFall do
				local vol = math.max(t - 0.3 , 0)
				sound.Volume = vol
				wait(0.1)
				t = t + 0.1
			end
		end)
	else
		sound:Stop()
	end
	fallSpeed = math.max(fallSpeed, math.abs(Head.Velocity.Y))
end

function onStateNoStop(state, sound)
	if state then
		sound:Play()
	end
end

function onRunning(speed)
	sClimbing:Stop()
	sSwimming:Stop()
	if (prevState == "FreeFall" and fallSpeed > 0.1) then
		local vol = math.min(1.0, math.max(0.0, (fallSpeed - 50) / 110))
		sLanding.Volume = vol
		sLanding:Play()
		fallSpeed = 0
	end
	if speed>0.5 then
		sRunning:Play()
		sRunning.Pitch = 1.6
	else
		sRunning:Stop()
	end
	prevState = "Run"
end

function onSwimming(speed)
	if (prevState ~= "Swim" and speed > 0.1) then
		local volume = math.min(1.0, speed / 350)
		sSplash.Volume = volume
		sSplash:Play()
		prevState = "Swim"
	end
	sClimbing:Stop()
	sRunning:Stop()
	sSwimming.Pitch = 1.6
	sSwimming:Play()
end

function onClimbing(speed)
	sRunning:Stop()
	sSwimming:Stop()
	if speed>0.01 then
		sClimbing:Play()
		sClimbing.Pitch = speed / 5.5
	else
		sClimbing:Stop()
	end
	prevState = "Climb"
end


Prompt: --Rescripted by Luckymaxer

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

Players = game:GetService("Players")
Debris = game:GetService("Debris")

Speed = 100
Duration = 1

NozzleOffset = Vector3.new(0, 0.4, -1.1)

Sounds = {
	Fire = Handle:WaitForChild("Fire"),
	Reload = Handle:WaitForChild("Reload"),
	HitFade = Handle:WaitForChild("HitFade")
}

PointLight = Handle:WaitForChild("PointLight")

ServerControl = (Tool:FindFirstChild("ServerControl") or Instance.new("RemoteFunction"))
ServerControl.Name = "ServerControl"
ServerControl.Parent = Tool

ClientControl = (Tool:FindFirstChild("ClientControl") or Instance.new("RemoteFunction"))
ClientControl.Name = "ClientControl"
ClientControl.Parent = Tool

ServerControl.OnServerInvoke = (function(player, Mode, Value, arg)
	if player ~= Player or Humanoid.Health == 0 or not Tool.Enabled then
		return
	end
	if Mode == "Click" and Value then
		Activated(arg)
	end
end)

function InvokeClient(Mode, Value)
	pcall(function()
		ClientControl:InvokeClient(Player, Mode, Value)
	end)
end

function TagHumanoid(humanoid, player)
	local Creator_Tag = Instance.new("ObjectValue")
	Creator_Tag.Name = "creator"
	Creator_Tag.Value = player
	Debris:AddItem(Creator_Tag, 2)
	Creator_Tag.Parent = humanoid
end

function UntagHumanoid(humanoid)
	for i, v in pairs(humanoid:GetChildren()) do
		if v:IsA("ObjectValue") and v.Name == "creator" then
			v:Destroy()
		end
	end
end

function FindCharacterAncestor(Parent)
	if Parent and Parent ~= game:GetService("Workspace") then
		local humanoid = Parent:FindFirstChild("Humanoid")
		if humanoid then
			return Parent, humanoid
		else
			return FindCharacterAncestor(Parent.Parent)
		end
	end
	return nil
end

function GetTransparentsRecursive(Parent, PartsTable)
	local PartsTable = (PartsTable or {})
	for i, v in pairs(Parent:GetChildren()) do
		local TransparencyExists = false
		pcall(function()
			local Transparency = v["Transparency"]
			if Transparency then
				TransparencyExists = true
			end
		end)
		if TransparencyExists then
			table.insert(PartsTable, v)
		end
		GetTransparentsRecursive(v, PartsTable)
	end
	return PartsTable
end

function SelectionBoxify(Object)
	local SelectionBox = Instance.new("SelectionBox")
	SelectionBox.Adornee = Object
	SelectionBox.Color = BrickColor.new("Really red")
	SelectionBox.Parent = Object
	return SelectionBox
end

local function Light(Object)
	local Light = PointLight:Clone()
	Light.Range = (Light.Range + 2)
	Light.Parent = Object
end

function FadeOutObjects(Objects, FadeIncrement)
	repeat
		local LastObject = nil
		for i, v in pairs(Objects) do
			v.Transparency = (v.Transparency + FadeIncrement)
			LastObject = v
		end
		wait()
	until LastObject.Transparency >= 1 or not LastObject
end

function Dematerialize(character, humanoid, FirstPart)
	if not character or not humanoid then
		return
	end

	humanoid.WalkSpeed = 0

	local Parts = {}

	for i, v in pairs(character:GetChildren()) do
		if v:IsA("BasePart") then
			v.Anchored = true
			table.insert(Parts, v)
		elseif v:IsA("LocalScript") or v:IsA("Script") then
			v:Destroy()
		end
	end

	local SelectionBoxes = {}

	local FirstSelectionBox = SelectionBoxify(FirstPart)
	Light(FirstPart)
	wait(0.05)

	for i, v in pairs(Parts) do
		if v ~= FirstPart then
			table.insert(SelectionBoxes, SelectionBoxify(v))
			Light(v)
		end
	end

	local ObjectsWithTransparency = GetTransparentsRecursive(character)
	FadeOutObjects(ObjectsWithTransparency, 0.1)

	wait(0.5)

	character:BreakJoints()
	humanoid.Health = 0

	Debris:AddItem(character, 2)

	local FadeIncrement = 0.05
	Delay(0.2, function()
		FadeOutObjects({FirstSelectionBox}, FadeIncrement)
		if character and character.Parent then
			character:Destroy()
		end
	end)
	FadeOutObjects(SelectionBoxes, FadeIncrement)
end

function Touched(Projectile, Hit)
	if not Hit or not Hit.Parent then
		return
	end
	local character, humanoid = FindCharacterAncestor(Hit)
	if character and humanoid and character ~= Character then
		local ForceFieldExists = false
		for i, v in pairs(character:GetChildren()) do
			if v:IsA("ForceField") then
				ForceFieldExists = true
			end
		end
		if not ForceFieldExists then
			if Projectile then
				local HitFadeSound = Projectile:FindFirstChild(Sounds.HitFade.Name)
				local torso = humanoid.Torso
				if HitFadeSound and torso then
					HitFadeSound.Parent = torso
					HitFadeSound:Play()
				end
			end
			Dematerialize(character, humanoid, Hit)
		end
		if Projectile and Projectile.Parent then
			Projectile:Destroy()
		end
	end
end

function Equipped()
	Character = Tool.Parent
	Player = Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChild("Humanoid")
	if not Player or not Humanoid or Humanoid.Health == 0 then
		return
	end
end

function Activated(target)
	if Tool.Enabled and Humanoid.Health > 0 then
		Tool.Enabled = false

		InvokeClient("PlaySound", Sounds.Fire)

		local HandleCFrame = Handle.CFrame
		local FiringPoint = HandleCFrame.p + HandleCFrame:vectorToWorldSpace(NozzleOffset)
		local ShotCFrame = CFrame.new(FiringPoint, target)

		local LaserShotClone = BaseShot:Clone()
		LaserShotClone.CFrame = ShotCFrame + (ShotCFrame.lookVector * (BaseShot.Size.Z / 2))
		local BodyVelocity = Instance.new("BodyVelocity")
		BodyVelocity.velocity = ShotCFrame.lookVector * Speed
		BodyVelocity.Parent = LaserShotClone
		LaserShotClone.Touched:connect(function(Hit)
			if not Hit or not Hit.Parent then
				return
			end
			Touched(LaserShotClone, Hit)
		end)
		Debris:AddItem(LaserShotClone, Duration)
		LaserShotClone.Parent = game:GetService("Workspace")

		wait(0.6) -- FireSound length

		InvokeClient("PlaySound", Sounds.Reload)

		wait(0.75) -- ReloadSound length

		Tool.Enabled = true
	end
end

function Unequipped()

end

BaseShot = Instance.new("Part")
BaseShot.Name = "Effect"
BaseShot.BrickColor = BrickColor.new("Really red")
BaseShot.Material = Enum.Material.Plastic
BaseShot.Shape = Enum.PartType.Block
BaseShot.TopSurface = Enum.SurfaceType.Smooth
BaseShot.BottomSurface = Enum.SurfaceType.Smooth
BaseShot.FormFactor = Enum.FormFactor.Custom
BaseShot.Size = Vector3.new(0.2, 0.2, 3)
BaseShot.CanCollide = false
BaseShot.Locked = true
SelectionBoxify(BaseShot)
Light(BaseShot)
BaseShotSound = Sounds.HitFade:Clone()
BaseShotSound.Parent = BaseShot

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


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, UDim2.new(0, xSize, 0, 1000))
	return textBoundsSize.Y
end

function methods:GetNumberOfSpaces(str, font, textSize)
	local strSize = self:GetStringTextBounds(str, font, textSize)
	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.625
	BaseMessage.TextStrokeColor3 = Color3.new( 255/255 , 206/255 , 244/255 )
	BaseMessage.TextColor3 = chatColor
	BaseMessage.TextWrapped = 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.TextStrokeColor3 = Color3.new( 188/255 , 37/255 , 72/255 )
	NameButton.TextColor3 = nameColor
	NameButton.Text = formatName
	NameButton.Visible = true
	NameButton.Parent = BaseMessage

	NameButton.MouseButton1Click:connect(function()
		self:NameButtonClicked(NameButton, playerName)
	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

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

	return ChannelButton
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 = "To " ..playerName
			if self.ChatWindow:GetChannel(whisperChannel) then
				self.ChatBar:ResetCustomState()
				local targetChannelName = self.ChatWindow:GetTargetMessageChannel()
				if targetChannelName ~= whisperChannel then
					self.ChatWindow:SwitchCurrentChannel(whisperChannel)
				end
				self.ChatBar:ResetText()
				self.ChatBar:CaptureFocus()
			elseif not self.ChatBar:IsInCustomState() then
				local whisperMessage = "/w " ..playerName
				self.ChatBar:CaptureFocus()
				self.ChatBar:SetText(whisperMessage)
			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

function methods:RegisterGuiRoot(root)
	testLabel.Parent = root
end


Prompt: --RGB Colors

Response:
local redV = 25 --If you want a different color change this. (Must understand RGB)
local greenV = 25
local blueV = 205


Prompt: -- Replica data changes:

Response:
rev_ReplicaSetValue.OnClientEvent:Connect(ReplicaSetValue) -- (replica_id, {path}, value)

rev_ReplicaSetValues.OnClientEvent:Connect(ReplicaSetValues) -- (replica_id, {path}, {values})

rev_ReplicaArrayInsert.OnClientEvent:Connect(ReplicaArrayInsert) -- (replica_id, {path}, value)

rev_ReplicaArraySet.OnClientEvent:Connect(ReplicaArraySet) -- (replica_id, {path}, index, value)

rev_ReplicaArrayRemove.OnClientEvent:Connect(ReplicaArrayRemove) -- (replica_id, {path}, index)

rev_ReplicaWrite.OnClientEvent:Connect(function(replica_id, func_id, ...) -- (replica_id, func_id, {params})
	local replica = Replicas[replica_id]
	-- Running function:
	WriteFunctionFlag = true
	replica._write_lib[func_id](replica, ...)
	WriteFunctionFlag = false
	-- Signaling listeners:
	local listeners = replica._function_listeners[func_id]
	if listeners ~= nil then
		for _, listener in ipairs(listeners) do
			listener(...)
		end
	end
end)


Prompt: -- recommend waiting for a longer time

Response:
while task.wait(math.random(10 , 20)) do
	 --[[
	 we are requiring the chatService module in the loop because
		it might not have loaded before
	 ]]--
	if not ChatService then
		if ServerScriptService:FindFirstChild("ChatServiceRunner") then
			ChatService = require(ServerScriptService.ChatServiceRunner:WaitForChild("ChatService"))
		end
	end

	-- destroying the frame  here because cleaning space for new ones

	for i , v in pairs(script.Parent:GetChildren()) do
		if v:IsA("Frame") then
			v:Destroy()
		end
	end

	Arrange()

end


Prompt:
--// Easily add new custom commands below (without needing to create a plugin module)
--// You can also use this to overwrite existing commands if you know the command's index (found in the command's respective module within the Adonis MainModule)

Response:
settings.Commands = {
	ExampleCommand1 = {								--// The index & table of the command
		Prefix = Settings.Prefix;				--// The prefix the command will use, this is the ':' in ':ff me'
		Commands = {"examplecommand1", "examplealias1", "examplealias2"};	--// A table containing the command strings (the things you chat in-game to run the command, the 'ff' in ':ff me')
		Args = {"arg1", "arg2", "etc"};	--// Command arguments, these will be available in order as args[1], args[2], args[3], etc; This is the 'me' in ':ff me'
		Description = "Example command";--// The description of the command
		AdminLevel = 100; -- Moderators	--// The commands minimum admin level; This can also be a table containing specific levels rather than a minimum level: {124, 152, "HeadAdmins", etc};
		-- Alternative option: AdminLevel = "Moderators"
		Filter = true;									--// Should user supplied text passed to this command be filtered automatically? Use this if you plan to display a user-defined message to other players
		Hidden = true;									--// Should this command be hidden from the command list?
		Disabled = true;								--// If set to true this command won't be usable.
		Function = function(plr: Player, args: {string}, data)	--// The command's function; This is the actual code of the command which runs when you run the command
			--// "plr" is the player running the command
			--// "args" is an array of strings containing command arguments supplied by the user
			--// "data" is a table containing information related to the command and the player running it, such as data.PlayerData.Level (the player's admin level) [Refer to API docs]
			print("This is 'arg1':", tostring(args[1]))
			print("This is 'arg2':", tostring(args[2]))
			print("This is 'etc'(arg 3):", tostring(args[3]))
			error("this is an example error :o !") --// Errors raised in the function during command execution will be displayed to the user.
		end
	};
}

settings.CommandCooldowns = {


Prompt: -- Preload animations

Response:
function playAnimation(animName, transitionTime, humanoid)

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


Prompt: -------------//Events\\-------------

Response:
Evt.HitEffect.OnClientEvent:Connect(function(Player,Position, HitPart, Normal, Material,Settings)
	if Player ~= plr then
		HitMod.HitEffect(Ignore_Model,Position, HitPart, Normal, Material,Settings)
	end
end)

Evt.Atirar.OnClientEvent:Connect(function(Player,Arma,Suppressor,FlashHider)
	if Player ~= plr and Arma then
		if Player.Character:FindFirstChild("S"..Arma.Name) and Player.Character:FindFirstChild('S'..Arma.Name).Handle:FindFirstChild("Muzzle") then
			local Muzzle = Player.Character:FindFirstChild("S"..Arma.Name).Handle.Muzzle

			if Suppressor then
				Muzzle.Supressor:Play()
			else
				Muzzle.Fire:Play()
			end

			if FlashHider then
				Muzzle["Smoke"]:Emit(10)
			else
				Muzzle["FlashFX[Flash]"]:Emit(10)
				Muzzle["Smoke"]:Emit(10)
			end
		end

		if Player.Character:FindFirstChild("AnimBase") ~= nil and Player.Character.AnimBase:FindFirstChild("AnimBaseW") then
			local AnimBase = Player.Character:WaitForChild("AnimBase"):WaitForChild("AnimBaseW")
			TS:Create(AnimBase, TweenInfo.new(0.05,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0), {C1 =  CFrame.new(0,0,0.15):Inverse()} ):Play()
			delay(.1,function()
				TS:Create(AnimBase, TweenInfo.new(.05,Enum.EasingStyle.Sine,Enum.EasingDirection.InOut,0,false,0), {C1 =  CFrame.new():Inverse()} ):Play()
			end)
		end
	end
end)

Evt.SVLaser.OnClientEvent:Connect(function(Player,Position,Modo,Cor,IR,Arma)

	if Player ~= plr and Player.Character and Arma then

		if ACS_Workspace.Server:FindFirstChild(Player.Name.."_Laser") == nil then
			local Dot = Instance.new('Part',ACS_Workspace.Server)
			local Att0 = Instance.new('Attachment',Dot)
			Att0.Name = "Att0"
			Dot.Name = Player.Name.."_Laser"
			Dot.Transparency = 1

			if Player.Character:FindFirstChild("S"..Arma.Name) and Player.Character:FindFirstChild('S'..Arma.Name).Handle:FindFirstChild("Muzzle") then
				local Muzzle = Player.Character:FindFirstChild("S"..Arma.Name).Handle.Muzzle

				local Laser = Instance.new('Beam',Dot)
				Laser.Transparency = NumberSequence.new(0)
				Laser.LightEmission = 1
				Laser.LightInfluence = 0
				Laser.Attachment0 = Att0
				Laser.Attachment1 = Muzzle
				Laser.Color = ColorSequence.new(Cor)
				Laser.FaceCamera = true
				Laser.Width0 = 0.01
				Laser.Width1 = 0.01
				if not NVG then
					Laser.Enabled = false
				end
			end
		end

		if Modo == 1 then
			if ACS_Workspace.Server:FindFirstChild(Player.Name.."_Laser") then
				local LA = ACS_Workspace.Server:FindFirstChild(Player.Name.."_Laser")
				LA.Shape = 'Ball'
				LA.Size = Vector3.new(0.2, 0.2, 0.2)
				LA.CanCollide = false
				LA.Anchored = true
				LA.Color = Cor
				LA.Material = Enum.Material.Neon
				LA.Position = Position
				if NVG then
					LA.Transparency = 0

					if LA:FindFirstChild("Beam") then
						LA.Beam.Enabled = true
					end
				else
					if IR then
						LA.Transparency = 1
					else
						LA.Transparency = 0
					end

					if LA:FindFirstChild("Beam") then
						LA.Beam.Enabled = false
					end
				end
			end

		elseif Modo == 2 then
			if ACS_Workspace.Server:FindFirstChild(Player.Name.."_Laser") then
				ACS_Workspace.Server:FindFirstChild(Player.Name.."_Laser"):Destroy()
			end
		end
	end
end)

Evt.SVFlash.OnClientEvent:Connect(function(Player,Arma,Mode)

	if Player ~= plr and Player.Character and Arma then
		local Weapon = Player.Character:FindFirstChild("S"..Arma.Name)
		if Weapon then
			if Mode then
				for index, Key in pairs(Weapon:GetDescendants()) do
					if Key:IsA("BasePart") and Key.Name == "FlashPoint" then
						Key.Light.Enabled = true
					end
				end
			else
				for index, Key in pairs(Weapon:GetDescendants()) do
					if Key:IsA("BasePart") and Key.Name == "FlashPoint" then
						Key.Light.Enabled = false
					end
				end
			end
		end
	end
end)

Evt.Whizz.OnClientEvent:connect(function()

	local Som = Instance.new('Sound')
	Som.Parent = plr.PlayerGui
	Som.SoundId = "rbxassetid://"..WhizzSound[math.random(1,#WhizzSound)]
	Som.Volume = 2
	Som.PlayOnRemove = true
	Som:Destroy()

end)

Evt.MedSys.MedHandler.OnClientEvent:connect(function(Mode)

	if Mode == 4 then
		local FX = Instance.new('ColorCorrectionEffect')
		FX.Parent = cam

		TS:Create(FX,TweenInfo.new(.15,Enum.EasingStyle.Linear),{Contrast = -.25}):Play()
		delay(.15,function()
			TS:Create(FX,TweenInfo.new(1.5,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0.15),{Contrast = 0}):Play()
			Debris:AddItem(FX,1.5)
		end)

	elseif Mode == 5 then
		local FX = Instance.new('ColorCorrectionEffect')
		FX.Parent = cam

		TS:Create(FX,TweenInfo.new(.15,Enum.EasingStyle.Linear),{Contrast = .5}):Play()
		delay(.15,function()
			TS:Create(FX,TweenInfo.new(1.5,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0.15),{Contrast = 0}):Play()
			Debris:AddItem(FX,1.5)
		end)

	elseif Mode == 6 then
		local FX = Instance.new('ColorCorrectionEffect')
		FX.Parent = cam

		TS:Create(FX,TweenInfo.new(.15,Enum.EasingStyle.Linear),{Contrast = -.25}):Play()
		delay(.15,function()
			TS:Create(FX,TweenInfo.new(60,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0.15),{Contrast = 0}):Play()
			Debris:AddItem(FX,60)
		end)

	elseif Mode == 7 then
		local FX = Instance.new('ColorCorrectionEffect')
		FX.Parent = cam

		TS:Create(FX,TweenInfo.new(.15,Enum.EasingStyle.Linear),{Contrast = .5}):Play()
		delay(.15,function()
			TS:Create(FX,TweenInfo.new(30,Enum.EasingStyle.Sine,Enum.EasingDirection.In,0,false,0.15),{Contrast = 0}):Play()
			Debris:AddItem(FX,30)
		end)
	end

end)

Evt.Suppression.OnClientEvent:Connect(function(Mode,Intensity,Tempo)
	local SE_GUI = plr.PlayerGui:FindFirstChild("StatusUI")
	if plr.Character and plr.Character.Humanoid.Health > 0 and SE_GUI then
		if Mode == 1 then

			TS:Create(SE_GUI.Efeitos.Suppress,TweenInfo.new(.1),{ImageTransparency = 0, Size = UDim2.fromScale(1,1.15)}):Play()
			delay(.1,function()
				TS:Create(SE_GUI.Efeitos.Suppress,TweenInfo.new(1,Enum.EasingStyle.Exponential,Enum.EasingDirection.InOut,0,false,0.15),{ImageTransparency = 1,Size = UDim2.fromScale(2,2)}):Play()
			end)
		elseif Mode == 2 then

			local ring = PastaFx.EarRing:Clone()
			ring.Parent = plr.PlayerGui
			ring.Volume = 0
			ring:Play()
			Debris:AddItem(ring,Tempo)

			TS:Create(ring,TweenInfo.new(.1),{Volume = 2}):Play()
			delay(.1,function()
				TS:Create(ring,TweenInfo.new(Tempo,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut,0,false,0.15),{Volume = 0}):Play()
			end)

			TS:Create(SE_GUI.Efeitos.Dirty,TweenInfo.new(.1),{ImageTransparency = 0, Size = UDim2.fromScale(1,1.15)}):Play()
			delay(.1,function()
				TS:Create(SE_GUI.Efeitos.Dirty,TweenInfo.new(Tempo,Enum.EasingStyle.Exponential,Enum.EasingDirection.InOut,0,false,0.15),{ImageTransparency = 1,Size = UDim2.fromScale(2,2)}):Play()
			end)

		else

			local ring = PastaFx.EarRing:Clone()
			ring.Parent = plr.PlayerGui
			ring.Volume = 0
			ring:Play()
			Debris:AddItem(ring,Tempo)

			TS:Create(ring,TweenInfo.new(.1),{Volume = 2}):Play()
			delay(.1,function()
				TS:Create(ring,TweenInfo.new(Tempo,Enum.EasingStyle.Linear,Enum.EasingDirection.InOut,0,false,0.15),{Volume = 0}):Play()
			end)
		end
	end
end)

Evt.GunStance.OnClientEvent:Connect(function(Player,stance,Data)
	if not Player or not Player.Character then return; end;
	if not Player.Character:FindFirstChild("Humanoid") or Player.Character.Humanoid.Health <= 0 then return; end;
	if not Player.Character:FindFirstChild("AnimBase") or not Player.Character.AnimBase:FindFirstChild("RAW") or not Player.Character.AnimBase:FindFirstChild("LAW") then return; end;

	local Right_Weld = Player.Character.AnimBase:FindFirstChild("RAW")
	local Left_Weld = Player.Character.AnimBase:FindFirstChild("LAW")

	if not Right_Weld or not Left_Weld then return; end;
	--// Some Yanderedev work over here, huh?
	if stance == 0 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.SV_RightArmPos} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.SV_LeftArmPos} ):Play()
		return;
	elseif stance == 2 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.RightAim} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.LeftAim} ):Play()
		return;
	elseif stance == 1 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.RightHighReady} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.LeftHighReady} ):Play()
		return;
	elseif stance == -1 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.RightLowReady} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.LeftLowReady} ):Play()
		return;
	elseif stance == -2 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.RightPatrol} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.LeftPatrol} ):Play()
		return;
	elseif stance == 3 then
		TS:Create(Right_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.RightSprint} ):Play()
		TS:Create(Left_Weld, TweenInfo.new(.25,Enum.EasingStyle.Sine), {C0 = Data.LeftSprint} ):Play()
		return;
	end
	return;
end)

Evt.HeadRot.OnClientEvent:Connect(function(Player, CF)
	if not Player or Player == plr or not Player.Character or not Player.Character:FindFirstChild("Torso") or not Player.Character:FindFirstChild("Head") then return; end;
	local Neck = Player.Character.Torso:FindFirstChild("Neck");
	if not Neck then return; end;
	TS:Create(Neck, TweenInfo.new(.2, Enum.EasingStyle.Sine, Enum.EasingDirection.Out, 0, false, 0), {C1 = CF}):Play()
end)

function CastRay(Bullet)
	if not Bullet then return; end;

	local Bpos = Bullet.Position
	local Bpos2 = Bpos
	local recast = false
	local raycastResult

	local raycastParams = RaycastParams.new()
	raycastParams.FilterDescendantsInstances = Ignore_Model
	raycastParams.FilterType = Enum.RaycastFilterType.Blacklist
	raycastParams.IgnoreWater = true

	while Bullet do
		Run.Heartbeat:Wait()
		if not Bullet.Parent then break; end;
		Bpos = Bullet.Position

		-- Set an origin and directional vector
		raycastResult = workspace:Raycast(Bpos2, (Bpos - Bpos2) * 1, raycastParams)
		recast = false

		if raycastResult then
			local Hit2 = raycastResult.Instance

			if Hit2 and (Hit2.Parent:IsA('Accessory') or Hit2.Parent:IsA('Hat') or Hit2.Transparency >= 1 or Hit2.CanCollide == false or Hit2.Name == "Ignorable" or Hit2.Name == "Glass" or Hit2.Name == "Ignore" or Hit2.Parent.Name == "Top" or Hit2.Parent.Name == "Helmet" or Hit2.Parent.Name == "Up" or Hit2.Parent.Name == "Down" or Hit2.Parent.Name == "Face" or Hit2.Parent.Name == "Olho" or Hit2.Parent.Name == "Headset" or Hit2.Parent.Name == "Numero" or Hit2.Parent.Name == "Vest" or Hit2.Parent.Name == "Chest" or Hit2.Parent.Name == "Waist" or Hit2.Parent.Name == "Back" or Hit2.Parent.Name == "Belt" or Hit2.Parent.Name == "Leg1" or Hit2.Parent.Name == "Leg2" or Hit2.Parent.Name == "Arm1"  or Hit2.Parent.Name == "Arm2") and Hit2.Name ~= 'Right Arm' and Hit2.Name ~= 'Left Arm' and Hit2.Name ~= 'Right Leg' and Hit2.Name ~= 'Left Leg' and Hit2.Name ~= "UpperTorso" and Hit2.Name ~= "LowerTorso" and Hit2.Name ~= "RightUpperArm" and Hit2.Name ~= "RightLowerArm" and Hit2.Name ~= "RightHand" and Hit2.Name ~= "LeftUpperArm" and Hit2.Name ~= "LeftLowerArm" and Hit2.Name ~= "LeftHand" and Hit2.Name ~= "RightUpperLeg" and Hit2.Name ~= "RightLowerLeg" and Hit2.Name ~= "RightFoot" and Hit2.Name ~= "LeftUpperLeg" and Hit2.Name ~= "LeftLowerLeg" and Hit2.Name ~= "LeftFoot" and Hit2.Name ~= 'Armor' and Hit2.Name ~= 'EShield' then
				table.insert(Ignore_Model, Hit2)
				recast = true
				CastRay(Bullet)
				break
			end
		end

		if raycastResult and not recast then
			Bullet:Destroy()
			break
		end

		Bpos2 = Bpos

	end
end

Evt.ServerBullet.OnClientEvent:Connect(function(Player, Origin, Direction, WeaponData, ModTable)
	if Player ~= plr and Player.Character then
		local Bullet = Instance.new("Part",ACS_Workspace.Server)
		Bullet.Name = Player.Name.."_Bullet"
		Bullet.CanCollide = false
		Bullet.Shape = Enum.PartType.Ball
		Bullet.Transparency = 1
		Bullet.Size = Vector3.new(1,1,1)

		local BulletCF 		= CFrame.new(Origin, Direction)
		local WalkMul 		= WeaponData.WalkMult * ModTable.WalkMult
		local BColor 		= Color3.fromRGB(255,255,255)

		if WeaponData.RainbowMode then
			BColor = Color3.fromRGB(math.random(0,255),math.random(0,255),math.random(0,255))
		else
			BColor = WeaponData.TracerColor
		end

		if WeaponData.Tracer == true then

			local At1 = Instance.new("Attachment")
			At1.Name = "At1"
			At1.Position = Vector3.new(-(.05),0,0)
			At1.Parent = Bullet

			local At2  = Instance.new("Attachment")
			At2.Name = "At2"
			At2.Position = Vector3.new((.05),0,0)
			At2.Parent = Bullet

			local Particles = Instance.new("Trail")
			Particles.Transparency = NumberSequence.new({
				NumberSequenceKeypoint.new(0, 0, 0);
				NumberSequenceKeypoint.new(1, 1);
			}
			)
			Particles.WidthScale = NumberSequence.new({
				NumberSequenceKeypoint.new(0, 2, 0);
				NumberSequenceKeypoint.new(1, 1);
			}
			)

			Particles.Color = ColorSequence.new(BColor)
			Particles.Texture = "rbxassetid://232918622"
			Particles.TextureMode = Enum.TextureMode.Stretch

			Particles.FaceCamera = true
			Particles.LightEmission = 1
			Particles.LightInfluence = 0
			Particles.Lifetime = .25
			Particles.Attachment0 = At1
			Particles.Attachment1 = At2
			Particles.Parent = Bullet
		end

		if WeaponData.BulletFlare == true then
			local bg = Instance.new("BillboardGui", Bullet)
			bg.Adornee = Bullet
			local flashsize = math.random(275, 375)/10
			bg.Size = UDim2.new(flashsize, 0, flashsize, 0)
			bg.LightInfluence = 0
			local flash = Instance.new("ImageLabel", bg)
			flash.BackgroundTransparency = 1
			flash.Size = UDim2.new(1, 0, 1, 0)
			flash.Position = UDim2.new(0, 0, 0, 0)
			flash.Image = "http://www.roblox.com/asset/?id=1047066405"
			flash.ImageTransparency = math.random(2, 5)/15
			flash.ImageColor3 = BColor
		end

		local BulletMass = Bullet:GetMass()
		local Force = Vector3.new(0,BulletMass * (196.2) - (WeaponData.BulletDrop) * (196.2), 0)
		local BF = Instance.new("BodyForce",Bullet)

		Bullet.CFrame = BulletCF
		Bullet:ApplyImpulse(Direction * WeaponData.MuzzleVelocity * ModTable.MuzzleVelocity)
		BF.Force = Force

		game.Debris:AddItem(Bullet, 5)
		CastRay(Bullet)
	end
end)


Prompt: -- To exit and enter free camera, use key shortcut Left Shift + P

Response:
local player = game:GetService("Players")
while not player.LocalPlayer do player.Changed:wait() end
player = player.LocalPlayer
local camera = workspace.CurrentCamera

local RS  = game:GetService("RunService")
local UIS = game:GetService("UserInputService")
local StarterGui = game:GetService("StarterGui")

local Spring = require(script:WaitForChild("Spring"))
local Maid = require(script:WaitForChild("Maid"))

local WasGuiVisible = {}
function ToggleGui(on)
	if not on then
		WasGuiVisible["PointsNotificationsActive"] = StarterGui:GetCore("PointsNotificationsActive")
		WasGuiVisible["BadgesNotificationsActive"] = StarterGui:GetCore("BadgesNotificationsActive")
		WasGuiVisible["Health"] = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Health)
		WasGuiVisible["Backpack"] = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Backpack)
		WasGuiVisible["PlayerList"] = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.PlayerList)
		WasGuiVisible["Chat"] = StarterGui:GetCoreGuiEnabled(Enum.CoreGuiType.Chat)
	end

	local function GuiOn(name)
		if on == false then
			return false
		end
		if WasGuiVisible[name] ~= nil then
			return WasGuiVisible[name]
		end
		return true
	end

	StarterGui:SetCore("PointsNotificationsActive", GuiOn("PointsNotificationsActive"))
	StarterGui:SetCore("BadgesNotificationsActive", GuiOn("BadgesNotificationsActive"))

	StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, GuiOn("Health"))
	StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, GuiOn("Backpack"))
	StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.PlayerList, GuiOn("PlayerList"))
	StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Chat, GuiOn("Chat"))
end


Prompt: -- SSR experiments

Response:
exports.enableSuspenseServerRenderer = _G.__EXPERIMENTAL__
exports.enableSelectiveHydration = _G.__EXPERIMENTAL__


Prompt:
-- This code is written very specific for this door
-- The only changes that should be allowed are the X width of parts 'd1' and 'd2
-- The 3 black edge pieces (named "Part") can be deleted if not wanted


Prompt: -- VisualGraphics

Response:
local SG = game:GetService("StarterGui")

while wait() do
SG:SetCoreGuiEnabled("Chat", false)
end


Prompt: --This script turns the light on at night and off in in the day!

Response:
b = script.Parent
c = script.Parent.Parent.Parent

local oh,om = 6,20	-- Open Time (hours,minutes)
local ch,cm = 17,45	-- Close Time (hours, minutes)

local l = game:service("Lighting")
if (om == nil) then om = 0 end
if (cm == nil) then cm = 0 end

function TimeChanged()
	local ot = (oh + (om/60)) * 60
	local ct = (ch + (cm/60)) * 60
	if (ot < ct) then
		if (l:GetMinutesAfterMidnight() >= ot) and (l:GetMinutesAfterMidnight() <= ct) then
b.Enabled = false
c.RearLight1.Material = "SmoothPlastic"
		else
b.Enabled = true
c.RearLight1.Material = "Neon"
		end
	elseif (ot > ct) then
		if (l:GetMinutesAfterMidnight() >= ot) or (l:GetMinutesAfterMidnight() <= ct) then
b.Enabled = false
c.RearLight1.Material = "SmoothPlastic"
		else
b.Enabled = true
c.RearLight1.Material = "Neon"
		end
	end
end

TimeChanged()
game.Lighting.Changed:connect(function(property)
			if (property == "TimeOfDay") then
				TimeChanged()
			end
		end)


Prompt: -- ROBLOX upstream: https://github.com/facebook/jest/tree/v27.4.7/packages/jest-util/src/globsToMatcher.ts


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

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

script:WaitForChild("Rel")
script:WaitForChild("Start")

script.Parent.Values.Gear.Changed:connect(function() mult=1 end)

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

handler:FireServer("newSound","Rel",car.DriveSeat,script.Rel.SoundId,1,script.Rel.Volume,true)
handler:FireServer("newSound","Start",car.DriveSeat,script.Start.SoundId,1,script.Start.Volume,false)
handler:FireServer("playSound","Rel")
car.DriveSeat:WaitForChild("Rel")
car.DriveSeat:WaitForChild("Start")

while wait() do
	mult=math.max(0,mult-.1)
	local _RPM = script.Parent.Values.RPM.Value
	if script.Parent.Values.PreOn.Value then
		handler:FireServer("playSound","Start")
		wait(1.5)
	else
		if not script.Parent.IsOn.Value then on=math.max(on-.015,0) else on=1 end
		RelVolume = 3*(1 - math.min(((script.Parent.Values.RPM.Value*3)/_Tune.Redline),1))
		RelPitch = (math.max((((script.Rel.SetPitch.Value + script.Rel.SetRev.Value*_RPM/_Tune.Redline))*on^2)+(det*mult*math.sin(80*tick())),script.Rel.SetPitch.Value)) * on
	end
	if FE then
		handler:FireServer("updateSound","Rel",script.Rel.SoundId,RelPitch,RelVolume)
	else
		car.DriveSeat.Rel.Volume = RelVolume
		car.DriveSeat.Rel.Pitch = RelPitch
	end
end


Prompt: -- Set up the trigger event

Response:
script.Parent.Trigger.Touched:connect(function(obj)
	if (game.Players:GetPlayerFromCharacter(obj.Parent)) then
		local t = time()
		if ((t-last) < 1) then return end	-- 1-second debounce (time-based)
		last = t
		GoTo(open)
	end
end)


Prompt: --// Handling Settings

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

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


Prompt:
--[=[
	Shift the emissions from an Observable forward in time by a particular amount.

	@param seconds number
	@return (source: Observable<T>) -> Observable<T>
]=]

Response:
function Rx.delay(seconds)
	assert(type(seconds) == "number", "Bad seconds")

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

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

			maid:GiveTask(source:Subscribe(function(...)
				local args = table.pack(...)

				maid[args] = cancellableDelay(seconds, function()
					maid[args] = nil
					sub:Fire(table.unpack(args, 1, args.n))
				end)
			end, sub:GetFailComplete()))

			return maid
		end)
	end
end


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

Response:
local hitPart = script.Parent
local debounce = true
local tool = game.ServerStorage.ForceFieldPotion -- 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:
--[[
	Called when the goal state changes value, or when the speed or damping has
	changed.
]]

Response:
function class:update(): boolean
	local goalValue = self._goalState:get(false)

	-- figure out if this was a goal change or a speed/damping change
	if goalValue == self._goalValue then
		-- speed/damping change
		local damping = unwrap(self._damping)
		if typeof(damping) ~= "number" then
			logErrorNonFatal("mistypedSpringDamping", nil, typeof(damping))
		elseif damping < 0 then
			logErrorNonFatal("invalidSpringDamping", nil, damping)
		else
			self._currentDamping = damping
		end

		local speed = unwrap(self._speed)
		if typeof(speed) ~= "number" then
			logErrorNonFatal("mistypedSpringSpeed", nil, typeof(speed))
		elseif speed < 0 then
			logErrorNonFatal("invalidSpringSpeed", nil, speed)
		else
			self._currentSpeed = speed
		end

		return false
	else
		-- goal change - reconfigure spring to target new goal
		self._goalValue = goalValue

		local oldType = self._currentType
		local newType = typeof(goalValue)
		self._currentType = newType

		local springGoals = unpackType(goalValue, newType)
		local numSprings = #springGoals
		self._springGoals = springGoals

		if newType ~= oldType then
			-- if the type changed, snap to the new value and rebuild the
			-- position and velocity tables
			self._currentValue = self._goalValue

			local springPositions = table.create(numSprings, 0)
			local springVelocities = table.create(numSprings, 0)
			for index, springGoal in ipairs(springGoals) do
				springPositions[index] = springGoal
			end
			self._springPositions = springPositions
			self._springVelocities = springVelocities

			-- the spring may have been animating before, so stop that
			SpringScheduler.remove(self)
			return true

			-- otherwise, the type hasn't changed, just the goal...
		elseif numSprings == 0 then
			-- if the type isn't animatable, snap to the new value
			self._currentValue = self._goalValue
			return true

		else
			-- if it's animatable, let it animate to the goal
			SpringScheduler.add(self)
			return false
		end
	end
end

local function Spring<T>(
	goalState: PubTypes.Value<T>,
	speed: PubTypes.CanBeState<number>?,
	damping: PubTypes.CanBeState<number>?
): Types.Spring<T>
	-- apply defaults for speed and damping
	if speed == nil then
		speed = 10
	end
	if damping == nil then
		damping = 1
	end

	local dependencySet = {[goalState] = true}
	if xtypeof(speed) == "State" then
		dependencySet[speed] = true
	end
	if xtypeof(damping) == "State" then
		dependencySet[damping] = true
	end

	local self = setmetatable({
		type = "State",
		kind = "Spring",
		dependencySet = dependencySet,
		-- if we held strong references to the dependents, then they wouldn't be
		-- able to get garbage collected when they fall out of scope
		dependentSet = setmetatable({}, WEAK_KEYS_METATABLE),
		_speed = speed,
		_damping = damping,

		_goalState = goalState,
		_goalValue = nil,

		_currentType = nil,
		_currentValue = nil,
		_currentSpeed = unwrap(speed),
		_currentDamping = unwrap(damping),

		_springPositions = nil,
		_springGoals = nil,
		_springVelocities = nil
	}, CLASS_METATABLE)

	initDependency(self)
	-- add this object to the goal state's dependent set
	goalState.dependentSet[self] = true
	self:update()

	return self
end

return Spring


Prompt: -- module

Response:
local INPUT	= {}

function INPUT.GetActionInput(self, action)
	local input	= "nil"

	local replacements	= {
		Zero	= "0";
		One		= "1";
		Two		= "2";
		Three	= "3";
		Four	= "4";
		Five	= "5";
		Six		= "6";
		Seven	= "7";
		Eight	= "8";
		Nine	= "9";

		MouseButton1	= "MB1";
		MouseButton2	= "MB2";
		MouseButton3	= "MB3";
		Return			= "Enter";
		Slash			= "/";
		Tilde			= "~";
		Backquote		= "`";
	}

	if actions[action] then
		local primary, secondary	= actions[action].Primary, actions[action].Secondary

		if primary then
			input	= primary.Name
		elseif secondary then
			input	= secondary.Name
		end
	end

	if replacements[input] then
		input	= replacements[input]
	end

	return string.upper(input)
end

if not initialized then
	local keybindChanged	= Instance.new("BindableEvent")
	INPUT.KeybindChanged	= keybindChanged.Event

	actionBegan	= Instance.new("BindableEvent")
	actionEnded	= Instance.new("BindableEvent")

	INPUT.ActionBegan	= actionBegan.Event
	INPUT.ActionEnded	= actionEnded.Event

	-- register actions

	local playerData	= PLAYER_DATA:WaitForChild(PLAYER.Name)
	local keybinds		= playerData:WaitForChild("Keybinds")

	local function Register(action, bindP, bindS)
		local primary, secondary
		if bindP then
			local A, B	= string.match(bindP, "(.-)%.(.+)")

			if A and B then
				primary	= Enum[A][B]
			end
		end
		if bindS then
			local A, B	= string.match(bindS, "(.-)%.(.+)")

			if A and B then
				secondary	= Enum[A][B]
			end
		end

		RegisterAction(action, primary, secondary)
		keybindChanged:Fire(action)
	end

	local function Handle(keybind)
		local action	= keybind.Name
		local bind		= keybind.Value

		if string.match(bind, ";") then
			local bindP, bindS	= string.match(bind, "(.-);(.+)")

			if bindP and bindS then
				Register(action, bindP, bindS)
			elseif bindP then
				Register(action, bindP)
			elseif bindS then
				Register(action, nil, bindS)
			end
		else
			Register(action, bind)
		end
	end

	keybinds.ChildAdded:connect(function(keybind)
		keybind.Changed:connect(function()
			Handle(keybind)
		end)

		RunService.Stepped:wait()
		Handle(keybind)
	end)

	repeat
		RunService.Stepped:wait()
	until #keybinds:GetChildren() > 0

	for _, keybind in pairs(keybinds:GetChildren()) do
		keybind.Changed:connect(function()
			Handle(keybind)
		end)

		Handle(keybind)
	end

	initialized			= true
end

return INPUT


Prompt: --// 설정

Response:
	local Main = (script.owner.Value)
	local Player = game.Players.LocalPlayer
	local Found = false


Prompt: --- Adds a hook to be called when any command is run

Response:
function Registry:RegisterHook(hookName, callback, priority)
	if not self.Hooks[hookName] then
		error(("Invalid hook name: %q"):format(hookName), 2)
	end

	table.insert(self.Hooks[hookName], { callback = callback; priority = priority or 0; } )
	table.sort(self.Hooks[hookName], function(a, b) return a.priority < b.priority end)
end


Prompt: -- Signal Type enums

Response:
RaycastHitbox.SignalType = {
	Default = 1,
	Single = 2, --- Defaults to Single connections only for legacy purposes
}


Prompt: -- This loads from, or lazily creates, NumberValue objects for exposed parameters

Response:
function OrbitalCamera:LoadNumberValueParameters()
	-- These initial values do not require change listeners since they are read only once
	self:LoadOrCreateNumberValueParameter("InitialElevation", "NumberValue", nil)
	self:LoadOrCreateNumberValueParameter("InitialDistance", "NumberValue", nil)

	-- Note: ReferenceAzimuth is also used as an initial value, but needs a change listener because it is used in the calculation of the limits
	self:LoadOrCreateNumberValueParameter("ReferenceAzimuth", "NumberValue", self.SetAndBoundsCheckAzimuthValue)
	self:LoadOrCreateNumberValueParameter("CWAzimuthTravel", "NumberValue", self.SetAndBoundsCheckAzimuthValues)
	self:LoadOrCreateNumberValueParameter("CCWAzimuthTravel", "NumberValue", self.SetAndBoundsCheckAzimuthValues)
	self:LoadOrCreateNumberValueParameter("MinElevation", "NumberValue", self.SetAndBoundsCheckElevationValues)
	self:LoadOrCreateNumberValueParameter("MaxElevation", "NumberValue", self.SetAndBoundsCheckElevationValues)
	self:LoadOrCreateNumberValueParameter("MinDistance", "NumberValue", self.SetAndBoundsCheckDistanceValues)
	self:LoadOrCreateNumberValueParameter("MaxDistance", "NumberValue", self.SetAndBoundsCheckDistanceValues)
	self:LoadOrCreateNumberValueParameter("UseAzimuthLimits", "BoolValue", self.SetAndBoundsCheckAzimuthValues)

	-- Internal values set (in radians, from degrees), plus sanitization
	self.curAzimuthRad = math.rad(self.externalProperties["ReferenceAzimuth"])
	self.curElevationRad = math.rad(self.externalProperties["InitialElevation"])
	self.curDistance = self.externalProperties["InitialDistance"]

	self:SetAndBoundsCheckAzimuthValues()
	self:SetAndBoundsCheckElevationValues()
	self:SetAndBoundsCheckDistanceValues()
end

function OrbitalCamera:GetModuleName()
	return "OrbitalCamera"
end

function OrbitalCamera:SetInitialOrientation(humanoid: Humanoid)
	if not humanoid or not humanoid.RootPart then
		warn("OrbitalCamera could not set initial orientation due to missing humanoid")
		return
	end
	local newDesiredLook = (humanoid.RootPart.CFrame.lookVector - Vector3.new(0,0.23,0)).unit
	local horizontalShift = Util.GetAngleBetweenXZVectors(newDesiredLook, self:GetCameraLookVector())
	local vertShift = math.asin(self:GetCameraLookVector().y) - math.asin(newDesiredLook.y)
	if not Util.IsFinite(horizontalShift) then
		horizontalShift = 0
	end
	if not Util.IsFinite(vertShift) then
		vertShift = 0
	end
end


Response:
local hpScaling = _Tune.WeightScaling*10
local FBrakeForce = _Tune.FBrakeForce
local RBrakeForce = _Tune.RBrakeForce
local PBrakeForce = _Tune.PBrakeForce

local fFD = _Tune.FinalDrive
local fFDr = fFD*30/math.pi
local wDia = car.RearSection.Wheel.Size.X
local wDRatio = wDia*math.pi/60
local cfWRot = CFrame.Angles(math.pi/2,-math.pi/2,0)
local cfYRot = CFrame.Angles(0,math.pi,0)
local rtTwo = (2^.5)/2

local HP=_Tune.Horsepower/100
local PeakRPM=_Tune.PeakRPM/1000
local Sharpness=_Tune.PeakSharpness
local CurveMult=_Tune.CurveMult


Prompt: Running = 1;

Response:
	Swimming = 2;

	Climbing = 3,

	Jumping = 4;

	GettingUp = 5;

	FreeFalling = 6;

	FallingDown = 7;

	Landing = 8;

	Splash = 9;

}

local Humanoid = nil

local Head = nil

--SFX ID to Sound object

local Sounds = {}

do

	local Figure = script.Parent.Parent

	Head = Figure:WaitForChild("Head")

	while not Humanoid do

		for _,NewHumanoid in pairs(Figure:GetChildren()) do

			if NewHumanoid:IsA("Humanoid") then

				Humanoid = NewHumanoid

				break

			end

		end

		Figure.ChildAdded:wait()

	end

	Sounds[SFX.Died] = 			Head:WaitForChild("Died")

	Sounds[SFX.Running] = 		Head:WaitForChild("Running")

	Sounds[SFX.Swimming] = 	Head:WaitForChild("Swimming")

	Sounds[SFX.Climbing] = 	Head:WaitForChild("Climbing")

	Sounds[SFX.Jumping] = 		Head:WaitForChild("Jumping")

	Sounds[SFX.GettingUp] = 	Head:WaitForChild("GettingUp")

	Sounds[SFX.FreeFalling] = 	Head:WaitForChild("FreeFalling")

	Sounds[SFX.Landing] = 		Head:WaitForChild("Landing")

	Sounds[SFX.Splash] = 		Head:WaitForChild("Splash")

end

local Util

Util = {

	--Define linear relationship between (pt1x,pt2x) and (pt2x,pt2y). Evaluate this at x.

	YForLineGivenXAndTwoPts = function(x,pt1x,pt1y,pt2x,pt2y)

		--(y - y1)/(x - x1) = m

		local m = (pt1y - pt2y) / (pt1x - pt2x)

		--float b = pt1.y - m * pt1.x;

		local b = (pt1y - m * pt1x)

		return m * x + b

	end;

	--Clamps the value of "val" between the "min" and "max"

	Clamp = function(val,min,max)

		return math.min(max,math.max(min,val))

	end;

	--Gets the horizontal (x,z) velocity magnitude of the given part

	HorizontalSpeed = function(Head)

		local hVel = Head.Velocity + Vector3.new(0,-Head.Velocity.Y,0)

		return hVel.magnitude

	end;

	--Gets the vertical (y) velocity magnitude of the given part

	VerticalSpeed = function(Head)

		return math.abs(Head.Velocity.Y)

	end;

	--Setting Playing/TimePosition values directly result in less network traffic than Play/Pause/Resume/Stop

	--If these properties are enabled, use them.

	Play = function(sound)

		if sound.TimePosition ~= 0 then

			sound.TimePosition = 0

		end

		if not sound.IsPlaying then

			sound.Playing = true

		end

	end;

	Pause = function(sound)

		if sound.IsPlaying then

			sound.Playing = false

		end

	end;

	Resume = function(sound)

		if not sound.IsPlaying then

			sound.Playing = true

		end

	end;

	Stop = function(sound)

		if sound.IsPlaying then

			sound.Playing = false

		end

		if sound.TimePosition ~= 0 then

			sound.TimePosition = 0

		end

	end;

}

do

	-- List of all active Looped sounds

	local playingLoopedSounds = {}

	-- Last seen Enum.HumanoidStateType

	local activeState = nil

	-- Verify and set that "sound" is in "playingLoopedSounds".

	function setSoundInPlayingLoopedSounds(sound)

		for i=1, #playingLoopedSounds do

			if playingLoopedSounds[i] == sound then

				return

			end

		end

		table.insert(playingLoopedSounds,sound)

	end

	-- Stop all active looped sounds except parameter "except". If "except" is not passed, all looped sounds will be stopped.

	function stopPlayingLoopedSoundsExcept(except)

		for i=#playingLoopedSounds,1,-1 do

			if playingLoopedSounds[i] ~= except then

				Util.Pause(playingLoopedSounds[i])

				table.remove(playingLoopedSounds,i)

			end

		end

	end

	-- Table of Enum.HumanoidStateType to handling function

	local stateUpdateHandler = {

		[Enum.HumanoidStateType.Dead] = function()

			stopPlayingLoopedSoundsExcept()

			local sound = Sounds[SFX.Died]

			Util.Play(sound)

		end;

		[Enum.HumanoidStateType.RunningNoPhysics] = function()

			stateUpdated(Enum.HumanoidStateType.Running)

		end;

		[Enum.HumanoidStateType.Running] = function()

			local sound = Sounds[SFX.Running]

			stopPlayingLoopedSoundsExcept(sound)

			if Util.HorizontalSpeed(Head) > 0.5 then

				Util.Resume(sound)

				setSoundInPlayingLoopedSounds(sound)

			else

				stopPlayingLoopedSoundsExcept()

			end

		end;

		[Enum.HumanoidStateType.Swimming] = function()

			if activeState ~= Enum.HumanoidStateType.Swimming and Util.VerticalSpeed(Head) > 0.1 then

				local splashSound = Sounds[SFX.Splash]

				splashSound.Volume = Util.Clamp(

					Util.YForLineGivenXAndTwoPts(

						Util.VerticalSpeed(Head),

						100, 0.28,

						350, 1),

					0,1)

				Util.Play(splashSound)

			end

			do

				local sound = Sounds[SFX.Swimming]

				stopPlayingLoopedSoundsExcept(sound)

				Util.Resume(sound)

				setSoundInPlayingLoopedSounds(sound)

			end

		end;

		[Enum.HumanoidStateType.Climbing] = function()

			local sound = Sounds[SFX.Climbing]

			if Util.VerticalSpeed(Head) > 0.1 then

				Util.Resume(sound)

				stopPlayingLoopedSoundsExcept(sound)

			else

				stopPlayingLoopedSoundsExcept()

			end

			setSoundInPlayingLoopedSounds(sound)

		end;

		[Enum.HumanoidStateType.Jumping] = function()

			if activeState == Enum.HumanoidStateType.Jumping then

				return

			end

			stopPlayingLoopedSoundsExcept()

			local sound = Sounds[SFX.Jumping]

			Util.Play(sound)

		end;

		[Enum.HumanoidStateType.GettingUp] = function()

			stopPlayingLoopedSoundsExcept()

			local sound = Sounds[SFX.GettingUp]

			Util.Play(sound)

		end;

		[Enum.HumanoidStateType.Freefall] = function()

			if activeState == Enum.HumanoidStateType.Freefall then

				return

			end

			local sound = Sounds[SFX.FreeFalling]

			sound.Volume = 0

			stopPlayingLoopedSoundsExcept()

		end;

		[Enum.HumanoidStateType.FallingDown] = function()

			stopPlayingLoopedSoundsExcept()

		end;

		[Enum.HumanoidStateType.Landed] = function()

			stopPlayingLoopedSoundsExcept()

			if Util.VerticalSpeed(Head) > 75 then

				local landingSound = Sounds[SFX.Landing]

				landingSound.Volume = Util.Clamp(

					Util.YForLineGivenXAndTwoPts(

						Util.VerticalSpeed(Head),

						50, 0,

						100, 1),

					0,1)

				Util.Play(landingSound)

			end

		end;

		[Enum.HumanoidStateType.Seated] = function()

			stopPlayingLoopedSoundsExcept()

		end;

	}

	-- Handle state event fired or OnChange fired

	function stateUpdated(state)

		if stateUpdateHandler[state] ~= nil then

			stateUpdateHandler[state]()

		end

		activeState = state

	end

	Humanoid.Died:connect(			function() stateUpdated(Enum.HumanoidStateType.Dead) 			end)

	Humanoid.Running:connect(		function() stateUpdated(Enum.HumanoidStateType.Running) 		end)

	Humanoid.Swimming:connect(		function() stateUpdated(Enum.HumanoidStateType.Swimming) 		end)

	Humanoid.Climbing:connect(		function() stateUpdated(Enum.HumanoidStateType.Climbing) 		end)

	Humanoid.Jumping:connect(		function() stateUpdated(Enum.HumanoidStateType.Jumping) 		end)

	Humanoid.GettingUp:connect(		function() stateUpdated(Enum.HumanoidStateType.GettingUp) 		end)

	Humanoid.FreeFalling:connect(		function() stateUpdated(Enum.HumanoidStateType.Freefall) 		end)

	Humanoid.FallingDown:connect(		function() stateUpdated(Enum.HumanoidStateType.FallingDown) 	end)

	-- required for proper handling of Landed event

	Humanoid.StateChanged:connect(function(old, new)

		stateUpdated(new)

	end)

	function onUpdate(stepDeltaSeconds, tickSpeedSeconds)

		local stepScale = stepDeltaSeconds / tickSpeedSeconds

		do

			local sound = Sounds[SFX.FreeFalling]

			if activeState == Enum.HumanoidStateType.Freefall then

				if Head.Velocity.Y < 0 and Util.VerticalSpeed(Head) > 75 then

					Util.Resume(sound)

					--Volume takes 1.1 seconds to go from volume 0 to 1

					local ANIMATION_LENGTH_SECONDS = 1.1

					local normalizedIncrement = tickSpeedSeconds / ANIMATION_LENGTH_SECONDS

					sound.Volume = Util.Clamp(sound.Volume + normalizedIncrement * stepScale, 0, 1)

				else

					sound.Volume = 0

				end

			else

				Util.Pause(sound)

			end

		end

		do

			local sound = Sounds[SFX.Running]

			if activeState == Enum.HumanoidStateType.Running then

				if Util.HorizontalSpeed(Head) < 0.5 then

					Util.Pause(sound)

				end

			end

		end

	end

	local lastTick = tick()

	local TICK_SPEED_SECONDS = 0.25

	while true do

		onUpdate(tick() - lastTick,TICK_SPEED_SECONDS)

		lastTick = tick()

		wait(TICK_SPEED_SECONDS)

	end

end


Prompt: --Interior

Response:
local INT_PCK = nil
for i,v in pairs(misc:GetDescendants()) do
	if v:IsA("ObjectValue") and v.Name == "INTERIOR_PACK" then INT_PCK = v.Value end
end
if INT_PCK then

	if INT_PCK:FindFirstChild("Handbrake") then
		local HB = INT_PCK.Handbrake
		MakeWeld(HB.W,car.DriveSeat,"Motor",0.1)
		ModelWeld(HB.Parts,HB.W)
		ModelWeld(HB.Misc,car.DriveSeat)
	end

	if INT_PCK:FindFirstChild("Paddle_Shifter") then
		local PS = INT_PCK.Paddle_Shifter
		MakeWeld(PS.L,car.DriveSeat,"Motor",0.1)
		ModelWeld(PS.Left,PS.L)
		MakeWeld(PS.R,car.DriveSeat,"Motor",0.1)
		ModelWeld(PS.Right,PS.R)
	end

	if INT_PCK:FindFirstChild("Pedals") then
		local PD = INT_PCK.Pedals
		MakeWeld(PD.B,car.DriveSeat,"Motor",0.1)
		ModelWeld(PD.Brake,PD.B)
		MakeWeld(PD.C,car.DriveSeat,"Motor",0.1)
		ModelWeld(PD.Clutch,PD.C)
		MakeWeld(PD.T,car.DriveSeat,"Motor",0.1)
		ModelWeld(PD.Throttle,PD.T)
	end

	if INT_PCK:FindFirstChild("Shifter") then
		local SH = INT_PCK.Shifter
		MakeWeld(SH.Hinge,car.DriveSeat,"Weld")
		MakeWeld(SH.W1,SH.Hinge,"Motor",0.05)
		MakeWeld(SH.W2,SH.W1,"Motor",0.05)
		ModelWeld(SH.Parts,SH.W2)
		ModelWeld(SH.Misc,car.DriveSeat)
	end

	if INT_PCK:FindFirstChild("Steering_Wheel") then
		local SW = INT_PCK.Steering_Wheel
		MakeWeld(SW.W,car.DriveSeat,"Motor",0.5)
		ModelWeld(SW.Parts,SW.W)
	end

end

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


Prompt:
--[=[
	Observes the spring animating
	@param signal RBXScriptSignal
	@return Observable<T>
]=]

Response:
function SpringObject:ObserveOnSignal(signal)
	return Observable.new(function(sub)
		local maid = Maid.new()

		local startAnimate, stopAnimate = StepUtils.bindToSignal(signal, function()
			local animating, position = SpringUtils.animating(self._currentSpring)
			sub:Fire(SpringUtils.fromLinearIfNeeded(position))
			return animating
		end)

		maid:GiveTask(stopAnimate)
		maid:GiveTask(self.Changed:Connect(startAnimate))
		startAnimate()

		return maid
	end)
end


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		,
	--[[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		= .8			-- Center of gravity height (studs relative to median of all wheels)
Tune.WBVisible		= false		-- Makes the weight brick visible


Prompt:
--[=[
	Repeatedly calls a Promise-returning function up to `times` number of times, waiting `seconds` seconds between each
	retry, until the returned Promise resolves.

	If the amount of retries is exceeded, the function will return the latest rejected Promise.

	@since v3.2.0
	@param callback (...: P) -> Promise<T>
	@param times number
	@param seconds number
	@param ...? P
]=]

Response:
function Promise.retryWithDelay(callback, times, seconds, ...)
	assert(isCallable(callback), "Parameter #1 to Promise.retry must be a function")
	assert(type(times) == "number", "Parameter #2 (times) to Promise.retry must be a number")
	assert(type(seconds) == "number", "Parameter #3 (seconds) to Promise.retry must be a number")

	local args, length = { ... }, select("#", ...)

	return Promise.resolve(callback(...)):catch(function(...)
		if times > 0 then
			Promise.delay(seconds):await()

			return Promise.retryWithDelay(callback, times - 1, seconds, unpack(args, 1, length))
		else
			return Promise.reject(...)
		end
	end)
end


Prompt: --[ LOCALS ]--

Response:
local VIPGamepassId = 0 -- VIP GAMEPASS ID
local GamepassId = 0  -- GAMEPASS ID


Prompt:
--[[

	enumList = EnumList.new(name: string, enums: string[])

	enumList:BelongsTo(item): boolean

	Example:

		direction = EnumList.new("Direction", {"Up", "Down", "Left", "Right"})
		leftDir = direction.Left
		print("IsDirection", direction:BelongsTo(leftDir))

--]]

Response:
type EnumNames = {string}

local Symbol = require(script.Parent.Symbol)


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

Response:
local v1 = require(game.ReplicatedStorage:WaitForChild("Resources"));
while not v1.Loaded do
	game:GetService("RunService").Heartbeat:Wait();
end;
function lerp(p1, p2, p3)
	return p1 + (p2 - p1) * p3;
end;
function quadBezier(p4, p5, p6, p7)
	return lerp(lerp(p5, p6, p4), lerp(p6, p7, p4), p4);
end;
function ShootFire(p8, p9, p10)
	local u1 = workspace:GetServerTimeNow();
	coroutine.wrap(function()
		local v2 = v1.Assets.Models.PickupParticle:Clone();
		v2.Parent = workspace;
		local u2 = p9 + Vector3.new(0, math.random(0, 25), 0) + (p9 - p10).Unit:Cross(Vector3.yAxis) * math.random(-40, 40);
		v1.Functions.Util.RenderLoop(p8 - u1, function(p11, p12, p13)
			if v2 then
				v2.CFrame = CFrame.new(v1.Functions.Util.QuadBezier(p13, p9, u2, p10), v1.Functions.Util.QuadBezier(p13 + 0.01, p9, u2, p10));
			end;
		end);
		local v3 = v1.Assets.Models.HitParticle:Clone();
		v3.CFrame = v2.CFrame;
		v3.Parent = workspace;

			for v7, v8 in pairs(v3.Attachment:GetChildren()) do
			if v7 then

			else
				break;
			end;
			if v8.ClassName == "ParticleEmitter" then
				v8:Emit(tonumber(string.gsub(v8.Name, "%D", "")));
			end;
		end;
		v2:Destroy();
		task.delay(1, v3.Destroy, v3);
	end)();
end;
function FireAt(...)
	ShootFire(...);
	v1.Network.Fire("Shoot Fire At", ...);
end;
v1.Signal.Fired("Replicate Shoot Fire", FireAt);
v1.Network.Fired("Replicate Shoot Fire", FireAt);


Prompt: -- Local variables

Response:
local player = Players.LocalPlayer
local sourceLanguageCode = "en"


Prompt:
-- This is so that we don't attempt another spawn right away (or at least until this one is done)
-- .This should be cleared when the server announcement is seen
-- .In the future, matchmaking may cause more than a single server to be spawned per lobby.

Response:
local _pendingServerCreation = {}

local _joinEvent = nil
local _serverListEvent = nil
local _statusEvent = nil

local _messageHandlers = {}

function Lobby._teleportWithRetry(placeId, token, player, spawnName, teleportData, customLoadingScreen)
	local connection

	connection = TeleportService.TeleportInitFailed:Connect(function(failedPlayer, status, errorMessage)
		if failedPlayer == player then
			Log.Error.Lobby("Teleport failed for %s, TeleportResult: %s", player.Name, status.Name)

			if status == Enum.TeleportResult.Failure or status == Enum.TeleportResult.Flooded then
				connection:Disconnect()

				delay(2, function()
					Log.Warn.Lobby("Reattempting teleport")
					TeleportService:TeleportToPrivateServer(placeId, token, {player}, spawnName, teleportData, customLoadingScreen)
				end)
			end
		end
	end)

	TeleportService:TeleportToPrivateServer(placeId, token, {player}, spawnName, teleportData, customLoadingScreen)
end

function Lobby._retryJoin(pending)
	local player = Players:GetPlayerByUserId(pending.player_id)

	if player then
		Log.Warn.Lobby("Retrying")
		Lobby._teleportPlayer(player, pending.place_id, pending.game_mode)

	else
		-- This player didn't make it.  Long live this player.
		_pendingTickets[pending.player_id] = nil
	end
end

function Lobby._requestServerList()
	Log.Debug.Lobby("requestServerList")

	local req = {
		type = "ANNOUNCE:REQUEST",
		lobby = game.JobId,
	}

	MessagingService:PublishAsync("SERVER", req)
end

function Lobby._getClientServerData()
	local data = {}

	for serverId, serverData in pairs(_serverList) do
		local entry = {
			server = serverId,
			slots_available = serverData.slots_available,
			nonresponsive = _nonresponsiveServers[serverId],
		}

		table.insert(data, entry)
	end

	return data
end

function Lobby._sendServerListToAllClients()
	-- Sending everything all at once right now
	local data = Lobby._getClientServerData()
	_serverListEvent:FireAllClients(data)
end

function Lobby._sendServerListToClient(player)
	local data = Lobby._getClientServerData()
	_serverListEvent:FireClient(player, data)
end

function Lobby._handleServerAnnounce(pub)
	local data = pub.Data
	local server = data.server
	local creationId = data.creation_id

	Log.Debug.Lobby("Heard from server: %s", server)
	Log.Debug.LobbyData(Util.tableToString(pub))

	_serverList[server] = data
	_nonresponsiveServers[server] = nil

	if creationId then
		_pendingServerCreation[creationId] = nil
	end

	Lobby._sendServerListToAllClients()
end

function Lobby._handleServerRemoval(pub)
	local removedServer = pub.Data.server

	Log.Debug.Lobby("Server %s removed", removedServer)

	local removals = {}

	-- Remove the actual server entry
	_serverList[removedServer] = nil

	-- Removing any pending joins to the removed server
	for playerId, pendingData in pairs(_pendingTickets) do
		if pendingData.server == removedServer then
			table.insert(removals, pendingData)
		end
	end

	for _, pendingData in ipairs(removals) do
		local playerId = pendingData.player_id

		_pendingTickets[playerId] = nil

		-- This player was attempting to join to the removed server, so send them to another one.
		local player = Players:GetPlayerByUserId(playerId)
		Lobby._teleportPlayer(player, pendingData.place_id, pendingData.game_mode)
	end

	Lobby._sendServerListToAllClients()
end

function Lobby._sendJoinRequest(serverData, player, mode, destinationKey)
	local server = serverData.server

	local req = {
		type = "JOIN:REQUEST",
		lobby = game.JobId,
		player = player.UserId,
		count = 1,
	}

	_statusEvent:FireClient(player, { status = string.format("Connecting to %s", server) })

	Log.Debug.Lobby("Join request sent to %s for player %s", server, player.UserId)

	MessagingService:PublishAsync(tostring(server), req)

	_pendingTickets[player.UserId] = {
		player_id = player.UserId,
		place_id = serverData.place_id,
		server = server,
		game_mode = mode,
		time = tick(),
		match_key = destinationKey,
	}
end

function Lobby._handleJoinResponse(pub)
	local status = pub.Data.status
	local token = pub.Data.token
	local userId = pub.Data.player
	local player = Players:GetPlayerByUserId(userId)

	local pendingData = _pendingTickets[userId]
	_pendingTickets[userId] = nil

	if status == Util._joinCodes.SUCCESS then
		-- TODO:  Warn on no pending ticket

		if pendingData then
			Lobby._teleportWithRetry(pendingData.place_id, token, player)
		end

	else
		Log.Warn.JoinFailure("Player %s failed to join %s (%s)",
							 userId,
							 pub.Data.server,
							 Util.getJoinCodeText(status))

		-- Join a different server
		-- .If the player was forbidden, may need to store that information somehow so we don't try the same one again
		if pendingData then
			Lobby._teleportPlayer(player, _pendingTickets.place_id, _pendingTickets.game_mode)
		end
	end
end

function Lobby._handleJoinExpired(pub)
	local playerId = pub.Data.player

	Log.Error.LobbyJoin("Expired %s", playerId)

	_pendingTickets[playerId] = nil
end

function Lobby._registerHandler(messageType, handler)
	_messageHandlers[messageType] = handler
end

function Lobby._dispatchMessage(pub)
	local handler = _messageHandlers[pub.Data.type]

	if handler then
		handler(pub)
	else
		-- TODO:  Error
	end
end

function Lobby._generateMatchKey(placeId, mode)
	return string.format("%s:%s", placeId, mode)
end

function Lobby._teleportPlayer(player, destinationId, mode)
	local destinationKey = Lobby._generateMatchKey(destinationId, mode)

	-- If there are pending server creations, we wait until they have completed or timed out
	-- .We could continuously iterate through the server list to see if another server comes online during this time, but for this case that complicates things needlessly.

	-- TODO:  Evaluate whether this needs to be wrapped in a coroutine or similar and whether that should be done implicitly here
	-- .Currently _processJoinQueue is wrapped, but honoring the queue is done in a single thread.
	-- .Also, in that same high-level loop, _detectDeadServers would inherently pause against the completion of _processJoinQueue, which could account for some old stuff.

	_statusEvent:FireClient(player, { status = "Waiting..." })

	while true do
		local waiting = false
		local creationTimeouts = {}

		for creationId, pendingCreation in pairs(_pendingServerCreation) do
			if pendingCreation.match_key == destinationKey then
				if tick() - pendingCreation.time >= _serverCreationTimeout then
					table.insert(creationTimeouts, creationId)
					Log.Error.Lobby("Server creation '%s' exceeded timeout", creationId)
				else
					waiting = true
				end
			end
		end

		for _, creationId in ipairs(creationTimeouts) do
			_pendingServerCreation[creationId] = nil
		end

		if not waiting then
			break
		end

		wait(1)
	end

	for _, serverData in pairs(_serverList) do
		if serverData.match_key == destinationKey and serverData.slots_available > 0 and not Lobby._isServerBlacklisted(player, serverData.server) then
			Lobby._sendJoinRequest(serverData, player, mode, destinationKey)
			return
		end
	end

	_statusEvent:FireClient(player, { status = "Creating fresh server" })

	-- Create a gameplay server
	local token = TeleportService:ReserveServer(destinationId)
	Log.Debug.Lobby("Reserved %s for place %s", token, destinationId)

	_statusEvent:FireClient(player, { status = "Teleporting" })

	-- HACK:  The token is sent along with the teleport data because there's no way to get access to it from the server itself
	local creationData = {
		lobby = game.JobId,
		creation_id = HttpService:GenerateGUID(),
		token = token,
		time = tick(),
		match_key = destinationKey,
		place_id = destinationId,
		game_mode = mode,
	}

	_pendingServerCreation[creationData.creation_id] = creationData

	Lobby._teleportWithRetry(destinationId, token, player, nil, creationData)
end

function Lobby._detectDeadServers()
	local expirations = {}
	local updateClients = false

	for playerId, request in pairs(_pendingTickets) do
		if tick() - request.time >= _serverResponseTimeout then
			expirations[playerId] = request
		end
	end

	for playerId, request in pairs(expirations) do
		_pendingTickets[playerId] = nil

		-- Flag this server as non-responsive until it's heard from again
		local player = Players:GetPlayerByUserId(playerId)

		Lobby._recordServerFailure(player, request.server)
		updateClients = true

		Log.Warn.Lobby("Dead server detected: %s", request.server)

		Lobby._retryJoin(request)
	end

	if updateClients then
		Lobby._sendServerListToAllClients()
	end
end

function Lobby._recordServerFailure(player, server)
	local userId = player.UserId
	local failureList = _playerServerFailures[userId]

	if not failureList then
		failureList = {}
		_playerServerFailures[userId] = failureList
	end

	failureList[server] = (failureList[server] or 0) + 1

	_nonresponsiveServers[server] = (_nonresponsiveServers[server] or 0) + 1
end

function Lobby._isServerBlacklisted(player, server)
	local failureList = _playerServerFailures[player.UserId]
	return failureList and
		((failureList[server] or 0) >= Conf.lobby_teleportation_retries or
			_nonresponsiveServers[server])
end

function Lobby._onJoin(player, data)
	local pending = _pendingTickets[player.UserId]

	if data.type == "JOIN" then
		local mode = data.queue_selection or Conf.default_game_mode
		local destinationId = Conf.modes[mode].temp_queue_place

		if Conf.lobby_use_boring_flow then
			-- Alternate queue place
			TeleportService:Teleport(destinationId, player)
			_statusEvent:FireClient(player, { status = "Queueing..." })
		else
			if pending then
				Log.Warn.Lobby("User %s already has pending join request.", player.Name)
				return
			end

			Log.Debug.Lobby("Player join requested")

			_joinQueue[player.UserId] = {
				player = player,
				place_id = destinationId,
				game_mode = mode,
			}

			TeleportService:Teleport(destinationId, player)
			_statusEvent:FireClient(player, { status = "Queueing..." })
		end

	elseif data.type == "CANCEL" then
		_pendingTickets[player.UserId] = nil
		_statusEvent:FireClient(player, { canceled = true })

	elseif data.type == "FAILURE" then
		-- The client failed during teleportation and we need to retry or blacklist the current server
		Log.Error.Lobby("Client teleport failed: %s (%s)", player.Name, data.message)

		if pending then
			Lobby._recordServerFailure(player, pending.server)
			Lobby._retryJoin(pending)
		end
	end
end

function Lobby._onPlayerRemoving(player)
	_pendingTickets[player.UserId] = nil
	-- TODO:  Should this directly tell any server waiting for this player that they won't be making it?
	-- .Currently that will be handled by the ticket timeout
end

function Lobby._onPlayerAdded(player)
	Lobby._sendServerListToClient(player)
end

function Lobby._onTeleportFailure(player, status, message)
	Log.Error.Lobby("Teleport Failed: %s (%s)", player.UserId, message)
end

function Lobby._processJoinQueue()
	local queue = _joinQueue
	_joinQueue = {}

	for _, joinData in pairs(queue) do
		Lobby._teleportPlayer(joinData.player, joinData.place_id, joinData.game_mode)
	end
end


Prompt: --		print(animName .. " * " .. idx .. " [" .. origRoll .. "]")

Response:
		local anim = animTable[animName][idx].anim

		if (toolAnimInstance ~= anim) then

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

			-- load it to the humanoid; get AnimationTrack
			toolAnimTrack = humanoid:LoadAnimation(anim)

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

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

function stopToolAnimations()
	local oldAnim = toolAnimName

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

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

	return oldAnim
end


Response:
local Supports = {}

function Supports.PointCloud(set, direction)
	local max, maxDot = set[1], set[1]:Dot(direction)
	for i = 2, #set do
		local dot = set[i]:Dot(direction)
		if (dot > maxDot) then
			max = set[i]
			maxDot = dot
		end
	end
	return max
end

function Supports.Cylinder(set, direction)
	local cf, size2 = unpack(set)
	direction = cf:VectorToObjectSpace(direction)
	local radius = math.min(size2.y, size2.z)
	local dotT, cPoint = direction:Dot(RIGHT), Vector3.new(size2.x, 0, 0)
	local h, t, final

	if (dotT == 0) then
		final = direction.Unit * radius
	else
		cPoint = dotT > 0 and cPoint or -cPoint
		h, t = rayPlane(ZERO, direction, cPoint, RIGHT)
		final = cPoint + (h - cPoint).Unit * radius
	end

	return cf:PointToWorldSpace(final)
end

function Supports.Ellipsoid(set, direction)
	local cf, size2 = unpack(set)
	return cf:PointToWorldSpace(size2 * (size2 * cf:VectorToObjectSpace(direction)).Unit)
end

return Supports


Prompt:
-- RoundTitle
-- Author(s): Jesse Appleton
-- Date: 08/31/2022


Prompt: -- GameplayUi

Response:
local InteractionBillboard = PlayerGui.InteractionBillboard
local GameplayUi = PlayerGui.GameplayUi
local StatsBar = GameplayUi.StatsBar
local Level = StatsBar.Level
local ProgressBar = StatsBar.ProgressBar
local ProgressBarContainer = ProgressBar.Container
local ProgressBarFill = ProgressBarContainer.Fill
local Star1 = StatsBar.Star1
local Star2 = StatsBar.Star2
local Star3 = StatsBar.Star3
local ClickButton = GameplayUi.ClickButton
local showLevelUpBanner = require(GameplayUi.LevelUpBanner.AnimateLevelUpBanner)