function CreateBullet(P)local F=L_37_.Position local t=(L_4_.Hit.p-F).unit local s=CFrame.Angles(math.rad(math.random(-P,P)),math.rad(math.random(-P,P)),math.rad(math.random(-P,P)))t=s*t local U=CFrame.new(F,F+t)local Y=Instance.new("\080\097\114\116",L_66_)game.Debris:AddItem(Y,10)Y.Shape=Enum.PartType.Ball Y.Size=Vector3.new(1,1,12)Y.Name="\066\117\108\108\101\116"Y.TopSurface="\083\109\111\111\116\104"Y.BottomSurface="\083\109\111\111\116\104"Y.BrickColor=BrickColor.new("\066\114\105\103\104\116 \103\114\101\101\110")Y.Material="\078\101\111\110"Y.CanCollide=false Y.CFrame=U local R=Instance.new("\083\111\117\110\100")R.SoundId="\114\098\120\097\115\115\101\116\105\100\058\047\047\051\052\049\053\049\057\055\052\051"R.Looped=true R:Play()R.Parent=Y R.Volume=.4 R.MaxDistance=30 local C=Instance.new("\083\112\101\099\105\097\108\077\101\115\104",Y)C.MeshType="\083\112\104\101\114\101"C.Scale=Vector3.new(.2,.2,.8)Y.Transparency=1 local e=Y:GetMass()local L=Instance.new("\066\111\100\121\070\111\114\099\101",Y)L.Force=L_21_.BulletPhysics Y.Velocity=t*L_21_.BulletSpeed local m=Instance.new("\065\116\116\097\099\104\109\101\110\116",Y)m.Position=Vector3.new(.1,0,0)local V=Instance.new("\065\116\116\097\099\104\109\101\110\116",Y)V.Position=Vector3.new(-0.1,0,0)local O=TracerCalculation()if L_21_.TracerEnabled==true and O then local P=Instance.new("\084\114\097\105\108",Y)P.Attachment0=m P.Attachment1=V P.Transparency=NumberSequence.new(L_21_.TracerTransparency)P.LightEmission=L_21_.TracerLightEmission P.TextureLength=L_21_.TracerTextureLength P.Lifetime=L_21_.TracerLifetime P.FaceCamera=L_21_.TracerFaceCamera P.Color=ColorSequence.new(L_21_.TracerColor.Color)end if L_1_:FindFirstChild("\083\104\101\108\108")then CreateShell()end delay(.2,function()Y.Transparency=0 end)return Y end function CheckForHumanoid(P)local F local t if P.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")or P.Parent.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then F=true if P.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then t=P.Parent.Humanoid elseif P.Parent.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then t=P.Parent.Parent.Humanoid end else F=false end return F,t end function CastRay(P)local F,t,s local U=L_37_.Position local Y=P.Position local R=0 while true do L_70_:wait()Y=P.Position R=R+(Y-U).magnitude F,t,s=workspace:FindPartOnRayWithIgnoreList(Ray.new(U,Y-U),IgnoreList)local C=(Vector3.new(0,1,0)):Cross(s)local e=math.asin(C.magnitude)if R>10000 then break end if F and(F and F.Transparency>=1 or F.CanCollide==false)then table.insert(IgnoreList,F)end if F then C=(Vector3.new(0,1,0)):Cross(s)e=math.asin(C.magnitude)local U=CheckForHumanoid(F)if U==false then P:Destroy()L_77_:FireServer(t,C,e,s,"\080\097\114\116")elseif U==true then P:Destroy()L_77_:FireServer(t,C,e,s,"\072\117\109\097\110")end end if F and(F.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")or F.Parent.Parent:FindFirstChild("\072\117\109\097\110\111\105\100"))then local P,t=CheckForHumanoid(F)if P then if L_21_.AntiTK then if game.Players:FindFirstChild(t.Parent.Name)and(game.Players:FindFirstChild(t.Parent.Name)).TeamColor~=L_2_.TeamColor then if F.Name=="\072\101\097\100"then L_74_:FireServer(t,L_21_.HeadDamage)elseif F.Name~="\072\101\097\100"and not(F.Parent:IsA("\065\099\099\101\115\115\111\114\121")or F.Parent:IsA("\072\097\116"))then L_74_:FireServer(t,L_21_.Damage)elseif F.Parent:IsA("\065\099\099\101\115\115\111\114\121")or F.Parent:IsA("\072\097\116")then L_74_:FireServer(t,L_21_.HeadDamage)end end else if F.Name=="\072\101\097\100"then L_74_:FireServer(t,L_21_.HeadDamage)elseif F.Name~="\072\101\097\100"and not(F.Parent:IsA("\065\099\099\101\115\115\111\114\121")or F.Parent:IsA("\072\097\116"))then L_74_:FireServer(t,L_21_.Damage)elseif F.Parent:IsA("\065\099\099\101\115\115\111\114\121")or F.Parent:IsA("\072\097\116")then L_74_:FireServer(t,L_21_.HeadDamage)end end end end if F and F.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then local P if F and F.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")or F.Parent.Parent:FindFirstChild("\072\117\109\097\110\111\105\100")then if F.Parent:IsA("\065\099\099\101\115\115\111\114\121")then P=F.Parent.Parent.Humanoid elseif not F.Parent:IsA("\065\099\099\101\115\115\111\114\121")then P=F.Parent.Humanoid end L_75_:FireServer(P)end return F,t end U=Y 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 P,F=spawn(function()CastRay(L_67_)end)for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.Enabled=true end end delay(.033333333333333,function()for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.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 t=JamCalculation()if t 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 P=1,L_21_.ShotNum,1 do L_67_=CreateBullet(2)local F,t=spawn(function()CastRay(L_67_)end)end for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.Enabled=true end end delay(.033333333333333,function()for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.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 P=JamCalculation()if P 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 P,F=spawn(function()CastRay(L_67_)end)for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.Enabled=true end end delay(.033333333333333,function()for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.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 t=JamCalculation()if t 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 P,F=spawn(function()CastRay(L_67_)end)for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.Enabled=true end end delay(.033333333333333,function()for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.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 t=JamCalculation()if t 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 P=1,L_21_.BurstNum,1 do if L_68_>0 and L_45_ then L_46_=false Recoiling=true L_73_:FireServer()L_67_=CreateBullet(0)local P,F=spawn(function()CastRay(L_67_)end)for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.Enabled=true end end delay(.033333333333333,function()for P,F in pairs(L_37_:GetChildren())do if F.Name:sub(1,7)=="\070\108\097\115\104\070\088"then F.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 t=JamCalculation()if t 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

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
