I am highly sure this is supposed to work unless its an engine bug, this is located in a Local Script inside a Tool placed in the Starter Pack All help appreciated:
local ReplicatedStorage = game.ReplicatedStorage
local RunService = game:GetService("RunService")
local GunTool = script.Parent
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local humanoidRootPart = character:WaitForChild("HumanoidRootPart")
local mouse = player:GetMouse()
local ShootSound = GunTool.Shoot
local NoAmmoSound = GunTool.NoAmmo
local PlayerGui = player.PlayerGui
local Aim = PlayerGui["Main Screen"].Aim
local reloading = false