Jump to content

Kvellen

Members
  • Posts

    269
  • Joined

  • Last visited

Everything posted by Kvellen

  1. Looking over the files, the Basic mod does add some new text entries to the game. (these are known as "strings"). These are stored in the files ending in ".stringtable". Which are found in "CommunityPatchBasic"->"localized"->"en"*->"text". There 3 files that the "Basics" mod makes additions to: abilities.stringtable (Contains "17" strings of text) gui.stringtable (Contains "4" strings of text) statuseffects.stringtable (Contains "10" strings text) *The folder for each language is a 2 letter folder. E.g. "en" = English, "de" = Deutsch. Actually getting a translation in game is pretty simple, and really the hard part is in translating the text. You can look at some of the translations already in the mod for examples. But you can setup the French localisation folder in the mod pretty simply by: Opening the "CommunityPatchBasic" folder. Navigating to "localized". Copy & Paste the "en" folder to create a duplicate of that folder. Rename the duplicate "en" folder to "fr". Which is the 2 letter folder code for French text. Navigate from fr->text->game open a .stringtable file in notepad (or your code editor of choice). Translate every instance of text between <DefaultText> and </DefaultText> Save your changes. Repeat for all instances. An example using Google translate on the "gui.stringtable" : <?xml version="1.0" encoding="utf-8"?> <StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <Name>game\gui</Name> <Entries> <Entry> <ID>2836</ID> <DefaultText>&lt;b&gt;Bonus&lt;/b&gt; Gagnez des blessures grâce aux dégâts des armes de mêlée infligés. (Ne compte pas les capacités) &lt;b&gt;Pénalité&lt;/b&gt; Ne peut pas gagner de blessures grâce aux dégâts reçus. Le seuil requis pour gagner des blessures est augmenté.</DefaultText> <FemaleText /> </Entry> <Entry> <ID>1154</ID> <DefaultText>quelle que soit la santé de la cible</DefaultText> <FemaleText /> </Entry> <Entry> <ID>2128</ID> <DefaultText>{0} sur une attaque réussie</DefaultText> <FemaleText /> </Entry> <Entry> <ID>3810</ID> <DefaultText>sur une attaque réussie</DefaultText> <FemaleText /> </Entry> </Entries> </StringTableFile> Once you are done you could send it to MaxQuest to include in an update, or post it yourself to Nexus mods as a "Translation" .
  2. The items are present in the game's files so can be accessed pretty easily. A mod called "Backer items and Cosmic pets" adds these item like other promotional items: https://www.nexusmods.com/pillarsofeternity2/mods/499 Otherwise there is adding the items using the console. I read somewhere there are special console commands for adding these particular items to your inventory that won't require disabling achievements. But I can't seem to find them... So the only method I know of would require enabling cheats with the "IRoll20s" in order to input the following for each of the items: GiveItems LAX00_Torch_U_St_Droggas_Skull 1 GiveItems ITEM_PET_Bird_Seagull 1 GiveItems SHP_UP_Flag_Obsidian 1
  3. Really excited to see this getting a new update! Always looking for an excuse to dive into one of my all time favourite RPGs! Edit: I might be getting a head of myself, but I noticed that the game doesn't seem to generate a Output_log.txt file that I could find. Is there a specific file we should be sending when we encounter a bug?
  4. I believe it is, though PoE1 doesn't have modding support in the same way Deadfire does. So involves a different approach that is a lot more technical. Such as making changes to files inside one or more ".unity3d" files. Or even making alterations to the C# code in one of the ".dll" files. Personally I've had no luck with either approach to modding, as much as I've tried.
  5. No problem, glad you got it to work!
  6. From what I can tell, basically this conversation triggering on every rest is due to a scripting mistake. The conditions for the script are the real problem, but also there is a quirk with how the script starts the conversation on a specific node that is further contributing to it repeating when it shouldn't be. I've gone into more of the details for anyone interested under the spoiler tag, but the Tldr; is: The script is packed in a file making it inaccessible to modding. There are some very lax conditionals (a succession of true/false statements) that won't stopping it playing after each rest. When the script plays it starts the conversation on a specific node (a "node" is basically, the base of a branch on the conversation tree), which ignores a potential fallback that could have been used to cancel the conversation before it starts. I've attached a mod that should fix the issue for those who are experiencing it. To install the mod: Download the attached zip file and unzip it. Place the "Eder x Iselmyr Fix" folder into the "override" folder. The "override" folder can be found in the "PillarsOfEternityII_Data" directory located somewhere like: Steam: "C:\Program Files (x86)\Steam\steamapps\common\Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\" GoG: "C:\Program Files (x86)\GOG Games\Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\" I looked into this issue after your post. It sounded bad, but I had no idea how bad until I actually tested and tried to fix it! Not an easy one to fix and having to skip through 34 lines of fully voiced text after every rest is pretty terrible fate. So I can understand your taking such drastic action to make it stop! EderAlothRestLoop_Fix.zip
  7. Sorry I could definitely have been clearer with those instructions. The modded .gamedatabundle needs to go inside of a new folder in "override": Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\override\New folder So there are 5 abilities in that file that have a "NumberOfCopies": parameter: Mirrored Image (Wizard) Mirrored Image (Priest of Wael) Mirrored Image (Trickster) Reflexive Mirror Wizards Double Each of these can be edited to set the number of copies. I can't tell which of them you are changing in the screenshot, but If it is the first one to comes up in a search it is likely to be the Priest of Wael variant of Mirrored Image. Really though, I wouldn't advise modding the game by making changes directly to the base .gamedatabundle files as these can be difficult to reverse if something breaks. Using the "override" folder to change bits of data is a lot less destructive!
  8. Hey! So instead of making changes directly to the .gamedatabundle files in "exported", Deadfire allows you to make non-destructive changes to the specific lines creating a modded .gamedatabundle that is placed into a folder in the "override". So to apply the changes in the above post: Copy & Paste the code from my previous post into a Notepad. Save it as something like "mirror_image_fix.gamedatabundle" (make sure there is no ".txt" at the end!) Create a new folder inside of the "override" folder: Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\override if the "override" folder doesn't exist create it. Place the "mirror_image_fix.gamedatabundle" file into your new folder.
  9. Stealing this from another thread on the topic. { "GameDataObjects": [ { "$type": "Game.GameData.MirrorAbilityGameData, Assembly-CSharp", "DebugName": "Mirrored_Images", "ID": "9271c114-1219-48b0-a3b0-fd669a781441", "Components": [ { "$type": "Game.GameData.MirrorAbilityComponent, Assembly-CSharp", "NumberOfCopies": 2 } ] }, { "$type": "Game.GameData.MirrorAbilityGameData, Assembly-CSharp", "DebugName": "Mirrored_Images_Wael", "ID": "9c59f7e6-6593-4d2e-bc55-4e2afc7810b2", "Components": [ { "$type": "Game.GameData.MirrorAbilityComponent, Assembly-CSharp", "NumberOfCopies": 2 } ] }, { "$type": "Game.GameData.MirrorAbilityGameData, Assembly-CSharp", "DebugName": "Mirrored_Images_Trickster", "ID": "fb36bb54-5dec-4481-9ed6-1a4c023d7227", "Components": [ { "$type": "Game.GameData.MirrorAbilityComponent, Assembly-CSharp", "NumberOfCopies": 2 } ] }, { "$type": "Game.GameData.MirrorAbilityGameData, Assembly-CSharp", "DebugName": "Reflexive_Mirror", "ID": "6b179cdf-4590-4695-8869-ab33b582c4de", "Components": [ { "$type": "Game.GameData.MirrorAbilityComponent, Assembly-CSharp", "NumberOfCopies": 2 } ] } ] } I set it to 2 here, but you can increase/decrease the number of copies by changing the number next to... "NumberOfCopies":
  10. Sorry to say what with my being pretty terrible at math/probability (and my knowledge of the game as a whole not being great) I'm really not the best person to ask... :S
  11. I'm currently looking at this quest for the purpose of bug fixing, and based on the variables assonated at some point this quest had an alternate route. b_HS_Received_Gift_From_Druids b_HS_Delivered_Gift_To_Okaya b_HS_Opened_Gift Unfortunately these variables seems to be the only references left in the game. So what kind of item this "gift" might have been is really only speculation. Maybe a show of peace like a potted plant? Though personally I'm just picturing a Sporeling in a box that jumps out and kills Okaya when you leave her office Oh wow, I had no idea it was possible to healing the Grove on Motare o Kozi. That's really cool! Will give this issue a look for the next Collected Fixes update. Should be pretty straight forwards to fix!
  12. Yup the outcome of Xoti's quest affects which enchantment is added to her lantern and her ending slide. It was fixed with Patch 1.1.0.0035
  13. So I've managed to get it to work by changing the new node's number from "19" to "11" in Visual Studio. Which was an unused node number (presumably removed by the quest's designer when refining the quest). Honestly though I really have no idea why that worked. However any new nodes past "18" still seem to have the same issue. At this point I not so sure that this is an Apotheosis specific issue as I first thought. Here's the working version should you want to take a look: Hunting_Season_Alt_Working.zip I dunno, I swear every time I try to figure out how the quest system works in Deadfire it really just leaves me baffled... Regardless I'm just going to put it to the side for 2024 to try to figure out. I've also got some feedback that I'll write up then as well. Can't believe this tool has only been around a year! I'm still in awe of how simple this tool has made modding Deadfire! Thanks for all the work your doing on it, hope you have a great New Year!
  14. I think the portraits are defined in one of the assetbundles. Possibly character_hd.unity3d or characters.unity3d ? As far as I know these files can be edited but I haven't ever had much luck with getting edits to assetbundles to work for whatever reason. Otherwise it's likely that whatever assigns portraits to characters is defined in the level files themselves. Which I don't think are possible to edit.
  15. Sure! Hunting Season Alt.zip Yup I am using a script hook to start the quest: if { IsInScene(Player, AR_1507_Bog) and not HasQuestStarted(15_QST_Hunting_Season) } then { StartQuest(15_QST_Hunting_Season) } The animal attack on Sayuka is the only way to start the quest strangely. Though entering Bentbranch Bog does set the "b_HS_Entered_Bog" to "1". Which actually... Now that I'm typing this out that might actually be the issue! Since this variable triggers an event on the original route through the quest... Pretty much my goal with making this alternate route is that it will fix a minor bug that can come from killing the druids before being tasked to. If I can't get it to work there are other solutions I can take like disabling the ability to travel to Bentbranch Bog without Hunting Season active. But at least in theory an alternative quest route seems to me the least intrusive from a player's perspective. And as a plus allows the quest to be completed without needing to go through the RDC faction quest. Oh yeah that would be great! Could you do this for addendums as well? I actually created an alternate description for the quest, but removed it just in case that was the source of the issue.
  16. I'm trying to add a new Objective Node to the quest Hunting Season to make an alternate route to account for the player heading to Bentbranch Bog before the animal attack takes place on Sayuka. I can't seem to get it to work though. The quest seem to start and displays the string for the new Objective in the left hand corner, but shows it with a check mark as if it were just completed. And the quest log displays only the description. The output_log.txt shows the the following error that I believe is connected: Invalid Quest Tracker size! (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) ERROR: Failed to execute compiled script Void StartQuest(Guid). See the following exception. (Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/DebugBindings.gen.cpp Line: 51) ArgumentOutOfRangeException: Argument is out of range. at System.Collections.BitArray.Set (int,bool) <0x000f2> at Game.QuestManager.SetStateVisited (Game.Quest,int) <0x0011e> at Game.Quest.EnterState (int) <0x003b4> at Game.Quest.AdvanceHelper (bool) <0x00ae4> at Game.Quest.Advance (bool) <0x00051> at Game.Quest.Advance () <0x0001e> at Game.Quest.StartQuest (int) <0x0007e> at Game.QuestManager.StartQuest (System.Guid,int,UnityEngine.GameObject) <0x003bd> at Game.QuestManager.StartQuest (System.Guid,UnityEngine.GameObject) <0x0003b> at Game.Scripts.StartQuest (System.Guid) <0x0004c> at (wrapper dynamic-method) System.Runtime.CompilerServices.ExecutionScope.lambda_method (System.Runtime.CompilerServices.ExecutionScope) <0x0007a> at Game.ScriptManager.ExecuteScriptMethod (OEIFormats.FlowCharts.ScriptCall,bool,Onyx.ExceptionMode) <0x002a5> The only way I've found around this is linking to node 5 instead of creating the new Objective Node. This actually functions pretty flawlessly, except for the text in the strings containing mentions of events that don't occur when taking this route. Interestingly looking at the .questbundle in Visual Studio there would seem to be a "AlternateDescriptionIDs": field on a each node. But I can't see that there would be any way to add alternate description IDs to the nodes or really anyway to activated an alternate description on a specific event node.
  17. Sorry for the late reply. I don't think I have encountered something like this in any of my playthroughs and I can't seem to replicate the bug on my end. Do you know if this happen only on your current character or also when starting a new game? Can you give me some examples of specific weapons that you have noticed this happening on? Are you playing on Realtime With Pause or Turn-based? The modals I tried enabling and disabling were Haymaker, Bewildering Blows and Defensive Strike. And all seem to correctly disable on weapon swap/unequip and reenabled after a small delay when changing back.
  18. You can also put items straight into the player's inventory with: if { not IsInActiveScene(546e5d97-c234-46dc-9439-b23aafc02198) } then { GiveItems(Drug_Svef, 1) }
  19. I think I have pinned down the cause for Fleetmaster Okaya to think there is an attack on Sayuka. Essentially entering the Workshop is where the variable "b_HS_Animal_Attack_Underway" gets set to "1". But only if a few conditions are met, two of which are root of the issue: Hunting Season has not started, and Overgrowth is an active quest. Hunting Season starts once you leave the workshop. However if the Druid Leaders are dead at this point it will cause a sequence break, since the conditions for Hunting Season to actually start as a quest requires them to be alive. Leaving Sayuka (either through one of the city gates or by ship) sets the variable back to "0". But as long as the conditions are met entering the Workshop will always set "b_AnimalAttackUnderway" to "1" again. What I theories happens is that after completing Cignath Mor people here might be heading to the Workshop before speaking to the Fleetmaster Okaya, or are entering the town by travelling to the Workshop from the map. Since the conditions are in effect (Hunting Season has not started, Overgrowth is active) "b_HS_Animal_Attack_Underway" will get set to "1". Thankfully as stated above and by Tipster it is simple to fix just by leaving Sayuka and coming back without going into the Workshop. I'm trying to figure out the right approach for creating a more permanent mod fix for this. Which is tricky since the offending script in the Workshop is hardcoded and can't be disabled or updated to stop the variable from being set.
  20. A version of "male_aumaua_c" without a beard, from a reddit thread. Removing the beard from the portrait kind of makes him look like the Nameless One from Planescape Torment now that I look at it. First portrait is by Anna Helme A facebook post credits the second image to Gerry Arthur. The style looks consistent with theirs, but can't find it in their portfolio. I am one who is among the living, I just usually wait for a few request to pile up and until I've found the original source. Original is Mathias Shaw portrait by Julie "Shuploc" Damgaard Knight 9/9/14 by Danila Kalinin
  21. "BeneficialEffectDurationMultiplier"/"HostileEffectDurationMultiplier", or maybe "StatusEffectDurationAdjustment"/"StatusEffectDurationMultiplier" would be my guess? For refence "Food_roe_SE_BeneficialEffectDuration" from Roe uses "BeneficialEffectDurationMultiplier".
  22. That's certainly a new one. Have you tried "verifying the integrity of the game files"? Do you have any mods installed? Does it look like the menu is reopening when you click accept?
  23. I've always worked under the assumption that once a companion is added to the party, an instance of the character's data at that point is added to the save game. This is then used by the game to load the data it needs and if something is changed with the character in game (changes to their current equipment and gaining of new abilities, for example) it then saves these to the instance of that character that is stored in the game save. This would explain why the game never updates the companions to reflect any changes made to the character data in a .gamedatabundle. I can't test it myself at the moment, but the method suggested by noqn of using a script to remove and then add the companion back into the party is a good bet. As this brings up the class selection dialogue again and seems to set the character back to level 1, it might also update their stats. The mod Reclassify Companions uses this method and would work for testing.
  24. Yup, "Final Maneuverer" being in the quest log is what is causing all 3 of these NPCs to disappear. Essentially the NPCs have a flag that deactivate them upon entering Serpent's Crown with quest in your journal (this is done to prevent them being killed during the quest proper). While it's not possible to remove or modify this flag, I've put together a script that will at least reactivate them. You can download the zip attached that contains this script. This just needs to be unzipped and the "Unhide SC NPCs" folder placed into the "override" folder. deadfire_missing_npcs_fix.zip The "override" folder can be found inside the "PillarsOfEternityII_Data" directory located somewhere like: Steam: "C:\Program Files (x86)\Steam\steamapps\common\Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\" GoG: "C:\Program Files (x86)\GOG Games\Pillars of Eternity II Deadfire\PillarsOfEternityII_Data\" or create it by opening a new Notepad file, and copy & paste the following into it: Save it as: "reactivate_npcs.gamedatabundle" (make sure there is no ".txt" at the end of the file when you save it) and put it inside of a new folder within the "Override" folder. Alternatively you can reactivate these NPCs using console commands. Though it should be noted that this route requires activating cheats, which prevents unlocking achievements! Instructions for using the console are inside the spoiler box: Thanks to everyone who has contributed to this thread!
  25. It sounds like the earthquake scripted interaction that pre-empts the DLC might not have triggered yet? You can check of the variables associated with it by opening the console( tilde ~ or backtick ` key located next to the 1 opens the console). Then enter the following commands: PrintGlobal LAX3_b_earthquake_occurred & PrintGlobal LAX3_b_earthquake_wave_encounter_occurred If the combat log displays: 'LAX3_b_earthquake_occurred': 1 'LAX3_b_earthquake_wave_encounter_occurred': 0 Then the scripted interaction should in theory be triggering fairly soon. I forget if there is an exact place for it to trigger, but I want to say heading into Nekataka and then resting at the inn and then leaving the city by sea and sailing some ways out to sea should work to trigger it?
×
×
  • Create New...