pra Posted February 13, 2018 Share Posted February 13, 2018 I tried to use the event onHolotapeChatter today. The example on creationkit.com looks like the game holotapes are supposed to call this event to send highscores to the main game. But, where am I supposed to listen for this event? Which ObjectReference recieves it? I tried it on the terminal and on the holotape (I made a copy of Atomic Command with the same SWF), and it never got called. Is this some sort of vestigial code, like Morrowind's "UsedOnMe"? Or is it actually called on the player or some other central place? Link to comment Share on other sites More sharing options...
IDontEvenKnow Posted February 16, 2018 Share Posted February 16, 2018 Given that there are zero non-vestigial uses of that event in any official script, and that all of the game holotapes have an associated default object (form IDs 249e80--249e84), it looks like Bethesda gave up on getting that event to work--or, at least, gave up on trying to use it--and hard-coded everything into the executable instead. Have you tried experimenting with the abandoned turret hack holotape (TurretHack_Holotape "turret_override.exe" [NOTE:00106E96]) yet? The flash file that that uses probably still sends that event. I've been around Bethesda games long enough to have a pretty good guess what likely happened, and why that event was abandoned:The event was initially set up to be received by the terminal ref that the tape was being played on. This presents an issue, however, because they would have needed to put a script to listen for this event on every terminal in the game that has a holotape drive, which would get annoying fast. Bethesda further tried to work around this by allowing the OnHolotapeChatter event to be received by reference aliases as well. It would probably be workable to set up a quest, with some minor abuse of the story manager, to find any terminals nearby the player and just force them into a reference alias, and listen on that instead. This probably didn't work terribly reliably in case e.g. there were multiple terminals near the player, or perhaps it was too annoying to try to manage a number of separate reference aliases, so OnHolotapeChatter was made to work with reference collection aliases as well. It would trivial to find any terminals nearby the player and force them into a RefCollectionAlias, and at that point you only need to worry about one "array" of object references and one script instance handling all of them. So far so good. ...until Bethesda realized that this system had to work when the holotape was played on the pip-boy as well. This presents an issue because there is no terminal reference for the pip-boy, so the chatter from the flash file would just be would be getting sent into the void. Bethesda tried to fix this by also allowing ActiveMagicEffect objects to receive OnHolotapeChatter, and then probably made a hidden perk or whatever that applied a magic effect to the player with a script that would listen for the event, but this didn't work at all, so they gave up and had some C++ dev do it instead.Of course this mostly speculation, but it's also exactly the sort of thing I'd expect to happen around Bethesda devs. Link to comment Share on other sites More sharing options...
Recommended Posts