--// end of config, actual code below

local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")
local Player : Player = game.Players.LocalPlayer
local Camera : Camera = workspace.CurrentCamera
repeat RunService.Heartbeat:Wait() until script.Parent:IsA("Model") -- yield until Character
local Character : Model = Player.Character
local HumanoidRootPart : Part = Character:WaitForChild("HumanoidRootPart")
local Humanoid : Humanoid = Character:WaitForChild("Humanoid")
local AimOffset = script:WaitForChild("AimOffset") -- a property for other scripts to use to influence the Viewmodel offset (such as a gun aim system)
local Torso : Part
local RootHipJoint : Motor6D
local RootOldC0 : CFrame
local LeftShoulder : Motor6D
local RightShoulder : Motor6D
local LeftArm : Part
local RightArm : Part
local ArmPartsTable = {}

local armTransparency = baseArmTransparency
local isFirstPerson = false
local Sway = Vector3.new(0,0,0)
local WalkSway = CFrame.new(0,0,0)
local StrafeSway = CFrame.Angles(0,0,0)
local JumpSway = CFrame.new(0,0,0)
local JumpSwayGoal = Instance.new("CFrameValue")
