Mod Help

NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Forum rules
NOTICE: This forum is archived as read only.
Please use the Github Discussions at https://github.com/exult/exult/discussions
Locked
Drew

Mod Help

Post by Drew »

Hi,

I want to create a mod using exult studio that, among other things, allows me to use certain items (specifically the serpent mail, serpent crown, and enrions axe) from SI in BG. Since these are equipable items I also need to be able to use the paperdolls for these items in BG.

However, I have no idea how to do this. I attempted it a while back and it crashed my computer. I was hoping that someone could walk me through how to do it.

This mod is a surprise for my brother. We grew up playing BG and were reminiscing about it the other night. We used to think it would be cool to be able to use some of the stuff from SI in BG.

I plan to change the crown from the serpent crown to the crown of the liche king (unless there is an easier way to put a new item like that in the game).

The crown of the liche king is listed in a book found on Skara Brae about artifacts of darkness (along with the well of souls and blackrock sword). We spent a lot of time looking for it, but it never actually existed in the game.

I plan to add some type of quest to get the crown involving a new dungeon (probably the catacombs of Moonglow) in the multi map support. This will include at least 1 new NPC (the pirate referenced in the scroll in Iolo's house that had a map to Serpent Isle). We spent a lot of time looking for that too.

Also, is there a way to get other npcs (Gorn and Elad in Moonglow) to join the avatar's party via an option in the conversation after a certain event occurs (destruction of the cube generator / the elapse of a certain amount of time to let the patients heal?)

I might need some more help as I put this together.

Thanks in advance!
Anonymous Coward

Re: Mod Help

Post by Anonymous Coward »

I'd love to get a starting point for modding as well. There doesn't seem to be a central place to get started, nor steps on how to put one's code into the game.

If I understand right, the sifixes are not enabled by default?
Anonymous Coward

Re: Mod Help

Post by Anonymous Coward »

Also, aside from the list on StrategyWiki, how do I see the flags and when they are changed?
Anonymous Coward

Re: Mod Help

Post by Anonymous Coward »

Looks like Marzo's Seven Towers page is helpful.
http://exult.info/seventowers/index.php
agentorangeguy
Posts: 565
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by agentorangeguy »

Hi Drew,

That's a pretty interesting idea. I remember trying to look for it as well. What kind of properties would it have, I wonder? Definitely possible to do a mod and give it some attributes and such. I'm still working on the U6 mod, so feel free to email me with any questions you have. (my screen name ) at yahoo.

Find the 'quests and interations' mod, that's a good starting point. open it up and look. You can insert shapes from SI and paperdoll into U7, but you have to be careful. I've had sections of the map deleted because of doing that for some reason, but I've found it better to make a copy map in exult studio, inserting the new shape, saving there, then opening it back up to give the proper attributes.
-------------------------------------------------------------------------------------
Ultima 6 Mod for Exult site: http://www.ultima6.realmofultima.com/
Drew

Re: Mod Help

Post by Drew »

Thank you guys for your help. The info on Marzo's site is a little over my head though.

Agentorangeguy, I will email you.

As far as the attributes go, I think that the crown should be a very powerful item. I'm thinking a pretty good defensive rating, infravision, perhaps immunity to etherial attacks, and perhaps even the ability for the wearer to cast spells without using reagents - almost like a cross between the helm of light and the ring of reagents in SI.

If I can get this thing going, I would be happy to share it with you guys!
Wizardry Dragon
Posts: 1241
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Wizardry Dragon »

There are two specific places where you set item properties and such.

First of all for the actual item properties, you modify those in Exult.

But for fancy scripting, say for example, the conversation in with the Black Sword or other items with similar advanced effects like spell scrolls, use the UCC scripting (or original Usecode in the original version.)

If you can elaborate what you'd like to do *exactly* I can probably guide you through it.

~ Wizardry Dragon
Cheers, Wizardry Dragon
Lead Designer, Ultima VII: The Feudal Lands
www.thefeudallands.ca
Drew

Re: Mod Help

Post by Drew »

Hi,

To elaborate, I would like step by step instructions on how to insert the serpent mail (along with its paperdoll) into BG. I tried to do that a while back but it crashed my computer. Needless to say, I'm a little gun shy about trying to figure it out on my own again...

I would also like to insert the serpent crown (along with its paperdoll) and possibly Enrion's Axe into BG.

The name of the serpent crown needs to be changed to the crown of the licke king.

Ideally, the crown will do the following: grant infravision to the wearer, have a good defensive rating, and allow the wearer to cast spells without using reagents.

I will also need some help in changing up an npc's conversation and location after a specific event occurs.

To elaborate on that piece of it, here is the storyline that I have come up with for the mod:

I will create a new npc for an old pirate and locate him on Buccaneer's Den. This will be the pirate that sold Gwenno the map to Serpent Isle. In conversation, the pirate will mention that he and his old crew have been to Serpent Isle and found a great deal of treasure there. The treasure included an impenetrable strong suit of armor (the serpent mail).

The armor was kept by a fighter that used to adventure with the pirate. The last time the pirate saw the fighter, he has going to retrieve a powerful artifact for a mage who lives in a cabin north of the great forest.

The powerful mage will be Garok Al-Mat, who I will need to move to this new location after he is directed out of the dungeon where the avatar finds him. When asked about the fighter, Garok Al-Mat will say that he went to retrieve an artifact called the crown of the liche king from the catacombs of Moonglow a number of years ago, but never returned.

Garok Al-Mat will give a little background on the crown and direct the Avatar to the stairway that goes down into the catacombs.

I can create the new buildings, stairway and catacombs pretty easily using exult studio, but I have no idea how to do the coding for this; or any coding for that matter. As such, I don't know how ambitious a project this is. However, I think this will be a really cool mod that will tie up a couple of loose ends from the original game, add a new dungeon, and add some cool items to the game.

Does that help?

Thanks,
Drew
Dale
Posts: 176
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Dale »

I had wanted to do some similar mods a while back, but I hit some pretty heavy dead-ends. I really like the idea of adding more items to U7, there wasn't much in the way of high end equipment that required real questing...

A thought.. however you end up getting this crown of the liche king, as it is of questionable origins, perhaps you should find it and it is cursed (causes the curses status I suppose). You could then have a quest that you undergo to remove the curse resulting in this super high-end item you are considering.
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

All right, I'll give a shot at explaining step by step adding equipment items. In this case, adding something from Serpent Isle. Of course, it is always a good idea to make backup copies of the files you are altering.

First, export the graphics from Serpent Isle. This is simply done by opening up Exult Studio, finding the graphics in shapes and paperdoll, right-clicking and selecting "Export frame" or "Export all frames". To add them, go to shapes, right-click and select "New shape". For items like armor you only need one frame, for weapons five (frame 0 is weapon as loose item lying around, 1 is weapon in hand and 2-4 are weapon being swung back-side-forward). Then right-click again on the space of the empty frame,
and "Import frame".

To make an item usable as equipment, open the shape's information window either by double-clicking or right-clicking and selecting "Info". To be able to pick up and move around an item in the first place, weight and volume need to be set to non-zero. Equipment seems to have class either set to "Quality" or "Quality flags". I'm not sure about the distinction myself. Check "Weapon" or "Armor" in the extra flags accordingly, as well as "Obj paperdoll". You should also set the appropriate ready spot for the equipment.

To get the paperdoll graphics working, first you will need a PAPERDOL.VGA file, so add that if it's not already showing in Exult Studio. Make a new shape there with the appropriate number of frames (I recommend looking how those are structured in Serpent Isle). You should make the number of the new shape fairly high, so it doesn't override the paperdoll graphics already in the game. Others would know better than me what is the appropriate range. Next, add the graphics itself. Weapons have different paperdoll frames for in hand and sheathed (either belt or back), while armor has alternating frames for female and male characters.

Now, back to the shape infor for the item itself, you should go to the "Obj Paperdoll" tab and set it to refer to the shape number you inserted into the paperdoll file. Again, I recommend exploring Serpent Isle files for examples on how to set these.

For infravision, I think you need usecode to do that. I believe Lord British's amulet in Marzo's keyring mod has the same effect, so I suggest you look at his source files.
aidanleer
Posts: 2
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by aidanleer »

I would like to try this with Dupre's shield from si to bg.
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Knight Captain »

Also, is there a way to get other npcs (Gorn and Elad in Moonglow) to join the avatar's party via an option in the conversation after a certain event occurs (destruction of the cube generator / the elapse of a certain amount of time to let the patients heal?)
This one could be easier than it sounds. If you've seen the SIfixes code or other mods included in the main source code, you'd so something like:

If gflags[CUBE_BROKEN]
Event = Started_Talking
Write a new conversation with join as an option.
GORN->add_to_party();

Gorn.original // if the Cube isn't broken yet.

I'm leaving out much of the syntax, but that might be easier than some of the graphics changes. You'd probably want to have him be able to leave on request too.
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

In my mod I am planning to allow Gorn to join once that fighter lady guarding the Cube Generator is dead. I decided against the condition being the destruction of the generator since at that point you are close to completing the game.
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Knight Captain »

Are you going to add a custom paperdoll and head shape? Otherwise he uses Sentri's doll and Shamino's head.
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

Yeah, I already have those made. There's a thread around where I show them.
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Knight Captain »

That's one thing I haven't tried yet, how to add artwork to the game in a shareable fashion using Make.bat.

Instead of using the "if gflags[CUBE_BROKEN]" flag you'd have to "if (IRIALE->get_item_flag(DEAD))" instead, I think.

There's also a flag Gorn sets if Brom has told him to not talk to the Avatar, but I don't think you'd need to check or unset it.

Event = DOUBLECLICK
if (IRIALE->get_item_flag(DEAD))
Write a new conversation with join as an option.
GORN->add_to_party();

if (Gorn->get_item_flag(IN_PARTY))
Write a new conversation with leave as an option.
GORN->leave_party_command?

Sorry for thinking out loud here, I'm not sure the best way to use ifs for this in BG.

How big is the mod you're working on?
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

With Exult I believe you can write the condition in form

if (IRIALE(dead))

I'm rewriting Gorn's entire conversation tree in Exult usecode format, which is straightforward given there are no external flags associated with him.

I've mentioned elsewhere that this mod is to add Beh Lem, make Gorn joinable and add Blackthorne's castle in.
marzo
Site Admin
Posts: 1925
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by marzo »

@Crowley: you are incorrect, it can't be written that way.
------
Marzo Sette Torres Junior
aka Geometrodynamic Dragon
[url=http://www.catb.org/~esr/faqs/smart-questions.html]How To Ask Questions The Smart Way[/url]
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

My mistake. I thought I had seen that form somewhere, but can't find it now. Good to know.
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

Oh yes, something I still haven't figured out is where to place Gorn if you dismiss him from the party and tell him to go home.
Dale
Posts: 176
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Dale »

Wasn't there a good discussion about this in your original thread?
Thoughts... the bee/nude cave? Back where you found him? Jehlom?
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Knight Captain »

Or some remote location hidden away so the Avatar won't easily find him, like one of the islands west of Serpent's Hold.
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

Hmm, maybe somewhere in Yew. I'll have to check around for abandoned huts Gorn might settle in.
Jhonny

Re: Mod Help

Post by Jhonny »

@Crowley
If u are planning to release them both,Why don't you put him inside Blackthorne's Castle?(like u6) :D
Crowley
Posts: 459
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Crowley »

Hmm, maybe not inside, but having him make camp somewhere around the island might not be a bad idea. It feels like a running gag that when you meet Gorn in the games he's always caught up in something in almost the same spot.
Drew

Re: Mod Help

Post by Drew »

Progress on this has been going more slowly than what I initially thought, but overall the mod going well. I was able to get the items moved over from SI and the map editing, while time consuming, is coming along too. The next thing I need help with is how do I (1) create a new NPC and write the conversation tree and (2) how do I create a new scroll with custom text? Any help would be appreciated! Thanks in advance!
Knight Captain
Posts: 1219
Joined: Thu May 14, 2020 1:34 pm

Re: Mod Help

Post by Knight Captain »

Are you using the Keyring mod as your base for this mod?

1) You'd need to create the NPC using Exult Studio, via the menus there. The conversation would all be in Usecode. I have an unreleased work-in-progress vasculio.uc file that I made primarily for showing various conversation commands. I've emailed it over to you.

2) Check out scroll.uc in SIfixes. It's the item's Quality number that is used to match up with text. This means you only need to use a number that isn't currently assigned. You can find out via searching the exported BG Usecode.
Drew

Re: Mod Help

Post by Drew »

Yes I am using the keyring as a base for this. Thanks for sending me that file. Please check your email when you get a minute.

Thanks!
Locked