Blstats - why is Alignment and Condition not included?

Update: CONDITION is included in the latest version of nle. It is not part of nle v0.5 which I was using. I am now using v0.7.

Why is the are alignment and condition not include in the bottom line status (blstats) observations?

The condition is especially important during gameplay, and can take one of the following values: STONE, SLIME, STRNGL, FOODPOIS, TERMILL, BLIND, DEAF, STUN, CCONF, HALLU, LEV, FLY, RIDE.

E.g. FOODPOIS is a death sentence that a noobie learns to avoid quickly by not eating rotten corpses (which is any corpse that is older than 60 turns).


From the Nethack source code include/botl.cc:

enum statusfields {
    BL_CHARACTERISTICS = -3, /* alias for BL_STR..BL_CH */
    BL_RESET = -2,           /* Force everything to redisplay */
    BL_FLUSH = -1,           /* Finished cycling through bot fields */
    BL_TITLE = 0,
    BL_STR, BL_DX, BL_CO, BL_IN, BL_WI, BL_CH,  /* 1..6 */
    BL_ALIGN, BL_SCORE, BL_CAP, BL_GOLD, BL_ENE, BL_ENEMAX, /* 7..12 */
    BL_XP, BL_AC, BL_HD, BL_TIME, BL_HUNGER, BL_HP, /* 13..18 */
    BL_HPMAX, BL_LEVELDESC, BL_EXP, BL_CONDITION, /* 19..22 */
    MAXBLSTATS /* [23] */
};

From the NetHackTutorial.ipynb:

bl_meaning = [
    'hero col', 'hero_row', 'strength_pct', 'strength', 'dexterity', 'constitution', 
    'intelligence', 'wisdom', 'charisma', 'score', 'hitpoints', 'max_hitpoints', 'depth', 
    'gold', 'energy', 'max_energy', 'armor_class', 'monster_level', 'experience_level', 
    'experience_points', 'time', 'hunger_state', 'carrying_capacity', 'dungeon_number', 'level_number'
]

This corresponds to the definition of blstats in win/winrl.cc. BL_ALIGN and BL_CONDITION seem to have no corresponding values in blstats.

1 Like

Hey,

Thanks for your question – we added the condition field to blstats in https://github.com/facebookresearch/nle/pull/219 (part of NLE v0.7.3).

As for why alignment isn’t part of blstats, that’s a very good question. It probably should be, although we will likely not add it before the end of the competition in order to not break NLE too much. Could you file an issue on the NLE GitHub for this?

(Filed an issue at https://github.com/facebookresearch/nle/issues/238)

Hey thanks for the response. I see you have filed an issue.