I feel like I'm cheating a lot with some of my multiplayer code but it really helps, e.g. if you want a stamina attribute which the server has authority over the "boundary" effects of (e.g. running out) but you want the local version to change smoothly and without lag (most of it is driven by player input), the best way I found was turn off replication except at authoritative boundaries & let client & server run them in parallel in between, allowing a little drift for the sake of client visuals