I was away for a few days, so sorry for the late response, I think I finally understood now
So, before, my instance was created like this: private IPSize instance = SIZE_CAPABILITY.getDefaultInstance();
This is how I've seen every capability instance being created in the examples that I found
I suppose that wasn't good, since I can't pass the player this way, so instead i'm doing this: private IPSize instance = new PSize(player);
Where player is set trough the constructor of the Provider
This should be good (?), but again I'm not 100% sure this is correct, and what's you're expecting me to do
The constructor of PSize is simply this
and player is used by sendUpdate() that I detailed in earlier posts
However, I get a NullPointerException when deserializeNBT() is called, so I suppose that somehow player in the Provider isn't set correctly?...