Well, after more experimentation, I think what I’ve stumbled across is some sort of strange bug with TSL’s room visibility system. For some reason, I think the engine is getting confused and treating any emitters attached to the 101PER2aa node as being part of 101PERza from a visibility standpoint, and it hides them when the VIS file says not to draw 101PERza. I added 101PERza to 101PER2a’s visibility list, and voila—the emitters start working as soon as I walked into the medbay. So if anyone else runs into this in a different module, see if you can isolate a room that your emitters may be getting confused with, and try editing the VIS so that both rooms are drawn together.
Good point, thanks for the suggestion. That might be the better approach from a mod compatibility standpoint if I ever do release this in some form.
Some further random observations which may help anyone who tries to deal with this in the future:
This bug only affects emitters. Meshes attached to the -a nodes always appeared in-game like they were supposed to.
It doesn’t seem to be related with room count. Editing the LYT (without editing the VIS) to remove the 25 or so rooms before 101PERza had no effect, but removing only 101PERza made the emitters work.
I was also able to make the emitters appear by deleting four meshes from 101PERza: mesh476, mesh480, mesh481, and mesh482. However, deleting all of the room’s meshes except those four also worked, so it doesn’t seem to be an inherent issue with those meshes.
Attaching those same meshes to node 101PERzaa also fixed the issue. Interestingly, meshes attached to -a nodes seem to be always drawn, even when the VIS would say otherwise. (When I edited the VIS so that no room was visible from any other room, the other rooms’ static meshes all disappeared, but I could still see their animated meshes like the docked Harbinger.) Maybe linking them to the -a node removed them from interacting with the visibility code and therefore circumvented the bug?
It doesn’t seem to be related to mesh count or poly count (at least, not entirely) because deleting four different meshes with higher total poly counts didn’t bring the emitters back.
When I tried adding an emitter to the -a node of a different room in the same module, that emitter remained broken even after I added 101PERza to its visibility list. However, it did start working when I walked a few rooms away and looked back, so I suspect that it was linked to the visibility of a different room. My guess is that a given room’s animated emitters become entangled with a unique room, rather than every room’s emitters being linked to the same room.