-
Posts
80 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Everything posted by Svartypops
-
If you look in Attacks.GameDataBundle... You can search for this: "Conjure_Blight_Summon" There's a section where it lists all the different filenames: "SummonFileList": [ You might be able to make what you want by replicating that (the whole attack) but with only the earth blight prefab. You will also need to make your own version of all the other stuff (status effects/abilities) that work with the attack. (copy the ATTACK's guid: "406c9cba-cebb-49b5-851e-1854c7f5ec96" and search for it in the Ability/Statuseffect files to check what refers to it) In this instance there are 2 abilities one is Conjure Blight and one is a Pwgra abiility. No status effect refers to the attack so it is probably triggered purely by Ability.
-
I'm trying to find the conditional in the Endre's flog files for the Penetration bonus on Relentless Terror. I can't seem to find it - there is a file that just applies 2 penetration but there's no conditional. Is it just applying the +2 regardless or target afflictions? I think it should be : HasAfflictionOfType I wanted to change the type from Mind to Resolve so that the Flog synergises with itself.
-
The Ship Game
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
I have a suspicion that the ship game should take a LOT longer to complete. Repairing gives me that idea - when the AI moves cannoneers to repairing, it's pretty obvious that cannons aren't supposed to be quite so powerful. I think the cannons need nerfs to both range and damage, small vessels need to be much faster with much lower hittability (tbh the speed should factor into that equation - I don't know whether it does or not). These changes would make The Ship Game much slower. I don't know that the AI would even play smart with such changes? -
The Ship Game
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
Funnily enough, I was watching "Secrets of the Spanish Armada" (drain the oceans) and it reminded me of what I'd been doing in Deadfire! So they did SOMETHING right! What they said in the documentary was that Spanish vessels returning from South America were full of gold plundered from the Incas/Aztecs. The English wanted a slice of the pie and commissioned Privateers like Drake to ... well they were pirates. The Spanish didn't like that so they sent the Armada to invade England with soldiers and hence stop the piracy by conquering the nation. The English couldn't compete with the Spanish in traditional BOARDING and melee tactics. Instead of boarding, the English, who had adapted their tactics to those of the pirates, had packed their ships with as many cannons as possible, and didn't have any troops on them. Wake up, here's the interesting bit! So the English did the same as I was doing in the game (sort of) ... Fire a broadside, come about (AKA jibe, AKA "Do a 180") and fire a broadside from the other side. Then the English would flee to reload. I don't do that in the game - I use cannons that reload about the same amount of time it takes to turn the ship. -So perhaps each ship type should have a different turn speed, and that turn speed should synchronise with different reload times of various cannons? With 600 as max range, perhaps the nimble ships should be hanging out at 400-600 range to avoid those double-bronzers, and damage outside of the cannon's range values should be zero? -
The Ship Game
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
I just spent some time making some changes to upgrades (on the right, below). HULL Hull Name GUID Travel Speed Combat Speed Health Cost Bird**** -5% PROPOSED CHANGES Aedyran (Treated) 14c0a64a-ed0e-4992-a398-2575c994066e 5 1000 2 2 2 Warship (Reinforced) a14f842b-9d50-4e2f-85c5-559dc2ce007b -2% -2% 15 3500 4 4 4 Bardatto 5% 5 5000 6 6 6 Improved Warship (Reinforced_Improved) "5b572b32-d1b0-45fc-aec1-1beadbdc522c" 15 7500 7 7 7 Merchant's 9000 10 10 0 Red Dream -10% 40 16000 -10 -10 80 Boneframe 5% 5% 25000 10 10 10 Blackwood 5% 15% 15 64000 15 15 15 Infested SAILS Sail Name GUID Travel Speed Combat Speed Health Cost Linen Bird**** -5 Berath 5 5 2 500 2 2 2 Cottonweave 5 5 -2 1000 3 3 3 Vithrack 5 1250 5 5 5 Trollstitch 5 10 2250 6 6 6 Valera 5 5 5 4500 7 7 7 Palm 20 20 -7 8500 8 8 8 Gulskin -5 30 9000 9 9 9 Stormwind 15 15 12500 10 10 10 Mageweave 5 5 5 18000 12 12 12 Dragonwing 10 10 15 40500 15 15 15 Ragged HELM (wheel) Name GUID Travel Speed Combat Speed Health Cost Standard Ymyran Steel 5 14000 3 6000 Lurker 5 14000 LANTERN Name GUID Travel Speed Combat Speed Health Cost Standard Scavenger's 5 4000 Arcane 10 8000 7 6000 Blight 10 8000 ANCHOR Name GUID Travel Speed Combat Speed Health Cost Standard Ymyran Steel 5 5 18000 3 3 6000 Living Steel 5 5 18000 As you can see, I've tried to make it so that the player isn't as confused about what's better for them. This simple incremental system has similar maximum values, but gives the player a different dilemma over what to buy - they're unlikely to buy all of them - so money will probably be a deciding factor in the early game. @KvellenThanks a lot for that info, I've put it in my spreadsheet. I think smaller ships should really get a huge advantage at very short range combat, but atm they get annihilated by big ships because they roll the dice so many times (lots of guns). I'm not sure how smart the AI is, but if they're closing to melee, that's a shame because it could have been quite an interesting situation. Having said this, I think ships full of guns were the answer to pirates in real life, too! -
First of all, I know lots of people skip over this and Josh himself said the company should have concentrated on boarding as the only way to interact on ships. Even the mighty Sid Meier had trouble making ship-to-ship combat good. So with that in mind, let's just try to make the ship game in Deadfire slightly better. Just a smidge. Here... I made this spreadsheet.... That's where I'd like your help. I was wondering, if you could tweak the ship/cannon numbers ... What would you do? Preferably, I'd like to be able to compete with any vessel. As it stands, a broadside from a large vessel with double-bronzers will completely wipe you out. Perhaps chance to be hit should be lower for the little guys? Look at all those guns! How many do players actually use? Two or three? SHIP Name GUID Sail Health Hull Health Be Hit Chance Turns to Turn Turns to Jibe Crew Cost Dyrwoodan Ship 20 50 55 1 1 5 Voyager 25 60 55 1 1 5 20000 Dhow 40 65 60 2 2 7 35000 Galleon 40 100 60 2 3 8 100000 Junk 60 70 70 2 3 9 120000 CANNON Name GUID Damage Range Reload Cost Dyrwoodan 4 to 7 150-400m 3 1000 Aedyran Channel 4 to 7 350-600m 4 1125 Iron Thunderer 6 to 9 200-500m 4 1200 Haerferic's 8 to 11 200-600m 4 1500 Imperial Long 6 to 9 300-600m 6 1650 Royal Bronze 8 to 11 150-400m 5 1800 Vailian Hullbreaker 10 to 13 0-250m 4 1900 Double Bronzer 12 to 15 250-350m 8 2100 Sub Gun 8 to 11 150-400m 5 1800 I think a lot of people hated this system so much that the developers allowed people to "get it over with as soon as possible". What do you think?
-
To take us way off-topic, I suspect this happened thus; 5 stats, each of which change 3 other stats - and it's the 3 other stats that ACTUALLY do things. One of the 3 stats is changed by two of the original stats. See what happened? I didn't even say Might or Resolve, for example. The NAMES of the stats are the LAST thing you add! I think that's why some of them don't seem to fit so well - additionally, it must be very difficult to find names for thing that interact so peculiarly.
-
Could someone please advise on this issue? Here is one of the tooltips in question in the Abilities.stringtable. As you can see, it appears to be pulling some data from the file. Let's look at the ability GUID it links to ... "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "Arbalest_Overbearing_Shot", "ID": "17aac4e5-0547-4a3c-a21b-e0d3fd2d86c9", "Components": [ { "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": [], "DisplayName": 2028, "Description": 2456, "DescriptionTactical": -1, Checking those text values... and That's not what's on the tooltip, so that's not where it's getting the data from. Let's try looking for 2424 in the Abilities.GameDataBundle instead... "$type": "Game.GameData.GenericAbilityGameData, Assembly-CSharp", "DebugName": "WeaponProficiency_Arbalest", "ID": "a89cc4e8-62aa-4835-b70a-89abe4516810", "Components": [ { "$type": "Game.GameData.GenericAbilityComponent, Assembly-CSharp", "KeywordsIDs": [ "bb68a03d-507e-4799-9a4e-abe7377d1e56" ], "DisplayName": 2424, "Description": 3561, "DescriptionTactical": -1, "UpgradeDescriptions": [ { "String": 2028, "StringTactical": -1 }, { "String": 2456, "StringTactical": -1 } ], There it is, used in the displayname of this thing. Now let's check that new text entry is... Yes yes, very generic. Not what we want. The other entries we've already examined above. So where is the game getting the data from? Logic says that it comes from the actual ability itself, then converts it to legible text somehow. Where's that conversion taking place? Where, for example, is it getting the words on this? They don't come from nowhere... If it's truly pulling data from the files, then I'm expecting it to come from a file that has something akin to {0} {1} on successful {2} with {3} weapons for the first status_effect in the itemmod, and then {0} {1} with {2} weapons ... for the second one. I have no idea where the tooltips are being compiled. It also needs to insert a comma if the list of effects is >1 element long. Is this all in Unity stuff/DLLs? ANYWAY... ... here's where I truly can't understand how it's working... Even if I remove the drawback's status_effect from the ability, it's effects still appear on the tooltip. The strange thing is that if I put "HideFromCombatTooltip": "true", on the now-unlinked status_effect, it disappears. Like so; How/why/is it pulling that data from an unlinked status effect?
-
Kinda late, but Sailor Experience is the exp needed to raise ranks as you can see in the Global.GameDataBundle : "CrewTraitUnlockRequirements": [ { "SailorTales": 0 = Zero Stars = Unskilled }, { "SailorTales": 5 = One Star = Novice }, { "SailorTales": 10 = Two Stars = Seasoned }, { "SailorTales": 15 = Three Stars = Expert }, { "SailorTales": 25 = Four Stars = Master }, { "SailorTales": 50 = Five Stars = Legendary } ], I think there's a max number of SailorTales a regular sailor can acquire, because when I reduce these numbers, the regular sailors can reach higher ranks. Stars have the following effects from the Ships.GameDataBundle file: If you check out the icons, it seems something fishy is going on there, too.
-
Triggers
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
Here is simpler trigger I found; itemMod -> a Status Effect that does nothing, with the suffix "_information", this has a TextString reference to something like "When the user is bloodied"also in ItemMod -> Ability containing a Function Called condition -> Apply the effects in an ATTACK -
Enchant
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
For reference, I put my findings regarding conditionals in this thread here. The conditional is used to check whether a null status effect has been applied (like a flag in programming) - the whole thing is better illustrated in that thread. As noqn said, the Function lines can be ignored/omitted. -
This seems to be how triggers work... itemMod -> Status effect ApplyOnEvent: kill or whatever -> a Status Effect that does nothing we'll call it "null_effect" also in ItemMod -> Ability containing a Function Called condition: If (character) has null effect -> Apply the effects in an ATTACK As you can see, one branch of the object chain seems to apply a flag (null_effect) and the other branch uses an ability to do the function call to check whether the flag is up or not, and apply the attack if it is. For functions, the Parameter GUIDs are here: https://eternity.obsidian.net/game-data-formats/instanceids The FunctionHash is the same, so just find an existing Parameter and copy the FunctionHash Number from underneath it (the green one, if you're using VSCode). Parameter Hashes correspond to parameter GUIDs, so to find the ParameterHash for an attack/race/statuseffect etc, you need; search for the name of the Attack in the Attacks file or name of the race in ..er.. characters or global?, name of the Status Effect in Status Effects file etc. then copying it's GUID. then search the StatusEffects file for the GUID being used in another condition, then copy it's corresponding ParameterHash. *I don't know modern programming terminology, so if I've got the terms wrong, please forgive/correct me.
-
I'll give it another test ... As you can see, the player didn't hit anybody and the pirates got dazed by the robe. OnDamaged seems to work.. I wonder what the difference between that and OnHitOrCriticallyHit is? Can you get hit for 0 damage? Maybe that's the difference? Regardless, I'll change it because you state that's the correct one. Thanks again. I did change the duration to infinite, as you advised, but I think the game seems to apply the duration of Arkemyrs_Dazzling_Lights_SE_Dazed and Arkemyrs_Dazzling_Lights_SE_Will, which the Attack applies and not the infinity I put in the ApplyOnEvent StatusEffect. So to change the duration as you suggest, I'd probably have to make replicas of those two effects as well so that it doesn't interfere with the spell version (I think)?
-
Enchant
Svartypops replied to Svartypops's topic in Pillars of Eternity II: Deadfire: Modding (Spoiler Warning!)
Here's what I'm trying; Item -> ItemMod -> StatusEffect -> Attack That works for a simple item. But then I want add one upgrade that upgrades again. So 1 -> 2 -> 3, no choices. I added two recipes, one for each upgrade. I added two new ItemMods, two new StatusEffects for ApplyOnEvents, and two new Attacks. Do I just put the item in CanModifySpecificItemsIDs and then link the new itemmod at the bottom, prereq the previous one and remove it? I didn't put any conditions. Yet. WoohoO! Colours: Items.GameDataBundle, StatusEffects.GameDataBundle, Attacks.GameDataBundle -
I see that there are quite a few mentions of people adding enchants, but I'm struggling to find a guide. Here are some guesses that I've compiled. BMac mentions in another thread that; Items file -> Recipes are used to do enchants. He also said that the recipe is automatically detected by the game (maybe?), if it's valid. You don't seem to link it with a GUID - at least I couldn't find that happening when I did a text search for a recipe's GUID in any of the files. I note that the item qualities are mods that you put on items in the itemmods section of an item (simply paste the guid in there). What I don't understand is how the game knows you want to be able to enchant the item so the quality is improved or not. I'm drifting a little off-topic, so let's get back to it... It seems that each box in the enchantment window has a recipe. "CreationConditions": { Script } Where it says Boolean HasItemMod(Guid) - this means it's testing to see if an item has a specific GUID which is in the "Parameters" section, and will return a true or false (yes or no). I think the FunctionHash is that check. I'm not sure what ParameterHash is, though. So... { "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats", "Data": { "FullName": "Boolean HasItemMod(Guid)", "Parameters": [ "e7e3e8a5-0c70-4099-9d39-041a49d64ff0" ], "Flags": "", "UnrealCall": "", "FunctionHash": 1518072523, "ParameterHash": -1645937910 }, "Not": true, "Operator": 0 }, ... would say "Does the item have this mod: "e7e3e8a5-0c70-4099-9d39-041a49d64ff0"?" Then, I think the "Not": at the bottom is true, so you put a not operator on the result, i.e. flip it - true becomes false or false becomes true. If it DOES have the mod, the output of this test is false. If it doesn't have the mod, then the output is true. Because this section is called "CreationConditions": I'd assume that this means - DO create this recipe's output IF the result is true i.e. the item doesn't have that mod. [edit] OH... are these sections for blanking out the boxes? So you can't click them? How do we know which function to call? I don't know. I guess "CanModifySpecificItemsIDs" is how the game links the recipe to the item. The ingredient section seems very straightforward - itemID is the GUID for the ingredient (pyrite or jade or whatever). At the bottom of the recipe you can see that it can remove/add mods - this is how you can upgrade a mod into another that's a fractionally better version of itself. The prerequisite allows you to make a series of mods. TL;DR Questions How does the game know if you don't want to enchant an item, but you use a fine or better mod? What are those hashes for, do we need to know them?
-
Thank you very much for this Isn't OnHit for weapons? I think OnDamaged is for being hit? The HealthPercentage is interesting - I've copied the Shod In Faith boots from MaxQuest's Spoils of Caed Nua mod. It seems to have a different way of doing things - a status effect is required by a script instead of the healthpercentage setting. And it has a "trigger" thing - I'm getting confused. What's all this about? I'm going to go back to your message and see if I can get it to work that way. Should it trigger an Ability on the enemy? It doesn't have a target...? ... and the Itemmod links to that instead of the status effect? It's pretty befuddling. Is there a guide for this somewhere? I'm not a beginner, but I'm not an expert. [edit]I can't make it work. My latest effort was this: Item -> ItemMod -> StatusEffect -> Attack The item appears and the text from my localization appears (ItemMod and StatusEffect). The effect doesn't appear to trigger at all. I even removed the health percentage to make it trigger off any damage, but nothing. Oh... should it be AttackTargetOnEvent... ? Reading your message, it's really interesting to consider - It should be possible to write a script that outputs items from a system of menus. Meh, I think it's too much work for me. Fun to consider, though.
-
Lol, all these massive projects and here I am trying to make Arkemyr's old robe have a dazzling lights passive that activates when you get hit and your health is low. I'm also wondering whether it's worth having a crack at the ship game, you know... reduce cannon damage - try to stop a Junk loaded with double-bronzers from wiping out anything in two volleys. And I'd really prefer it if the Galleon was the superior vessel. Also ship upgrades need a redo - there are plenty OF them, but their stats are too similar to one another.
-
The first thing a lot of people seem to be reaching for is the stat system. I have to say that's a good point. it's really arcane, but I have to say I quite like it - it forces difficult choices, which is often good, but the game seems to be difficult choice after difficult choice when it comes to gear and stats. Sometimes it's hard to know which gear is better for a role. I love the setting, but the "Follow Eothas" story is ... uninspiring ... and conversing with gods ... makes it the world seem less mysterious than it should, imo.