Jump to content

Kvellen

Members
  • Posts

    305
  • Joined

  • Last visited

  • Days Won

    3

Everything posted by Kvellen

  1. Unfortunately yeah. The only other option would probably be opening both files in a text editor, comparing the differences and manually merging changes from one into the other to make a best of both worlds. But that does require some level of familiarity with the structure of the file format and a lot of patience. I meant "unwieldy" in the sense that having to scroll around a lot of mods can sometimes be a bit tedious. I only bring it up as you mentioned you are planning to install a lot of mods. Should do. I haven't used it very extensively but it was good to have as a fallback a few times.
  2. As discovered by Defaault on reddit, there is a bug where all equipment on a character will disappear if the character is wearing Strand of Favor and is hit by the spell Form of the Helpless Beast. The above video uses a modified version of Form of a Helpless Beast to demonstrate this, but otherwise this bug is vanilla behaviour. From what I can tell it seems to be caused by -10% Hostile effect duration from the Ward of Favor enchantment reapplying as the spell wears off. I've test a few other items that do reduce Hostile effect duration and Arcane Containment on Cabalist's Gambeson is the only one I have found that also causes this bug. Things like Lone Wolf on Ring of the Solitary Wanderer seem to be safe for whatever reason.
      • 1
      • Like
  3. Probably better if I reply in this thread, rather than the Any way to make companion idle poses available for player character. Of my mods Deadfire Collected Fixes is probably the mod that's most likely to conflict, since it makes a lot of changes to .conversationbundle files that don't support partial edits. If you have any question about compatibility with specific mods let me know! (Everything contained in this spoiler tag was written before I saw your recent posts so you are probably already aware of what I was trying to explain in it.) If you need to rearrange mods and the in game mod manager is a little unwieldy with how long mod list has got, you can also use the "modconfig.json" file that is generated when loading the game to rearrange the load order of mods. For windows this is located under: %userprofile%\appdata\locallow\Obsidian Entertainment\Pillars of Eternity II\modconfig.json It'll look something like this: { "Entries": [ { "FolderName": "Silent Corporate Logos", "IsLoadedFromSteamUGC": false, "Enabled": true, "AbsolutePath": "G:/GoG Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/override/Silent Corporate Logos" }, { "FolderName": "PoE2-EnhancedUserInterface", "IsLoadedFromSteamUGC": false, "Enabled": true, "AbsolutePath": "G:/GoG Games/Pillars of Eternity II Deadfire/PillarsOfEternityII_Data/override/PoE2-EnhancedUserInterface" } ] } Each entry is contained between a set of {curly braces}, and moving it up and down is as simple as cut & paste. Make sure you have a comma after closing curly brace} of each entry, with the exception of the last entry. So the majority of Deadfire mods on nexus are mods that change gamedata. The file format used for gamedata (.gamedatabundle) support partial edits. What this means is if a modder wants to change specific things, like say making a Combat only ability available outside of combat, they only need to include the lines relevant to the change in a .gamedatabundle in their mod folder. When the game loads it will override just the changes made by this file, and for anything unmodded load the default values. So as long as the gamedata mods aren't changing the same lines, and the modders have followed best practices and aren't including unnecessarily lines of default values, gamedata mods are less likely to conflict. However this is not the case with mods that make changes to things like conversations as the files responsible (.conversationbundle) don't support partial edits. So even when making a very minor edit, like say adding a script to give the player money, the modder must include all unmodified contents of the file as well. Otherwise their changes won't function. This means there will always be an override conflict if multiple mods make changes to the same .conversationbundle file, and whichever one is lower in load order will be the one that wins out.
  4. .character files are used by the game to load premade characters into the game. The file is pretty much a .zip file of a sort. Anything that can open those (7zip for example) can open it. It contains these 3 things: "gui" folder - matches the folder structure of the portraits folders, contains the 4 images that make up the character's portrait. a .objsav file - Basically a snap shot of the character object. I think... "manfest.json" - A json file containing information on the character. Not sure of anywhere except .savegame files (which can also be opened in the same way described above), where .objsav files are use. And sadly not aware of any program that can open them. Which is a shame, as depending on what they actually contain there would likely be interesting applications if they could be modified. External character generators for example. Otherwise the "manfest" file can be opened in any text editor. It's use seems the be primarily to populate the information seen in character creation or recruitment screen at an inn. As well as when uploading the character to the Steam Workshop. This is my best guess for what each property of the file is is (??? = Unknown): "Version": 1, - ??? "Name": "", - The name of this character. "InstanceID": "", - The GUID for the instance of this character game object. This matches the name of the .objsav file. "Stats": {}, - The respective attribute scores of this character before any race and culture modifiers. "Subrace": "", - The GUID for the subrace of this character. "Gender": 0, - The gender of the character. 0 = male, 1 = female. "CharacterLevel": 1, - level the character is when they are exported. "Classes": [], - The GUID\s of the class/classes the character has. "SmallPortrait": "", - Directory of the small "_sm" portrait used by this character. "LargePortrait": "", - Directory of the large "_lg" portrait used by this character. "IsFromCheatGame": false, - Whether "IRoll20s" was used to activate cheats in the game this character was exported from. "ContentType": 1, - ??? "SteamItemID": 0, - Likely the "Author": null, - name of the author. "DefaultVisibility": 0 - ???
  5. I'm glad you're still at it! From what I understand of a thread by Fhav6X the specific textures and the meshes that make up the appearance of an item are also stored in .unity3d files as well. These are then reference in a .asset file (also in the .unity3d file) that links them together. The .asset and it's location within are what are then referenced for an equippable item on "ModelVisualDataPath" field. At least that is my understanding of it.
  6. There are a few weird quirks in the .chatterbundle files that Apotheosis generates. The only potentially serious one is that adding a chatternode from a parent file doesn't seem to be adding it to "AudioLookup" list. Otherwise it's all pretty minor stuff that isn't affecting the functionality of chatter from what I can tell. Like the "Audiolookup" will rearrange when new nodes are added to existing chatter. This sort of thing happens: "AudioLookup": { "22": "ability_cast_interrupted_0022", "80": "ability_cast_interrupted_0080", "97": "ability_cast_interrupted_0097", "40001": "attack_40001", "40002": "attack_40002", "40003": "attack_40003", "10001": "barbarian_shout_10001", "28": "battlecry_0028", "29": "battlecry_0029", "30": "battlecry_0030" And that I'm still not quite used to the order of things on chatternodes being different what they usually look like in Deadfire. Weirdly... Close to how "TalkNodes" are laid out for .conversation files in PoE1... What's with that? Anyway, I can work these issues, thanks a lot Noqn!
  7. Hey, I took a quick look over it. The Fleshrender_Weapon.gamedatabundle file seems fine, but several of the other .gamedatabundle files you've posted seem to contain instances of incorrect and missing parameters. A few examples: Fleshrender_StatusEffects.gamedatabundle, None of the following seem to be status effect properties: https://eternity.obsidian.net/game-data-formats/components#statuseffectcomponent "TickInterval", "TickEffectValue", "StackingType", "ApplicationEvent", "AffectedStat", "DamageType", VisualEffectID" Fleshrender_EnchantRecipes.gamedatabundle, each entry starts with the header "ItemEnchantmentGameData" which isn't a valid gamedata type from what I can tell. Fleshrender_Enchantment.gamedatabundle has similar problem with the "StatusEffectItemModComponent" header. I'm not really sure how this happened, did you use an old mod as the basis for your mod maybe?
  8. Found another chatter specific issue. When Play Type is set to Random or CycleRandom on a node it's links aren't getting random weight set. Which seems to prevent any of the linked nodes playing at all. Dove into the chatter editor a little more just now and it's looking superb! Was able to remake something that in the past took me several days of tedium in just under an hour! Really fantastic feature! Was going to say this would make a great addition to conversations as well. Even better that you've set it to play a .wem off of nodes using Exterior VO as well! Great work!
  9. Thanks a lot, I'll give this a proper look when I can! A quick glance, I did notice these 2 things: ScriptNodes in the chatter editor seem to be missing the Persistence and Play Type dropdowns menus. I'm not sure if Persistence is actually used in chatter, but one key place PlayType is used on a ScriptNode specifically is Selected chatter. If you take a look at companion and player chatter for this event you'll see that they all start by linking to 2 ScriptNodes. The first is for playing only the rare Humorus lines only when the character is clicked 15 times, and the second the more common selection lines that play otherwise. The PlayType on each 2 ScriptNodes needs to be able to be set to random play the nodes they are linking to. Otherwise it will only ever play first line from each. In the exported .chatterbundle files "Links": [] seems to be higher in the order of node parameters than normal. I haven't actually tested to see if this prevents it functioning but it stuck out to me when comparing to normal chatter.
  10. Pissed off Pale Elf. Gave it a shot. Source: PoE Aumaua Mage By I2ebis And the original as well:
  11. Intriguing! Honestly using an Adventurer as a stand-in to prototype the Items, voice set, and dialogue is a pretty good place to start such a project! As you'll be able to see how these all work in game. I don't know if this is what you are asking about, but a ModScriptHook that triggers the StartConversation script might be what you are looking for. Though be aware this has the limitation of only launching at the start of a level loading or on loading the game from a save. I'd recommend looking into Apotheosis if you haven't already as that tool, amongst making modding Deadfire in general a easier, takes a lot of the headache out working with the game's scripting. Additionally the conversations editor is the best thing available for modding Deadfire's conversations as it's closer to how Obsdian's narrative designers actually worked with dialogue. I could write up an example of a simple scripthook that triggers a conversation if that would be helpful? Yup! I mentioned a bit about the naming convention for audio file related to conversations in my second post of this thread. If you have any question about this let me know! The "InspectOnUseButton" on items is the only way I'm aware to get player input to launch the StartConversation script. Indeed. Once a conversation is launched it can go on for as long as needed. Or get stuck in a loop forever if you're like me and forgot to put in an exit while testing... Correct. Linking a conversation to any character is not directly supported. Correct. The contents of maps aren't modifiable and the only way to spawn a character into scene is with a console command that requires their prefab to already exist in the games asset files. As I mentioned this can be done with a ModScriptHook that runs only on map/game loading. Otherwise there are a few conversation that are triggered for various points of interest that can be used to have a bark play just like other companions. I don't know if this is possible. It's not something I have looked into myself. I would guess this would require making additions to one or more of the .unity3d files. "character_hd.unity3d", "character_headandskin_hd.unity3d", or "characters.unity3d" maybe? Which isn't something I've seen in any Deadfire mods.
  12. Sadly there are a number of technical limitations and hurdles that would need to be overcome first to do that. Which aren't really possible with the built in modding support, and I'm honestly not well versed in advanced forms of Unity engine modding to know if it's possible at all. The Adventurer Character Object (know as a "prefab" in Unity I think) that all Adventurers share doesn't support being talked to, as it completely lacks a component called "NPCInteraction" responsible for that interaction. This is what enables interaction with companions through the "Talk To x" button and on clicking on an npc. Which will point to a designated conversation GUID and load it when triggered. There is a very hacky way to add the "NPCInteraction" to an Adventurer, and doing so shows the "Talk To x" button. Though it's completely non-functional sadly. As for getting the character to spawn into a scene. I don't even know where to start. The good news is that if someone were to figure out how to get around these hurdles everything else touched on in this thread is already supported by the game!
  13. How does this work for things like the Player voice sets, where 2 speakers share the same chatter?
  14. Oooo that's look great! Have had a few projects I have been putting off due to drudgery of making manual edits to .chatterbundle entries. Thanks a lot for the break down, this does confirm a lot of assumptions I've had over the years on how these files worked! The need for a manifest entry isn't something I have come across though. The couple of new chatters I have made from duplicating existing ones then generating a new GUID, have seemed to function without the need for one. Additionally in my experience .chatterbundle files seem to have no need to maintain the same directory structure as their origin file. I wonder if maybe the need for a manifest entry is some vestige from Deadfire's development. Like the "ConversationType" having 2 states: "0" for Conversations, or "1" for Chatter. But this never seeming to be used in conversations from what I have seen. Maybe at some point conversations and chatters once shared a filetype and structure? The stringtables always seemed an odd inclusion to me when I was looking at .chatterbundles purely as voice sets. With the knowledge that a lot of the ambient townie barks comes from chatter it make more sense. I'm still not really sure what function the "generic" stringtables serve in game though. The thought of chatter appearing as text in game would have been a bit of a nightmare!
  15. Ah I thought I had remembered there being a version of it on rest. Annoyingly on-rest scripts are located in an ".assets" or sometimes a "level" file. Unless they have a referenced to a globalscript/globalexpression it's not something that Apotheosis is capable of editing. And as far as my experience goes, even with a tool like UABE that can open assetbundles, such files seem prone to corrupting or are very finicky to make alterations to. Removing the script setting "b_Xoti_Nightmare" from the Gaun statue conversation would have been my next suggestion. Really my only hesitation in suggesting it first, would be that doing so makes it so that once that conversation has played the next step in Xoti's quest becomes reliant on the mod to progress. All things considered though, it's the best solution. I would suggest moving your script for Magran's teeth completion to a mod scripthook instead. That way you'll avoid the possibility of conflicts arising from other mods that make changes to Xoti's hub. Great idea for a mod by the way! The pacing of Xoti's quest has always struck me as pretty bizarre.
  16. I remember ranting to a friend who had played through each game on Path of the Damned about how frustrating this bug was. Expecting him to know what I was talking about. His response "I never saw that". Turns out the mad man didn't use any AI behaviours and just micro manages every attack his party makes...
  17. Hey @Larena27, I've looked at somethings around Xoti's quest before. Did you try adding the condition on Conversation Tigger node "403" of "companion_cv_xoti_main"? That's what seemed to start the conversation that leads into the final parts of the quest when I was looking into it. Though maybe there is another place it can trigger like after a rest? If that's the case it could be tricky to alter as, just like Conversation Tigger nodes, scripts will ignore any condition on whatever node it points at by design.
  18. My pleasure! I use a tool called Apotheosis, that organises all the exported gamedata and text in every supported language into a gui interface that can be searched through more easily. I looked in the ItemMod section for "Champions_relic", which lead me to the status effects responsible for the bonus. There there is a parameter of status effects called "OverrideDescriptionString" that's been used to overwrite the text in this instance. That's where the reference ID was. I noticed the issue with the Replacement Token by swapping between "English" and "Francais" from a dropdown.
  19. Really looking forwards to the crafting changes especially, it's the main thing that's keeping me from seeing this game through to the end. Had a bit of trouble with reading the text in that image. This is what's it says for anyone needing to zoom in: Spring - 2025 NOW LIVE Arachnophobia Safe Mode Mouse and Keyboard Support for Xbox Fog of War Improvements More Gold and Crafting materials Soul Pods will now dispel illusions Unique gear improvements Summer - 2025 Cooking and Crafting improvements New NPC abilities and behaviors New active and passive abilities New Unique weapons and armor Custom Map markers Fall 2025 New Game Plus Photo Mode New weapon type Changing appearance in world New character presets More Godlike feature presets
  20. Yup, the game should automatically replace {0:extravalue:percent} with a "3%" from the status effect gamedata just like it does elsewhere. That's pretty much where my knowledge of this stuff extends haha. Not sure where exactly in the game data it's getting this value from... just that this seems to be how it works. That said if you run across any other instances of something not functioning across the localisations I'll be happy to take a look!
  21. What seems to be the root of the problem is that the wrong Replacement Token was used in several of the Deadfire's translations. A replacement token is basically a small bit of code in the text string that's dynamically filled with a specified bit of information sourced from the gamedata the text applies to. Such as adding a numerical value. This allows for the game to reuse a single piece of text "{0:extravalue:percent} Melee Damage for each Engaged target" for each possible instance, rather needing multiples copies. Anyway, that is all to say that in this instance the French translation for this text incorrectly uses {0:value:percentbonus} instead of {0:extravalue:percent} which is why the value in game is shown as 0%. "statuseffects.stringtable" and the entry with the mistake seems to be "204". Something like this should work: <Entry> <ID>204</ID> <DefaultText>{0:extravalue:percent} aux dégâts de corps à corps pour chaque cible engagée</DefaultText> <FemaleText /> </Entry> The "Ennemis engagés +2" part will come from another stringtable entry which the game combines with the previous entry at runtime. I can't find the ID for it at the moment, but I'm pretty sure it is possible to override it. If that's something you need to make changes to let me know and I'll try to track it down.
  22. Weird at what point does the "End Conversation" button appear? Is it just after this text: If that is the case, what Background (Laborer, Colonist, etc) did you pick at character creation? The text that is supposed to play is different depending on this. Could be that it isn't account for for some reason.
  23. Deadfire only has <DefaultText /> and <FemaleText /> entries in all it's .stringtable files. Which are used for reactivity to the player's choice of gender in character in creation. Interestingly there is a "Neuter" gender in both Pillars of Eternity games. But is only ever used by creatures and maybe the occasional npc. It isn't implemented to be applicable to player characters from what I have seen. That would be my own assumption as well. Most likely the result of a more recent addition made to OEI Tools (the internal tool used by Obsidian) for use in Avowed, Outer Worlds 2, and future Obsidian games. And not really indicative of any specific plans for a Pillars games.
  24. To be fair I was staring at that previous post for quite a while before I saw anything that looked different. No one outside of modders is really all too familiar with stringtable entry structures I guess It is an interesting find! Though searching through the files there are no instances of the populated <GenderNeutralText> . So perhaps part of an initial set up for the option that'll be patched in alongside the Turn-based mode? Or maybe just something the OEITools puts into the .stringtable files now as a result of updates to the tools made to account for the option in Avowed.
×
×
  • Create New...