Alright, so I did already look at that tutorial (plus a few others) before I posted this but I decided to take another look at it just in case. As I understand it, packets are only necessary when data changes and not when data needs to be retrieved/accessed. All of my packets function properly. I used println's to verify that they are triggered correctly at all phases, yet it still doesn't work. I imagine my issue now is not marking a function with @SideOnly(Side.CLIENT) or the place were my data is stored for some reason is just not on the server. I've tried moving it to CommonProxy but that didn't have any effect. Could someone explain where variables should be (in specific classes?) so that they can be accessed by each client?