local p=false local M=0 local t=false local D=false local R=false local f=false local m=false local d=0 local F=0 local I=1 local i=0 local C=false local o=false local k=false local e=false local N=false local O=false local K=0 local A=VEC2(COS(RAD(90)-S.aimSettings.headTilt)*.5,1+SIN(RAD(90)-S.aimSettings.headTilt)*.5)local J=false local l=false local V=true local s=false local Q=false local q=false local b=false local Z=true local v=nil local g=false local G=0 local P={0,0}local H={Pos=V3(),Rot=V3();Code=nil}local L=0 local j=1 local w=true local W=0 local r={}local h=true local X=0 local c={Pos=0;Rot=0;Code=0}local u=true local a=false local B=false local E=false local Y=false local n=S.sprintTime*60 local U=S.scopeSettings.steadyTime*60 local y=false local x=false local z=false local T=nil local p3=nil local M3="\117\110\065\105\109\101\100"local t3="\083\116\097\110\100"local D3="\073\100\108\105\110\103"local R3=S.spreadSettings.unAimed.Stand.Idling local f3=0 local m3=false local d3=S.sensitivitySettings.Default local F3=S.sensitivitySettings.Aim local I3=0 local S3=0 local i3=0 local C3=1 local o3=1 local k3=VEC2()local e3=0 local N3=0 local O3=0 local K3=0 local A3=0 local J3=0 local l3=0 local s3=0 local Q3=1 local q3=1 local b3=7 local Z3=S.momentumSettings.Amplitude.unAimed local v3=1 local g3=false local G3=0 local P3={guiScope={Rot=V3()};Reload={Rot=V3(),Code=nil};Recoil={Rot=V3(),Code=nil}}local H3={Pos=V3(),Rot=V3(),Ang=0;Code=0}local L3=0 local j3={}local w3={}local W3={}


local Selected = false

local playerMass = 0

local Forward = false
local Backward = false

local Idling = false
local Walking = false
local Running = false

local crawlCamRot = 0
local crawlAlpha = 0
local idleAlpha = 1
local walkAlpha = 0
local isCrawling = false
local isIdling = false
local isWalking = false
local isRunning = false

local Aimed = false
local Aiming = false
local aimAlpha = 0
local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)

local Reloading = false
local breakReload = false
local magVisible = true
local newMag = false

local Knifing = false

local MB1Down = false
local Firing = false
local canFire = true
local fireFunction = nil
local firstShot = false
local shotCount = 0
local lastSideRecoil = {0, 0}
local recoilAnim = {
	Pos = V3();
	Rot = V3();
	Code = nil;
}

local numModes = 0
local rawFireMode = 1
local canSelectFire = true
local guiAngOffset = 0
local Modes = {}

local onGround = true
local startFallHeight = 0
local jumpAnim = {
	Pos = 0;
	Rot = 0;
	Code = 0;
}

local runReady = true
local runKeyPressed = false
local chargingStamina = false

local AimingIn = false
local AimingOut = false

local Stamina = S.sprintTime * 60
local currentSteadyTime = S.scopeSettings.steadyTime * 60

local camSteady = false
local takingBreath = false
local steadyKeyPressed = false

local Grip = nil
local aimedGripCF = nil

local spreadZoom = "unAimed"
local spreadStance = "Stand"
local spreadMotion = "Idling"
local baseSpread = S.spreadSettings.unAimed.Stand.Idling
local currentSpread = 0
local loweringSpread = false

local mouseSensitivity = S.sensitivitySettings.Default
local aimSensitivity = S.sensitivitySettings.Aim
local lastSensUpdate = 0

local ammoInClip = 0

local Stance = 0
local stanceSway = 1
local camSway = 1

local camAng = VEC2()

local armTilt = 0
local moveAng = 0
local animCode = 0

local desiredXOffset = 0
local desiredYOffset = 0
local currentXOffset = 0
local currentYOffset = 0
local aimHeadOffset = 0
local recoilAnimMultiplier = 1
local jumpAnimMultiplier = 1
local translationDivisor = 7
local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
local armTiltMultiplier = 1

local equipAnimPlaying = false

local crossOffset = 0

local camOffsets = {
	guiScope = {
		Rot = V3();
	};
	Reload = {
		Rot = V3();
		Code = nil;
	};
	Recoil = {
		Rot = V3();
		Code = nil;
	};
}

local Anim = {
	Pos = V3();
	Rot = V3();
	Ang = 0;
	Code = 0;
}

local lastBeat = 0

local gunParts = {}

local Connections = {}

local Keys = {}
