Aller au contenu

Photo

[Release] Add Companion Mod/Tutorial


  • Veuillez vous connecter pour répondre
115 réponses à ce sujet

#1
bluecuban

bluecuban
  • Members
  • 211 messages
So, I'm working on being able to add an additional companion to the party.  From what I've managed to work with and do so far, the biggest issue I've been having is dealing with custom ID's.

If you use the GFF Editor, then go to Party Pool Members and click on a specific party member they will each have an OBJECT_ID.  No matter where I look, I haven't been able to find anything on where these values are stored, derived, read, or changed.  So far, I know Bethany and Carver will have that ID change based on which ones lives or dies at the beginning of the game.

I've also tried examining when there are party assist characters like Gascard Du Puis or the Uncontrollable Golem.  None of them seem to have an ID that I can find.


NOTE: Xbox 360 and PS3

If you read through this thread you will find techniques that can add a single companion to your games, if you have the tools for save-editing - almost all the software can be found on this site.  All the original work I did was on an Xbox 360, so it can be done for you as well.


UPDATE 2: Mod Links

Courtesy of Bhaalspawn5001, there are now mods that make use of the tricks and techniques discussed in this thread.  I still recommend reading through the thread to get an idea for what they do should you want to make any personal changes though.

Adds a single character directly to the game.
http://www.dragonage...ile.php?id=2947

Adds 3 different characters to the game.
http://www.dragonage...ile.php?id=2958


UPDATE: Tutorial now included below.


Quick tutorial piecing together everything that myself and Icy Magebane have already stated on here before - huge thanks to Icy for helping make this workable.  I want people to know this is doable for any platform as long as you can access the .das save file for your game.  I in fact only play the game on Xbox 360.  Keep in mind this will allow for 1 single new character to be added to the party.  The member will not speak to you, does not have party banter or voice interaction, but the animations all have worked well with characters I've tested.

I apologize if this is long-winded, but I figure if I do it thoroughly people will be able to fix any issues they may have.

Open the pyGFF Editor, and make certain you're using version 0.5.5 at minimum.  Any earlier version will result in crashing, and generating an unusable .das file for your game.
http://social.biowar...m/project/1936/

With your save open, go to SAVEGAME_PARTYLIST > SAVEGAME_PARTY_POOLMEMBERS.  Here you should see all of your party members listed, typically with a "gen00fl_" followed by their name.

Depending on what class you want as your new party member, copy a current companion of the desired class.  So, if you want to make Ketojan, copy a mage (I recommended Merrill).  Now, past that into the SAVEGAME_PARTY_POOLMEMBERS so it appears alongside the others.  Open the character's data.

The first thing you see if the TEMPLATERESREF.  Change this "gen00fl_justice" from whatever it currently is.  This will place the new character in front of, and just to the right of Hawke in the party picker.  If you have a large character (like a Stone Golem), it may block Carver/Bethany from view, but they will still be selectable.  Also, using the template of Justice allows the new character to perform all the attacks expected of a companion and not just the creature moves.

*Note: if you do this before recruiting Anders, or during Act 1, the character you use may have some of Anders dialog.

Go down to the OBJECT_ID and add a 1 to the end of it.

Now go down to the SAVEGAME_OBJECT_NAME and uncheck the box for zero-terminated.  Then in the drop-down select empty string.  Whatever number is there, add a 1 to the end of it, and then in the box type in whatever you want the name to be.

From here, look for the section on APPEARANCE and open that up.  Pick a model you want to work with (10004 for Qunari Slave Mage or Ketojan), and enter that in for SAVEGAME_APPEARANCE_TYPE and SAVEGAME_ORIGINAL_TYPE.

For the HEAD_MORPH, obviously enter a whatever head morph you want.  Technically you don't need one for creatures, but for people like Orsino or Cassandra you need to have theirs.

If you copied someone who is a different gender or race of the new character make sure to change that as well under SAVEGAME_APPEARANCE_GENDER and SAVEGAME_CREATURE_RACE.
Gender Male = 1
Gender Female = 2
Race Dwarf = 1
Race Elf = 2
Race Human = 3

Also, check out the EQUIPMENT_LIST or the new character.  For every item in there, in the OBJECT_ID section add a 1 to the end of it so the game will recognize it as a different item.  Otherwise you may have a crash issue.

You can also edit the ABILITY_LIST to give and take specific abilities to make sure you have him/her powered and equipped as you like.  So far I've had no problems getting a Charade to use Rogue skills or a Ketojan to use Mage skills.

You can find a complete list of the different face morphs and models either on the Dragon Age Wikia, or downloadable files in certain projects on Dragon Age Nexus.

Modifié par bluecuban, 02 juillet 2011 - 03:13 .


#2
Crimea River

Crimea River
  • Members
  • 425 messages
Ooh...

I wonder if you'd be able to add Ketojan with this? If it ends up possible.

#3
bluecuban

bluecuban
  • Members
  • 211 messages

Crimea River wrote...

Ooh...

I wonder if you'd be able to add Ketojan with this? If it ends up possible.


Yes, technically Ketojan does have his own Designer Creature .utc, so making him playable would be possible.  The trick I'm having is knowing how to assign/generate an OBJECT_ID that would also correspond to him.

For now I've been focusing on trying to turn Gascard Du Puis or Charade into party members.  If I can get them working, pretty much anything/anyone else shouldn't be too difficult.

#4
Crimea River

Crimea River
  • Members
  • 425 messages
Awesome. If you do it, then can use this to turn Ketojan into a companion, I would love you forever! X]

#5
Signo Vir

Signo Vir
  • Members
  • 91 messages
bluecuban, you're probably looking for the packages_base.gda file in 2da.rim

obviously, there's also the necessary changes to the partypicker.gda (also in 2da.rim) and the char_stage.are in al_char_stage.rim. There's also a char_stage.are and char_stage.lst in designerresources.rim, but I haven't looked into which needs changing.

#6
bluecuban

bluecuban
  • Members
  • 211 messages

Signo Vir wrote...

bluecuban, you're probably looking for the packages_base.gda file in 2da.rim

obviously, there's also the necessary changes to the partypicker.gda (also in 2da.rim) and the char_stage.are in al_char_stage.rim. There's also a char_stage.are and char_stage.lst in designerresources.rim, but I haven't looked into which needs changing.


I've been trying to get more data on those in particular.  The problem is I don't have the PC version of the game, so accessing the data is dependent on actually getting a copy of a .gda file to open in the GDA Editor.  I'd welcome anyone assisting with that part, but unfortunately I can't.

My goal is to find a way that through save editing I can also show people on Mac and consoles to do this.  So far I have everything in place to make it happen, but without the .gda files I can't figure out a system for the id's :?

#7
Crimea River

Crimea River
  • Members
  • 425 messages
You would be a hero if you do.

How is it going? I wish there was some way that I could help, but I don't know jack about coding and stuff. xD. I'd gladly beta-test this, however.

#8
DeathStride

DeathStride
  • Members
  • 427 messages

bluecuban wrote...

So, I'm working on being able to add an additional companion to the party.

Firstly, I wanted to ask: how exactly would that work if you added, say, Lilley of the Coterie, to your party? Besides being physically present in terms of gameplay, would she actually say anything, or do anything besides act as a sort of "skin" over an attack-bot?

Secondly, that's really cool that you're working on this, I highly approve and want to thank you for even trying, regardless of whether and how soon you succeed. I'm really not very well-versed, or at all versed, in modding stuff, but good luck!

Modifié par DeathStride, 19 avril 2011 - 06:59 .


#9
bluecuban

bluecuban
  • Members
  • 211 messages

Crimea River wrote...

You would be a hero if you do.

How is it going? I wish there was some way that I could help, but I don't know jack about coding and stuff. xD. I'd gladly beta-test this, however.


All I've been ab;e to successfully do so far is create a new spot in the Party Picker.  Unfortunately I can't seem to make more than one.

I'll probably break down and buy the PC version this week just so I can finally open the .gda files which is the only real thing holding me back from making this work (I hope).

#10
Killjoy Cutter

Killjoy Cutter
  • Members
  • 6 005 messages
Good luck and thank you for trying.

#11
bluecuban

bluecuban
  • Members
  • 211 messages

DeathStride wrote...

bluecuban wrote...

So, I'm working on being able to add an additional companion to the party.

Firstly, I wanted to ask: how exactly would that work if you added, say, Lilley of the Coterie, to your party? Besides being physically present in terms of gameplay, would she actually say anything, or do anything besides act as a sort of "skin" over an attack-bot?

Secondly, that's really cool that you're working on this, I highly approve and want to thank you for even trying, regardless of whether and how soon you succeed. I'm really not very well-versed, or at all versed, in modding stuff, but good luck!


For the moment, my focus is to just try and get a character into the party and be recognized as the character they're meant to be.  In the long run, assuming I can get this to work, it could be possible to make them more interactive.  It would require creating custom audio and then creating a new override link in whatever files her OBJECT_ID adusts to - this would be something I could only see working on PC and not the other platforms.

Thanks for the thumbs up!

#12
Killjoy Cutter

Killjoy Cutter
  • Members
  • 6 005 messages
You know, this project might also provide the key for cracking the Bethany/Carver issue at some point down the line. I'd really like to have two mage siblings together, or two non-mage siblings together, for variety.


Edit:  typo.

Modifié par Killjoy Cutter, 19 avril 2011 - 03:36 .


#13
bluecuban

bluecuban
  • Members
  • 211 messages

Killjoy Cutter wrote...

You know, this project might also provide the key for cracking the Bethany/Carver issue at some point down the line. I'd really like to two mage siblings together, or two non-mage siblings together, for variety.


I have found a sort of workaround solution.  It's not perfect by any means, but it's worked for me so far without any hiccups except the Party Picker looks weird.  So if you can ignore that factor, you might appreciate this.

Using a Warrior or Rogue, get that Hawke through the game up to where you begin your first real year at Kirkwall (after getting into the city).  Now save.

Now, play with your mage up until that same point.  Open up both saves using the pyGFF Editor.  If you go to the SAVEGAME_PARTYLIST > SAVEGAME_PARTY_POOLMEMBERS, locate Bethany under the Warrior/Rogue save.  Select her section (do not expand it) and copy.  Next, go into your Mage save and select the SAVEGAME_PARTY_POOLMEMBERS.  Paste, and you should have her data under the party pool list now.

Bethany is now officially in your party, plays like she would if you were a mage, still has all her dialog in the game (at least that I experienced).  However, Carver will be still be treated as the primary - so for when prepping to go into the Deep Roads he will serve as the primary dialog point.  Personally, I played where Bethany joined the Circle and Carver became a Grey Warden.

We're not done yet though.  Under the party list is a section SAVEGAME_PARTY_APPROVAL.  Inside your mage save, find the entry in there corresponding to your original Bethany (it should have an OBJECT_ID of either 872 or 877, I can't remember off-hand).  Copy and paste it in there so there's a second entry.  Next, change the newly pasted entry OBJECT_ID to match your current Bethany (likely 1071).  And just like that, she has Friendship/Rivalry again.

It's important to do it this way because if you use the OBJECT_ID from before Bethany died in your Mage save, it will not register her properly because for all intents and purposes, that Bethany is dead.  This way, she still has her personal plot points.

Only issue I've had is that in the party picker she gets hog-tied to Carver, but I've still been able to select either one of them.  Also, if you bring her at plot points where it would be her or Carver, then she gets stuck inside him during the scene.  Otherwise, it's worked great.

Sorry it's not a more detailed tutorial, but I'm at work don't have access to my stuff from here, but I'll be happy to answer any questions.

#14
Icy Magebane

Icy Magebane
  • Members
  • 7 317 messages
As far as I can tell, the "templateresref" value determines the character's position on the party selection screen (example gen00fl_aveline)... I can't figure out a way to create any new characters, because gen00fl_meredith, etc, doesn't do anything. I've only been able to replace existing characters... in the case of Bethany/Carver, I'm convinced that they just occupy the same space because of the gen00fl_ is set for that position.  (Edit:  I guess it also is used to identify them in cutscenes, based on what you said about having both Bethany and Carver alive).

Also, just so you know, I think the Object ID just refers to the world state... like, it's a value given to each item or character based on when they are recognized by the game. It might be random, or it might count small things like rocks or walls in the environment. I just know that it isn't a set value, because the number is different for specific characters in different character save games.

Maybe you'll find some of that info useful... I'm at a loss.

Modifié par Icy Magebane, 19 avril 2011 - 03:32 .


#15
Crimea River

Crimea River
  • Members
  • 425 messages
You're using the XBox one? Wow. I hope you do get the PC version. In the meanwhile, I could supply you with the GDA files and then if you walk me through it I could betatest it; which ones do you need.  If you have AIM/YIM/MSN that'd be better to discuss this through if we can do that.  ^_^

All I really want is Ketojan in my party, recognised as Ketojan and be selectable from the character selector. I want him to, of course, be a mage. And have a healing spell among his spell options for sure, unlike Merrill. I don't need voices or dialog or anything like that -- I can just imagine that when I bring him along. Would the extra companion be added via editing saves with the GFFEditor?

Modifié par Crimea River, 19 avril 2011 - 06:58 .


#16
bluecuban

bluecuban
  • Members
  • 211 messages

Icy Magebane wrote...

As far as I can tell, the "templateresref" value determines the character's position on the party selection screen (example gen00fl_aveline)... I can't figure out a way to create any new characters, because gen00fl_meredith, etc, doesn't do anything. I've only been able to replace existing characters... in the case of Bethany/Carver, I'm convinced that they just occupy the same space because of the gen00fl_ is set for that position.  (Edit:  I guess it also is used to identify them in cutscenes, based on what you said about having both Bethany and Carver alive).

Also, just so you know, I think the Object ID just refers to the world state... like, it's a value given to each item or character based on when they are recognized by the game. It might be random, or it might count small things like rocks or walls in the environment. I just know that it isn't a set value, because the number is different for specific characters in different character save games.

Maybe you'll find some of that info useful... I'm at a loss.


I do believe you're right about the "templateresref" value having to do with party picker locations.  Messing with those designer creatures values helped me get a new position in it.

Problem is, even when you do that, it still recognizes the character as being someone else (so changing it to a Golem still says it's Bethany, etc.  Based on everything I've been editing, it seems those names are being linked to the Object_ID.

#17
bluecuban

bluecuban
  • Members
  • 211 messages

Crimea River wrote...

You're using the XBox one? Wow. I hope you do get the PC version. In the meanwhile, I could supply you with the GDA files and then if you walk me through it I could betatest it; which ones do you need.  If you have AIM/YIM/MSN that'd be better to discuss this through if we can do that.  ^_^

All I really want is Ketojan in my party, recognised as Ketojan and be selectable from the character selector. I want him to, of course, be a mage. And have a healing spell among his spell options for sure, unlike Merrill. I don't need voices or dialog or anything like that -- I can just imagine that when I bring him along. Would the extra companion be added via editing saves with the GFFEditor?


I appreciate the assist, but I actually went ahead and got a copy of it today so I can try and go through all the files.

For now the plan is to use the pyGFF Editor to edit and copy characters over.  Technically though, if I can get this to work then anyone should be able to expand on it for PC to add even more characters by editing .gda files to make multiple party picker slots.

#18
Icy Magebane

Icy Magebane
  • Members
  • 7 317 messages
You can change the new character's name by editing the line that says "SAVEGAME_OBJECT_NAME." Uncheck "zero-terminated" and select "empty string." I simply changed the last digit of the number that's in the box to the right of that. I don't know if any of that is necessary or not, but it worked for me. Then, simply enter whatever name you want in the box. It should show up in the game once you're finished editing.

Good luck with this... it's too frustrating for me atm.

#19
Crimea River

Crimea River
  • Members
  • 425 messages
Awesome. Didn't know how long it'd take for you to get the PC game, so I offered to. ^_^ I'll still excitedly test it once you figure things out. I'm really looking forward to this; it's something I've wanted greatly. Thank you for looking into it, and good luck!

#20
bluecuban

bluecuban
  • Members
  • 211 messages

Icy Magebane wrote...

You can change the new character's name by editing the line that says "SAVEGAME_OBJECT_NAME." Uncheck "zero-terminated" and select "empty string." I simply changed the last digit of the number that's in the box to the right of that. I don't know if any of that is necessary or not, but it worked for me. Then, simply enter whatever name you want in the box. It should show up in the game once you're finished editing.

Good luck with this... it's too frustrating for me atm.


Thanks for letting me know!  I tried it out and it definitely will be helpful when trying to add a different character.:)

For now though it doesn't seem to like me keeping a current party member, and trying to double-up on it with a secondary entry that might share a similar OBJECT_ID.  It's frustrating, but hopefully soon I'll have something more to update on.

#21
Ehlesgens!

Ehlesgens!
  • Members
  • 107 messages
It seems very interesting :D How do you create new character ?? 'Cause it would be very interesting to do :D !!

#22
bluecuban

bluecuban
  • Members
  • 211 messages

Icy Magebane wrote...

You can change the new character's name by editing the line that says "SAVEGAME_OBJECT_NAME." Uncheck "zero-terminated" and select "empty string." I simply changed the last digit of the number that's in the box to the right of that. I don't know if any of that is necessary or not, but it worked for me. Then, simply enter whatever name you want in the box. It should show up in the game once you're finished editing.

Good luck with this... it's too frustrating for me atm.


I tried testing out messing with the SAVEGAME_OBJECT_NAME, but every time I do, no matter how I go about it, the pyGFF Editor always crashes on me and can't export a proper save.  Did you have a similar issue and were able to work around it by any chance?

#23
Icy Magebane

Icy Magebane
  • Members
  • 7 317 messages

bluecuban wrote...

Icy Magebane wrote...

You can change the new character's name by editing the line that says "SAVEGAME_OBJECT_NAME." Uncheck "zero-terminated" and select "empty string." I simply changed the last digit of the number that's in the box to the right of that. I don't know if any of that is necessary or not, but it worked for me. Then, simply enter whatever name you want in the box. It should show up in the game once you're finished editing.

Good luck with this... it's too frustrating for me atm.


I tried testing out messing with the SAVEGAME_OBJECT_NAME, but every time I do, no matter how I go about it, the pyGFF Editor always crashes on me and can't export a proper save.  Did you have a similar issue and were able to work around it by any chance?

Okay, so this is what I've been able to do...  I was trying to create Ketojan using the refID from the txt file that came with my GFF rar.  I had to use a basic saarebas model because I did not have access to the actual "Ketojan" model.  Anyway, this character pretty much crashed the game when I tried speaking to him... it initiated his beach dialogue while inside the Keep, and once that was done, Hawke was... outside the map.  I tried this with a non-Ketojan saarebas and a rage demon.  In both cases, the game froze when I tried to access the level up or inventory screens...

The only success I've had is with adding Charade and Flemeth.  Using "one140cr_charade" and "gencr_bloodmage_f," these characters were added in their own slot, right next to Merrill and in front of Hawke (I only added them one at a time btw... trying to add 2 didn't seem to work).  I was able to change their names using the method I told you about, and used... I think I was using Sebastian and Merrill as the basic copied templates, making changes to the appearance and skills...  I had no problem with freezing when I accessed level up and inventory, although giving them weapons got a bit tricky.

Now, the problem with this is that every templateresref that does not already correspond to a party member seems to be classified as a "creature."  Meaning, their skills and even basic attacks are coded differently from what party members can do.  So Charade could not use even the most basic archery abilities (Sebastian's "Guardian Angel" worked fine for some reason), and any rogue talents looked quite strange and rarely affected the monsters I tried to use them on.  The same goes for Flemeth.  I gave her a staff and mage talents, but she wouldn't use the normal "spinning staff" or projectile attacks...   All magic spells seemed to be broken, probably due to the fact that creatures use different ability sets than companions.  Maybe you can figure something out, since you have access to the .gda files?  Can you alter any of the basic creature abilities or set them to be identified as "companions?"

My only truly successful creation is an "undead" version of Carver that replaced Bethany when she died in the Deep Roads.  Again, the only reason this even worked is because the templateresref is already linked to a party member.  I changed his name with no problems and gave him a basic templar model body (full helmet and whatnot to hide his identity).  Since he's dead, he doesn't interrupt conversations or anything, but he does have battle cries...   When you click on him, he says, "It's like I'm cold, straight through... and I can hear... something."  Heh... creepy stuff.  But anyway... getting way of track here.

Here's a question... any idea how to turn off a party member's scripts?  I want to replace Isabela with a Saarebas or Qunari warrior for Act 3, but I don't want the headache of that character using Isabela's voice, interrupting conversations, party banter, plots, etc... Carver only works because he's dead anyway.  No cutscenes to intrude upon (we'll see about that... haven't yet reached the Grey Warden scene at the end of Act 2).

But back to your actual question, it's possible that you tried something that caused the game to freeze, like using templateresrefs that are incompatible with the system (as in the saarebas and rage demon examples).  Other than that... changing the name should always work.  I think it's something else that went wrong.  Hell, even with all I wrote, I had even more problems that I can't recall atm.  It's a tricky process all around... sometimes it's hard to tell exactly what tinkering caused the crashes.  Just test it on something basic at first.  Change just one character's name and see if it works.  

Alright...  I know that's a lot to read, but maybe something in that is useful.

#24
Crimea River

Crimea River
  • Members
  • 425 messages
So, it's not like just adding a character -- for example -- with the name Ketojan and mage abilities and the "Qunari Slave Mage" model, but the actual character?

And if you successfully manage to replace Isabela with a Qunari/Saarebas (Saarebas being the one I'd want most...wanting a mage who's not an Abomination or a Maleficar for one of my chars, lol), let me know how to do it. 'twould be awesome (It'd be possibly even if you send her off with the Arishok, right?) LOL a Qunari using Isabela's voice.

#25
Icy Magebane

Icy Magebane
  • Members
  • 7 317 messages

Crimea River wrote...

So, it's not like just adding a character -- for example -- with the name Ketojan and mage abilities and the "Qunari Slave Mage" model, but the actual character?

And if you successfully manage to replace Isabela with a Qunari/Saarebas (Saarebas being the one I'd want most...wanting a mage who's not an Abomination or a Maleficar for one of my chars, lol), let me know how to do it. 'twould be awesome (It'd be possibly even if you send her off with the Arishok, right?) LOL a Qunari using Isabela's voice.

Yup, that's the intention... send her off and then re-use her templateresref for a soldier the Arishok leaves behind to help Hawke's team.

I just tried this and it works… so here’s what you need to do (this was done on an Act 3 file where Isabela had been turned in):
- copy and paste a character from POOLPARTY MEMBERS. I used Merrill because she’s already a mage and it’s easy to change the ability list to whatever you want.
- change the templateresref to “gen00fl_isabela” remember to change the Object ID… adding a 1 at the end seems to work well enough. If you don’t change this value, no matter what you are editing, the item or char won’t show up in the new file.
- change the SAVEGAME APPEARANCE TYPE and ORIGINAL TYPE to 21302 (Saarebas model code). Creature models tend to overwrite any faces, but just so you know, I changed the gender to 1 and set the face to hm_anders.
- change all the existing items equipped on this character by adding a 1 at the end of each Object ID. That way, the character is already equipped… or just add whatever new items you want. Companion Armor is specific to characters, so I gave Ketojan Isabela’s Easter Seas gear. Give it whatever effects you want, but the basic code is “gen_im_fla_isabela_02”. I made the Isabela restriction stick, and gave upgrades based on what she normally gets, just so the test wouldn’t be compromised…
- you can change the name to whatever you want using the method described earlier in the thread…

lol… still can’t get rid of Isabela’s party interactions, but I was just treated to a saarebas getting wasted in the Hanged Man. :P The game seems to have reset Isabela’s Act 2 quests to active… well, whatever, it’s a start. This character was an actual mage and all abilities seemed to work perfectly (meaning, Ketojan uses Hawke and companion animations, not creature animations…)

The party selection screen is also hilarious... a saarebas standing with his hands on his hips... lol...

Still not sure how to create a brand-new team member that isn't classified as a "creature..."  There don't seem to be any non-creature templateresrefs that aren't already used by existing companions.  Still, access to the codes for creature abilities might make even that method useful for creating at least one new member.

Final Edit:  Yeah I just realized that file was actually from Act 2, in a game where Hawke had never met Isabela... so I have no idea whether or not her quests for Act 3 are availible if you turn her in.  Anyway... just felt I should mention that.

Modifié par Icy Magebane, 22 avril 2011 - 07:41 .