Jump to content


Photo

Few questions to fill in blanks about creating/compiling mods


  • Please log in to reply
6 replies to this topic

#1 BillBenMen

BillBenMen
  • Member
  • 5 posts

Posted 19 January 2019 - 01:12 PM

Hi, I've got a few questions about modding BG 1 for compatibility. My standard learning method is modifying other mods to understand processes parallel to my aims and then try and use that logic.

 

1) Is this summation correct?

 

Each NPC in the world is comprised of a .cre, override/class/race/general/default .bcs file for behaviour, .dlg for all dialogue, coordinates established within the .are file, and with all their dialogue also in in the dialog.tlk file.

 

2) If so, how does Rufie (Albert's demon dog BG1) spawn? I've looked through files relating to him and can't identify anything. He's only spawned once you've talked to Albert, right? And in at least 2 potential areas, which script would this be set in? And where abouts are the variables to determine quest progression?

 

3) Is a .d file compiled into .dlg, and .baf into .bcs etc (anywhere that lists all types/compilations?) I'm happy reading/writing (using the weidu readme, presumably?) those files after viewing a few of UB and minor created characters.

 

4) Why is NI not better than DLTCEP and WeiDU for creating mods? If I edit things in there and save them in the override folder, am I missing out any key step apart from compiling it effectively? And if I create a mod that say, creates an unscripted gibberling in Candlekeed and had all uncompiled files in hand, what would I do with those files to compile them into a WeiDU .tpa/tp2 mod?

 

If I want to make a mod that alters the dialogue options of existing characters, such as Unfinished Business, and therefore can't just create a new set of files and presumably have to override something, what's the best guide for amending existing files and keeping them compatible?

 

My mission is to 1) remix positions so that experienced players can no longer be complacent about things like Silkie's encounter (I initially wanted to try and random it same as the BG2 items remix mod, but that seems a bit ambitious for now), 2) open options to different alignments by altering results of different dialogue trees and adding some within acceptable flavour, and provide some hard choices about what rewards can be taken 3) maintain low leveled nature of campaign by rebalancing reward items in lieu of some +2 or similar item rewards, which should really be exceptional.


Edited by BillBenMen, 19 January 2019 - 01:24 PM.


#2 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5155 posts

Posted 19 January 2019 - 06:23 PM

..

1. Yeah.

2. The .are's don't need to contain every rowing band of demons the player is possible to Gate them to. Just the bare essentials. So Rufie is just summoned by a dialog action or different creature script(Albert's). Or baldur.bcs... but never put anything into that file ! 

3. Here's a Infinity Engine files... and other stuff, if you go to the overall/main index.

4. Well, Near Infinity just modifies files in a single game. And mods, overwrite the things always, so having things patched in rather than overwritten leads to multiple mods being able to be installed ones. 400 infact. 

If you have a .d file, you just run this:

COMPILE ~modfolder/myfile.d~ and your output is a myfile.dlg in the override folder... if weidu can process it.

Weidu(.exe renamed as setup-modname.exe that takes orders from a setup-modname.tp2 -file) is a primarily a dialog.tlk editor, which can carry over string addition to the game it's installed on. Aka an installer. the w, e, i, d, and u in the name mean Weimer's infinity engine Dialog Utility.

 

You forgot to number the "If I want to make a mod that alters" question, so 5: It's probably this, the weidu readme. And yes, you probably want to look out the same things that the UB does to actually be able to use the knowledge in the readme.


Edited by The Imp, 19 January 2019 - 06:33 PM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#3 BillBenMen

BillBenMen
  • Member
  • 5 posts

Posted 20 January 2019 - 07:23 AM

Thank you very much, feel much more informed now!

 

RE 2), I was thinking Rufie would be handled the same way as generic enemy spawns, thanks for clearing that up. It was making me reluctant to proceed as I still felt I was missing an important mechanic I may have to interact with.

 

I won't touch baldur.bcs then :)

 

Thanks again, I think you nailed it.



#4 BillBenMen

BillBenMen
  • Member
  • 5 posts

Posted 20 January 2020 - 03:12 PM

Coincidentally, it's been exactly a year after I began this generic project, I've done sod all with it (quelle surprise, written some dialogue but that's about it). I remember the outlines of what I learned from trawling through files and the relevant parts of the monstrous weidu readme, but I was wondering if I could get some specific help/get pointed towards a starting point/similar project? I'm sure this has all been asked before but there's a lot of stuff to sift through in the search function.

My first goal is to add a non-combat, dialogue based route for Tarnesh. I know this isn't lore friendly as such, but it's a proof of concept thing really (plus, creative writing exercise I guess).

I know the best way to learn is to cannibalize other mods that do similar things, but I'm finding some aspects of this quite tricky due to the multicomponent nature of the mods I've looked at, and I couldn't find any simple mods that did these individual things on which to build my vision. I remember using UB as my initial template, but there's so much going on that it was hard to separate the relevant parts. But it's better than nothing.

Things I want to do:

1) Add additional dialogue options to existing NPCs (think this one is pretty simple, but I recall worrying about conflicts with other mods)

2) Include stat/alignment/item requirements for some of these dialogue options (very simple IIRC, except maybe item reqs being a bit more complex?)

3) Alter quest rewards (Super simple)

4) Add my strings to dlg.tlk in a way that's compatible with other mods (I think this was where I started getting really confused last time)

Existing mod components I'm using as a springboard from UB:

3. Angelo Notices Shar-teel: Checks for a certain character in party, injects dialogue into an existing NPC.

15. Flaming Fist Mercenary Reinforcements: Spawns additional NPCs after dialogue trigger (presumably, I can't remember precisely)

28. Prism and the Emeralds Tweak: Does a lot of things that may be quite useful. Possibly overcomplicated but should be decent.

That's about it for now. Will be putting in more research over the rest of the month so I can ask better/more direct questions, and will probably post again if this gets no traction because what's the point helping those who aren't looking to help themselves?

Cheers for any input or pointers.

Edited by BillBenMen, 20 January 2020 - 03:15 PM.


#5 jastey

jastey
  • Administrator
  • 3219 posts

Posted 20 January 2020 - 10:41 PM

to add a non-combat, dialogue based route for Tarnesh.


But... but... but the first lethal encounter out of the blue right after leaving Candlekeep! The shock, the sweat, the first understanding of the roughness of the world the PC was thrown into! You want to change *that*? :o :P

 

On a serious note: it's great to see people working on their mod ideas. Modding BG is great fun, and highly addictive. You've been warned. :shifty:

 

 

1) Add additional dialogue options to existing NPCs (think this one is pretty simple, but I recall worrying about conflicts with other mods)


What exactly do you mean with dialogue options. If you mean the so-called player initiated dialogue (PID) then making it compatible with other mods that add one of those is either complicated or not likely (e.g. BG1NPC adds PIDs for all BioWare NPCs in BG1). This doesn't mean you couldn't make your own version, of course. The player would have the choice.

If you mean additional dialogues the NPC starts, then compatibility would more be in terms of content-wise, but for scripting it would be easier. If you mean interjections into existing game character dialogues, making it compatible technical wise is easy but the question is always on the content side if other mods add interjections for existing NPCs, too.

 

 

2) Include stat/alignment/item requirements for some of these dialogue options (very simple IIRC, except maybe item reqs being a bit more complex?)


If you mean checking whether an NPC has an item in the inventory or even equipped, it is possible to do that. IESDP is your best friend for all the possibilities in the IE engine in case you didn't know about it already.

 

 

3) Alter quest rewards (Super simple)

It depends on how you do that. If you want to alter quest rewards in a compatible way you would need to do it by patching, with the right syntax this is doable. If you were planning on doing it by overwriting existing dialogue states then this is not the way to go in IE modding 2020.
 

 

4) Add my strings to dlg.tlk in a way that's compatible with other mods (I think this was where I started getting really confused last time)

Once you know the syntax this is really simple because that is what the weidu installer does during install. If you create your mod using the standard modfolder with modname.tp2 inside + setup-modname.exe (which is a renamed weidu.exe) then adding the texts to the dialog.tlk will be done simply during installation on the player's game. Unless your problem was actually using weidu syntax inside your mod. Then all I can recommend is using other mods, modding tutorials, and the weidu readme to get started, and ask questions in the forums if you get stuck.

 

One nore to your first post: If you are talking about joinable NPCs like Shar-teel, those have more than one dialogue for all their dialogues: the first greetings dialogue which is usually inside the cre file (usually npcname.dlg), the dialogue for all their scripted banters once they joined (usually npcnameJ.dlg), a banter file of which the engine calls banters at random intervals (usually Bnpcname.dlg but for mod NPC s this should be different as the "B" in front changes the prefix of the file), and  kickout dialogue which is active if the NPC is not in party but was a party member once (usually npcnameP.dlg).

Connection between the NPC and the various dialogues is defined inside the pdialog.2da and interdia.2da (the latter for the banter file). This is most important if you want to make an own NPC, but also for existing ones it is useful to know which one to use when.

 

And go get yourself a modding prefix in case you haven't already. :)

 

Sorry for long post, I hope it is helpful.

 

 

 


 



#6 BillBenMen

BillBenMen
  • Member
  • 5 posts

Posted 21 January 2020 - 01:18 AM

Thank you so much! On the bus atm so will come back with input this evening, but I had an idea last night - if Tarnesh was somehow to be bluffed or intimidated, that's not him done, and I can't remember if he knows he's working for the iron throne directly but he certainly is more concerned about the power of his masters than CHARNAME, but if he were somehow dissuaded, he'd just ambush you and bring company, or give a child a few coins to lead you away from the guards or away from the fighter and the druid who are waiting just inside. Could make for a harder encounter as it'd be a surprise to the player and it'd be out of sight of the guards. Plus veteran players are aware he's there and cheese him or don't confront him until ready anyway.

#7 BillBenMen

BillBenMen
  • Member
  • 5 posts

Posted 21 January 2020 - 12:19 PM

But... but... but the first lethal encounter out of the blue right after leaving Candlekeep! The shock, the sweat, the first understanding of the roughness of the world the PC was thrown into! You want to change *that*? :o :P
 
On a serious note: it's great to see people working on their mod ideas. Modding BG is great fun, and highly addictive. You've been warned. :shifty:
 

I completely appreciate that it's the first 'real' encounter in BG and for new players, it's an essential part of setting the atmosphere. However a couple of problems I have are that Tarnesh isn't stupid - there are guards everywhere and he's literally standing in the entrance to the only Inn in miles. What does he expect after he's killed you if the guards are already willing to attack him? I have some alternate outcomes planned, as I've mentioned. I like the creative writing challenge and my main focus will be keeping the tone consistent in emulating the dialogue style. I went a bit overboard and was thinking 'If Tarnesh knows you're smarter than him, you can fail a check if you have high intelligence and he'll risk taking you out now as he knows if you have time to plan then he might be at risk'. Silly stuff but I'll see how it plays out, if I can write it well enough.

And haha, yeah I was reformatting my PC recently and going through my notepad+, had a dozen or so .d files still open in it...worked in a call centre back then and had the WeiDu readme opened in my browser for months. It's really interesting stuff.

What exactly do you mean with dialogue options. If you mean the so-called player initiated dialogue (PID) then making it compatible with other mods that add one of those is either complicated or not likely (e.g. BG1NPC adds PIDs for all BioWare NPCs in BG1). This doesn't mean you couldn't make your own version, of course. The player would have the choice.
If you mean additional dialogues the NPC starts, then compatibility would more be in terms of content-wise, but for scripting it would be easier. If you mean interjections into existing game character dialogues, making it compatible technical wise is easy but the question is always on the content side if other mods add interjections for existing NPCs, too.
Okay, so to clarify PID is the dialogue tree you get when talking to an NPC, both joinable and non-joinable? Would it be a good idea to 'build' on BG1NPC project and then remove the underlying layers for the sake of compatibility? I'm mainly interested in non-joinable NPC dialogue, if there is a difference.

I've got no interest in interjections at the moment, I'm not confident enough to effect the flavour of enduring characters, just individual encounters. Though I suppose for immersion and consistency I'd have to amend or add some interjections if I change anything big.

 <blockquote class="ipsBlockquote">2)If you mean checking whether an NPC has an item in the inventory or even equipped, it is possible to do that.

EDIT~I think it chopped off the last part of my post for some reason?

I was expressing lots of gratitude, just about to hit bed but will update later. Cheers pal!

Edited by BillBenMen, 21 January 2020 - 02:30 PM.