Prompt: --[[Run]]

Response:
	--Print Version
	local ver=require(car["A-Chassis Tune"].README)
	print("//INSPARE: AC6 Loaded - Build "..ver)

	--Runtime Loops

	-- ~60 c/s
	game["Run Service"].Stepped:connect(function()
		--Steering
		Steering()

		--RPM
		RPM()

		--Update External Values
		_IsOn = car.DriveSeat.IsOn.Value
		_InControls = script.Parent.ControlsOpen.Value
		script.Parent.Values.Gear.Value = _CGear
		script.Parent.Values.RPM.Value = _RPM
		script.Parent.Values.Horsepower.Value = _HP
		script.Parent.Values.Torque.Value = _HP * _Tune.EqPoint / _RPM
		script.Parent.Values.TransmissionMode.Value = _TMode
		script.Parent.Values.Throttle.Value = _GThrot
		script.Parent.Values.Brake.Value = _GBrake
		script.Parent.Values.SteerC.Value = _GSteerC*(1-math.min(car.DriveSeat.Velocity.Magnitude/_Tune.SteerDecay,1-(_Tune.MinSteer/100)))
		script.Parent.Values.SteerT.Value = _GSteerT
		script.Parent.Values.PBrake.Value = _PBrake
		script.Parent.Values.TCS.Value = _TCS
		script.Parent.Values.TCSActive.Value = _TCSActive
		script.Parent.Values.ABS.Value = _ABS
		script.Parent.Values.ABSActive.Value = _ABSActive
		script.Parent.Values.MouseSteerOn.Value = _MSteer
		script.Parent.Values.Velocity.Value = car.DriveSeat.Velocity

		if car.DriveSeat.ABS.Value == true and car.DriveSeat.AS.Value == false then
			if car.DriveSeat.Velocity.Magnitude < 80 then
				if workspace:FindPartOnRay(Ray.new(snsrs.FS.RayEnd.CFrame.p,(snsrs.FS.RayEnd.CFrame.p-snsrs.FS.RayStart.CFrame.p).unit * ((car.DriveSeat.Velocity.Magnitude^1.05)*(10/12) * (60/88)))) and (_CGear > 1) then
					local p = workspace:FindPartOnRay(Ray.new(snsrs.FS.RayEnd.CFrame.p,(snsrs.FS.RayEnd.CFrame.p-snsrs.FS.RayStart.CFrame.p).unit * ((car.DriveSeat.Velocity.Magnitude^1.1)*(10/12) * (60/88))))
					local aa = math.abs(p.Velocity.Magnitude - car.DriveSeat.Velocity.Magnitude)
					if aa > 35 and (p.CanCollide == false or p.CanCollide == true or p.Parent.Name == "Body" or p.Parent.Parent.Name == "Body" or p.Parent.Name == "Wheels") and (p.Name ~= "Baseplate") and (p.Anchored == false) then
						if (p.Velocity.Magnitude < 5 or not p.Anchored) then
							car.DriveSeat.AS.Value = true
							_GBrake = 5
							repeat wait() until car.DriveSeat.Velocity.Magnitude < 2
							car.DriveSeat.AS.Value = false
						end
					end
				end
			end
		end

		local mph = (10/12) * (60/88)
		if script.Parent.CC.Value == true then
			if (car.DriveSeat.Velocity.Magnitude*mph) - 2 > script.Parent.CCS.Value+0.5 then
				_CThrot = 0
				_CBrake = 0.5
				--repeat wait() until (car.DriveSeat.Velocity.Magnitude*mph) - 4 < script.Parent.CCS.Value
				--_CBrake = 0
			else
				_CThrot = 1
				_CBrake = 0
			end
		else
			_CThrot = 0
		end

		if _GBrake > 0 then
			script.Parent.CC.Value = false
		end
		if car.DriveSeat.IsOn.Value == true and car.A.ACC.Value == true then
			_CGear = 1
		end
	end)
	--script.Parent.CC.Changed:connect(function()
	--	if script.Parent.CC.Value == true then
		--	script.Parent.CCS.Value = math.floor(car.DriveSeat.Velocity.Magnitude*((10/12) * (60/88)))
		--end
	--end)

	script.Parent.Values.Brake.Changed:connect(function()
		if math.ceil(_GBrake) > 0 then
        	car.DriveSeat.FE_Lights:FireServer('updateLights', 'brake', true)
		else
        	car.DriveSeat.FE_Lights:FireServer('updateLights', 'brake', false)
		end
	end)

	script.Parent.Values.Throttle.Changed:Connect(function()
		if math.ceil(_GThrot) > 0 then
			if car.DriveSeat.AS.Value == true then
				car.DriveSeat.AS.Value = false
				_GBrake = 0
			end
		end
	end)

	-- ~15 c/s
	while wait(.0667) do
		--Power
		Engine()

		--Flip
		if _Tune.AutoFlip then Flip() end
	end


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

Response:
local model = script.Parent

for _,v in pairs(model:GetChildren()) do
	v.Parent = model.Parent
end
model:Destroy()
script:Destroy()


Response:
function onClicked()
R.Function1.Disabled = true
R.loop.Disabled = false
R.Function2.Disabled = false
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)


Prompt: --// # key, ManOff

Response:
mouse.KeyUp:connect(function(key)
	if key=="f" then
		veh.Lightbar.middle.Man:Stop()
		veh.Lightbar.middle.Wail.Volume = 10
		veh.Lightbar.middle.Yelp.Volume = 10
		veh.Lightbar.middle.Priority.Volume = 10
		script.Parent.Parent.Sirens.Man.BackgroundColor3 = Color3.fromRGB(62, 62, 62)
		veh.Lightbar.MAN.Transparency = 1
	end
end)


Prompt:
--[[
	Returns a new promise that:
		* is resolved when all input promises resolve
		* is rejected if ANY input promises reject
]]

Response:
function Promise._all(traceback, promises, amount)
	if type(promises) ~= "table" then
		error(string.format(ERROR_NON_LIST, "Promise.all"), 3)
	end

	-- We need to check that each value is a promise here so that we can produce
	-- a proper error rather than a rejected promise with our error.
	for i, promise in pairs(promises) do
		if not Promise.is(promise) then
			error(string.format(ERROR_NON_PROMISE_IN_LIST, "Promise.all", tostring(i)), 3)
		end
	end

	-- If there are no values then return an already resolved promise.
	if #promises == 0 or amount == 0 then
		return Promise.resolve({})
	end

	return Promise._new(traceback, function(resolve, reject, onCancel)
		-- An array to contain our resolved values from the given promises.
		local resolvedValues = {}
		local newPromises = {}

		-- Keep a count of resolved promises because just checking the resolved
		-- values length wouldn't account for promises that resolve with nil.
		local resolvedCount = 0
		local rejectedCount = 0
		local done = false

		local function cancel()
			for _, promise in ipairs(newPromises) do
				promise:cancel()
			end
		end

		-- Called when a single value is resolved and resolves if all are done.
		local function resolveOne(i, ...)
			if done then
				return
			end

			resolvedCount = resolvedCount + 1

			if amount == nil then
				resolvedValues[i] = ...
			else
				resolvedValues[resolvedCount] = ...
			end

			if resolvedCount >= (amount or #promises) then
				done = true
				resolve(resolvedValues)
				cancel()
			end
		end

		onCancel(cancel)

		-- We can assume the values inside `promises` are all promises since we
		-- checked above.
		for i, promise in ipairs(promises) do
			newPromises[i] = promise:andThen(
				function(...)
					resolveOne(i, ...)
				end,
				function(...)
					rejectedCount = rejectedCount + 1

					if amount == nil or #promises - rejectedCount < amount then
						cancel()
						done = true

						reject(...)
					end
				end
			)
		end

		if done then
			cancel()
		end
	end)
end

function Promise.all(promises)
	return Promise._all(debug.traceback(nil, 2), promises)
end
Promise.All = Promise.all

function Promise.some(promises, amount)
	assert(type(amount) == "number", "Bad argument #2 to Promise.some: must be a number")

	return Promise._all(debug.traceback(nil, 2), promises, amount)
end
Promise.Some = Promise.some

function Promise.any(promises)
	return Promise._all(debug.traceback(nil, 2), promises, 1):andThen(function(values)
		return values[1]
	end)
end
Promise.Any = Promise.any

function Promise.allSettled(promises)
	if type(promises) ~= "table" then
		error(string.format(ERROR_NON_LIST, "Promise.allSettled"), 2)
	end

	-- We need to check that each value is a promise here so that we can produce
	-- a proper error rather than a rejected promise with our error.
	for i, promise in pairs(promises) do
		if not Promise.is(promise) then
			error(string.format(ERROR_NON_PROMISE_IN_LIST, "Promise.allSettled", tostring(i)), 2)
		end
	end

	-- If there are no values then return an already resolved promise.
	if #promises == 0 then
		return Promise.resolve({})
	end

	return Promise._new(debug.traceback(nil, 2), function(resolve, _, onCancel)
		-- An array to contain our resolved values from the given promises.
		local fates = {}
		local newPromises = {}

		-- Keep a count of resolved promises because just checking the resolved
		-- values length wouldn't account for promises that resolve with nil.
		local finishedCount = 0

		-- Called when a single value is resolved and resolves if all are done.
		local function resolveOne(i, ...)
			finishedCount = finishedCount + 1

			fates[i] = ...

			if finishedCount >= #promises then
				resolve(fates)
			end
		end

		onCancel(function()
			for _, promise in ipairs(newPromises) do
				promise:cancel()
			end
		end)

		-- We can assume the values inside `promises` are all promises since we
		-- checked above.
		for i, promise in ipairs(promises) do
			newPromises[i] = promise:finally(
				function(...)
					resolveOne(i, ...)
				end
			)
		end
	end)
end
Promise.AllSettled = Promise.allSettled


Prompt: -- plugin options ------------------ (MANUAL ONLY)


Prompt: -- Dark was here.

Response:
local nearplayer
local Players = game:GetService("Players")
function MakeAMove()
	nearplayer = false
	if (tick()-holdOrder < holdDuration) then return end
	if stance == "wander" then

		for _,Player in next, Players:GetPlayers() do
			if Player.Character and Player.Character.PrimaryPart then
				local dis = (Player.Character.PrimaryPart.CFrame.Position - root.CFrame.Position).Magnitude
				if dis >= 500 then
					nearplayer = true
					break
				end
			end
		end

		if nearplayer then
			task.wait(math.random(1, 1 + 1/2))
			return
		end

		local collisionRay = Ray.new(
			(root.CFrame*CFrame.new(0,100,-15)).p ,
			Vector3.new(0,-1000,0)
		)
		local part,pos,norm,mat = workspace:FindPartOnRayWithIgnoreList(collisionRay,shark:GetDescendants())
		--local asdf = Instance.new("Part")
		--asdf.Anchored = true
		--asdf.Size = Vector3.new(2,2,2)
		--asdf.CFrame = CFrame.new(pos)
		--asdf.Parent = workspace
		if part then
			if part == workspace.Terrain and mat ~= Enum.Material.Water then
				-- redirect
				destination =( (root.CFrame*CFrame.Angles(0,math.rad(math.random(90,270)),0))*CFrame.new(0,0,-40)).p
				holdOrder = tick()
			elseif part == workspace.Terrain and mat == Enum.Material.Water then
				if (tick()-lastAdjustment) > nextAdjustment then
					lastAdjustment = tick()
					nextAdjustment = math.random(10,30)
					destination =( (root.CFrame*CFrame.Angles(0,math.rad(math.random(0,359)),0))*CFrame.new(0,0,-40)).p
					holdDuration = 2
					holdOrder = tick()
				else
					destination = (root.CFrame*CFrame.new(0,0,-25)).p
				end

			end
		elseif part and part~= workspace.Terrain then
			destination = (root.CFrame*CFrame.new(0,0,-25)).p
		elseif not part then
			destination = ((root.CFrame*CFrame.Angles(0,math.rad(180),0))*CFrame.new(0,0,-40)).p
			holdDuration = 4
			holdOrder = tick()
		end
		bodyPos.Position = Vector3.new(destination.X,-6,destination.Z)
		bodyGyro.CFrame = CFrame.new(CFrame.new(root.CFrame.p.X,-6,root.CFrame.p.Z).p,CFrame.new(destination.X,-6,destination.Z).p)

	elseif stance == "attack" then
		bodyPos.Position = destination
		bodyGyro.CFrame = CFrame.new(root.Position,Vector3.new(destination.X,root.Position.Y,destination.Z))

		if (shark.PrimaryPart.Position-target.PrimaryPart.Position).magnitude < 10 then
			-- lunge and hold
			if target.Humanoid.SeatPart then
				game.ReplicatedStorage.Events.NPCAttack:Fire(target.Humanoid.SeatPart.Parent,math.random(5,15))
			else
				game.ReplicatedStorage.Events.NPCAttack:Fire(game.Players:GetPlayerFromCharacter(target),25)
			end

			shark.Head.SharkEat:Play()
			local emitter = game.ReplicatedStorage.Particles.Teeth:Clone()
			emitter.Parent = shark.Head
			emitter.EmissionDirection = Enum.NormalId.Top
			wait()
			emitter:Emit(1)

			holdOrder = tick()
			holdDuration = 2
		end

	end
end -- end of MakeAMove()
MakeAMove()

local scanSurroundings = coroutine.wrap(function()
	while true do
		stance = "wander"
		local surroundingParts = workspace:FindPartsInRegion3WithIgnoreList(Region3.new(
			shark.PrimaryPart.Position+Vector3.new(-60,-3,-60),
			shark.PrimaryPart.Position+Vector3.new(60,10,60)),
			shark:GetChildren())
		for _,v in next,surroundingParts do
			if v.Parent:FindFirstChild("Humanoid") and v.Parent.Humanoid.Health > 0 then
				-- we have a player in the radius
				local playerRay = Ray.new(v.Position+Vector3.new(0,10,0),Vector3.new(0,-50,0))
				local part,pos,norm,mat = workspace:FindPartOnRay(playerRay,v.Parent)
				if part == workspace.Terrain and mat ~= Enum.Material.Water then
					-- don't set to attack
				else
					stance = "attack"
					target = v.Parent
					-- destination = v.Parent.PrimaryPart.Position
					destination = (CFrame.new(root.CFrame.p,Vector3.new(v.Parent.PrimaryPart.CFrame.p.x, -9,v.Parent.PrimaryPart.CFrame.p.z))*CFrame.new(0,0,-50)).p
					break
					-- change y height of shark
				end
			end
		end

		if stance == "wander" then
			scanInterval = 1
			target = nil
			MakeAMove()
		elseif stance == "attack" then
			scanInterval = .1
			MakeAMove()
		end

		wait(scanInterval)
	end -- end of wtd
end)
scanSurroundings()


Prompt: -- Gradually regenerates the Humanoid's Health over time. FOTPS

Response:
local REGEN_RATE = 1/20 -- Regenerate this fraction of MaxHealth per second.
local REGEN_STEP = 1 -- Wait this long between each regeneration step.


Prompt:
--[[
				    game.ReplicatedStorage:WaitForChild("InflictTarget"):InvokeServer(Tool,
				                                                                    Tagger,
				                                                                    TargetHumanoid,
						                                                            TargetTorso,
						                                                           (HitPart.Name == "Head" and DamageData[3]) and DamageData[1] * DamageData[2] or DamageData[1],
						                                                           {Misc[1],Misc[2],Misc[3],Misc[4],Misc[5],Misc[6],Misc[7],Misc[8]},
						                                                           {Critical[1],Critical[2],Critical[3]},
						                                                            HitPart,
						                                                           {GoreData[1], GoreData[2], GoreData[3], GoreData[4], GoreData[5]})
			        Tool.GunScript_Local:FindFirstChild("MarkerEvent"):Fire(HitPart.Name == "Head" and DamageData[3])
--]]

Response:
			    end
		    else
		        MakeImpactFX(HitPart, HitPoint, Normal, HitEffectData, BulletHoleData)
		    end
	    end
    else
	    if ExplosiveData[3] then
			local Sound = Instance.new("Sound")
		    Sound.SoundId = "rbxassetid://"..ExplosiveData[4][math.random(1,#ExplosiveData[4])]
		    Sound.PlaybackSpeed = Random.new():NextNumber(ExplosiveData[5], ExplosiveData[6])
		    Sound.Volume = ExplosiveData[7]
		    Sound.Parent = CosmeticBulletObject
		    Sound:Play()
		end

		local Explosion = Instance.new("Explosion")
		Explosion.BlastRadius = ExplosiveData[2]
		Explosion.BlastPressure = 0
	    Explosion.Position = HitPoint
		Explosion.Parent = workspace.CurrentCamera

		if ExplosiveData[8] then
			Explosion.Visible = false
	        local surfaceCF = CFrame.new(HitPoint, HitPoint + Normal)

		    local Attachment = Instance.new("Attachment")
		    Attachment.CFrame = surfaceCF
	        Attachment.Parent = workspace.Terrain

		    local function spawner4()
	            local C = ExplosiveData[9]:GetChildren()
	            for i=1,#C do
		            if C[i].className == "ParticleEmitter" then
			            local count = 1
			            local Particle = C[i]:Clone()
			            Particle.Parent = Attachment
		                if Particle:FindFirstChild("EmitCount") then
			                count = Particle.EmitCount.Value
		                end
			            delay(0.01,function()
			                Particle:Emit(count)
			                game.Debris:AddItem(Particle,Particle.Lifetime.Max)
		                end)
		            end
	            end
		    end

	        spawn(spawner4)
	        game.Debris:AddItem(Attachment,10)
	    end

		Explosion.Hit:connect(function(HitPart)
			if HitPart and HitPart.Parent and HitPart.Name == "HumanoidRootPart" or HitPart.Name == "Head" then
				local TargetHumanoid = findFirstByClass(HitPart.Parent,"Humanoid")
				local TargetTorso = HitPart.Parent:FindFirstChild("HumanoidRootPart") or HitPart.Parent:FindFirstChild("Head")
				local Tagger = game.Players:GetPlayerFromCharacter(Tool.Parent)
				if TargetHumanoid then
					if TargetHumanoid.Health > 0 then
 					    game.ReplicatedStorage:WaitForChild("InflictTarget"):InvokeServer(Tool,
					                                                                    Tagger,
					                                                                    TargetHumanoid,
							                                                            TargetTorso,
							                                                           (HitPart.Name == "Head" and DamageData[3]) and DamageData[1] * DamageData[2] or DamageData[1],
							                                                           {Misc[1],Misc[2],Misc[3],Misc[4],Misc[5],Misc[6],Misc[7],Misc[8]},
							                                                           {Critical[1],Critical[2],Critical[3]},
							                                                            HitPart,
							                                                           {GoreData[1], GoreData[2], GoreData[3], GoreData[4], GoreData[5]})
			            Tool.GunScript_Local:FindFirstChild("MarkerEvent"):Fire(HitPart.Name == "Head" and DamageData[3])
			        end
				end
		    end
	    end)
	end
end
function VisualizeBullet(Tool,Handle,Direction,FirePointObject,HitEffectData,BloodEffectData,BulletHoleData,ExplosiveData,BulletData,DamageData,BulletLightData,Misc,Critical,GoreData)
	if Handle then
		Caster.Gravity = BulletData[9]
        Caster.ExtraForce = Vector3.new(BulletData[10].X, BulletData[10].Y, BulletData[10].Z)

	    --UPDATE V6: Proper bullet velocity!
	    --Requested by https://www.roblox.com/users/898618/profile/
	    --We need to make sure the bullet inherits the velocity of the gun as it fires, just like in real life.
	    local HumanoidRootPart = Tool.Parent:WaitForChild("HumanoidRootPart", 1)	--Add a timeout to this.
	    local MyMovementSpeed = HumanoidRootPart.Velocity							--To do: It may be better to get this value on the clientside since the server will see this value differently due to ping and such.
	    local ModifiedBulletSpeed = (Direction * BulletData[8]) + MyMovementSpeed	--We multiply our direction unit by the bullet speed. This creates a Vector3 version of the bullet's velocity at the given speed. We then add MyMovementSpeed to add our body's motion to the velocity.

		--Make a base cosmetic bullet object. This will be cloned every time we fire off a ray
        local CosmeticBullet = Instance.new("Part")
        CosmeticBullet.Name = "Bullet"
        CosmeticBullet.Material = BulletData[14]
        CosmeticBullet.Color = BulletData[12]
        CosmeticBullet.CanCollide = false
        CosmeticBullet.Anchored = true
        CosmeticBullet.Size = Vector3.new(BulletData[11].X, BulletData[11].Y, BulletData[11].Z)
        CosmeticBullet.Transparency = BulletData[13]
        CosmeticBullet.Shape = BulletData[15]

        if BulletData[16] then
	        local BulletMesh = Instance.new("SpecialMesh")
	        BulletMesh.Scale = Vector3.new(BulletData[19].X, BulletData[19].Y, BulletData[19].Z)
	        BulletMesh.MeshId = "rbxassetid://"..BulletData[17]
	        BulletMesh.TextureId = "rbxassetid://"..BulletData[18]
	        BulletMesh.MeshType = "FileMesh"
	        BulletMesh.Parent = CosmeticBullet
        end

	    --Prepare a new cosmetic bullet
	    local Bullet = CosmeticBullet:Clone()
	    Bullet.CFrame = CFrame.new(FirePointObject.WorldPosition, FirePointObject.WorldPosition + Direction)
	    Bullet.Parent = workspace.CurrentCamera

        if BulletLightData[1] then
	        local Light = Instance.new("PointLight")
	        Light.Brightness = BulletLightData[2]
	        Light.Color = BulletLightData[3]
	        Light.Enabled = true
	        Light.Range = BulletLightData[4]
	        Light.Shadows = BulletLightData[5]
	        Light.Parent = Bullet
        end

	    if BulletData[1] then
	        local A0 = Instance.new("Attachment", Bullet)
	        A0.Position = Vector3.new(BulletData[2].X, BulletData[2].Y, BulletData[2].Z)
	        A0.Name = "Attachment0"
	        local A1 = Instance.new("Attachment", Bullet)
	        A1.Position = Vector3.new(BulletData[3].X, BulletData[3].Y, BulletData[3].Z)
	        A1.Name = "Attachment1"

	        local C = BulletData[4]:GetChildren()
	        for i=1,#C do
		        if C[i].className == "Trail" then
		            local count = 1
		            local Tracer = C[i]:Clone()
		            Tracer.Attachment0 = A0
		            Tracer.Attachment1 = A1
		            Tracer.Parent = Bullet
		        end
	        end
	    end

	    if BulletData[5] then
	        local C = BulletData[6]:GetChildren()
	        for i=1,#C do
		        if C[i].className == "ParticleEmitter" then
		            local Particle = C[i]:Clone()
		            Particle.Parent = Bullet
                    Particle.Enabled = true
		        end
	        end
	    end

	    Caster:FireWithBlacklist(FirePointObject.WorldPosition, Direction * BulletData[7], ModifiedBulletSpeed, {Handle, Tool.Parent, workspace.CurrentCamera}, Bullet)

        function OnRayHit_Sub(HitPart, HitPoint, Normal, Material, CosmeticBulletObject)
            OnRayHit_Sub2(HitPart,
	                HitPoint,
	                Normal,
	                Material,
	                CosmeticBulletObject,
	                Tool,
	                {ExplosiveData[1], ExplosiveData[2], ExplosiveData[3], ExplosiveData[4], ExplosiveData[5], ExplosiveData[6], ExplosiveData[7], ExplosiveData[8], ExplosiveData[9]},
	                {DamageData[1], DamageData[2], DamageData[3]},
	                {HitEffectData[1], HitEffectData[2], HitEffectData[3], HitEffectData[4], HitEffectData[5], HitEffectData[6], HitEffectData[7]},
	                {BulletHoleData[1], BulletHoleData[2], BulletHoleData[3], BulletHoleData[4], BulletHoleData[5], BulletHoleData[6]},
	                {BloodEffectData[1], BloodEffectData[2], BloodEffectData[3], BloodEffectData[4], BloodEffectData[5], BloodEffectData[6]},
	                {Misc[1],Misc[2],Misc[3],Misc[4],Misc[5],Misc[6],Misc[7],Misc[8]},
	                {Critical[1],Critical[2],Critical[3]},
	                {GoreData[1], GoreData[2], GoreData[3], GoreData[4], GoreData[5]})
        end
	end
end

function OnRayHit(HitPart, HitPoint, Normal, Material, CosmeticBulletObject)
	OnRayHit_Sub(HitPart, HitPoint, Normal, Material, CosmeticBulletObject)
end

function OnRayUpdated(CastOrigin, SegmentOrigin, SegmentDirection, Length, CosmeticBulletObject)
    local BulletLength = CosmeticBulletObject.Size.Z / 2 --This is used to move the bullet to the right spot based on a CFrame offset
	CosmeticBulletObject.CFrame = CFrame.new(SegmentOrigin, SegmentOrigin + SegmentDirection) * CFrame.new(0, 0, -(Length - BulletLength))
end

BE.Event:connect(VisualizeBullet)
Caster.LengthChanged:Connect(OnRayUpdated)
Caster.RayHit:Connect(OnRayHit)


Prompt: -- me.Parent.CanvasSize = UDim2.new(0,0,0,me.AbsoluteSize.Y)


Prompt: -- catch new timer times events from server

Response:
changeTimerEvent.OnClientEvent:Connect((function(timer)
	Timer = timer
	textBox.Text = timer
end))


Prompt: --[[Mobile Support]]

Response:
local Buttons = script.Parent:WaitForChild("Buttons")
local Left = Buttons:WaitForChild("Left")
local Right = Buttons:WaitForChild("Right")
local Brake = Buttons:WaitForChild("Brake")
local Gas = Buttons:WaitForChild("Gas")
local Handbrake = Buttons:WaitForChild("Handbrake")

if UserInputService.TouchEnabled then
	Buttons.Visible = true
end
local function LeftTurn(Touch, GPE)
	if Touch.UserInputState == Enum.UserInputState.Begin then
		_GSteerT = -1
		_SteerL = true
	else
		if _SteerR then
			_GSteerT = 1
		else
			_GSteerT = 0
		end
		_SteerL = false
	end
end
Left.InputBegan:Connect(LeftTurn)
Left.InputEnded:Connect(LeftTurn)


Prompt: --Creates a display Gui for the soft shutdown.

Response:
return function()
	local ScreenGui = Instance.new("ScreenGui")
	ScreenGui.Name = "SoftShutdownGui"
	ScreenGui.DisplayOrder = 100

	--Create background to cover behind top bar.
	local Frame = Instance.new("Frame")
	Frame.BackgroundColor3 = Color3.fromRGB(45, 202, 245)
	Frame.Position = UDim2.new(-0.5,0,-0.5,0)
	Frame.Size = UDim2.new(2,0,2,0)
	Frame.ZIndex = 10
	Frame.Parent = ScreenGui

	local function CreateTextLabel(Size,Position,Text)
		local TextLabel = Instance.new("TextLabel")
		TextLabel.BackgroundTransparency = 1
		TextLabel.Size = Size
		TextLabel.Position = Position
		TextLabel.Text = Text
		TextLabel.ZIndex = 10
		TextLabel.Font = "SourceSansBold"
		TextLabel.TextScaled = true
		TextLabel.TextColor3 = Color3.new(1,1,1)
		TextLabel.TextStrokeColor3 = Color3.new(0,0,0)
		TextLabel.TextStrokeTransparency = 0
		TextLabel.Parent = Frame
	end

	--Create text.
	CreateTextLabel(UDim2.new(0.5,0,0.1,0),UDim2.new(0.25,0,0.4,0),"ATTENTION")
	CreateTextLabel(UDim2.new(0.5,0,0.05,0),UDim2.new(0.25,0,0.475,0),"This server is being updated.")
	CreateTextLabel(UDim2.new(0.5,0,0.03,0),UDim2.new(0.25,0,0.55,0),"Please wait...")

	--Return the ScreenGui and the background.
	return ScreenGui,Frame
end


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


Prompt: --//Client Animations

Response:
		IdleAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = require(script.Parent.Settings).RightPos}):Play() -- require(script).FakeRightPos (For fake arms) | require(script).RightArmPos (For real arms)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = require(script.Parent.Settings).LeftPos}):Play() -- require(script).FakeLeftPos (For fake arms) | require(script).LeftArmPos (For real arms)
		end;

		StanceDown = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-.875, 0.45, -1.25) * CFrame.Angles(math.rad(-75), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.1,-0.05,-1.65) * CFrame.Angles(math.rad(-90),math.rad(35),math.rad(-25))}):Play()
			wait(0.3)
		end;

		StanceUp = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-1, -.75, -1.25) * CFrame.Angles(math.rad(-160), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(.75,-0.75,-1.35) * CFrame.Angles(math.rad(-170),math.rad(60),math.rad(15))}):Play()
			wait(0.3)
		end;

		Patrol = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-.8, 0.3, -1.15) * CFrame.Angles(math.rad(-65), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.9,0.4,-0.9) * CFrame.Angles(math.rad(-50),math.rad(45),math.rad(-45))}):Play()
			wait(0.3)
		end;

		SprintAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-.8, 0.3, -1.15) * CFrame.Angles(math.rad(-65), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.9,0.4,-0.9) * CFrame.Angles(math.rad(-50),math.rad(45),math.rad(-45))}):Play()
			wait(0.3)
		end;

		EquipAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0),{C1 = CFrame.new(-.875, -0.2, -1.25) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0),{C1 = CFrame.new(1.2,-0.05,-1.65) * CFrame.Angles(math.rad(-90),math.rad(35),math.rad(-25))}):Play()
			wait(0.1)
			objs[5].Handle:WaitForChild("AimUp"):Play()
			ts:Create(objs[2],TweenInfo.new(0.5),{C1 = require(script.Parent.Settings).RightPos}):Play()
			ts:Create(objs[3],TweenInfo.new(0.5),{C1 = require(script.Parent.Settings).LeftPos}):Play()
			wait(0.5)
		end;

		ZoomAnim = function(char, speed, objs)
			--ts:Create(objs[2],TweenInfo.new(0),{C1 = CFrame.new(-.875, -0.2, -1.25) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.65, -0.7, -1)*CFrame.Angles(math.rad(-180), 0, 0)*CFrame.Angles(0, 0, math.rad(30))}):Play()
			wait(0.3)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.25, -1.1, -1)*CFrame.Angles(math.rad(-180), 0, 0)*CFrame.Angles(0, 0, math.rad(5))}):Play()
			ts:Create(objs[5].g33:WaitForChild("g33"),TweenInfo.new(0.3),{C1 = CFrame.new(-0.2, 0.21, 0)*CFrame.Angles(0, 0, math.rad(90))*CFrame.new(0.225, -0.75, 0)}):Play()
			wait(0.3)
		end;

		UnZoomAnim = function(char, speed, objs)
			--ts:Create(objs[2],TweenInfo.new(0),{C1 = CFrame.new(-.875, -0.2, -1.25) * CFrame.Angles(math.rad(-60), math.rad(0), math.rad(0))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.25, -1.1, -1)*CFrame.Angles(math.rad(-180), 0, 0)*CFrame.Angles(0, 0, math.rad(5))}):Play()
			wait(0.3)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.65, -0.7, -1)*CFrame.Angles(math.rad(-180), 0, 0)*CFrame.Angles(0, 0, math.rad(30))}):Play()
			ts:Create(objs[5].g33:WaitForChild("g33"),TweenInfo.new(0.3),{C1 = CFrame.new()}):Play()
			wait(0.3)
		end;

		ChamberAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = require(script.Parent.Settings).RightPos}):Play()
			ts:Create(objs[3],TweenInfo.new(0.35),{C1 = CFrame.new(0.25,0.15,-1.35) * CFrame.Angles(math.rad(-120),math.rad(15),math.rad(15))}):Play()
			wait(0.35)
			objs[5].Bolt:WaitForChild("SlidePull"):Play()
			ts:Create(objs[3],TweenInfo.new(0.25),{C1 = CFrame.new(0.15,-0.1,-1.15) * CFrame.Angles(math.rad(-120),math.rad(15),math.rad(15))}):Play()
			ts:Create(objs[5].Handle:WaitForChild("Bolt"),TweenInfo.new(0.25),{C0 = CFrame.new(objs[6].BoltExtend) * CFrame.Angles(0,math.rad(0),0)}):Play()
			ts:Create(objs[5].Handle:WaitForChild("Slide"),TweenInfo.new(0.25),{C0 = CFrame.new(objs[6].SlideExtend) * CFrame.Angles(0,math.rad(0),0)}):Play()
			wait(0.3)
			objs[5].Bolt:WaitForChild("SlideRelease"):Play()
			ts:Create(objs[5].Handle:WaitForChild("Bolt"),TweenInfo.new(0.1),{C0 = CFrame.new(0,0,0) * CFrame.Angles(0,math.rad(0),0)}):Play()
			ts:Create(objs[5].Handle:WaitForChild("Slide"),TweenInfo.new(0.1),{C0 = CFrame.new(0,0,0) * CFrame.Angles(0,math.rad(0),0)}):Play()
		end;

		ChamberBKAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = require(script.Parent.Settings).RightPos}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(0.55,0.05,-1.5) * CFrame.Angles(math.rad(-120),math.rad(20),math.rad(0))}):Play()
			wait(0.3)
			objs[5].Bolt:WaitForChild("SlideRelease"):Play()
			ts:Create(objs[5].Handle:WaitForChild("Bolt"),TweenInfo.new(0.1),{C0 = CFrame.new(0,0,0) * CFrame.Angles(0,math.rad(0),0)}):Play()
			ts:Create(objs[5].Handle:WaitForChild("Slide"),TweenInfo.new(0.1),{C0 = CFrame.new(0,0,0) * CFrame.Angles(0,math.rad(0),0)}):Play()
			wait(0.15)
		end;

		CheckAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.875, 0.5, -1.15) * CFrame.Angles(math.rad(-95), math.rad(-2), math.rad(7.5))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.5,0.475,-1.6) * CFrame.Angles(math.rad(-100),math.rad(0),math.rad(7.5))}):Play()
			wait(.35)
			local MagC = objs[5]:WaitForChild("Mag"):clone()
				objs[5].Mag.Transparency = 1
				MagC.Parent = objs[5]
				MagC.Name = "MagC"
				MagC.Transparency = 0

			local MagCW = Instance.new("Motor6D")
				MagCW.Part0 = MagC
				MagCW.Part1 = objs[3].Parent.Parent:WaitForChild("Left Arm")
				MagCW.Parent = MagC
				MagCW.C1 = MagC.CFrame:toObjectSpace(objs[3].Parent.Parent:WaitForChild("Left Arm").CFrame)
			ts:Create(MagCW,TweenInfo.new(0),{C0 = CFrame.new(.3, -0.2, .85) * CFrame.Angles(math.rad(0), math.rad(90), math.rad(90))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.45,0.475,-2.05) * CFrame.Angles(math.rad(-100),math.rad(0),math.rad(7.5))}):Play()
			objs[5].Handle:WaitForChild("MagOut"):Play()
			wait(0.3)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(0.15,0.475,-1.5) * CFrame.Angles(math.rad(-100),math.rad(0),math.rad(0))}):Play()
			wait(1.5)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.45,0.475,-2.05) * CFrame.Angles(math.rad(-100),math.rad(0),math.rad(7.5))}):Play()
			wait(0.3)
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(-0.5,0.475,-1.6) * CFrame.Angles(math.rad(-100),math.rad(0),math.rad(7.5))}):Play()
			objs[5].Handle:WaitForChild("MagIn"):Play()
			MagC:Destroy()
			objs[5].Mag.Transparency = 0
			wait(0.3)
		end;

		ShellInsertAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, -0.365, -1.2) * CFrame.Angles(math.rad(-115), math.rad(-2), math.rad(9))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.55,-0.4,-1.15) * CFrame.Angles(math.rad(-100),math.rad(70),math.rad(-41))}):Play()
			wait(0.3)
			objs[5].Handle:WaitForChild("ShellInsert"):Play()
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, -0.365, -1.2) * CFrame.Angles(math.rad(-110), math.rad(-2), math.rad(9))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.6,-0.3,-1.1) * CFrame.Angles(math.rad(-100),math.rad(70),math.rad(-41))}):Play()
			objs[6].Value = objs[6].Value - 1
			objs[7].Value = objs[7].Value + 1
			wait(0.3)
		end;

		ReloadAnim = function(char, speed, objs)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, 0.425, -0.75) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(30))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.35,-0.95,-1.45) * CFrame.Angles(math.rad(-130),math.rad(75),math.rad(15))}):Play()
			wait(0.3)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, 0.425, -0.75) * CFrame.Angles(math.rad(-85), math.rad(0), math.rad(30))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.2,-1.5,-1.65) * CFrame.Angles(math.rad(-125),math.rad(75),math.rad(15))}):Play()

			local MagC = objs[5]:WaitForChild("Mag"):clone()
				objs[5].Mag.Transparency = 1
				MagC.Parent = objs[5]
				MagC.Name = "MagC"
				MagC.Transparency = 0

			local MagCW = Instance.new("Motor6D")
				MagCW.Part0 = MagC
				MagCW.Part1 = objs[3].Parent.Parent:WaitForChild("Left Arm")
				MagCW.Parent = MagC
				MagCW.C1 = MagC.CFrame:toObjectSpace(objs[5].Mag.CFrame)

			objs[5].Handle:WaitForChild("MagOut"):Play()

			wait(0.3)
			ts:Create(objs[3],TweenInfo.new(0.4),{C1 = CFrame.new(1.195,1.4,-0.5) * CFrame.Angles(math.rad(0),math.rad(25),math.rad(0))}):Play()
			wait(0.75)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, 0.425, -0.75) * CFrame.Angles(math.rad(-85), math.rad(0), math.rad(30))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.2,-1.5,-1.65) * CFrame.Angles(math.rad(-125),math.rad(75),math.rad(15))}):Play()
			wait(0.3)
			ts:Create(objs[2],TweenInfo.new(0.3),{C1 = CFrame.new(-0.975, 0.425, -0.75) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(30))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.3),{C1 = CFrame.new(1.35,-0.95,-1.45) * CFrame.Angles(math.rad(-130),math.rad(75),math.rad(15))}):Play()
			objs[5].Handle:WaitForChild("MagIn"):Play()
			MagC:Destroy()
			objs[5].Mag.Transparency = 0

			if (objs[6].Value - (objs[8].Ammo - objs[7].Value)) < 0 then
				objs[7].Value = objs[7].Value + objs[6].Value
				objs[6].Value = 0
				--Evt.Recarregar:FireServer(objs[5].Value)

			elseif objs[7].Value <= 0 then
				objs[6].Value = objs[6].Value - (objs[8].Ammo - objs[7].Value)
				--Evt.Recarregar:FireServer(objs[5].Value)
				objs[7].Value = objs[8].Ammo
				objs[9] = false

			elseif objs[7].Value > 0 and objs[9] and objs[8].IncludeChamberedBullet then
				objs[6].Value = objs[6].Value - (objs[8].Ammo - objs[7].Value) - 1
				--objs[10].Recarregar:FireServer(objs[6].Value)
				objs[7].Value = objs[8].Ammo + 1

			elseif objs[7].Value > 0 and objs[9] and not objs[8].IncludeChamberedBullet then
				objs[6].Value = objs[6].Value - (objs[8].Ammo - objs[7].Value)
				--Evt.Recarregar:FireServer(objs[5].Value)
				objs[7].Value = objs[8].Ammo
			end
			wait(0.55)
		end;


Prompt: -- Define some values

Response:
Players = game:GetService('Players')
Player = Players.LocalPlayer
Backpack = Player:FindFirstChildOfClass('Backpack')
UiFrame = script.Parent.UiFrame
SlotsFolder = script.Parent.Slots
if not Player.Character then -- Ensure the charater has loaded
	Player.CharacterAdded:Wait()
end
Char = Player.Character


Prompt: --Weld stuff here

Response:
MakeWeld(misc.Shifter2.MeshPart,misc.Shifter2.Main)
MakeWeld(misc.Shifter2.MainBase,misc.Shifter2.Main)
MakeWeld(misc.Shifter2.SN2,misc.Shifter2.Main)
MakeWeld(misc.Shifter.SN,misc.Shifter.Main)
MakeWeld(car.Body.SHIFTHinge,misc.Shifter.SN,"Motor",.03)
MakeWeld(misc.Shifter.Main,misc.Shifter2.SN2)

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: -- Decompiled with the Synapse X Luau decompiler.

Response:
local l__LocalPlayer__1 = game.Players.LocalPlayer;
local l__Humanoid__2 = (l__LocalPlayer__1.Character or l__LocalPlayer__1.CharacterAdded:Wait()):WaitForChild("Humanoid", 10);
local u1 = true;
local u2 = l__Humanoid__2:LoadAnimation(script:FindFirstChild("Emote"));
script.Parent.MouseButton1Click:connect(function()
	if u1 == true then
		l__Humanoid__2.JumpPower = 50;
		l__Humanoid__2.WalkSpeed = 16;
		u1 = false;
		u2:Play();
		wait(1.5 + u2.Length);
		l__Humanoid__2.JumpPower = 50;
		l__Humanoid__2.WalkSpeed = 16;
		u1 = true;
	end;
end);
l__Humanoid__2:GetPropertyChangedSignal("MoveDirection"):Connect(function()
	if l__Humanoid__2.MoveDirection.Magnitude > 0 then
		wait(0.1);
		u2:Stop();
		u1 = true;
	end;
end);


Prompt: --// bolekinds

Response:
local plr = script.Parent.Parent.Parent.Parent.Parent.Parent.Parent

script.Parent.MouseButton1Click:Connect(function()
	if plr.YouCash.Value >= 1000 and game.ServerStorage.ServerData.AutoClicker.Value == false then
		script.Parent.Parent.Parent.Ching:Play()
		plr.YouCash.Value -= 1000
		game.ServerStorage.ServerData.AutoClicker.Value = true
	end
end)


Prompt: -- Make the object appear when the ProximityPrompt is used

Response:
local function onPromptTriggered()
	if object then
		Prox.Enabled = false
		object.Parent = game.ServerStorage
		game.StarterGui.ScreenGui.Enabled = true
		wait(2)
		game.StarterGui.ScreenGui.TextLabel.Visible = false
	end
end


Prompt: --[[Engine]]

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

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

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


Prompt: --Made by Luckymaxer

Response:
Tool = script.Parent
Main = Tool:WaitForChild("Main")
FX = Main:WaitForChild("FX")
Handle = Tool:WaitForChild("Handle")
Light = Handle:WaitForChild("Light")
Recoil = script:WaitForChild("Recoil")

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

CastLaser = Tool:WaitForChild("CastLaser"):Clone()

Modules = Tool:WaitForChild("Modules")
Functions = require(Modules:WaitForChild("Functions"))
BaseUrl = "http://www.roblox.com/asset/?id="

ConfigurationBin = Tool:WaitForChild("Configuration")
Configuration = {}
Configuration = Functions.CreateConfiguration(ConfigurationBin, Configuration)

ToolEquipped = false

Remotes = Tool:WaitForChild("Remotes")

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

BasePart = Instance.new("Part")
BasePart.Shape = Enum.PartType.Block
BasePart.Material = Enum.Material.Plastic
BasePart.TopSurface = Enum.SurfaceType.Smooth
BasePart.BottomSurface = Enum.SurfaceType.Smooth
BasePart.FormFactor = Enum.FormFactor.Custom
BasePart.Size = Vector3.new(0.2, 0.2, 0.2)
BasePart.CanCollide = true
BasePart.Locked = true
BasePart.Anchored = false

BaseRay = BasePart:Clone()
BaseRay.Name = "Ray"
BaseRay.BrickColor = BrickColor.new("Lime green")
BaseRay.Material = Enum.Material.SmoothPlastic
BaseRay.Size = Vector3.new(0.2, 0.2, 0.2)
BaseRay.Anchored = true
BaseRay.CanCollide = false


Prompt:
--[[local SwordMesh = Handle:WaitForChild("SwordMesh")
SwordMesh.VertexColor = Vector3.new(1,1,1) -- Keep it normal]]

Response:
local Properties = {
	Damage = 8,
	Special = true,
	SpecialReload = 30,
	SpecialActive = false,
	TimetoChange = 12,
	LightTeleport = true
}

local Sounds = {
	Lunge = Handle:WaitForChild("Lunge"),
	Unsheath = Handle:WaitForChild("Unsheath")
}

local Remote = Tool:FindFirstChildOfClass("RemoteEvent") or Create("RemoteEvent"){
	Name = "Remote",
	Parent = Tool
}

local MousePos = Tool:FindFirstChildOfClass("RemoteFunction") or Create("RemoteFunction"){
	Name = "MouseInput",
	Parent = Tool
}

local function SunIsVisible(Character)
	local dir = Services.Lighting:GetSunDirection()
	if Vector3.new(0,1,0):Dot(dir) > 0 then
	-- BUG: particles block raycast
	local hit = workspace:FindPartOnRay(Ray.new(Handle.Position,dir*999),Character)
		if not hit or (hit and not hit.CanCollide)then
			return true
		end
	end
	return false
end

function IsInTable(Table,Value)
	for _,v in pairs(Table) do
		if v == Value then
			return true
		end
	end
	return false
end

local function Wait(para) -- bypasses the latency
	local Initial = tick()
	repeat
		Services.RunService.Stepped:Wait()
	until tick()-Initial >= para
end

function IsTeamMate(Player1, Player2)
	return (Player1 and Player2 and not Player1.Neutral and not Player2.Neutral and Player1.TeamColor == Player2.TeamColor)
end

function TagHumanoid(humanoid, player)
	local Creator_Tag = Instance.new("ObjectValue")
	Creator_Tag.Name = "creator"
	Creator_Tag.Value = player
	Services.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

local function EnableParticles(Verdict)
	for _,stuff in pairs(Handle:GetDescendants()) do
		if (stuff:IsA("ParticleEmitter") and stuff.Parent ~= Handle) or stuff:IsA("Light") then
			stuff.Enabled = Verdict
		end
		if stuff:IsA("Light") then
			stuff.Range = (Verdict and 10) or 3
		end
	end
end

local function SpecialParticles(Verdict)
	for _,stuff in pairs(Handle:GetDescendants()) do
		if stuff:IsA("ParticleEmitter") and stuff.Parent == Handle then
			stuff.Enabled = Verdict
		end
		if stuff:IsA("Beam") then
			stuff.TextureSpeed = (Verdict and 1) or .1
			stuff.Color = (Verdict and ColorSequence.new(Color3.new(1,1,1)) or ColorSequence.new(Color3.new(.5,.5,.5)))
		end
	end
end

local Player,Character,Humanoid,Root

function PassiveSpecial()
	--Sword of light does healing + Damage resistance when the sun is out
	--Check if Daytime then roll with ability
	--loop until time is not daytime
	if not Humanoid or Humanoid.Health <= 0 or not Character then return end

	if not SunIsVisible(Character) then
		--print("Sun is not visible")
		EnableParticles(false)
		Properties.SpecialActive = false
		if Humanoid and Tool:IsDescendantOf(Character) then
			Humanoid.WalkSpeed = 16
			Properties.Damage = 14
		end
		--[[Disable particles on sword]]
		return
	end

	if Humanoid and Tool:IsDescendantOf(Character) then
		Humanoid.WalkSpeed = 25
		Properties.Damage = 20
	end
	--Trigger active particles on sword

	if not Character:FindFirstChild(script:WaitForChild("SoLDefense").Name) and Tool:IsDescendantOf(Character) then
		local DefenseScript = script:WaitForChild("SoLDefense"):Clone()
		local ToolRef = Create("ObjectValue"){
			Name = "ToolRef",
			Value = Tool,
			Parent = DefenseScript
		}
		DefenseScript.Parent = Character
		DefenseScript.Disabled = false
	end

	if Properties.SpecialActive then --[[print("On Cooldown")]] return end
	--SwordMesh.VertexColor = Vector3.new(1,1,1) * 10 -- Make the sword look all bright

	Properties.SpecialActive = true
	EnableParticles(true)

end

local Animations = {}

function ChangeTime(Time) --initiate the cool time-chaning effect!
	if not Properties.Special then return end
	--warn("Changing Time")
	Properties.Special = false
	SpecialParticles(false)
	Tool.Enabled = false
	Humanoid.WalkSpeed = 0
	Animations.Summon:Play()
	delay(3,function()
		PassiveSpecial()
		Tool.Enabled = true
		Animations.Summon:Stop()
		--Humanoid.WalkSpeed = (Humanoid.WalkSpeed <=0 and 16) or Humanoid.WalkSpeed
	end)
	delay(Properties.SpecialReload,function()
		Properties.Special = true
		SpecialParticles(true)
	end)
	local TimeChange = script:WaitForChild("TimeChange"):Clone()
	local SpawnPosition = Create("Vector3Value"){
		Name = "SpawnPosition",
		Value = Root.Position - Vector3.new(0,Root.Size.Y * 1.5,0),
		Parent = TimeChange,
	}
	local Creator = Create("ObjectValue"){
		Name = "Creator",
		Value = Player,
		Parent = TimeChange
	}
	local Time = Create("NumberValue"){
		Name = "Time",
		Value = Time,
		Parent = TimeChange
	}
	TimeChange.Parent = Services.ServerScriptService
	TimeChange.Disabled = false
end

local function LightTransport()
	local LightWarpScript = script:WaitForChild("LightWarp")
	local function IsWarping()
		local stuff = Services.ServerScriptService:GetChildren()
		for i=1,#stuff do
			if stuff[i] and stuff[i].Name == LightWarpScript.Name and stuff[i]:FindFirstChild("Character") and stuff[i]:FindFirstChild("Character").Value == Character then
				return true
			end
		end
		return false
	end

	if IsWarping() then return end

	local sucess,MousePosition = pcall(function() return MousePos:InvokeClient(Player) end)
	MousePosition = (sucess and MousePosition) or Vector3.new(0,0,0)

	LightWarpScript = LightWarpScript:Clone()
	local CharacterTag = Create("ObjectValue"){
		Name = "Character",
		Value = Character,
		Parent = LightWarpScript
	}
	local TargetLocation = Create("Vector3Value"){
		Name = "TargetLocation",
		Value = MousePosition,
		Parent = LightWarpScript
	}
	local Range = Create("NumberValue"){
		Name = "Range",
		Value = (Properties.SpecialActive and 200) or 100,
		Parent = LightWarpScript
	}
	LightWarpScript.Parent = Services.ServerScriptService
	LightWarpScript.Disabled = false
end

local EquippedEvents = {}
local Touch

local MouseHeld = false
local CurrentMotor,RightWeld,Part0,Part1

function Equipped()
	Character = Tool.Parent
	Player = Services.Players:GetPlayerFromCharacter(Character)
	Humanoid = Character:FindFirstChildOfClass("Humanoid")
	Root = Character:WaitForChild("HumanoidRootPart")

	if not Humanoid or Humanoid.Health <= 0 then return end

	Animations = Tool:WaitForChild("Animations"):WaitForChild(Humanoid.RigType.Name)
	Animations = {
		Slash = Humanoid:LoadAnimation(Animations:WaitForChild("SlashAnim")),
		Stab = Humanoid:LoadAnimation(Animations:WaitForChild("StabAnim")),
		Summon = Humanoid:LoadAnimation(Animations:WaitForChild("SummonAnim")),
		Charge = Humanoid:LoadAnimation(Animations:WaitForChild("ChargeAnim")),
	}
	Touch = Handle.Touched:Connect(function(hit)
		if not hit or not hit.Parent then return end
		local Hum,FF = hit.Parent:FindFirstChildOfClass("Humanoid"),hit.Parent:FindFirstChildOfClass("ForceField")
		if not Hum or FF or Hum.Health <= 0 or IsTeamMate(Services.Players:GetPlayerFromCharacter(Hum.Parent),Player) or Hum.Parent == Character then return end
		UntagHumanoid(Hum)
		TagHumanoid(Hum,Player)
		Hum:TakeDamage(Properties.Damage)
		print(Properties.Damage)
	end)
	PassiveSpecial()
	Sounds.Unsheath:Play()
end

function Unequipped()
	MouseHeld = false
	if Touch then Touch:Disconnect();Touch = nil end
	for AnimName,anim in pairs(Animations) do
		if anim then
			anim:Stop()
		end
	end
	if CurrentMotor then
		CurrentMotor:Destroy()
	end
	if Tool:IsDescendantOf(workspace) and not Tool:IsDescendantOf(Character) then
		for index = 1,#EquippedEvents do
			if EquippedEvents[index] then
				EquippedEvents[index]:Disconnect();EquippedEvents[index] = nil
			end
		end
	end
end

local Seed = Random.new()

function Activated()
	if not Tool.Enabled or MouseHeld then return end
	MouseHeld = true
	Animations.Charge:Play()
end

function Deactivated()
	if not Tool.Enabled or not MouseHeld then return end
	MouseHeld = false

	Tool.Enabled = false
	local RightLimb = Character:FindFirstChild("Right Arm") or Character:FindFirstChild("RightHand")
	if RightLimb then
		RightWeld = RightLimb:FindFirstChildOfClass("Weld")
		if RightWeld and not CurrentMotor then
			CurrentMotor = Create'Motor6D'{
				Name = 'Grip',
				--C0 = RightWeld.C0,
				--C1 = Tool.Grip,--RightWeld.C1,
				Part0 = RightWeld.Part0,
				Part1 = Handle,
				--Parent = RightArm
			}
			CurrentMotor.Parent = RightLimb
		end
		coroutine.wrap(function()
			if RightWeld then
				Part0 = RightWeld.Part0
				Part1 = RightWeld.Part1
				RightWeld.Part0 = nil
				RightWeld.Part1 = nil
			end
		end)()

	end
	local AttackAnims = {--[[Animations.Slash,]]Animations.Stab}
	Sounds.Lunge:Play()
	Animations.Charge:Stop()
	local Anim = AttackAnims[Seed:NextInteger(1,#AttackAnims)]
	Anim:Play(0,nil,3);--Anim.Stopped:Wait()
	Wait(Anim.Length/3)
	if RightWeld then
		RightWeld.Part0 = Part0
		RightWeld.Part1 = Part1
	end
	if CurrentMotor then
		CurrentMotor:Destroy();CurrentMotor = nil
	end
	Tool.Enabled = true
end

Remote.OnServerEvent:Connect(function(Client,Key)
	if Client ~= Player or not Key or not Humanoid or Humanoid.Health <= 0 or not Tool.Enabled then return end
	if Key == Enum.KeyCode.Q then
		ChangeTime(Properties.TimetoChange)
	elseif Key == Enum.KeyCode.E and Properties.LightTeleport then
		Properties.LightTeleport = false
		delay(5,function()
			Properties.LightTeleport = true
		end)
	 	LightTransport()
	end
end)

Tool.Equipped:Connect(Equipped)
Tool.Unequipped:Connect(Unequipped)
Tool.Activated:Connect(Activated)
Tool.Deactivated:Connect(Deactivated)

Services.Lighting.Changed:Connect(function(property)
	if property == "ClockTime" then
		PassiveSpecial()
	end
end)
EnableParticles(false)
SpecialParticles(true)
PassiveSpecial()--trigger it initially on start


Prompt: -- Existance in this list signifies that it is an emote, the value indicates if it is a looping emote

Response:
local emoteNames = { wave = false, point = false, dance1 = true, dance2 = true, dance3 = true, laugh = false, cheer = false}

function configureAnimationSet(name, fileList)
if (animTable[name] ~= nil) then
for _, connection in pairs(animTable[name].connections) do
connection:Disconnect()
end
end
animTable[name] = {}
animTable[name].count = 0
animTable[name].totalWeight = 0
animTable[name].connections = {}


Prompt:
--[=[
	Constructs a new brio that will cleanup afer the set amount of time

	@since 3.6.0
	@param time number
	@param ... any -- Brio values
	@return Brio
]=]

Response:
function Brio.delayed(time, ...)
	local brio = Brio.new(...)
	task.delay(time, function()
		brio:Kill()
	end)
	return brio
end


Prompt: --[ Get Items ]--

Response:
local Humanoid = Avatar:WaitForChild("Humanoid")
local Torso = Avatar:WaitForChild("Torso")
local RH = Torso:WaitForChild("Right Hip")
local LH = Torso:WaitForChild("Left Hip")

local RL = Avatar:WaitForChild("Right Leg")
local LL = Avatar:WaitForChild("Left Leg")

local RJ = Avatar:WaitForChild("HumanoidRootPart"):WaitForChild("RootJoint")


Prompt:
--[=[
	Gets and sets the current position of the AccelTween
	@prop p number
	@within AccelTween
]=]


Prompt: --[[ Services ]]

Response:
--
local PlayersService = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local ContextActionService = game:GetService("ContextActionService")
local Settings = UserSettings()	-- ignore warning
local GameSettings = Settings.GameSettings
local Mouse = PlayersService.LocalPlayer:GetMouse()


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

Response:
local autoscaling	= false					--Estimates top speed

local UNITS	= {								--Click on speed to change units
											--First unit is default
	{
		units			= "MPH"				,
		scaling			= (10/12) * (60/88)	, -- 1 stud : 10 inches | ft/s to MPH
		maxSpeed		= 120				,
		spInc			= 20				, -- Increment between labelled notches
	},

	{
		units			= "KM/H"			,
		scaling			= (10/12) * 1.09728	, -- 1 stud : 10 inches | ft/s to KP/H
		maxSpeed		= 200				,
		spInc			= 20				, -- Increment between labelled notches
	},

	{
		units			= "SPS"				,
		scaling			= 1					, -- Roblox standard
		maxSpeed		= 240				,
		spInc			= 20				, -- Increment between labelled notches
	}
}


Prompt: -- assetIDs for all images in the sequence

Response: local imageAssetIDs = require(script.AssetIds)


Prompt:
--[=[
	@class TableUtil

	A collection of helpful table utility functions. Many of these functions are carried over from JavaScript or
	Python that are not present in Lua.

	Tables that only work specifically with arrays or dictionaries are marked as such in the documentation.

	:::info Immutability
	All functions (_except_ `SwapRemove`, `SwapRemoveFirstValue`, and `Lock`) treat tables as immutable and will return
	copies of the given table(s) with the operations performed on the copies.
]=]

Response:
local TableUtil = {}

local HttpService = game.HttpService
local rng = Random.new()


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

Response:
local v1 = require(script.Parent:WaitForChild("BaseCharacterController"));
local v2 = setmetatable({}, v1);
v2.__index = v2;
function v2.new()
	local v3 = setmetatable(v1.new(), v2);
	v3.parentUIFrame = nil;
	v3.jumpButton = nil;
	v3.characterAddedConn = nil;
	v3.humanoidStateEnabledChangedConn = nil;
	v3.humanoidJumpPowerConn = nil;
	v3.humanoidParentConn = nil;
	v3.externallyEnabled = false;
	v3.jumpPower = 0;
	v3.jumpStateEnabled = true;
	v3.isJumping = false;
	v3.humanoid = nil;
	return v3;
end;
local l__Players__1 = game:GetService("Players");
function v2.EnableButton(p1, p2)
	if p2 then
		if not p1.jumpButton then
			p1:Create();
		end;
		local v4 = l__Players__1.LocalPlayer.Character and l__Players__1.LocalPlayer.Character:FindFirstChildOfClass("Humanoid");
		if v4 and p1.externallyEnabled and p1.externallyEnabled and v4.JumpPower > 0 then
			p1.jumpButton.Visible = true;
			return;
		end;
	else
		p1.jumpButton.Visible = false;
		p1.isJumping = false;
		p1.jumpButton.ImageRectOffset = Vector2.new(1, 146);
	end;
end;
function v2.UpdateEnabled(p3)
	if p3.jumpPower > 0 and p3.jumpStateEnabled then
		p3:EnableButton(true);
		return;
	end;
	p3:EnableButton(false);
end;
function v2.HumanoidChanged(p4, p5)
	local v5 = l__Players__1.LocalPlayer.Character and l__Players__1.LocalPlayer.Character:FindFirstChildOfClass("Humanoid");
	if v5 then
		if p5 == "JumpPower" then
			p4.jumpPower = v5.JumpPower;
			p4:UpdateEnabled();
			return;
		end;
		if p5 == "Parent" and not v5.Parent then
			p4.humanoidChangeConn:Disconnect();
		end;
	end;
end;
function v2.HumanoidStateEnabledChanged(p6, p7, p8)
	if p7 == Enum.HumanoidStateType.Jumping then
		p6.jumpStateEnabled = p8;
		p6:UpdateEnabled();
	end;
end;
function v2.CharacterAdded(p9, p10)
	if p9.humanoidChangeConn then
		p9.humanoidChangeConn:Disconnect();
		p9.humanoidChangeConn = nil;
	end;
	p9.humanoid = p10:FindFirstChildOfClass("Humanoid");
	while not p9.humanoid do
		p10.ChildAdded:wait();
		p9.humanoid = p10:FindFirstChildOfClass("Humanoid");
	end;
	p9.humanoidJumpPowerConn = p9.humanoid:GetPropertyChangedSignal("JumpPower"):Connect(function()
		p9.jumpPower = p9.humanoid.JumpPower;
		p9:UpdateEnabled();
	end);
	p9.humanoidParentConn = p9.humanoid:GetPropertyChangedSignal("Parent"):Connect(function()
		if not p9.humanoid.Parent then
			p9.humanoidJumpPowerConn:Disconnect();
			p9.humanoidJumpPowerConn = nil;
			p9.humanoidParentConn:Disconnect();
			p9.humanoidParentConn = nil;
		end;
	end);
	p9.humanoidStateEnabledChangedConn = p9.humanoid.StateEnabledChanged:Connect(function(p11, p12)
		p9:HumanoidStateEnabledChanged(p11, p12);
	end);
	p9.jumpPower = p9.humanoid.JumpPower;
	p9.jumpStateEnabled = p9.humanoid:GetStateEnabled(Enum.HumanoidStateType.Jumping);
	p9:UpdateEnabled();
end;
function v2.SetupCharacterAddedFunction(p13)
	p13.characterAddedConn = l__Players__1.LocalPlayer.CharacterAdded:Connect(function(p14)
		p13:CharacterAdded(p14);
	end);
	if l__Players__1.LocalPlayer.Character then
		p13:CharacterAdded(l__Players__1.LocalPlayer.Character);
	end;
end;
function v2.Enable(p15, p16, p17)
	if p17 then
		p15.parentUIFrame = p17;
	end;
	p15.externallyEnabled = p16;
	p15:EnableButton(p16);
end;
local l__GuiService__2 = game:GetService("GuiService");
function v2.Create(p18)
	if not p18.parentUIFrame then
		return;
	end;
	if p18.jumpButton then
		p18.jumpButton:Destroy();
		p18.jumpButton = nil;
	end;
	local v6 = math.min(p18.parentUIFrame.AbsoluteSize.x, p18.parentUIFrame.AbsoluteSize.y) <= 500;
	if v6 then
		local v7 = 70;
	else
		v7 = 120;
	end;
	p18.jumpButton = Instance.new("ImageButton");
	p18.jumpButton.Name = "JumpButton";
	p18.jumpButton.Visible = false;
	p18.jumpButton.BackgroundTransparency = 1;
	p18.jumpButton.Image = "rbxasset://textures/ui/Input/TouchControlsSheetV2.png";
	p18.jumpButton.ImageRectOffset = Vector2.new(1, 146);
	p18.jumpButton.ImageRectSize = Vector2.new(144, 144);
	p18.jumpButton.Size = UDim2.new(0, v7, 0, v7);
	p18.jumpButton.Position = v6 and UDim2.new(1, -(v7 * 1.5 - 10), 1, -v7 - 20) or UDim2.new(1, -(v7 * 1.5 - 10), 1, -v7 * 1.75);
	local u3 = nil;
	p18.jumpButton.InputBegan:connect(function(p19)
		if not (not u3) or p19.UserInputType ~= Enum.UserInputType.Touch or p19.UserInputState ~= Enum.UserInputState.Begin then
			return;
		end;
		u3 = p19;
		p18.jumpButton.ImageRectOffset = Vector2.new(146, 146);
		p18.isJumping = true;
	end);
	local function u4()
		u3 = nil;
		p18.isJumping = false;
		p18.jumpButton.ImageRectOffset = Vector2.new(1, 146);
	end;
	p18.jumpButton.InputEnded:connect(function(p20)
		if p20 == u3 then
			u4();
		end;
	end);
	l__GuiService__2.MenuOpened:connect(function()
		if u3 then
			u4();
		end;
	end);
	if not p18.characterAddedConn then
		p18:SetupCharacterAddedFunction();
	end;
	p18.jumpButton.Parent = p18.parentUIFrame;
end;
return v2;


Prompt: --//Transmission//--

Response:
local AmountOfGears = 6 --{Max of 8 gears}
local TransmissionType = "Automatic" --{HPattern, Automatic, DualClutch, CVT}
local Drivetrain = "AWD" --{RWD, FWD, AWD}
local TorqueSplit = 30 --{Split to the rear wheels}
local DifferentialF = 0 --{0 = Open, 1 = locked}
local DifferentialR = 0.6 --{0 = Open, 1 = locked}

local Gear1 = 4.60
local Gear2 = 2.72
local Gear3 = 1.86
local Gear4 = 1.46
local Gear5 = 1.23
local Gear6 = 1.00
local Gear7 = 0.82
local Gear8 = 0.69

local FinalDrive = 2.937

local EngineIdle = 600
local EngineRedline = 6800


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

	@param event Signal | RBXScriptSignal
	@param func function -- Function to call
	@return function -- Call this function to cancel call
]=]

Response:
function StepUtils.onceAtEvent(event, func)
	assert(type(func) == "function", "Bad func")

	local conn
	local function cleanup()
		if conn then
			conn:Disconnect()
			conn = nil
		end
	end

	conn = event:Connect(function(...)
		cleanup()
		func(...)
	end)

	return cleanup
end

return StepUtils


Prompt: -- for quick setting-back of face

Response:
local oldFace = nil
local oldFaceTexture = nil

local debounce = false
function changeFace(torso)
	if debounce then return end
	debounce = true

	oldFace = nil
	oldFaceTexture = nil

	local char = torso.Parent
	if char then
		local charHead = char:FindFirstChild("Head")
		if charHead then
			local charFace = charHead:FindFirstChild("face")
			if charFace then
				oldFaceTexture = charFace.Texture
				charFace.Texture = "http://www.roblox.com/asset/?id="..tostring(toiletFace[math.random(1, #toiletFace)])
				oldFace = charFace
			end
		end
	end
end

function checkForNewSitter(newChild)
	if newChild:IsA("Weld") and newChild.Name == "SeatWeld" then
		if newChild.Part0 == toilet then changeFace(newChild.Part1)
		else changeFace(newChild.Part0) end
	end
end

function checkForFaceRelease(child)
	if child:IsA("Weld") and child.Name == "SeatWeld" then
		if oldFace and oldFaceTexture then
			oldFace.Texture = oldFaceTexture
			oldFace = nil
			oldFaceTexture = nil
		end

		debounce = false
	end
end

toilet.ChildAdded:connect(checkForNewSitter)
toilet.ChildRemoved:connect(checkForFaceRelease)


Prompt: -- Data store for tracking purchases that were successfully processed

Response: local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")


Prompt: --// Connections

Response:
L_111_.OnClientEvent:connect(function(L_194_arg1, L_195_arg2, L_196_arg3, L_197_arg4, L_198_arg5, L_199_arg6, L_200_arg7)
	if L_194_arg1 and not L_15_ then
		MakeFakeArms()

		L_42_ = L_2_.PlayerGui.MainGui
		L_26_ = L_42_:WaitForChild('Others')
		L_27_ = L_26_:WaitForChild('Kill')
		L_28_ = L_42_:WaitForChild('GameGui'):WaitForChild('AmmoFrame')
		L_29_ = L_28_:WaitForChild('Ammo')
		L_30_ = L_28_:WaitForChild('AmmoBackground')
		L_31_ = L_28_:WaitForChild('MagCount')
		L_32_ = L_28_:WaitForChild('MagCountBackground')
		L_33_ = L_28_:WaitForChild('DistDisp')
		L_34_ = L_28_:WaitForChild('Title')
		L_35_ = L_28_:WaitForChild('Mode1')
		L_36_ = L_28_:WaitForChild('Mode2')
		L_37_ = L_28_:WaitForChild('Mode3')
		L_38_ = L_28_:WaitForChild('Mode4')
		L_39_ = L_28_:WaitForChild('Mode5')
		L_40_ = L_28_:WaitForChild('Stances')
		L_41_ = L_42_:WaitForChild('Shading')
		L_41_.Visible = false

		L_34_.Text = L_1_.Name
		UpdateAmmo()

		L_43_ = L_195_arg2
		L_44_ = L_196_arg3
		L_45_ = L_197_arg4
		L_46_ = L_198_arg5
		L_47_ = L_199_arg6
		L_48_ = L_200_arg7
		L_49_ = L_62_.Bolt

		L_87_ = L_48_.C1
		L_88_ = L_48_.C0

		if L_1_:FindFirstChild('AimPart2') then
			L_57_ = L_1_:WaitForChild('AimPart2')
		end

		if L_1_:FindFirstChild('FirePart2') then
			L_60_ = L_1_.FirePart2
		end

		if L_24_.FirstPersonOnly then
			L_2_.CameraMode = Enum.CameraMode.LockFirstPerson
		end
		--uis.MouseIconEnabled = false
		L_5_.FieldOfView = 70
		L_15_ = true
	elseif L_15_ then
		if L_3_ and L_3_.Humanoid and L_3_.Humanoid.Health > 0 and L_9_ then
			Stand()
			Unlean()
		end

		L_93_ = 0
		L_80_ = false
		L_81_ = false
		L_82_ = false
		L_64_ = false
		L_67_ = false
		L_66_ = false
		Shooting = false

		L_97_ = 70

		RemoveArmModel()

		L_42_:Destroy()

		for L_201_forvar1, L_202_forvar2 in pairs(IgnoreList) do
			if L_202_forvar2 ~= L_3_ and L_202_forvar2 ~= L_5_ and L_202_forvar2 ~= L_104_ then
				table.remove(IgnoreList, L_201_forvar1)
			end
		end

		if L_3_:FindFirstChild('Right Arm') and L_3_:FindFirstChild('Left Arm') then
			L_3_['Right Arm'].LocalTransparencyModifier = 0
			L_3_['Left Arm'].LocalTransparencyModifier = 0
		end

		L_78_ = false
		L_69_ = true

		L_2_.CameraMode = Enum.CameraMode.Classic
		L_110_.MouseIconEnabled = true
		L_5_.FieldOfView = 70
		L_15_ = false
		L_110_.MouseDeltaSensitivity = L_52_
		L_4_.Icon = "http://www.roblox.com/asset?id=0"
		L_15_ = false
		L_4_.TargetFilter = nil
	end
end)


Prompt: -- Create component

Response:
local NotificationDialog = Roact.PureComponent:extend(script.Name)

function NotificationDialog:init()
    self:setState({
        ShouldDisplayDetails = false;
    })
end

function NotificationDialog:render()
    return new('Frame', {
        BackgroundColor3 = Color3.fromRGB(0, 0, 0);
        BackgroundTransparency = 0.7;
        BorderSizePixel = 0;
        Size = UDim2.new(1, 0, 0, 22 + 2);
        LayoutOrder = self.props.LayoutOrder;
    }, {
        ColorBar = new('Frame', {
            BorderSizePixel = 0;
            BackgroundColor3 = self.props.ThemeColor;
            Size = UDim2.new(1, 0, 0, 2);
        });
        OKButton = new('TextButton', {
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BackgroundTransparency = 0.8;
            BorderSizePixel = 0;
            AnchorPoint = Vector2.new(0, 1);
            Position = UDim2.new(0, 0, 1, 0);
            Size = UDim2.new(self.state.ShouldDisplayDetails and 1 or 0.5, 0, 0, 22);
            Text = 'GOT IT';
            Font = Enum.Font.Gotham;
            TextSize = 10;
            TextColor3 = Color3.fromRGB(255, 255, 255);
            [Roact.Event.Activated] = function (rbx)
                self.props.OnDismiss()
            end;
        });
        DetailsButton = (not self.state.ShouldDisplayDetails or nil) and new('TextButton', {
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BackgroundTransparency = 0.8;
            BorderSizePixel = 0;
            AnchorPoint = Vector2.new(0, 1);
            Position = UDim2.new(0.5, 0, 1, 0);
            Size = UDim2.new(0.5, 0, 0, 22);
            Text = 'WHAT CAN I DO?';
            Font = Enum.Font.Gotham;
            TextSize = 10;
            TextColor3 = Color3.fromRGB(255, 255, 255);
            [Roact.Event.Activated] = function (rbx)
                self:setState({
                    ShouldDisplayDetails = true;
                })
            end;
        });
        ButtonDivider = (not self.state.ShouldDisplayDetails or nil) and new('Frame', {
            BackgroundColor3 = Color3.fromRGB(0, 0, 0);
            BackgroundTransparency = 0.75;
            BorderSizePixel = 0;
            Position = UDim2.new(0.5, 0, 1, 0);
            AnchorPoint = Vector2.new(0.5, 1);
            Size = UDim2.new(0, 1, 0, 22);
        });
        Text = new('TextLabel', {
            BackgroundTransparency = 1;
            Position = UDim2.new(0, 0, 0, 2);
            Size = UDim2.new(1, 0, 1, -22 - 2);
            TextWrapped = true;
            RichText = true;
            Font = Enum.Font.GothamSemibold;
            TextColor3 = Color3.fromRGB(255, 255, 255);
            TextSize = 11;
            TextStrokeTransparency = 0.9;
            LineHeight = 1;
            Text = (not self.state.ShouldDisplayDetails) and
                self.props.NoticeText or
                self.props.DetailText;
            [Roact.Change.TextBounds] = function (rbx)
                rbx.Parent.Size = UDim2.new(1, 0, 0, rbx.TextBounds.Y + 29 + 22 + 2)
            end;
        });
    })
end

return NotificationDialog


Prompt:
--// This module is for stuff specific to cross server communication
--// NOTE: THIS IS NOT A *CONFIG/USER* PLUGIN! ANYTHING IN THE MAINMODULE PLUGIN FOLDERS IS ALREADY PART OF/LOADED BY THE SCRIPT! DO NOT ADD THEM TO YOUR CONFIG>PLUGINS FOLDER!

Response:
return function(Vargs, GetEnv)
	local env = GetEnv(nil, {script = script})
	setfenv(1, env)

	local server = Vargs.Server;
	local service = Vargs.Service;

	local Settings = server.Settings
	local Functions, Commands, Admin, Anti, Core, HTTP, Logs, Remote, Process, Variables, Deps =
		server.Functions, server.Commands, server.Admin, server.Anti, server.Core, server.HTTP, server.Logs, server.Remote, server.Process, server.Variables, server.Deps

	local ServerId = game.JobId;
	local MsgService = service.MessagingService;
	local subKey = Core.DataStoreEncode("Adonis_CrossServerMessaging");
	local counter = 0;
	local lastTick;

	local oldCommands = Core.CrossServerCommands;

	--// Cross Server Commands
	Core.CrossServerCommands = {
		ServerChat = function(jobId, data)
			if data then
				for _, v in ipairs(service.GetPlayers()) do
					if Admin.GetLevel(v) > 0 then
						Remote.Send(v, "handler", "ChatHandler", data.Player, data.Message, "Cross")
					end
				end
			end
		end;

		Ping = function(jobId, data)
			Core.CrossServer("Pong", {
				JobId = game.JobId;
				NumPlayers = #service.Players:GetPlayers();
			})
		end;

		Pong = function(jobId, data)
			service.Events.ServerPingReplyReceived:Fire(jobId, data)
		end;

		NewRunCommand = function(jobId, plrData, comString)
			Process.Command(Functions.GetFakePlayer(plrData), comString, {AdminLevel = plrData.AdminLevel, CrossServer = true})
		end;

		-- // Unused, unnecessary, at the very least it should use GetEnv, and yes even if GetEnv has an empty table you can still do GetEnv({}).GetEnv().server
		-- If this ever were to be re-enabled it should use Core.Loadstring at all
		--[[Loadstring = function(jobId, source) -- // Im honestly not even sure what to think of this one.
			Core.Loadstring(source, GetEnv{})()
		end;]]

		Message = function(jobId, fromPlayer, message, duration)
			server.Functions.Message(
				`Global Message from {fromPlayer or "[Unknown]"}`,
				message,
				service.GetPlayers(),
				true,
				duration
			)
		end;

		RemovePlayer = function(jobId, name, BanMessage, reason)
			--// probably should move this to userid
			local player =	service.Players:FindFirstChild(name)
			if player then
				player:Kick(string.format("%s | Reason: %s", BanMessage, reason))
			end
		end;

		DataStoreUpdate = function(jobId, key, data)
			if key and data then
				Routine(Core.LoadData, key, data)
			end
		end;

		UpdateSetting = function(jobId, setting, newValue)
			if type(setting) == "string" then
				Settings[setting] = if newValue == nil then require(Deps.DefaultSettings).Settings[setting] else newValue
			end
		end;

		LoadData = function(jobId, key, dat)
			Core.LoadData(key, dat, jobId)
		end;

		Event = function(jobId, eventId, ...)
			service.Events[`CRSSRV:{eventId}`]:Fire(...)
		end;

		CrossServerVote = function(jobId, data)
			local question = data.Question
			local answers = data.Answers
			local voteKey = data.VoteKey

			local start = os.clock()

			Logs.AddLog("Commands", {
				Text = `[CRS_SERVER] Vote initiated by {data.Initiator}`,
				Desc = question
			})

			for _, v in service.GetPlayers() do
				Routine(function()
					local response = Remote.GetGui(v, "Vote", {Question = question, Answers = answers})
					if response and os.clock() - start <= 120 then
						MsgService:PublishAsync(voteKey, {PlrInfo = {Name = v.Name, UserId = v.UserId}, Response = response})
					end
				end)
			end
		end;
	}

	local function CrossEvent(eventId)
		return service.Events[`CRSSRV{eventId}`]
	end

	--// User Commands
	Commands.CrossServer = {
		Prefix = Settings.Prefix;
		Commands = {"crossserver", "cross"};
		Args = {"command"};
		Description = "Runs the specified command string on all servers";
		AdminLevel = "HeadAdmins";
		CrossServerDenied = true; --// Makes it so this command cannot be ran via itself causing an infinite spammy loop of cross server commands...
		IsCrossServer = true; --// Used in settings.CrossServerCommands in case a game creator wants to disable the cross-server commands
		Function = function(plr: Player, args: {string})
			if not Core.CrossServer("NewRunCommand", {
				UserId = plr.UserId;
				Name = plr.Name;
				DisplayName = plr.DisplayName;
				AccountAge = plr.AccountAge;
				--MembershipType = plr.MembershipType; -- MessagingService doesn't accept Enums
				FollowUserId = plr.FollowUserId;
				AdminLevel = Admin.GetLevel(plr);
				}, args[1])
			then
				error("CrossServer handler not ready (try again later)")
			end
		end;
	};

	Commands.CrossServerList = {
		Prefix = Settings.Prefix;
		Commands = {"serverlist", "gameservers", "crossserverlist", "listservers"};
		Args = {};
		Description = "Attempts to list all active servers (at the time the command was ran)";
		AdminLevel = "Admins";
		CrossServerDenied = true;
		IsCrossServer = true;
		Function = function(plr: Player, args: {string})
			local disced = false
			local updateKey = `SERVERPING_{math.random()}`
			local replyList = {}
			local listener = service.Events.ServerPingReplyReceived:Connect(function(jobId, data)
				if jobId then
					replyList[jobId] = data or {}
				end
			end)

			local function listUpdate()
				local tab = {}
				local totalPlayers = 0
				local totalServers = 0

				for jobId,data in replyList do
					totalServers += 1
					totalPlayers = totalPlayers + (data.NumPlayers or 0)
					table.insert(tab, {
						Text = `Players: {data.NumPlayers or 0} | JobId: {jobId}`;
						Desc = `JobId: {jobId}`;
					})
				end

				table.insert(tab, 1, {
					Text = `Total Servers: {totalServers} | Total Players: {totalPlayers}`;
					Desc = "The total number of servers and players";
				})

				return tab;
			end

			local function doDisconnect()
				if not disced then
					disced = true
					Logs.TempUpdaters[updateKey] = nil
					listener:Disconnect()
				end
			end

			if not Core.CrossServer("Ping") then
				doDisconnect()
				error("CrossServer handler not ready (please try again later)")
			else
				local closeEvent = Remote.NewPlayerEvent(plr,updateKey, function()
					doDisconnect()
				end)

				Logs.TempUpdaters[updateKey] = listUpdate;

				Remote.MakeGui(plr, "List", {
					Title = "Server List",
					Tab = listUpdate(),
					Update = "TempUpdate",
					UpdateArgs = {{UpdateKey = updateKey}},
					OnClose = `client.Remote.PlayerEvent('{updateKey}')`,
					AutoUpdate = 1,
				})

				delay(500, doDisconnect)
			end
		end;
	};

	Commands.CrossServerVote = {
		Prefix = Settings.Prefix;
		Commands = {"crossservervote", "crsvote", "globalvote", "gvote"};
		Args = {"answer1,answer2,etc (NO SPACES)", "question"};
		Filter = true;
		Description = "Lets you ask players in all servers a question with a list of answers and get the results";
		AdminLevel = "Moderators";
		CrossServerDenied = true;
		IsCrossServer = true;
		Function = function(plr: Player, args: {string})
			local question = args[2]
			if not question then error("You forgot to supply a question! (argument #2)") end
			local answers = args[1]
			local anstab = {}
			local responses = {}
			local voteKey = `ADONISVOTE{math.random()}`
			local startTime = os.clock()

			local msgSub = MsgService:SubscribeAsync(voteKey, function(data)
				table.insert(responses, data.Data.Response)
			end)

			local function voteUpdate()
				local results = {}
				local total = #responses
				local tab = {
					`Question: {question}`;
					`Total Responses: {total}`;
					`Time Left: {math.max(0, 120 - (os.clock()-startTime))}`;
					--`Didn't Vote: {#players-total}`;
				}

				for _, v in responses do
					if not results[v] then results[v] = 0 end
					results[v] += 1
				end

				for _, v in anstab do
					local ans = v
					local num = results[v]
					local percent
					if not num then
						num = 0
						percent = 0
					else
						percent = math.floor((num/total)*100)
					end

					table.insert(tab, {
						Text = `{ans} | {percent}% - {num}/{total}`,
						Desc = `Number: {num}/{total} | Percent: {percent}`
					})
				end

				return tab
			end

			Logs.TempUpdaters[voteKey] = voteUpdate;

			if not answers then
				anstab = {"Yes","No"}
			else
				for ans in answers:gmatch("([^,]+)") do
					table.insert(anstab, ans)
				end
			end

			local data = {
				Answers = anstab;
				Question = question;
				VoteKey = voteKey;
				Initiator = service.FormatPlayer(plr);
			}

			Core.CrossServer("CrossServerVote", data)

			Remote.MakeGui(plr, "List", {
				Title = "Results",
				Icon = server.MatIcons["Text snippet"];
				Tab = voteUpdate(),
				Update = "TempUpdate",
				UpdateArgs = {{UpdateKey = voteKey}},
				AutoUpdate = 1,
			})

			delay(120, function()
				Logs.TempUpdaters[voteKey] = nil
				msgSub:Disconnect()
			end)
		end
	};

	--// Handlers
	Core.CrossServer = function(...)
		local data = {ServerId, ...};
		service.Queue("CrossServerMessageQueue", function()
			--// rate limiting
			counter += 1
			if not lastTick then lastTick = os.clock() end
			if counter >= 150 + 60 * #service.Players:GetPlayers()  then
				repeat task.wait() until os.clock()-lastTick > 60
			end

			if os.clock()-lastTick > 60 then
				lastTick = os.clock()
				counter = 1
			end

			--// publish
			MsgService:PublishAsync(subKey, data)
		end, 300, true)

		return true
	end

	Process.CrossServerMessage = function(msg)
		local data = msg.Data
		assert(data and type(data) == "table", `CrossServer: Invalid data type {type(data)}`)

		local serverId, command = data[1], data[2]

		Logs:AddLog("Script", {
			Text = `Cross-server message received: {command or "[NO COMMAND]"}`;
			Desc = `Origin JobId: {serverId or "[MISSING]"}`
		})

		if not (serverId and command) then return end

		table.remove(data, 2)

		if Core.CrossServerCommands[command] then
			Core.CrossServerCommands[command](unpack(data))
		end
	end

	Core.SubEvent = MsgService:SubscribeAsync(subKey, function(...)
		return Process.CrossServerMessage(...)
	end)

	--// Check for additions added by other modules in core before this one loaded
	for i, v in oldCommands do
		Core.CrossServerCommands[i] = v
	end

	Logs:AddLog("Script", "Cross-Server Module Loaded");
end


Response:
local Body = script.Parent.Parent

local Head = Body:WaitForChild("Head")
local Hum = Body:WaitForChild("Humanoid")
local Core = Body:WaitForChild("HumanoidRootPart")
local IsR6 = (Hum.RigType.Value==0)
local Trso = (IsR6 and Body:WaitForChild("Torso")) or Body:WaitForChild("UpperTorso")
local Neck = (IsR6 and Trso:WaitForChild("Neck")) or Head:WaitForChild("Neck")
local Waist = (not IsR6 and Trso:WaitForChild("Waist"))

local NeckOrgnC0 = Neck.C0
local WaistOrgnC0 = (not IsR6 and Waist.C0)

local LookingAtValue = Instance.new("ObjectValue"); LookingAtValue.Parent = Body; LookingAtValue.Name = "LookingAt"


Prompt: --[[Dependencies]]

Response:
local player = game.Players.LocalPlayer
local mouse = player:GetMouse()
local UserInputService = game:GetService("UserInputService")
local bike = script.Parent.Bike.Value
local _Tune = require(bike.Tuner)


Prompt:
--[=[
	Destroys the gamepad object.
]=]

Response:
function Gamepad:Destroy()
	self._trove:Destroy()
end

return Gamepad


Prompt:
--[[
	Called when the watched state changes value.

	value `set` call from `updateAll`
]]

Response:
function class:update(): boolean
	for _, callback in self._changeListeners do
		task.spawn(callback)
	end

	return false
end


Response:
while wait(.5) do
	handler:FireServer('updateSpeed')
end


Prompt:
--[[

	This is the main script for the gun

	The only thing you should change is the settings

	Don't change anything else or you might risk breaking the gun

	If you have any questions / comments / concerns / sandwiches, message me

	Enjoy!
	     ______   ______           __          ______           _                ______
	    / _/ _/  /_  __/_  _______/ /_  ____  / ____/_  _______(_)___  ____     /  /  /
	   / // /     / / / / / / ___/ __ \/ __ \/ /_  / / / / ___/ / __ \/ __ \    / // /
	  / // /     / / / /_/ / /  / /_/ / /_/ / __/ / /_/ (__  ) / /_/ / / / /   / // /
	 / // /     /_/  \__,_/_/  /_.___/\____/_/    \__,_/____/_/\____/_/ /_/  _/ // /
	/__/__/                                                                 /__/__/

--]]

Response:
repeat wait() until game.Players.LocalPlayer.Character
repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
wait(1 / 20)


Prompt: -- << Functions >> --

Response:
UserInputService.MouseIconEnabled = false

function lerp(a, b, c)
	return a + (b - a) * c
end

bobbing = game:GetService("RunService").RenderStepped:Connect(function(deltaTime)
	if script.Parent.Humanoid.MoveDirection.Magnitude > 0 then
		deltaTime = deltaTime * (script.Parent.Humanoid.WalkSpeed * 3.75)
	else
		deltaTime = deltaTime * 60
	end
	print(deltaTime)
	if Humanoid.Health <= 0 then
		bobbing:Disconnect()
		return
	end
	local rootMagnitude = Humanoid.RootPart and Vector3.new(Humanoid.RootPart.Velocity.X, 0, Humanoid.RootPart.Velocity.Z).Magnitude or 0
	local calcRootMagnitude = math.min(rootMagnitude, 50)
	if deltaTime > 3 then
		func1 = 0
		func2 = 0
	else
		func1 = lerp(func1, math.cos(tick() * 0.5 * math.random(10, 15)) * (math.random(5, 20) / 200) * deltaTime, 0.05 * deltaTime)
		func2 = lerp(func2, math.cos(tick() * 0.5 * math.random(5, 10)) * (math.random(2, 10) / 200) * deltaTime, 0.05 * deltaTime)
	end
	Camera.CFrame = Camera.CFrame * (CFrame.fromEulerAnglesXYZ(0, 0, math.rad(func3)) * CFrame.fromEulerAnglesXYZ(math.rad(func4 * deltaTime), math.rad(val * deltaTime), val2) * CFrame.Angles(0, 0, math.rad(func4 * deltaTime * (calcRootMagnitude / 5))) * CFrame.fromEulerAnglesXYZ(math.rad(func1), math.rad(func2), math.rad(func2 * 10)))
	val2 = math.clamp(lerp(val2, -Camera.CFrame:VectorToObjectSpace((Humanoid.RootPart and Humanoid.RootPart.Velocity or Vector3.new()) / math.max(Humanoid.WalkSpeed, 0.01)).X * 0.08, 0.1 * deltaTime), -0.35, 0.2)
	func3 = lerp(func3, math.clamp(UserInputService:GetMouseDelta().X, -5, 5), 0.25 * deltaTime)
	func4 = lerp(func4, math.sin(tick() * int) / 5 * math.min(1, int2 / 10), 0.25 * deltaTime)
	if rootMagnitude > 1 then
		val = lerp(val, math.cos(tick() * 0.5 * math.floor(int)) * (int / 200), 0.25 * deltaTime)
	else
		val = lerp(val, 0, 0.05 * deltaTime)
	end
	if rootMagnitude > 12 then
		int = 20
		int2 = 18
	elseif rootMagnitude > 0.1 then
		int = 12
		int2 = 14
	else
		int2 = 0
	end
	vect3 = lerp(vect3, Camera.CFrame.LookVector, 0.125 * deltaTime)
end)


Response:
function DoorClose()
	if Shaft00.MetalDoor.CanCollide == false then
		Shaft00.MetalDoor.CanCollide = true
		while Shaft00.MetalDoor.Transparency > 0.0 do
			Shaft00.MetalDoor.Transparency = Shaft00.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft01.MetalDoor.CanCollide == false then
		Shaft01.MetalDoor.CanCollide = true
		while Shaft01.MetalDoor.Transparency > 0.0 do
			Shaft01.MetalDoor.Transparency = Shaft01.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft02.MetalDoor.CanCollide == false then
		Shaft02.MetalDoor.CanCollide = true
		while Shaft02.MetalDoor.Transparency > 0.0 do
			Shaft02.MetalDoor.Transparency = Shaft02.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft03.MetalDoor.CanCollide == false then
		Shaft03.MetalDoor.CanCollide = true
		while Shaft03.MetalDoor.Transparency > 0.0 do
			Shaft03.MetalDoor.Transparency = Shaft03.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft04.MetalDoor.CanCollide == false then
		Shaft04.MetalDoor.CanCollide = true
		while Shaft04.MetalDoor.Transparency > 0.0 do
			Shaft04.MetalDoor.Transparency = Shaft04.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft05.MetalDoor.CanCollide == false then
		Shaft05.MetalDoor.CanCollide = true
		while Shaft05.MetalDoor.Transparency > 0.0 do
			Shaft05.MetalDoor.Transparency = Shaft05.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft06.MetalDoor.CanCollide == false then
		Shaft06.MetalDoor.CanCollide = true
		while Shaft06.MetalDoor.Transparency > 0.0 do
			Shaft06.MetalDoor.Transparency = Shaft06.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft07.MetalDoor.CanCollide == false then
		Shaft07.MetalDoor.CanCollide = true
		while Shaft07.MetalDoor.Transparency > 0.0 do
			Shaft07.MetalDoor.Transparency = Shaft07.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft08.MetalDoor.CanCollide == false then
		Shaft08.MetalDoor.CanCollide = true
		while Shaft08.MetalDoor.Transparency > 0.0 do
			Shaft08.MetalDoor.Transparency = Shaft08.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft09.MetalDoor.CanCollide == false then
		Shaft09.MetalDoor.CanCollide = true
		while Shaft09.MetalDoor.Transparency > 0.0 do
			Shaft09.MetalDoor.Transparency = Shaft09.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft10.MetalDoor.CanCollide == false then
		Shaft10.MetalDoor.CanCollide = true
		while Shaft10.MetalDoor.Transparency > 0.0 do
			Shaft10.MetalDoor.Transparency = Shaft10.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft11.MetalDoor.CanCollide == false then
		Shaft11.MetalDoor.CanCollide = true
		while Shaft11.MetalDoor.Transparency > 0.0 do
			Shaft11.MetalDoor.Transparency = Shaft11.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft12.MetalDoor.CanCollide == false then
		Shaft12.MetalDoor.CanCollide = true
		while Shaft12.MetalDoor.Transparency > 0.0 do
			Shaft12.MetalDoor.Transparency = Shaft12.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
	if Shaft13.MetalDoor.CanCollide == false then
		Shaft13.MetalDoor.CanCollide = true
		while Shaft13.MetalDoor.Transparency > 0.0 do
			Shaft13.MetalDoor.Transparency = Shaft13.MetalDoor.Transparency - .1
			wait(0.000001)
		end
	end
end

function onClicked()
DoorClose()

Car.BodyVelocity.velocity = Vector3.new(0, 20, 0)	--Change 10 to change the speed.
end
script.Parent.MouseButton1Click:connect(onClicked)

script.Parent.MouseButton1Click:connect(function()
	if clicker == true
		then clicker = false
	else
		return

	end
end)

Car.Touched:connect(function(otherPart)
	if otherPart == Elevator.Floors:FindFirstChild(script.Parent.Name)
		then StopE() DoorOpen()
	end
end)

function StopE()
 Car.BodyVelocity.velocity = Vector3.new(0, 0, 0)
 Car.BodyPosition.position = Elevator.Floors:FindFirstChild(script.Parent.Name).Position
	clicker = true
end

function DoorOpen()
	while Shaft13.MetalDoor.Transparency < 1.0 do
	Shaft13.MetalDoor.Transparency = Shaft13.MetalDoor.Transparency + .1
	wait(0.000001)
	end
	Shaft13.MetalDoor.CanCollide = false
end


Prompt: -- / Game Assets / --

Response:
local GameAssets = game.ServerStorage.GameAssets

local Badges = GameAssets.Badges


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

Response:
game.Workspace.doorright.l11.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l23.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l32.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l53.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l62.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l71.BrickColor = BrickColor.new(1013)

game.Workspace.doorright.l12.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l21.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l33.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l42.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l51.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l63.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l72.BrickColor = BrickColor.new(1013)

game.Workspace.doorright.l13.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l22.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l31.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l43.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l52.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l61.BrickColor = BrickColor.new(106)
game.Workspace.doorright.l73.BrickColor = BrickColor.new(1013)

game.Workspace.doorright.pillar.BrickColor = BrickColor.new(game.Workspace.Lighting.cyan.Value)


Prompt: -- Define the jump duration

Response:
local jumpDuration = 0.1

btn.MouseButton1Click:Connect(function()
			-- Create the jump tween
			local Click = script.Click
			local jumpTweenInfo = TweenInfo.new(jumpDuration, Enum.EasingStyle.Quad, Enum.EasingDirection.Out)
	local jumpTween = game:GetService("TweenService"):Create(btn, jumpTweenInfo, {
		Size = UDim2.new(btn.Size.X.Scale * jumpScale, btn.Size.X.Offset,
			btn.Size.Y.Scale * jumpScale, btn.Size.Y.Offset),
		Position = UDim2.new(btn.Position.X.Scale - ((jumpScale - 1) / 2),
			btn.Position.X.Offset, btn.Position.Y.Scale - ((jumpScale - 1) / 2),
			btn.Position.Y.Offset)
			})

			-- Play the jump tween
			jumpTween:Play()
			Click:Play()

			-- Reset the button's size and position after the jump is complete
			jumpTween.Completed:Connect(function()
		btn.Size = UDim2.new(btn.Size.X.Scale / jumpScale, btn.Size.X.Offset,
			btn.Size.Y.Scale / jumpScale, btn.Size.Y.Offset)
		btn.Position = UDim2.new(btn.Position.X.Scale + ((jumpScale - 1) / 2),
			btn.Position.X.Offset, btn.Position.Y.Scale + ((jumpScale - 1) / 2),
			btn.Position.Y.Offset)
			end)
end)


Prompt: --[[ Public API ]]

Response:
--
function Thumbpad:Enable()
	ThumbpadFrame.Visible = true
end

function Thumbpad:Disable()
	ThumbpadFrame.Visible = false
	OnInputEnded()
end

function Thumbpad:Create(parentFrame)
	if ThumbpadFrame then
		ThumbpadFrame:Destroy()
		ThumbpadFrame = nil
		if OnTouchChangedCn then
			OnTouchChangedCn:disconnect()
			OnTouchChangedCn = nil
		end
		if OnTouchEndedCn then
			OnTouchEndedCn:disconnect()
			OnTouchEndedCn = nil
		end
	end

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

	ThumbpadFrame = Instance.new('Frame')
	ThumbpadFrame.Name = "ThumbpadFrame"
	ThumbpadFrame.Visible = false
	ThumbpadFrame.Active = true
	ThumbpadFrame.Size = UDim2.new(0, thumbpadSize + 20, 0, thumbpadSize + 20)
	ThumbpadFrame.Position = position
	ThumbpadFrame.BackgroundTransparency = 1

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

	local smArrowSize = isSmallScreen and UDim2.new(0, 32, 0, 32) or UDim2.new(0, 64, 0, 64)
	local lgArrowSize = UDim2.new(0, smArrowSize.X.Offset * 2, 0, smArrowSize.Y.Offset * 2)
	local imgRectSize = Vector2.new(110, 110)
	local smImgOffset = isSmallScreen and -4 or -9
	local lgImgOffset = isSmallScreen and -28 or -55

	local dArrow = createArrowLabel("DownArrow", outerImage, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset), smArrowSize, Vector2.new(8, 8), imgRectSize)
	local uArrow = createArrowLabel("UpArrow", outerImage, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset), smArrowSize, Vector2.new(8, 266), imgRectSize)
	local lArrow = createArrowLabel("LeftArrow", outerImage, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2), smArrowSize, Vector2.new(137, 137), imgRectSize)
	local rArrow = createArrowLabel("RightArrow", outerImage, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2), smArrowSize, Vector2.new(8, 137), imgRectSize)

	local function doTween(guiObject, endSize, endPosition)
		guiObject:TweenSizeAndPosition(endSize, endPosition, Enum.EasingDirection.InOut, Enum.EasingStyle.Linear, 0.15, true)
	end

	local padOrigin = nil
	local deadZone = 0.1
	local isRight, isLeft, isUp, isDown = false, false, false, false
	local vForward = Vector3.new(0, 0, -1)
	local vRight = Vector3.new(1, 0, 0)
	local function doMove(pos)
		MasterControl:AddToPlayerMovement(-currentMoveVector)

		local delta = Vector2.new(pos.x, pos.y) - padOrigin
		currentMoveVector = delta / (thumbpadSize/2)

		-- Scaled Radial Dead Zone
		local inputAxisMagnitude = currentMoveVector.magnitude
		if inputAxisMagnitude < deadZone then
			currentMoveVector = Vector3.new(0, 0, 0)
		else
			currentMoveVector = currentMoveVector.unit * ((inputAxisMagnitude - deadZone) / (1 - deadZone))
			-- catch possible NAN Vector
			if currentMoveVector.magnitude == 0 then
				currentMoveVector = Vector3.new(0, 0, 0)
			else
				currentMoveVector = Vector3.new(currentMoveVector.x, 0, currentMoveVector.y).unit
			end
		end

		MasterControl:AddToPlayerMovement(currentMoveVector)

		local forwardDot = currentMoveVector:Dot(vForward)
		local rightDot = currentMoveVector:Dot(vRight)
		if forwardDot > 0.5 then		-- UP
			if not isUp then
				isUp, isDown = true, false
				doTween(uArrow, lgArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset, 0, smImgOffset - smArrowSize.Y.Offset * 1.5))
				doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
			end
		elseif forwardDot < -0.5 then	-- DOWN
			if not isDown then
				isDown, isUp = true, false
				doTween(dArrow, lgArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset, 1, lgImgOffset + smArrowSize.Y.Offset/2))
				doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
			end
		else
			isUp, isDown = false, false
			doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
			doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
		end

		if rightDot > 0.5 then
			if not isRight then
				isRight, isLeft = true, false
				doTween(rArrow, lgArrowSize, UDim2.new(1, lgImgOffset + smArrowSize.X.Offset/2, 0.5, -smArrowSize.Y.Offset))
				doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			end
		elseif rightDot < -0.5 then
			if not isLeft then
				isLeft, isRight = true, false
				doTween(lArrow, lgArrowSize, UDim2.new(0, smImgOffset - smArrowSize.X.Offset * 1.5, 0.5, -smArrowSize.Y.Offset))
				doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			end
		else
			isRight, isLeft = false, false
			doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
			doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
		end
	end

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

		ThumbpadFrame.Position = UDim2.new(0, inputObject.Position.x - ThumbpadFrame.AbsoluteSize.x/2, 0, inputObject.Position.y - ThumbpadFrame.Size.Y.Offset/2)
		padOrigin = Vector2.new(ThumbpadFrame.AbsolutePosition.x + ThumbpadFrame.AbsoluteSize.x/2,
			ThumbpadFrame.AbsolutePosition.y + ThumbpadFrame.AbsoluteSize.y/2)
		doMove(inputObject.Position)
		TouchObject = inputObject
	end)

	OnTouchChangedCn = UserInputService.TouchMoved:connect(function(inputObject, isProcessed)
		if inputObject == TouchObject then
			doMove(TouchObject.Position)
		end
	end)

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

		ThumbpadFrame.Position = position
		TouchObject = nil
		isUp, isDown, isLeft, isRight = false, false, false, false
		doTween(dArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 1, lgImgOffset))
		doTween(uArrow, smArrowSize, UDim2.new(0.5, -smArrowSize.X.Offset/2, 0, smImgOffset))
		doTween(lArrow, smArrowSize, UDim2.new(0, smImgOffset, 0.5, -smArrowSize.Y.Offset/2))
		doTween(rArrow, smArrowSize, UDim2.new(1, lgImgOffset, 0.5, -smArrowSize.Y.Offset/2))
	end

	OnTouchEndedCn = UserInputService.TouchEnded:connect(function(inputObject)
		if inputObject == TouchObject then
			OnInputEnded()
		end
	end)

	ThumbpadFrame.Parent = parentFrame
end

return Thumbpad


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

Response:
local l__HDAdminMain__1 = _G.HDAdminMain;
local l__playerGui__2 = l__HDAdminMain__1.playerGui;
local v3 = require(l__HDAdminMain__1.replicatedStorage:WaitForChild("HDAdmin"):WaitForChild("Topbar+").IconController);
local v4 = v3:createIcon("HDAdmin", 4882428756, 0);
v4:setToggleMenu(l__HDAdminMain__1.gui.MainFrame);
v4:notify();
return v3;


Prompt: -- public static functions

Response:
function region3.new(cf, size)
	local self = {};
	self.CFrame = cf;
	self.Size = size;
	self.input = {vertices.block(cf, size * 0.5, {})};
	self.support = support.pointCloud;
	self.centroid = cf.p;
	return setmetatable(self, region3_mt);
end;

region3.block = region3.new;

function region3.wedge(cf, size)
	local self = {};
	self.CFrame = cf;
	self.Size = size;
	self.input = {vertices.wedge(cf, size * 0.5, {})};
	self.support = support.pointCloud;
	self.centroid = centroid(self.input[1]);
	return setmetatable(self, region3_mt);
end;

function region3.cornerWedge(cf, size)
	local self = {};
	self.CFrame = cf;
	self.Size = size;
	self.input = {vertices.cornerWedge(cf, size * 0.5, {})};
	self.support = support.pointCloud;
	self.centroid = centroid(self.input[1]);
	return setmetatable(self, region3_mt);
end;

function region3.cylinder(cf, size)
	local self = {};
	self.CFrame = cf;
	self.Size = size;
	self.input = {cf, size * 0.5};
	self.support = support.cylinder;
	self.centroid = cf.p;
	return setmetatable(self, region3_mt);
end;

function region3.ellipsoid(cf, size)
	local self = {};
	self.CFrame = cf;
	self.Size = size;
	self.input = {cf, size * 0.5};
	self.support = support.ellipsoid;
	self.centroid = cf.p;
	return setmetatable(self, region3_mt);
end;

function region3.pointCloud(cloud)
	local self = {};
	self.CFrame = CFrame.new(centroid(cloud));
	self.Size = v3();
	self.input = cloud;
	self.support = support.pointCloud;
	self.centroid = self.CFrame.p;
	return setmetatable(self, region3_mt);
end;

function region3.fromPart(part)
	return classify(part);
end;


Prompt: -- ROBLOX: use patched console from shared

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

local loggedTypeFailures = {}

local ReactComponentStackFrame = require(script.Parent.ReactComponentStackFrame)
local describeUnknownElementTypeFrameInDEV =
	ReactComponentStackFrame.describeUnknownElementTypeFrameInDEV

local ReactSharedInternals = require(script.Parent.ReactSharedInternals)

local describeError = require(script.Parent["ErrorHandling.roblox"]).describeError

local ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame


Prompt: --// F key, Horn

Response:
mouse.KeyDown:connect(function(key)
	if key=="h" then
		veh.ELS.Sirens.MAN.Transparency = 0
		veh.ELS.Siren.Man:Play()
		veh.ELS.Siren2.Man:Play()
		veh.ELS.Sirens.Horn.Transparency = 0
		veh.ELS.Siren.Wail.Volume = 0
		veh.ELS.Siren.Yelp.Volume = 0
		veh.ELS.Siren.Priority.Volume = 0
		veh.ELS.Siren2.Wail.Volume = 0
		veh.ELS.Siren2.Yelp.Volume = 0
		veh.ELS.Siren2.Priority.Volume = 0
	end
end)


Prompt: -- Menus

Response:
local menuContainer = Instance.new("Frame")
menuContainer.Name = "MenuContainer"
menuContainer.BackgroundTransparency = 1
menuContainer.BorderSizePixel = 0
menuContainer.AnchorPoint = Vector2.new(1, 0)
menuContainer.Size = UDim2.new(0, 500, 0, 50)
menuContainer.ZIndex = -2
menuContainer.ClipsDescendants = true
menuContainer.Visible = true
menuContainer.Parent = iconContainer
menuContainer.Active = false
menuContainer.Selectable = false

local menuFrame = Instance.new("ScrollingFrame")
menuFrame.Name = "MenuFrame"
menuFrame.BackgroundTransparency = 1
menuFrame.BorderSizePixel = 0
menuFrame.AnchorPoint = Vector2.new(0, 0)
menuFrame.Position = UDim2.new(0, 0, 0, 0)
menuFrame.Size = UDim2.new(1, 0, 1, 0)
menuFrame.ZIndex = -1 + 10
menuFrame.ClipsDescendants = false
menuFrame.Visible = true
menuFrame.TopImage = ""--menuFrame.MidImage
menuFrame.BottomImage = ""--menuFrame.MidImage
menuFrame.HorizontalScrollBarInset = Enum.ScrollBarInset.Always
menuFrame.CanvasSize = UDim2.new(0, 0, 0, 0)
menuFrame.Parent = menuContainer
menuFrame.Active = false
menuFrame.Selectable = false
menuFrame.ScrollingEnabled = false

local menuList = Instance.new("UIListLayout")
menuList.Name = "MenuList"
menuList.FillDirection = Enum.FillDirection.Horizontal
menuList.HorizontalAlignment = Enum.HorizontalAlignment.Right
menuList.SortOrder = Enum.SortOrder.LayoutOrder
menuList.Parent = menuFrame

local menuInvisBlocker = Instance.new("Frame")
menuInvisBlocker.Name = "MenuInvisBlocker"
menuInvisBlocker.BackgroundTransparency = 1
menuInvisBlocker.Size = UDim2.new(0, -2, 1, 0)
menuInvisBlocker.Visible = true
menuInvisBlocker.LayoutOrder = 999999999
menuInvisBlocker.Parent = menuFrame
menuInvisBlocker.Active = false