CamDawg Posted February 9, 2018 Posted February 9, 2018 (edited) I've seen this come up a few places, so I thought I'd write up some helpful advice on integrating your shiny new cleric kit into the BG2 cleric strongholds.Players are routed to one of the three potential strongholds in the Temple District based on their class and alignment. After you meet Gaal preaching in the street, you're approached by one of the temple leaders--Arval for Lathander, Oisig for Helm, or Nallabir for Talos--who then initiates the Unseeing Eye quest. After successful completion of the quest, clerics are offered a place in the temple and others are thanked and dismissed.After Gaal speaks, determining who spawns is a pretty straightforward process: Non-clerics get Oisig and work for Helm. Clerics kitted to one of the three temples always get that temple, e.g. Morninglords of Lathander will always be approached by Arval to work for the Lathander temple. All other clerics get approached based upon their alignment: In vanilla BG2 good go to Lathander, neutral to Helm, and evil to Talos. In EE or with Divine Remix installed, Lathander takes NG and CG, Helm takes LN and LE, and Talos takes CN, CE, and NE. LG will get approached by Lathander, but have the option of working for Helm, and TN will get approached by Helm but be able to work for Lathander. If you're satisfied with the existing alignment distribution for your kit, then you're done. For example, EEs introduced the Tyr kit with allowed alignments LG, LN, or NG. Nothing was done for the temples, so (per step 3, above) Tyr priests will either go to Lathander (NG), Helm (LN), or get approached by Lathander with an option to work for Helm (LG). This is the trivial case, of course. Let's take a more interesting example, such as a Tempus kit. Tempus, being CN, accepts followers of CG, CN, CE, and TN alignments. If we let it go to the defaults, as we did with Tyr, then CE and CN followers serve Talos, CG to Lathander, and TN are approached by Helm but can work for Lathander. Tempus and Helm and diametrically opposed, and the idea of Oisig approaching a Battleguard of Tempus for assistance is particularly unsatisfying from a role-playing standpoint. So let's walk through the process of how these mechanisms work, and what we need to do to change them. The good news is that all of this is determined, more or less, by who spawns after Gaal speaks. Once your questgiver has spawned, you're locked into that temple--there are no more kit checks, so if you can get it right up front, the rest will follow. First, the initial spawn of the temple rep. This is controlled by four blocks in the temple district's area script, ar0900.bcs. A quick note, before we go further: the code and snippets are from BG2EE, but the ideas and mechanisms are the same, even if the code required is going to vary a bit. IF Global("GaalSpoke","AR0900",1) OR(2) Alignment(Player1,MASK_GOOD) Kit(Player1,GODLATHANDER) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODHELM) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bharval",[3077.1630],SW) // High Mornmaster Arval SetGlobal("GoodMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(4) Alignment(Player1,LAWFUL_NEUTRAL) Alignment(Player1,NEUTRAL) Alignment(Player1,LAWFUL_EVIL) Kit(Player1,GODHELM) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bhoisig",[3077.1630],SW) // High Watcher Oisig SetGlobal("NeutralMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(4) Alignment(Player1,CHAOTIC_NEUTRAL) Alignment(Player1,NEUTRAL_EVIL) Alignment(Player1,CHAOTIC_EVIL) Kit(Player1,GODTALOS) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODHELM) THEN RESPONSE #100 Wait(2) CreateCreature("bhnalla",[3077.1630],SW) // Stormherald Nallabir SetGlobal("EvilMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) !Class(Player1,CLERIC) !Class(Player1,FIGHTER_CLERIC) !Class(Player1,CLERIC_MAGE) !Class(Player1,CLERIC_THIEF) !Class(Player1,FIGHTER_MAGE_CLERIC) !Class(Player1,CLERIC_RANGER) THEN RESPONSE #100 Wait(2) CreateCreature("bhoisig",[3077.1630],SW) // High Watcher Oisig SetGlobal("NeutralMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END The fourth block is the catch-all for non-clerics, but the rest follow a predictable pattern--check the variable that the Gaal cutscene has occurred, that Player1 is either a cleric kitted to the temple or matches the alignments laid out above, is a cleric, and is not kitted to one of the other temples. For our Tempus example, it's that second block that poses the problem--a TN Tempus clerics fulfills all of these conditions, so we block it by adding a kit check: IF Global("GaalSpoke","AR0900",1) OR(4) Alignment(Player1,LAWFUL_NEUTRAL) Alignment(Player1,NEUTRAL) Alignment(Player1,LAWFUL_EVIL) Kit(Player1,GODHELM) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODTALOS) !Kit(Player1,OHTEMPUS) THEN RESPONSE #100 Wait(2) CreateCreature("bhoisig",[3077.1630],SW) // High Watcher Oisig SetGlobal("NeutralMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END via this WeiDU code COPY_EXISTING ~ar0900.bcs~ ~override~ DECOMPILE_AND_PATCH BEGIN REPLACE_TEXTUALLY ~\(!Kit(Player1,GODLATHANDER)[ %TAB%%LNL%%MNL%%WNL%]+!Kit(Player1,GODTALOS)\)~ ~\1 !Kit(Player1,OHTEMPUS)~ END BUT_ONLY This blocks Oisig from spawning for a TN Tempus cleric. However, we still need to spawn Arval in this case. The laziest--and thus, most preferable--way to do this is just to extend the bottom of the script with a bit specifically tailored for such; this is basically a copy-and-paste of the Arval spawn block with altered conditions: IF Global("GaalSpoke","AR0900",1) Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) THEN RESPONSE #100 Wait(2) CreateCreature("bharval",[3077.1630],SW) // High Mornmaster Arval SetGlobal("GoodMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END And now we get Arval for TN Tempus clerics. One last little bit remains to be done for EE games; remember that both Arval and Oisig will be ambivalent to LG/TN clerics, respectively, and we don't want Arval to offer Helm for our TN Tempus cleric. These offers are made in Arval's dialogue (BHARVAL) state 2 and in Oisig's dialogue (BHOISIG) state 2. Once again, it's an easy solution in .d code: EXTEND_BOTTOM BHARVAL 2 IF ~Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS)~ THEN DO ~OpenDoor("DOR0902b") EscapeAreaMove("AR0902",577,650,14)~ UNSOLVED_JOURNAL #3439 EXIT END You're basically copying transition 0, but adding new conditions to preempt transitions 1 or 2. In this case, the conditions are that the cleric is a TN follower of Tempus. That's basically it. Once the player enters the temple to speak with the questgiver (Arval, Oisig, or Nallabir) no more kit checks are performed. As always suggestions, feedback, etc. is appreciated. Edited February 9, 2018 by CamDawg Quote
Grammarsalad Posted February 9, 2018 Posted February 9, 2018 This...is awesome! Thank you CamDawg. This will be very helpful. Now, if I only knwe how to make that Tempus kit take the fighter stronghold rather than (any) cleric stronghold... Quote
subtledoctor Posted February 10, 2018 Posted February 10, 2018 (edited) Super helpful BUT I'm going to ask about more complicated alternatives. The general question: how do strongholds interact? I think a mod (CDTweaks?) allows you to get any stronghold, but only one. So your cleric of Tempus can get the fighter stronghold, and then will not be offered any if the cleric strongholds. Or, you can pass on the fighter stronghold and then have a chance to get a cleric stronghold. Is that relatively easy? Or complicated? Because here's the specific question: maybe my mod wants to allow my added Tempus kit to take Nalia's Keep as a stronghold. Also, it contains a cleric/thief kit called "druid/thief" which is, y'know, a druid/thief. So that one should get access to the druid grove stronghold, and not one of the temples. Another mod of mine adds a version of "demibards" - rogues with bardic characteristics, but no spellcasting, and appearing in the thief class. They would be better off with the bard's theater, rather than membership in the thieves's guild. On the other hand one of them is modeled on the 2E 'Herald' kit, and that one (also a thief kit) should probably get the fighter stronghold. We also have a bunch of ranger kits that are actually devoted to specific deities, and they should probably get the cleric or paladin stronghold. Aquadrizzt has a mod that converts monks entirely into thief kits - which enables multiclass monks. But they should probably get the cleric or fighter stronghold - not the thieves' guild. Etc., etc., etc. It would be amazing if we could compile some more general guidance for manipulating strongholds. Maybe even try to create a library of DLG-specific patches that modders could hook into at the time their kit is installed. Edited February 10, 2018 by subtledoctor Quote
Roxanne Posted February 10, 2018 Posted February 10, 2018 (edited) Super helpful BUT I'm going to ask about more complicated alternatives. The general question: how do strongholds interact? I think a mod (CDTweaks?) allows you to get any stronghold, but only one. So your cleric of Tempus can get the fighter stronghold, and then will not be offered any if the cleric strongholds. Or, you can pass on the fighter stronghold and then have a chance to get a cleric stronghold. Is that relatively easy? Or complicated? Because here's the specific question: maybe my mod wants to allow my added Tempus kit to take Nalia's Keep as a stronghold. Also, it contains a cleric/thief kit called "druid/thief" which is, y'know, a druid/thief. So that one should get access to the druid grove stronghold, and not one of the temples. Another mod of mine adds a version of "demibards" - rogues with bardic characteristics, but no spellcasting, and appearing in the thief class. They would be better off with the bard's theater, rather than membership in the thieves's guild. On the other hand one of them is modeled on the 2E 'Herald' kit, and that one (also a thief kit) should probably get the fighter stronghold. We also have a bunch of ranger kits that are actually devoted to specific deities, and they should probably get the cleric or paladin stronghold. Aquadrizzt has a mod that converts monks entirely into thief kits - which enables multiclass monks. But they should probably get the cleric or fighter stronghold - not the thieves' guild. Etc., etc., etc. It would be amazing if we could compile some more general guidance for manipulating strongholds. Maybe even try to create a library of DLG-specific patches that modders could hook into at the time their kit is installed. The main difference between the cleric stronghold (and hence the reason for this thread) is the fact that multiple *stronghold-givers* are involved, depending on your protagonist. All other strongholds have simple triggers - you have already a stronghold (or not) and your class qualifies (or not). Those checks are simply done in the dialogue of e.g. Nalia, Lavok etc. You can add triggers and variations very easily to those dialogues. The only complex one is the cleric one as outlined in the OP. It is also straight forward to add another party member to qualify for a stronghold if the protagonist does not qualify. (The only thing that made NPC Stronghold mod complex was the additional idea that the respective NPC would also be responsible for all the following stronghold quests and what to do if that one was kicked out or dead etc). Edited February 10, 2018 by Roxanne Quote
subtledoctor Posted February 10, 2018 Posted February 10, 2018 Roxanne can we compile a list of stronghold-givers... or even better, a list of .DLG files in which those triggers need to go? It's been a looong time since I played BG2, especially with more than one class. Quote
CamDawg Posted February 10, 2018 Author Posted February 10, 2018 Tweaks should have not only the dialogue files, but the state numbers too. It has to branch the dialogues to bypass the class checks. On my phone ATM or I'd post myself. Quote
subtledoctor Posted February 11, 2018 Posted February 11, 2018 I'll take a look at it then. About time I started dealing with the strongholds... Quote
CamDawg Posted February 11, 2018 Author Posted February 11, 2018 Oh, heh. Tweaks doesn't have the state numbers because I use REPLACE_TRIGGER/ACTION_TEXT. The game uses the global PlayerHasStronghold to track if you've already accepted a stronghold, so it's either 0 or 1. This is checked along with the class before offering the stronghold: Bard: Raelis Shai (RAELIS). Haer'Dalis also has a check in his unjoined dialogue (HAERDA). Clerics: As above it's either Arval (BHARVAL), Oisig (BHOISIG), or Nallabir (BHNALLA). Travin (TRAVIN) also has a class check. Druids/Shamans: Verthan (CECHALL). Faldorn (CEFALDOR) also has class checks before entering into single combat with you. The messenger (DRUIDAD) has another check. Fighter Nalia, both joined and unjoined dialogues (NALIA, NALIAJ). Mage: Lavok (LAVOK). Paladin: Garren Windspear (GARREN). Prelate Wessalen (HPRELATE) also has a class check. Ranger: Minister Lloyd (UHMAY01). Thief: Renal Bloodscalp (RENAL). Looking at Lavok as an example--if you grant his wish and bring him outside, his final dialogue will either be state 27 or 28. If you refuse, then the stronghold check is in the replies to state 59. You probably also want to look at Gaelan Bayle (GAELAN state 70) and Brus (BRUS2 state 0), since they're supposed to point you towards your class quest. Quote
CamDawg Posted February 17, 2018 Author Posted February 17, 2018 I have an 'in' someone working on the EE 2.5 patch and made this even easier for the cleric kits. The spawn blocks now look like this (check the OR blocks): IF Global("GaalSpoke","AR0900",1) OR(3) Alignment(Player1,MASK_GOOD) Kit(Player1,GODLATHANDER) Global("OHLathanderOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODHELM) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bharval",[3077.1630],SW) // High Mornmaster Arval SetGlobal("GoodMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(5) Alignment(Player1,LAWFUL_NEUTRAL) Alignment(Player1,NEUTRAL) Alignment(Player1,LAWFUL_EVIL) Kit(Player1,GODHELM) Global("OHHelmOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bhoisig",[3077.1630],SW) // High Watcher Oisig SetGlobal("NeutralMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(5) Alignment(Player1,CHAOTIC_NEUTRAL) Alignment(Player1,NEUTRAL_EVIL) Alignment(Player1,CHAOTIC_EVIL) Kit(Player1,GODTALOS) Global("OHTalosOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODHELM) THEN RESPONSE #100 Wait(2) CreateCreature("bhnalla",[3077.1630],SW) // Stormherald Nallabir SetGlobal("EvilMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this: IF Global("OHLathanderOverride","GLOBAL",0) Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS) THEN RESPONSE #100 SetGlobal("OHLathanderOverride","GLOBAL",1) END I may have a similar 'in' with the Fixpack author for vanilla games. Quote
Jarno Mikkola Posted February 17, 2018 Posted February 17, 2018 Here's a question on that: IFGlobal("GaalSpoke","AR0900",1) OR(5) Alignment(Player1,LAWFUL_NEUTRAL) Alignment(Player1,NEUTRAL) Alignment(Player1,LAWFUL_EVIL) Kit(Player1,GODHELM) Global("OHHelmOverride","GLOBAL",1) In the second edition, according to my source, the worshipper of Helm could be anything except Evil. Now, I actually would like to see the diety chose be more free... and it might have an effect later in the game on the players alignment... where the quests for example could re-align the player char to be the gods own default alignment/depending on how the strongholds quest was resolved. Quote
CamDawg Posted February 17, 2018 Author Posted February 17, 2018 Worshiper alignments are different than specialty priest alignments, though. Vanilla is set up like so: But this isn't in agreement with 2e rules, as Helm only accepts priests that are LG, LN, and TN. Lathander also accepts LN priests, and Talos CN. So a 'true' 2e split would look like this: EE (and Divine Remix) tries to simplify this by using the IWD2 model--deity alignment plus one step out: Quote
subtledoctor Posted February 19, 2018 Posted February 19, 2018 The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this: IF Global("OHLathanderOverride","GLOBAL",0) Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS) THEN RESPONSE #100 SetGlobal("OHLathanderOverride","GLOBAL",1) END I'm not fully conversant in scripts the way I am in Weidu. Correct me if I'm wrong but in addition to thst global, you still need to satisfy the class requirements, right? I.e. there is an implicit 'AND' between those 'OR' blocks...? So If I want my kit to get the Lathander temple stronghold, and my kit is a Ranger kit, there would be more to do. Quote
Roxanne Posted February 19, 2018 Posted February 19, 2018 (edited) The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this: IF Global("OHLathanderOverride","GLOBAL",0) Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS) THEN RESPONSE #100 SetGlobal("OHLathanderOverride","GLOBAL",1) END I'm not fully conversant in scripts the way I am in Weidu. Correct me if I'm wrong but in addition to thst global, you still need to satisfy the class requirements, right? I.e. there is an implicit 'AND' between those 'OR' blocks...? So If I want my kit to get the Lathander temple stronghold, and my kit is a Ranger kit, there would be more to do. Correct The block above just sets one of the conditions in the earlier OR(3) block to true but you still need to match one of the OR(6) in the second block + not belonging to one of the two excluded deities in the last two conditions. Edited February 19, 2018 by Roxanne Quote
Raduziel Posted March 9, 2018 Posted March 9, 2018 I have an 'in' someone working on the EE 2.5 patch and made this even easier for the cleric kits. The spawn blocks now look like this (check the OR blocks): IF Global("GaalSpoke","AR0900",1) OR(3) Alignment(Player1,MASK_GOOD) Kit(Player1,GODLATHANDER) Global("OHLathanderOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODHELM) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bharval",[3077.1630],SW) // High Mornmaster Arval SetGlobal("GoodMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(5) Alignment(Player1,LAWFUL_NEUTRAL) Alignment(Player1,NEUTRAL) Alignment(Player1,LAWFUL_EVIL) Kit(Player1,GODHELM) Global("OHHelmOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODTALOS) THEN RESPONSE #100 Wait(2) CreateCreature("bhoisig",[3077.1630],SW) // High Watcher Oisig SetGlobal("NeutralMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END IF Global("GaalSpoke","AR0900",1) OR(5) Alignment(Player1,CHAOTIC_NEUTRAL) Alignment(Player1,NEUTRAL_EVIL) Alignment(Player1,CHAOTIC_EVIL) Kit(Player1,GODTALOS) Global("OHTalosOverride","GLOBAL",1) OR(6) Class(Player1,CLERIC) Class(Player1,FIGHTER_CLERIC) Class(Player1,CLERIC_MAGE) Class(Player1,CLERIC_THIEF) Class(Player1,FIGHTER_MAGE_CLERIC) Class(Player1,CLERIC_RANGER) !Kit(Player1,GODLATHANDER) !Kit(Player1,GODHELM) THEN RESPONSE #100 Wait(2) CreateCreature("bhnalla",[3077.1630],SW) // Stormherald Nallabir SetGlobal("EvilMask","AR0900",1) SetGlobal("GaalSpoke","AR0900",2) END The key additions are the global checks of OHLathanderOverride, OHHelmOverride, and OHHelmOverride. You can now force a kit to go to your temple of choice simply by setting this variable to one. So from our example above, forcing true neutral Tempus clerics to the Lathander temple is now as simple as extending ar0900.bcs with this: IF Global("OHLathanderOverride","GLOBAL",0) Alignment(Player1,NEUTRAL) Kit(Player1,OHTEMPUS) THEN RESPONSE #100 SetGlobal("OHLathanderOverride","GLOBAL",1) END I may have a similar 'in' with the Fixpack author for vanilla games. Can you provide a "For Dummies" step-by-step like you were tutoring a 5 yo eating sand? Thanks! Quote
subtledoctor Posted September 29, 2018 Posted September 29, 2018 (edited) How do I decompile these to get human-readable .D files? I ran a DECOMPILE_DLG_TO_D patch on them, but I end up with only .DLG files in /override... And NI's 'Export' action only produces .DLG files. Edited September 29, 2018 by subtledoctor Quote
Recommended Posts
Join the conversation
You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.