diff --git a/LabApi/Features/Wrappers/Items/Firearm/FirearmItem.cs b/LabApi/Features/Wrappers/Items/Firearm/FirearmItem.cs
index a1f3c798..ed379556 100644
--- a/LabApi/Features/Wrappers/Items/Firearm/FirearmItem.cs
+++ b/LabApi/Features/Wrappers/Items/Firearm/FirearmItem.cs
@@ -127,15 +127,30 @@ internal FirearmItem(Firearm firearm)
///
public float BaseLength => Base.BaseLength;
+ ///
+ /// Gets whether the player is currently reloading this firearm.
+ ///
+ public bool IsReloading => ReloaderModule.IsReloading;
+
+ ///
+ /// Gets whether the player is currently unloading this firearm.
+ ///
+ public bool IsUnloading => ReloaderModule.IsUnloading;
+
+ ///
+ /// Gets whether the player is either reloading or unloading this firearm.
+ ///
+ public bool IsReloadingOrUnloading => ReloaderModule.IsReloadingOrUnloading;
+
///
/// Gets whether the player can reload this firearm.
///
- public bool CanReload => IReloadUnloadValidatorModule.ValidateReload(Base);
+ public bool CanReload => IReloadUnloadValidatorModule.ValidateReload(Base) && !IsReloadingOrUnloading;
///
/// Gets whether the player can unload this firearm.
///
- public bool CanUnload => IReloadUnloadValidatorModule.ValidateUnload(Base);
+ public bool CanUnload => IReloadUnloadValidatorModule.ValidateUnload(Base) && !IsReloadingOrUnloading;
///
/// Gets the firearm's ammo type.