User talk:Ion frigate

From NetHackWiki
Jump to navigation Jump to search



Hi! Welcome, and thanks for contributing to NetHackWiki!

  • The How to help and Style guide pages are excellent starting points.
  • Recent changes is a great first stop, because you can see what other people are editing right this minute, and where you can help.
  • Questions? Need help? You can ask on my talk page, at the Community Portal or on the talk page associated with each article! Just remember to sign those posts with four tildes: ~~~~. That will expand to create a signature.

I'm really happy to have you here, and look forward to working with you! -- Paxed (Talk) 13:58, December 22, 2009

Observations about Crawl: The interface is much, much better than nethack's. [...] Pressing ^p brings up a full-screen display of your latest messages, instead of one by one.
Options msg_window=reversed in nethack - Cheers 11:19, April 9, 2010 (UTC)

Thanks for fleshing out the Tools table

You were very prompt. Thefifthsetpin 01:51, September 26, 2010 (UTC)

You're welcome! The table format makes it much easier to give that information, so thanks for doing that. -Ion frigate 22:08, September 26, 2010 (UTC)


Hi, would you like to become an admin? Discussion here: Forum:New_admins. --Tjr 21:34, 3 October 2011 (UTC)

I'd be willing to do that; this wiki is pretty quiet, so I don't imagine it'd be a huge time-suck or anything like that. -Ion frigate 14:26, 4 October 2011 (UTC)


So my account may very well have been hacked. The password has been changed, and apparently the email has been cleared. I'd suggest removing the admin bit in the meantime. Ask me anything to confirm that this is me. - 06:27, 30 March 2012 (UTC)

EMail me (paxed at alt) from the email you used for your NAO username and I'll manually reset your password. --paxed 06:51, 30 March 2012 (UTC)
I have two separate email addresses (one is very obviously my screenname); I can't honestly remember which one I used, so I'll email you from both.
Done, I think.

Acid Mage role

...still exists in THEM, and I had literally just tagged it for a retool before you went and deleted it. The talk page I linked you to outright discusses as much, saying that the SLEX content should be removed while leaving everything else. --Umbire the Phantom (talk) 22:50, 4 October 2022 (UTC)

Yes, I saw that - I just didn't know that one is in THEM (haven't played it, and it wasn't mentioned in the article itself). I'm going to let you go through and tag the articles in that category before I start deleting them (I undeleted the Acid Mage pages). Thanks for your help here! Ion frigate (talk) 22:52, 4 October 2022 (UTC)
Sure - just double-check the repo if you're not sure something still exists within THEM that was in SLEX. You want the "develop" branch to be absolutely clear - I should have everything properly tagged in one pass, but that's there in case I miss anything. --Umbire the Phantom (talk) 22:54, 4 October 2022 (UTC)
As for Amy's userpages... I don't know actually. I'm inclined to leave them, but probably worth asking other admins/users about - can't say for sure. --Umbire the Phantom (talk) 23:29, 4 October 2022 (UTC)
Yeah, my view is that those are certainly less urgent, since they shouldn't be indexed by Google and casual readers of the wiki wouldn't find them. Ion frigate (talk) 23:37, 4 October 2022 (UTC)
Turns out they're only categorized in the first place because they were direct-linked rather than given a leading colon to pothole them properly - solves that problem, and I'm done with de-SLEXing the relevant pages in those categories - do what you please with the rest. --Umbire the Phantom (talk) 00:33, 5 October 2022 (UTC)

Deferred SLEX features

What do you (and others but I'm leading with you first) say to listing the really sparse stuff that's deferred/commented out in SlashTHEM on its own article? --Umbire the Phantom (talk) 03:31, 5 October 2022 (UTC)

Yeah I think that's a good idea, something like Deferred feature (SlashTHEM). I'm going to finish what I'm doing for now (there's only five or so articles left), but feel free to combine those articles into one, and redirect the stubs there. Ion frigate (talk) 03:33, 5 October 2022 (UTC)

Talk page deletion

Not that I think it's pressing we go over the talk pages of articles we agreed to remove and undo it all immediately, but in the future would it be fine to leave a deleted article's talk page up if there's discussion on it related to why it was deleted? --Umbire the Phantom (talk) 12:35, 6 October 2022 (UTC)

I'm not averse to preserving deletion discussions, but I personally don't want to leave talk pages for (now) non-existent articles. The standard practice on Wikipedia is to have a deletion discussion in project space (Articles for Deletion), and link to that discussion in the deletion summary. While I don't think we need to implement a formal AfD system like Wikipedia has, perhaps we could make a project page to archive deletion discussions to? That way, anyone looking to create the page will see a link showing why it was deleted.
If there are concerns about preserving talk page history, we could instead move the talk pages to somewhere in project space - something like moving it to NetHackWiki:Deleted_article_discussions/Item_(SLASH'EM Extended). I just don't want to leave orphaned talk pages in article talk space - though if the general consensus is to do so, I'll go along with it. Ion frigate (talk) 18:35, 6 October 2022 (UTC)
I don't see why talk pages need to be deleted. Wikipedia is orders of magnitude larger than NetHackWiki is and ever will be, so it needs orders of magnitude more bureaucracy. On our relatively small wiki, anybody interested in goings-on can usually keep up with Special:RecentChanges by just checking it once per day (or even once per week, when there's not a massive project like deslexing going on), so we don't really need a central place like AfD for people to find deletion discussions. The deletion process is basically to tag stuff with Template:Delete, and if anybody contests it, they can remove the tag and give a reason in the edit summary, or discuss it on the most natural place to do so – the talk page, which is also a natural place for someone to look for a deletion discussion after the page is deleted (if there is not a link to the discussion in the deletion reason, which there is in most of the recent slex-related deletions). We could have a category to keep track of talk pages containing deletion discussions.
We could have admins do something like moving the deletion discussion to some other place and linking it in the deletion reason if they really don't like orphaned talk pages, but I think that is just unnecessary work for negligible (if any) benefit. However, if the admins want to do it that way, they're the ones who have to do it, and I don't oppose it. Cathartes (talk) 01:08, 7 October 2022 (UTC)
Alright, it seems that's the general consensus here. I'm undeleting the first talk page (Talk:Kobolt) I deleted, since that was where I asked what was happening with the SLEX articles (I hadn't known about the whole fracas before that). Most the other articles I deleted didn't have talk pages, and of those that did I'm pretty sure most or all weren't deletion discussions, but let me know if there any others you think should be undeleted. In the future, I'll leave talk pages up if there are deletion discussions on them. Ion frigate (talk) 05:35, 7 October 2022 (UTC)

Hits as +x/need +x to hit

Since you know SLASH'EM more than I do and tend to be more active on the wiki, mind looking over those articles and the related pages I touched up? --Umbire the Phantom (talk) 16:34, 29 July 2023 (UTC)

No problem. Found some more peculiarities in wizard-mode testing, actually. -Ion frigate (talk) 00:28, 30 July 2023 (UTC)

Magic portal placement

> (i feel like "only one portal per level" is some arcane artifact of nethack's dungeon generation code, but i can't find it)

It's not the portal placement that's the problem. You could have multiple portals on the same level even in vanilla.

The problem is that the code in vanilla doesn't account for multiple portals when you are transported to such a level. The code goes over the list of traps, trying to find a magic portal. You would come out of whatever portal is first in that list, regardless from where you're coming.

The code is here:

For making the VotD the portal hub, I had to fix this in UnNetHack. It wasn't that difficult but it was so not necessary to add this to vanilla. Bhaak (talk) 08:35, 27 October 2023 (UTC)

Oh cool, something to cite when I update the article! --Umbire the Phantom (talk) 08:39, 27 October 2023 (UTC)
Ah, thanks to you both! Not where I thought the problem was, but more or less the type of thing I thought would cause it, i.e. that something would break if you had more than one portal per level. -Ion frigate (talk) 23:54, 29 October 2023 (UTC)

Zombie Mines

Regarding SLASH'EM code, I just peeked at it again - does that substitution only happen for player dwarves and gnomes? --Umbire the Phantom (talk) 01:39, 8 November 2023 (UTC)

Yeah, that bit of code is confusing, but Race_if is referring to the player. Because of the way NetHack uses actual monsters to "build" the player, the properties it's checking against (PM_DWARF, PM_GNOME) are in fact the same as some of the substitutions it's making. Race_if is an alias to "urace.malenum == (X)" in you.h, and the slightly more usefully named "urace.malenum" is (I think) defined in u_init.c as part of the struct (equivalent to a class in Java, it's an arbitrary data store; priests, pets, and shopkeepers also have structs) that accompanies the player.
NetHack's code is confusing, to say the least, but this very much squares with my own experience - lawful and neutral non dwarf/gnomes find plenty of peaceful (living) Mines inhabitants -Ion frigate (talk) 06:17, 8 November 2023 (UTC)

And the substitutions that replace them with undead in SLASH'EM only apply to those player races, yes? --Umbire the Phantom (talk) 06:48, 8 November 2023 (UTC)

Yeah, only to player gnomes and dwarves. It doesn't even check if the monsters being substituted would have been peaceful - just that the player is a gnome or a dwarf, and they're in the Gnomish Mines. -Ion frigate (talk) 07:11, 8 November 2023 (UTC)
All I needed, thank you. I imagine they would be de facto peaceful to all available dwarf/gnome roles. --Umbire the Phantom (talk) 07:28, 8 November 2023 (UTC)
No problem; and yeah, they would be, but if someone decided to add something like the Convict role to SLASH'EM, gnomish and dwarvish ones would still see a zombified mines, even though the living one would be hostile as well. Hard to say whether that would be intended behavior.
And I see you found my longer write-up at Gnomish Mines - feel free to edit it for style/brevity. -Ion frigate (talk) 07:41, 8 November 2023 (UTC)

SLASH'EM kobolds

Split off the page proper into each of the monster pages and made a redirect of it - I feel like it isn't needed anymore but I'm leaving that up to your call. Also wondering if you can't supply a bit of basic strategy stuff to the new monster pages. --Umbire the Phantom (talk) 23:52, 11 November 2023 (UTC)

Ah thanks - yeah, I'll put up some basic strategy sections. I think you're probably right that we don't need the base page anymore, though of course we'll want to check "What links here" for all such pages. -Ion frigate (talk) 07:04, 12 November 2023 (UTC)
Which is... what I normally do - there's only a reference on a talk page and a user page. --Umbire the Phantom (talk) 07:15, 12 November 2023 (UTC)

Zouthern animals

Just split off the articles for a proper monster class page - poking you to see what you can offer for each article far as SLASH'EM is concerned. I'll pass over each article individually after some well-needed rest. --Umbire the Phantom (talk) 18:00, 16 November 2023 (UTC)

Sure, I'll take a look through them. -Ion frigate (talk) 21:40, 16 November 2023 (UTC)

Elven arrows

Does the multishot bonus for SLASH'EM elven arrows only apply when firing them from a bow? --Umbire the Phantom (talk) 17:22, 24 November 2023 (UTC)

Yeah, it only applies to firing them from a bow (but works for any bow, not just elven ones). The relevant line in dothrow.c is 161 - it checks if you have matching ammo and launcher (or are using darts, daggers, or shuriken) before applying any multishot bonuses, including that 1 in 3 chance for elven arrows. -Ion frigate (talk) 18:10, 24 November 2023 (UTC)
Noted. Thanks. --Umbire the Phantom (talk) 18:21, 24 November 2023 (UTC)


How frequently does lava occur above Gehennom in Slash'EM, if at all? This is tangentially related to the troll mummy article. --Umbire the Phantom (talk) 11:01, 12 December 2023 (UTC)

I'm 100% sure it generates on a couple Sokoban levels, and about 99% sure you can (rarely) get a maze level with lava walls between Medusa and the Castle. There's also some on the Lawful Quest, and the Fire Mage quest. As far as I know it never randomly appears on ordinary room-and-corridor levels. -Ion frigate (talk) 13:44, 12 December 2023 (UTC)
Right, then I was correct to hedge my bets. Thanks for the response! --Umbire the Phantom (talk) 14:07, 12 December 2023 (UTC)


Cited you in the formal issue I brought up regarding human monsters and the quirk regarding murder penalties that you found ages ago (apologies for not believing it at first, by the by). --Umbire the Phantom (talk) 03:01, 17 December 2023 (UTC)

Ah thanks! And yeah, it is definitely a weird quirk, I can understand not believing it initially. FWIW, I actually *did* discover it in a standard game. It was in Grund's Stronghold; looking at the .des file, it has a guaranteed human corpse; either I zapped a wand of undead turning at it, or it revived randomly (this is something that seems to happen on SLASH'EM special levels, pre-generated corpses randomly reviving; I've also seen it in the VotD and the Lawful Quest - maybe it's a graveyard thing?). In any case, I killed said human and got called a murderer, and after wiztesting and looking at the murder article, I realized what was happening.
The fix would seem to be simple: change the "non-positive alignment" to "negative alignment", so you'd never get murder penalties for killing something that gives 0 alignment. But that itself introduces another corner case: the alignment gain from killing a peaceful, cross-aligned "sometimes peaceful" monster (possible on special levels) is "same as hostile" - meaning that killing a peaceful human also gives 0 alignment to lawfuls (just wiztested this - you get -1 for angering the human, but nothing for killing it), and under such a change would not be considered murder.
The real fix would be to completely rethink murder. Make a monster flag - M2_MURDERABLE or something - and make it so that killing any initially peaceful monster with that flag is murder. That would also get around the weirdly human-centric nature of murder, a minor plus in my view. -Ion frigate (talk) 08:31, 17 December 2023 (UTC)

Black trolls

Does G_HELL prevent black trolls from generating on the Barbarian quest in SLASH'EM? I'm not sure where I'd check for that ordinarily. --Umbire the Phantom (talk) 12:03, 31 December 2023 (UTC)

The answer is that it does not, but black trolls do seem to be very unlikely to generate there normally. The relevant code is in makemon.c, the function pm_mkclass. It does not appear to have any dependence on G_HELL, which is checked for in the function uncommon (in the same file); neither G_HELL nor uncommon is found in pm_mkclass.
However, there is a level difficulty check in there - that C code is opaque, but comments seem to indicate that it's probabilistic, with harder monsters being a lot less likely. More concretely, in wizard mode I was able to get a black troll to generate by barricading myself in with a boulder and a ring of slow digestion, and sitting and waiting for 15000+ turns. Eventually one turned up. You can speed this process up somewhat by pushing up the level difficulty by grabbing the Amulet of Yendor from the Sanctum, but even then it still took several thousand turns. -Ion frigate (talk) 02:10, 1 January 2024 (UTC)
Make that 62000 turns without juicing the level difficulty with the Amulet - first one was actually a rock troll that hit a polytrap. So yes, pretty unlikely. -Ion frigate (talk) 02:17, 1 January 2024 (UTC)
Noted. Thank you - also, poison instadeath for characters still exists in SLASH'EM, right? --Umbire the Phantom (talk) 11:55, 1 January 2024 (UTC)
Oh, most definitely (lost enough characters to it) -Ion frigate (talk) 21:00, 1 January 2024 (UTC)
Thought so. Yeoman article briefly claimed otherwise for god knows however long, just fixed it. --Umbire the Phantom (talk) 22:10, 1 January 2024 (UTC)
Christ, one last thing and then hopefully I'm done - I meant to ask if throne looting can generate black trolls as well, or if G_HELL actually comes up there. --Umbire the Phantom (talk) 23:27, 1 January 2024 (UTC)
Looks like it does generate them, ultimately for the same reason as the Barbarian quest: the codepath here is nice and circuitous, but pickup.c calls the function courtmon when generating a monster from throne looting, which itself is found (of all places) in mkroom.c; courtmon is just a weighted choice between a bunch of mkclass calls for each monster type that can appear in a throne room - including trolls - and mkclass just calls pm_mkclass in makemon.c. So the same argument applies: G_HELL and the uncommon function never come up anywhere along that bit of spaghetti code, so black trolls should generate in throne rooms and from confused throne looting.
And anecdotally, I'm like 99% certain I've seen them generate in throne rooms. Why? Because until you told me, I wasn't even aware black trolls were a Gehennom-only monster, and that seems a lot more likely if they do in fact appear in the many throne rooms that will generate on a SLASH'EM run (SLASH'EM's willingness to generate >1 special room per level means you see a lot of throne rooms). -Ion frigate (talk) 07:29, 2 January 2024 (UTC)
All duly noted. I take it you also would've spotted if G_HELL and uncommon came up anywhere during normal throne room population as well - pending confirmation that they don't, I'll uncomment that bit of text that's prompted this line of questioning. --Umbire the Phantom (talk) 07:36, 2 January 2024 (UTC)
Yep - just wizmode confirmed that they do generate in throne rooms, and yeah, G_HELL/uncommon are nowhere to be found in that codepath either. -Ion frigate (talk) 08:32, 2 January 2024 (UTC)
Good on ya, now I can finally resolve all that - thanks again!! --Umbire the Phantom (talk) 08:36, 2 January 2024 (UTC)
No problem - thanks for updating all those monster class articles! -Ion frigate (talk) 10:54, 2 January 2024 (UTC)


I think there's some other articles that've been sitting in the deletion category and are long overdue to be removed - I'm referring specifically to "lazy spelling" stuff like the centpede redirect you just tossed that we definitely shouldn't need, and various old leftovers from pagemoves (including a few rooted to my userpage). The plural stuff can work for people searching, and I decided it isn't that much trouble to leave them, though I haven't removed the deletion templates from all of those yet (still working on that). --Umbire the Phantom (talk) 20:38, 4 January 2024 (UTC)

Toilet rats according to line 680 of fountain.c, quaffing from a toilet as a d has a chance to generate sewer rats. More than that, I'm pondering a couple of clarifications:

  1. Does attempting to quaff as any other monster run through all those same cases?
  2. If falling through into those cases, is it 2/9 for the baby crocodile case and 4/9 for the default case?

No rush, answer whenever you have time. Umbire the Phantom (talk) 21:59, 29 January 2024 (UTC)

Yep, quaffing as any monster *other* than a dog (including your base form) is guaranteed to run through that switch statement (sewer rats, puddings, etc). Doing so as a dog has 4/5 chance of giving nutrition, and a 1/5 chance of running through the same switch statement (they are mutually exclusive, i.e. you won't get nutrition *and* sewer rats, because of the return in the if statement for being a dog - it exits the function before reaching the switch statement).
And yes, you're right about the chances (2/9 for baby crocodiles, 4/9 for gagging and vomiting, 1/9 for the others) - that error's been there for over a decade it seems (oops!). -Ion frigate (talk) 20:29, 2 February 2024 (UTC)


In SLASH'EM and SlashTHEM, Cerberus is set as G_UNIQ|G_HELL|1 - does that mean he can generate randomly, and in any event have you ever encountered him? --Umbire the Phantom (talk) 15:54, 10 March 2024 (UTC)

So I have not encountered him. My reading of the (very labyrinthine) code in makemon.c suggests that G_UNIQ is roughly equivalent to G_NOGEN for random monster generation: specifically, it causes the function uncommon to return true, which is checked by rndmonst with the comment "shouldn't happen" (in fact causing a "program in disorder" message if it does). rndmonst is itself called during normal monster generation in makemon, when it comes time to choose a monster to generate.
It seems having a frequency still isn't enough for a G_UNIQ monster to generate through ordinary monster generation. This makes sense: Cerberus is actually not the only such monster (G_UNIQ, has a frequency, not G_NOGEN): the rat king and Ruggo the Gnome King are similar, and I've never seen either of them generate outside of their pre-defined levels, despite having left the Mine King level pretty late in some games. -Ion frigate (talk) 19:04, 10 March 2024 (UTC)
I suspected as much, unfortunately, but thank you for at least confirming as much. Aside from trying to fill out deferred monster info, I was also pondering how exactly one would go about generating a unique monster randomly in the style of, say, Jumbo the Elephant but without relying on a special room. --Umbire the Phantom (talk) 22:05, 10 March 2024 (UTC)
Well, supposedly mkclass, the function used to (for example) generate a random h or G in the Mines, can be set to allow uniques to be generated (it doesn't by default). But realistically, other than hard-coded special cases like Jumbo, the best way to get DCSS-style randomly generated uniques would (unfortunately) likely just be to rewrite the monster generation code to allow for it. It wouldn't even need a complete rewrite (although that would be cleaner) - something like adding a 1/30 chance to makemon to try to generate a unique monster of appropriate difficulty (and presumably without G_NOGEN) in place of a normal monster would do it, sort of like how artifact generation works. -Ion frigate (talk) 00:05, 11 March 2024 (UTC)
Yeah, about figures as well. Gonna have to inquire further elsewhere so I don't pester you too much about specifically that, haha.
On the note of pestering, I'm in the process of splitting Nighthorn into SLASH'EM and dNetHack pages - overdue since both the artifact and Nightmare in each variant are radically different. Was wondering what strategy revisions you could suggest for the former: I found the old advice pretty flawed even for the time and tried to adjust accordingly, but given you play SLASH'EM way more than I do, you'll likely have insight that I lack. --Umbire the Phantom (talk) 10:30, 11 March 2024 (UTC)

Wand of cancellation

There's a comment left in the SLASH'EM section that needs looking into, and you probably know SLASH'EM the best out of people I can inquire to about this - think you could take a peek and make sure that section is accurate? --Umbire the Phantom (talk) 01:45, 24 March 2024 (UTC)

Just checked it - that's correct, it checks max but not current HP. It's indeed ordinarily fatal, but an amulet of life saving will leave you in the fantastically survivable position of having 1(1) HP (as will choosing not to die in wizard or explore mode, which are probably more what that exception was written for). -Ion frigate (talk) 05:48, 28 March 2024 (UTC)
Lmao how thoughtful of them. Thanks! --Umbire the Phantom (talk) 06:05, 28 March 2024 (UTC)

Other requests

Since you're around at the moment, there's a couple of other things I'd like looked at, in rough order of priority:

  • Sacrifice: Finished a big update of the article to 3.6.7, included and touched up several other variants in the process. I'd like multiple eyes on it to make sure I didn't miss anything in the process, so it's alright if you can't fact-check everything.
  • Luckblade (SLASH'EM): Split off the luckblades since the SLASH'EM ones were p. independent of the Convict patch

No rush at all, just get to them when you can if you can, alright? --Umbire the Phantom (talk) 06:05, 28 March 2024 (UTC)

Oh, and if you happen to know origin stuff for a given article feel free to pitch that in as well. --Umbire the Phantom (talk) 06:25, 28 March 2024 (UTC)