I have created an EntityData that I want to save when the world closes and load that save when the world opens.
 
	private static final EntityDataAccessor<Float> ENGINE_POWER = SynchedEntityData.defineId(AircraftVehicle.class, EntityDataSerializers.FLOAT);
      
    @Override
    protected void defineSynchedData(SynchedEntityData.Builder builder) {
        super.defineSynchedData(builder);
        builder.define(ENGINE_POWER, 0f);
    }
    @Override
    protected void addAdditionalSaveData(CompoundTag compoundTag) {
        super.addAdditionalSaveData(compoundTag);
        compoundTag.putFloat("EnginePower", entityData.get(ENGINE_POWER));
    }
    @Override
    protected void readAdditionalSaveData(CompoundTag compoundTag) {
        super.readAdditionalSaveData(compoundTag);
        if (compoundTag.contains("EnginePower")) {
            entityData.set(ENGINE_POWER, compoundTag.getFloat("EnginePower"));
        }
    }
	The problem is that entityData.get(ENGINE_POWER) in addAdditionalSaveData method always return the default value