Thanks for replying so quickly!
For the reflection would that be done using the forge reflection helper ? I had a suspicion that I might need to use that but I couldn't quite understand that was needed for the fields ? (ReflectionHelper.getPrivateValue(Class<? super E> classToAccess, @Nullable E instance, int fieldIndex))