-
Posts
311 -
Joined
-
Last visited
-
Days Won
3
Content Type
Profiles
Forums
Blogs
Everything posted by Kvellen
-
Hey, sorry for the late response! Don't know if you've already figured this out but there are 2 pieces of gamedata for each item you'll need to edit. You've already got the first, the data for the ability the items casts when consumed. And the second is the consumable item data for the item itself. Which is where the "per rest" is coming from. { "GameDataObjects": [ { "$type": "Game.GameData.ConsumableGameData, Assembly-CSharp", "DebugName": "Figurine_Obsidian_Lamp", "ID": "e3beb251-1cb5-42e2-a531-5df8d8bbb657", "Components": [ { "$type": "Game.GameData.ConsumableComponent, Assembly-CSharp", "UsageType": "PerEncounter" } ] } ] } Keep in mind that if there is an issue with something in your mod the game will not load it. In such cases opening up the "output_log.txt" file in the "PillarsOfEternityII_Data" folder and searching for "Error" or "gamedatabundle" and see if any debug lines about either. It often will give you a technical explanation for the issue and sometimes coordinates position of the issue in the file. What I'd recommend doing is taking a look at pinned tutorial that goes over the basics of Deadfire modding. and looking into the Apotheosis mod tool. It arranges all the data into a navigable UI and saves out just what is modified. It also has the ability to execute C# scripts to bulk edit data if that takes your fancy. Otherwise it'sworth bookmarking the official modding documentation as a handy reference: https://eternity.obsidian.net/game-data-formats/concepts Looks like this mod was created before the last patch for Deadfire. If it isn't functioning correctly it could be that some of the data might not be compatible with the current version of the game. That said I seemed to be able to load into the game with it enabled when I tried it. Do you have all the DLC's including all the free content packs?
-
Getting a crash whenever I try altering a global expression if there is already a modified global expression in mod. Steps to reproduce: Go to the Global Conditionals tab, search for and open "ge_ability_holy_radiance" Remove the "_" in "Holy_Radiance", click accept, and then Save the mod. Close and restart the editor. Load the mod with the altered global expression. In the Global Conditionals tab search for and open "ge_ability_dazzling_lights" add a "or AreGuidsSameGameData(Arkemyrs_Dazzling_Lights_Trickster, oei_interactionSelectedGameData)" to the statement. Click Accept, and save. The editor crashes.
-
Ah my bad, what's happened is you used the NPC's GUID instead of GUID of Store. So the loot list is being added to the NPC's personal inventory rather than to their store's inventory. A store inventory can be in a visible object (a box of somekind) in the level, or it can be a hidden object. In the latter case PrintInstance oei_hovered can't be used to and instead you'll need a different command to find it: I used the above method to find the Store, but made the mistake of assuming the NPC and Store shared a GUID in my initial reply. When in fact only the first couple of character are the same: Store: "2c8238c9-6979-4b81-90f9-07e834f07ea3" Henric: "2c8238c9-7a86-4394-b5e6-45c6a1d0bf10" The following should hopefully work: { "GameDataObjects": [ { "$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "MyCustomLootList", "ID": "0ca6481c-8359-4936-b5a0-1090360fd697", "Components": [ { "$type": "Game.GameData.LootListComponent, Assembly-CSharp", "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "OutputMode": "All", "Items": [ { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 1, "MaxCount": 1, "Weight": 1, "ItemID": "d8bd35e5-cb56-4909-b5ff-b60705ab3c5b", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" } ] } ] }, { "$type": "Game.GameData.ModScriptHookGameData, Assembly-CSharp", "DebugName": "Henric_NewGrimoireAdded", "ID": "39519315-eda2-48e7-a498-80f5c442ca03", "Components": [ { "$type": "Game.GameData.ModScriptHookComponent, Assembly-CSharp", "RunOnlyOnce": "false", "SucceedOnlyOnce": "true", "Script": { "Conditional": { "Operator": 0, "Components": [ { "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats", "Data": { "FullName": "Boolean IsInActiveScene(Guid)", "Parameters": [ "2c8238c9-6979-4b81-90f9-07e834f07ea3" ] }, "Not": false, "Operator": 0 } ] }, "Scripts": [ { "Data": { "FullName": "Void GenerateLootListInto(Guid, Guid)", "Parameters": [ "2c8238c9-6979-4b81-90f9-07e834f07ea3", "0ca6481c-8359-4936-b5a0-1090360fd697" ] }, "Conditional": { "Operator": 0, "Components": [] } } ] } } ] } ] }
-
As I recall what these files doe is fix some level scaling weirdness with a few specific early game encounters. Something along the lines of there being level 4 enemies in a few encounters that are marked as level 1. Meaning that when "level scaling up" is enabled it'll scaled all those enemies 3 levels higher than the party. It's something like that. Regardless what the game is taking issue with in the 2 files is an accidental extra layer of wrapping around the json code. {"GameDataObjects":[{"GameDataObjects":[ {code} ]}]} instead of just: {"GameDataObjects":[ {code} ]} I think the files are still functioning though, as the message (Parse read unexpected property 'GameDataObjects') doesn't have the "Error" prefix in the output_log and there is no mention of the files not being loaded. Possible that it's the equivalent of the game saying "I don't like how that's written. I understand it and will still do it, but it really shouldn't be like that." It's an easy enough fix to do on your end, whilst waiting for the next BPM update. Just Copy & Paste the following into the relevant files in the "\BalancePolishingModBuffs\design\gamedata\" directory. gn.encounter_scaling_fix.gamedatabundle gn.sepulcher_scaling_fix.gamedatabundle
-
I don't know that I'll be able to offer much in the way of assistance here I'm afraid. assetbundle files are something I have tried tinkering with in both games to the result of either corrupting the file or with nothing at all changing. This and other factors mean that PoE1 modding isn't something I have really done much looking into as a result. One tool that might possibly be useful for looking through data in game is the Runtime Unity Editor: https://github.com/ManlyMarco/RuntimeUnityEditor will say, from my limited use of it, it's not the most intuitive interface to use. For one it doesn't seem to filter out duplicate information so searching through scripts and gamedata ends up being pretty labyrinthine. But it at least allow for poking around objects in the scenes and examining their contents. And supposedly it has functionality that allows editing Unity games in realtime. Though I haven't really had the time to really delve into figuring out how that works, or this feature extends to PoE1/Deadfire.
-
That is what I meant in my earlier comment. I definitely could have been clearer in my wording though. There is a difference between the Injuries that are added to crew during ship events and those incurred in normal combat. From what I can tell crew weren't meant to be able to sustain combat injuries. Pretty much the problem stems from direct boarding action coming as a late addition to the game. Why crew members can sustain injuries through that is anyone's guess. I've been trying make a mod that'll fix this issue. But I've not made any headway thus far. There is a work around I found though that should hopefully prevent it. After a successful boarding action: Make a save. Load the save. This seems to clear any combat Injuries the crew sustain during boarding. Unfortunately this can't bring back crew that were outright killed during the boarding actions. Not that I know of, your best bet is to try to find replacements at other ports.
- 9 replies
-
- 1
-
-
- bug?
- ui problems
-
(and 1 more)
Tagged with:
-
Very likely her evidence is too flimsy to make a case. Something like survey ships in the area report keep reporting back after being intimidated. Perhaps all reports mention an Auamua captain or a ship flying an RDC flag. Regardless Desiwa the Shark is known to sail this area. So it least seems plausible that she might be the one responsible, no?
-
The ambiguity of the final bounty from him might actually be saying something with what isn't said. If you look at the way he sells the previous bounties to you: "-a pirate shirking any pretense of lawful conduct in the open seas" "-a Vailian captain and seeker of lost ruins. There is no wicked length he would not go to plunder the dignity of these isles." He appeals to you from a perspective of what is lawful and just. The Deadfire should be a place of order and civility in his eyes. Surly you agree? But then when it comes to Burunga: "-a Huana captain of many seasons." What threat does she pose to order in the Deadfire? Seemly nothing. Further more his dialogue after accepting the bounty could be read to imply he might actually admire her. This goes back to what he said when hiring you: "-empty the seas of competition in exchange for profit." This what never about taking out the scum that plague the sea, this was just business.
-
One explanation is that Crew can die from sustaining too many injuries during boarding action combat. Saving and Loading seems to clear the injuries. Though I think there is supposed to be something that automatically swaps those injuries to the crew specific variants that doesn't seem to be working.
- 9 replies
-
- bug?
- ui problems
-
(and 1 more)
Tagged with:
-
Status Effects and Abilities modding is something I've only started looking into pretty recently, so there might be a better solution I'm not aware of. With that said an Immunity Status Effect that targets a Keyword unique to status effect you'd like to remove is a method. Look at status effect "Aegis_of_Loyalty_SE_KeywordImmunity" for an example of this.
-
For factions specifically, Positive and Negative reputations are tracked separately by the game. As such adding a negative number to the Negative axis will reduce it without affecting the Positive axis. With that in mind you can create a mod with a new "ChangeStrength" and set the "ReputationValue" to a number with minus "-" before it. Then use it in the Console Command or a Script to reduce the Negative faction rep by that number. Something like: { "GameDataObjects": [ { "$type": "Game.GameData.ChangeStrengthGameData, Assembly-CSharp", "DebugName": "Reduce_Major", "ID": "39a0dbf5-fe80-4bba-9e9c-b0edfc2003a0", "Components": [ { "$type": "Game.GameData.ChangeStrengthComponent, Assembly-CSharp", "ReputationValue": -8, "DispositionValue": 0, "RelationshipValue": 0, "DisplayName": 1784, "FormatString": 1299 } ] } ] }
-
I have tracked down the cause of this bug. It is indeed related to trying to the complete quest through talking to Flaune. Specifically it occurs if the player didn't pick a specific dialogue option in the previous conversation with Xoti about her need to get rid of souls. It's easy to miss this player response since it'll only be present when the player has asked Flaune about her work. Once selected the quest starts down a special branch that is otherwise inaccessible. This is the only branch where it's actually possible to get the quest marked as complete when talking to the Animancer. The good news is even though the quest never gets marked as complete Xoti's ending slides finishing her quest will still trigger. If you'd prefer the quest be marked as complete you can: With a Modscript Download this zip file: Xoti Ending Bug Fix.zip Unzip the "Fix Xoti Quest Ending" folder within and place it into the "override" folder. "override" 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\" If you'd rather create the mod yourself: Using the Apotheosis modtool: or Using Notepad: With Console commands (Cheat's Disable Achievements) Hope this helps! And thanks everyone who has posted in this thread with information on this bug!
-
Vela go home
Kvellen replied to CastMagicMissile's question in Pillars of Eternity II: Deadfire Technical Support (Spoiler Warning!)
Either of those should work for disabling the challenge, but you'll need to use the "RemoveAbility" command to get rid of the "Vela_Ability" that is active on the Player character. The command looks like this ("b1a8e901-0000-0000-0000-000000000000" = the Player character) : RemoveAbility b1a8e901-0000-0000-0000-000000000000 Vela_Ability It might take a save and reload after the command is entered for her to actually leave though. -
No Beasca (or is it Baesca?)
Kvellen replied to bullshaz's question in Pillars of Eternity: Technical Support (Spoiler Warning!)
Have you already acquired Ondra's Wintness? Edit: Reason I ask is it seems she is set to disappear when you acquire it. -
I think your conclusions here are correct. The "ApplyStatusEffectToEnemyOnEvent" only ever applied to a single target with each AoE attack. Though from what I am seeing when does apply it, it's done after the attacks damage is done. ie. enemy is Grazed/Hit/Crit -> Damage -> Status Effect applied to enemy. I'd assume this works for Aegis of Loyalty since it is a Single-Target attack that's applying a brief Immunity to the Intellect Afflictions. Going back to your earlier posts, Aura Abilities seem to be a bit finicky when used as activated spells. On my end it only seemed to activate briefly and effect just the caster. Switching over to applying the Status Effect with an AoE ability had more reliable results. Maybe something like a self targeted AoE or Pulsing AoE could be used to mimic the behaviour of an aura instead? For the Status Effect itself, an "AttackResistance" (set to a Value of "1") or "Immunity" Status Effect with Attack Filters of "Class" = "Wizard" and "TargetType" = "AoE" seemed to work. Though the main caveat there was there is nothing in the AttackFilter that's filtering out only the attacks made by the specific Wizard. Something I was thinking, though couldn't really see anyway to do, was maybe it's possible to attach a temporary Keyword to the character's attacks somehow? If that's possible it at least gives the Resistance/Immunity an additional layer of specificity to apply to filtering out attacks.
-
Hmm it seems so. I tried a few tests like checking if the Player had a specific item equipped to unlock an ability and it seemed to pass even if the item was just in the party stash. It would only fail if the item was removed from the party inventory completely. So it's possible that conditionals on the Progression Tables have no perspective outside of the progression table of who owns the data? Progression Tables aren't something I have looked at before so I have no idea what to suggest unfortunately.
-
"ProgressionTableHasAbility", I'm not 100% clear on the function of this, what I think it does is check if an ability has been unlocked on the progression table it's called on. "CanUseAbility" checks if the specified character has access to the ability. "HasAbility" checks if the specified character has the ability. "HasActiveAbility" check if the ability is active on the specified character. So "CanUseAbility" would probably would be what you are looking for in this instance. A and { B or { C and D } }
-
It's not the most elegant solution as far as comparability with other mods but one thing you try is to change all the desired spells' attacks to have an AffectedTargetCondtional that checks for a specific status effect that caster has applied with the ability. Something like: not HasStatusEffectFromSource(Target, ignore_friendly_damage, Owner) This should apply the effect of the spell but only on condition that the Target hasn't been given the status effect from the Caster (owner). I think... I haven't really tested this beyond a single ability.
-
Thanks! I agree with restricting conditions on links to just exiting ones. Seemed like bad practice to me when I noticed them, and I couldn't really come up with any solid use cases. So wasn't going to push for it being implemented if it were a choice between it and ExternalVO field. Which while also niche has some additional uses I can think of beyond its original intention.
-
The autocomplete on gamedata query, looks fantastic! There are 2 features of conversations I was wondering if you would consider adding support for in the Apotheosis conversation editor: A way to edit the ExternalVO field within Apotheosis. This is used to specify a path to an existing audio file. The primary use for this is to play audio for a duplicate line that's in the current conversation, or to play audio from another conversation entirely. An example of this field in use can be found in "27_cv_court_of_woedica_player_interrupts" on nodes: "166", "182", "201", "207", and "208". This a weird one, I noticed while trying to debug a conversations there are sometimes conditions on node links. I'm not really sure what the use case for this above just putting the conditional on the node that it is linked to. But there are only about 77 cases of this being used across the base game & DLCs conversations. An example of this is in "04_cv_queen_onezaka_ii_sabotage_quest.conversationbundle", where the the link from "181" to "182" has a conditional that the player's relationship with Maia be Negative or Very Negative.