First off, lag/latency is something that is going to exist and is not physically possible to get rid of. Designing for multiplayer and net code are about how to manage and hide it from each peer and host.
Local input prediction is one part of it on the peer side. An input from the peer will take time to be sent to the host and more time for the host to update the peer with what happened as a result of the input. The result is when a peer does something, nothing visually gets updated locally until that communication completes. Local input prediction hides this lag by allowing the peer's objects to update and move immediately upon inputs, and gradually correcting the position after receiving what actually happened on the host from the host.
Reducing client delay isn't always a good thing - it's a lag management system on the host side. The client delay allows for a buffer time for the host to receive inputs from peer, because it takes time for peer inputs to be sent to the host, and also more importantly because latency is not a stable, set amount - it changes all the time. The client delay is how long the host has to collect actual received inputs from peers before updating the game. If the client delay is exceeded by lag, that means the host has to guess (interpolate, another lag management feature) at what the peer actually sent. When the guess and the actual input are different, you'll have a desync and correction = visible rubber banding and lag. It's often preferrable to wait for the actual input when possible to prevent desync. TLDR: what this means in the end is that you want your client delay to be at least longer than the time it takes for the host to receive each input from the peers, or even better the last two inputs from the peers so there's an extra buffer/backup time, because as I mentioned before latency changes constantly. (For more detail regarding timing, note that ping ms is actually the round trip time, so only half of that one way, and also don't forget to add in the maximum time between client input updates, which don't occur every tick.
Regarding your "offline" disc accessories, assuming you mean those are not synced and displayed locally for each peer and host (which is the correct choice if they have no direct involvement in gameplay logic), it's a simple matter of positioning them when and where you want them on all peers and the host. Because they don't need to be communicated across the network, it is impossible for them to "lag". If you have them set to the disc position locally every tick, it will be at the discs visible position every tick.