Okay i figured it out, there was a mistake in my code, one of the functions in the header and cpp files didnt have a “const” at the end
.h
void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>&OutLifetimeProps) const override;
.cpp
void UWeaponObject::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
not exactly sure how, but it seemed to fix everything, and now the variables are getting replicated propperly