Jump to content

Zap Gun For Hire

Members
  • Posts

    417
  • Joined

  • Last visited

Everything posted by Zap Gun For Hire

  1. No. not quite. What I'm asking for is an example of a Vendor Object itself, which we don't have access to. That way we can make ANY character a Vendor using that as a guide. Theoretically we could make any character have MULTIPLE stores by adding new dialogue, which sets aside a concern for duplication. It goes back to the bit in the first post of this thread: As far as I know, we don't have any examples of a Vendor Object so we can make our own vendors/stores/inns/whatever. In short, we can modify an already existing store , as you showed. What we can't do, as far as I know, is make an entierly new store out of whole cloth and assign it to a NPC who isn't already a vendor. Thus my request to the Obsidian Devs for an example. Once we know what a Vendor Object looks like, we should be able to make our own stores for any NPC in the game.
  2. I'm not planning on doing any sort of public mods for quite a while, if I ever do, for Deadfire. So go ahead and release anything you'd like in regards to this under your own name over at Nexus and here. If you'd like my help behind the scenes before you release something, I could see what I can do to help though.
  3. it's super late at night here in California, so I'll look more deeply at what you posted later. But as an example: Here is the entry for the Cartographer, Sanza, in factions.gamedatabundle: { "$type": "Game.GameData.VendorGameData, Assembly-CSharp", "DebugName": "Vendor_03_Cartographer", "ID": "8d2d92e7-8a24-49bf-a2ba-542046f61e2a", "Components": [{ "$type": "Game.GameData.VendorComponent, Assembly-CSharp", "VendorName": 143, "StoreIconPath": "gui/innicons/storesign_generic.png", "PortraitPath": "", "StartingFactionID": "1346f12d-ca42-4add-9599-aa3fe72f5e53", "ConditionalRates": [], "LockedDescriptionString": -1 } ] } StartingFactionID points to this in the same file: { "$type": "Game.GameData.FactionGameData, Assembly-CSharp", "DebugName": "FCT_00_Neketaka", "ID": "1346f12d-ca42-4add-9599-aa3fe72f5e53", "Components": [{ "$type": "Game.GameData.FactionComponent, Assembly-CSharp", "DisplayName": 32, "IsMajorFaction": "true", "Scale": 50, "GlossaryEntryID": "90c1f2a4-9056-4d9f-845a-881ff722e4d2", "Positive": 0, "Negative": 0, "Icon": "", "IconRound": "gui/icons/gamesystems/reputationicon_neketaka.png", "FlagIcon": "", "FlagIconSmall": "", "FlagIconCombat": "", "HideFromReputationUI": "false", "ReputationCanChangeRelationship": "false", "ReputationScripts": [{ "RankType": "Default", "Script": { "GuidString": "00000000-0000-0000-0000-000000000000" } }, { "RankType": "Good", "Script": { "GuidString": "00000000-0000-0000-0000-000000000000" } }, { "RankType": "Bad", "Script": { "GuidString": "00000000-0000-0000-0000-000000000000" } }, { "RankType": "Mixed", "Script": { "GuidString": "00000000-0000-0000-0000-000000000000" } } ] } ] } It's the data for the Neketaka 'faction', for the record. Which means he will use your reputation with Neketaka to set his rates. Other vendors might use something different. For instance, the shipyard master in Nekataka has a conditional rate (as defined by RatesID) which will override his normal Neketaka rate if the condition is met: { "$type": "Game.GameData.VendorGameData, Assembly-CSharp", "DebugName": "Vendor_03_VD_Shipyard", "ID": "8aa9c42d-b89e-4686-acf7-b9f230b1ff35", "Components": [{ "$type": "Game.GameData.VendorComponent, Assembly-CSharp", "VendorName": 441, "StoreIconPath": "gui/innicons/storesign_generic.png", "PortraitPath": "", "StartingFactionID": "1346f12d-ca42-4add-9599-aa3fe72f5e53", "ConditionalRates": [{ "RatesID": "d9ec906b-3f4c-4507-9cf1-235b466fbbc8", "Condition": { "Operator": 0, "Components": [{ "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats", "Data": { "FullName": "Boolean IsGlobalValue(String, Operator, Int32)", "Parameters": ["n_Shipwrights_Plight_main", "GreaterThanOrEqualTo", "4"], "Flags": "", "UnrealCall": "", "FunctionHash": 901380568, "ParameterHash": 2107384759 }, "Not": false, "Operator": 0 } ] } } ], "LockedDescriptionString": -1 } ] }, So just where ARE rates defined? Either via your faction rep or via a conditional. It's elsewhere in factions in this block (it's long, so I'll spoilerize it): The in-game threshold for Good/Bad/Mixed is ALSO defined in the factions gamebundle but it isn't quite as relevant to the question, I think so I'll skip on that for now. ==== In short, normally a vendor is tied to a faction reputation (which eventually winds its way to that rate list I provided) OR it goes to a specially defined block via the ConditionalRate like the ones for the Berath's Blessing seller in Port Maje and the various World Map sellers OR nothing at all (in that case it has an empty UUID in its StartingFactionID). As an aside, that empty UUID in the StartingFactionID is why some vendors never give a discount to some folks. This means one could set up one's own seller discounts by tying it to a (set of) made-up UUIDs. Just follow the template of this: { "$type": "Game.GameData.VendorRatesGameData, Assembly-CSharp", "DebugName": "Rates_Good_WM", "ID": "ebe5a3f2-4f77-4b18-b655-4e355982d9ea", "Components": [{ "$type": "Game.GameData.VendorRatesComponent, Assembly-CSharp", "SellMultiplier": 0.5, "BuyMultiplier": 0.2, "InnMultiplier": 0.5 } ] } to set whatever multipliers you want. Then put the new ID of that code you created in RatesID, while changing the ID, VendorName, and Debug Names to whatever you want, using this as a template: { "$type": "Game.GameData.VendorGameData, Assembly-CSharp", "DebugName": "Vendor_WM_Huana_Rice_Farm", "ID": "b6c37866-ac59-4fe4-a475-3668f7c8addb", "Components": [{ "$type": "Game.GameData.VendorComponent, Assembly-CSharp", "VendorName": 622, "StoreIconPath": "gui/innicons/storesign_generic.png", "PortraitPath": "", "StartingFactionID": "00000000-0000-0000-0000-000000000000", "ConditionalRates": [{ "RatesID": "ebe5a3f2-4f77-4b18-b655-4e355982d9ea", "Condition": { "Operator": 0, "Components": [{ "$type": "OEIFormats.FlowCharts.ConditionalCall, OEIFormats", "Data": { "FullName": "Boolean AlwaysTrue()", "Parameters": [], "Flags": "", "UnrealCall": "", "FunctionHash": 837405672, "ParameterHash": 837405672 }, "Not": false, "Operator": 0 } ] } } ], "LockedDescriptionString": -1 } ] } Should be able to set all sorts of fun conditions, given the examples already seen in that file and elsewhere in the game. I'm fairly sure the way this block is written is that it makes the condition Always True, which means one always gets the 50% discount no matter what happens in the game. ================ Not exactly sure if that's the info you wanted or not. But hopefully it's of use to someone. (anything else I'll have to look at in the morning as it is waaaaay past my bedtime here on the Left Coast) ---------------------- edited. What the hey. The Good/Mixed/Bad thresholds (spoilered because it is hella long): In each of those Good/Mixed/Bad blocks there is the corresponding VendorRate associated with that level of Good/Bad/Mixedm which I already posted. That's how the game will know how to interpret, say, a Faction Good Rank of 4 into a 10% discount or how to interpret a Faction Bad Rank of 5 into a 15% surcharge. And so on and so on and so on. This ALSO means we could set our own discount rates for each level of Good/Bad/Mixed via a mod if we so choose. Including the buying items from the player, which at the moment is static across all ranks.
  4. Pretty simple request... I hope! Right now we've figured out how to set the rates and discounts for an already established vendor (it's in factions.gamedatabundle) and how to change items sold by an already established vendor (by changing its LootListID found in items.gamedatabundle). And we also know which UUID a vendor opens in its dialogue window (from its relevant conversationbundle). What we DON'T have is an example of the actual Vendor Block that the UUID is a part of that presumably ties everything up in a package for the store. In the Modding Documentation that was released in the Beta Patch tonight, there is the following: As far as I know, we don't have any examples of a Vendor Object so we can make our own vendors/stores/inns/whatever. I figure that in the definitions of the Vendor Object there is something that points to the VendorGameData found in factions.gamedatabundle and the LootListID found in items.gamedatabundle. If it is at all possible, could an example of a vendor object that is calling be made so we can make our own? And if inns/recruitment is handled differently, perhaps an example of those so we can make our own as well? Thanks in advance for any help anyone from Obsidian might be able to provide.
  5. Ah, nice. I was worried the manager might only load up Nexus Mods. That WILL be useful.
  6. Ironically, The Red Hand was just added in the latest beta patch. Still appreciate all the work, peardox.
  7. BTW, I bring this up because I've noted quite a few people (myself included ) griping about the gamedatabundles being all on one line and having to hunt down JSON plugins/JSON friendly editors. But if we release mods in a more traditional text format, it'll make it easier for folks to plug and play various things from one mod to another. Something to keep in consideration at the very least. Or not, as it isn't THAT big of a deal, but it's something I thought I should mention.
  8. It's a LootList and quite easy to do Basically you have to find the LootList then add to it Here's the simplest example I can think of (not completed) { "GameDataObjects": [{ "$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "Store_09_PM_Eofania_BaseInventory", "ID": "0954daa7-cef5-4ffe-9a65-08abfbd618e8", "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": "cd94b3d3-58be-43fc-9519-ea1703a9314c", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" } All you have to do is add an extra to the list Hah. I added almost an identical comment while you were making this one. Though I did come at it from a slightly different angle.
  9. Meh, I think even "claiming" vendors is probably overkill, if you provide EXACT instructions on how to add to a lootlist for folks who are already using that vendor in another mod. Make it a supplemental fire and make a note saying "for experienced modders ONLY" or something like that. The 'easy' way to do it would be to have single loot list added to a vendor which in turn points to the mods loot list. I'm already doing this with my local-mod for rare ingredients and it works perfectly. This is how I'm currently doing it to keep things nice and tidy. I added the following code to the World Map 50% off vendors on my home system, inside the "Items": bracket { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 1, "MaxCount": 1, "Weight": 1, "ItemID": "00000000-0000-0000-0000-000000000000", "LootListID": "34a6f715-1d3e-49a6-84ff-0f54780cb021", "LockedVisible": "false" } That LootListID is a custom UUID I made for myself. It points to a lootlist in an entirely separate file which contains all of my changes I wanted. That way I can easily add it to whatever vendor I want, whenever I want, simply by adding one code block. I think giving instructions for adding one codeblock shouldn't be too hard for semi-experienced modders. Now, sure, for folks who don't want to open up the .gamedatabundles, having different vendors is an unfortunate fact of life for right now. Of course, if Obsidian ever allows us to append Lootlists via an override, this kludge will become moot. === As a side note, the game will read *****.gamedatabundle files that AREN'T all on one line just fine, as I saved all of my local modded gamedatabundle in a more 'traditional' format for ease of use across word processors and have yet to run into a problem with the game. There might be some reason to keep it in that format that the base game files are in, but I don't know of it.
  10. Terrible, like many things, is in the eye of the beholder. Also, when taking into to the fate of your companions, the go it alone ending is one of the few (only?) endings where there aren't terrible repercussions for at least some of them. Then again, I tend to put much more weight into the fates of my friends and the local communities/people I helped along the way than the big picure. I tend to think the 30,000 foot look at things will get overwritten by the next game anyway sort itself out in the fullness of time.
  11. He might not appear if one has already done the Paradise of the Mind side quest. Just a guess though. If one hasn't already done it he appears next to the water pool due south of the palace in Serpent's Crown as shown in the following screenshot: He'll have a short conversation with a bystander when he is first seen, lamenting his missing crew. Once the Watcher talks with him, he walks away and I presume is never seen in the game again.
  12. All of the Uncharted Islands are namable the moment you clear* them, whether you have the Mapping the Archipelago quest or not. Are you sure you cleared the right island? * This is technically not correct, BTW. I found out in my latest playthrough that if one enters the dungeon that is on an Uncharted Island and then leave it, it counts as exploring it for said quest, even if you don't clear it out. This might not even be a bug, considering that the quest is to "explore" and not "clear out".
  13. Well, not ALL of them. Ironically enough the one subfaction that is completely ruled out of hand for your character (Aeldys) is the only one who doesn't want to do anything morally questionable in the slightest at the end. All she wants is to get rid of the double-dealing so-and-so who is already out to get her and is proving that said person is breaking one of the most sacrosanct laws/traditions the Principi have. Life just ain't fair somedays, I tells ya.
  14. Might have a teeny problem with their final quest. But, then again, much of the heart and soul of Planescape was dealing with the inherent problem of "Real Life" vs "Ideals" as well as finding out the various factions weren't quite as pure to their ideals as one might think. It'd make for an interesting dilemma for the character. The RDC will impose a highly orderly society on this area that is disorganized from their PoV, and with a minimum amount of relative fuss as well. But they ARE imposing it. And aren't afraid to get their hands very dirty in the process. They also don't exactly cloak themselves in the language of retribution and justice, which is more a VTC thing. In a way, the RDC is perfect for the Harmonium, especially the less savory aspects of said group. ==== I would also point out that at one of the pirate factions is trying to turn the Prinicipi into a legitimate government based more on the traditions of their Grand Vailian ancestors. Something to keep in mind, if you want to role-play a character who doesn't mind helping others rediscover their heritage. Of course, even that faction has... issues when it comes to skirting the law of the area (*cough* dealing with Crookspur *cough*). Then again, a Mercykiller might not care as much about what goes down in Crookspur as your average cutter.
  15. Fair enuf, I was just going by the wording over at the Wiki which was a bit ambiguous. Still, depending on how quickly the Watcher deals with the Mortar, it might just be her lucky day after all.
  16. While I also like having companion quests (and everything else companions bring to the table), Solo challenges are a longstanding tradition in gaming, and having a couple of achievements tied to them is also fairly traditional. Only really matters if one cares about a 100% achievement result in your profile. And even then it should be just one play through to nab the Solo ones. Mostly though, Solo achievements are around for the challenge aspect. It should be especially interesting in this game considering how many skill checks are centered around having companions assist you.
  17. Yes, you get multiple achievements simultaneously for whatever you qualify for. It was that way in PoE I, and looking at the relevant code in gui.gamedatabundle for PoE II, it's the same way in Deadfire. So, for instance, if someone is going a Holy Crown Solo run while also doing a Naked Run, and they haven't already got them, at the end the game would give the following achievements all at once: Challenge the Gods Challenge the Pantheon Expert Path of the Damned Trial of Iron Triple Crown Triple Crown Solo Holy Crown Holy Crown Solo Naked Run Saves one from having to do 10 different runs at least.
  18. For all the talk already about Diplomat, I personally think the 'fun' one will be Naked Run. But if we're talking Maximum Hilarity, a Holy Crown Solo Diplomat Naked Run playthrough would be an... entertaining read. ==== Though I suspect at least a couple of God Challenges would auto-fail Diplomat, as I would think at least some of them would involve killing kith. Maybe Holy Crown Solo No Rest for the Pro Naked Run? Could be a nice substitute, depending on just what the God Challenges are.
  19. One interesting side benefit to sparing Benweth according to the Wiki (that I HAVEN'T tested). Apparently if you spare Benweth when the power struggle between Furrante and Aeldys occurs near the end game, Aeldys will already be captive at Dunnage and one doesn't have to go back to Fort Deadlight to deal with her. More to the point, there's an skill check option where you can spare her life in exchange for the information Furrante wants. This means if you want to side with Furrante you don't have to kill her/fight your way out of Fort Deadlight. This gives a non-violent path to siding with Furrante over Aeldys if that matters to anyone.
  20. Speaking of Magran's Fires, folks might be interested in a topic I started in the Spoiler section of the forum. Apparently Obsidian has already put in (many/most of) the Achievements tied to the Magran's Fires into the gamedatabundles and SOMEONE ( ) found them today. Still don't know about the hinderances that Obsidian alluded to, but it's my guess that folks spend points on them to activate them. I go into a tiny bit more detail in that thread I started, but I don't have much to go on yet.
  21. how the hell do you beat the game as a pacifist? Shouldn't be THAT difficult, really. Ally with the Principi (taking the non-violent solutions all the way)/Go it Alone. Many of the quests have non-violent solutions. Even the Crookspur one supposedly has one where you can convince the head slaver to get out of dodge. Presuming one doesn't employ exploits (which is NOT a safe presumption ) there should still be plenty of non-kith to kill and XP to be had to get to a reasonable level to fight the end boss. No matter how the gunpowder plot is handled, it does close off the RDC faction stone cold dead. It WILL absolutely close off quite a few quests though, yes. But sneak sneak leap, sneak sneak leap, rest, talk talk, sneak sneak leap is a pretty viable solution to many problems.
  22. Just diplomatically convince them to hand over their heads. But going back to the very first fight against Benweth's goons. If we assume the achievement is active for it, the way to avoid it would be to not score any killing blows yourself. If so, you could handle regular boarding battles the same way. Eh, seem too obvious an exploit. Yeah, I thought of the same thing when I was out and about, but it's just about the only way this could work for the opening scene. *checks* Hmmm. Interesting. It put those kills in the Party kill count after all: Though it's interesting that it doesn't have anything under the "Most Powerful Enemy Defeated" field. Also, I seem to recall in PoE I that if a member of the party does enough damage, it gets put on the kill counter. But I could be misremembering because on a separate test, I had a test character do 20 points of damage and then let the crew/Eder take care of the rest, but it didn't get put on my personal kill count. The other way it might work is if it's like some of the achievements in PoE I where it doesn't count the stuff done in the prologue and only starts tracking when you get into the Deadfire proper. Maybe it'll only track this once the Watcher gets to Vilario's Rest.
  23. If it doesn't that'd be an hilarious exploit of the challenge. "It wasn't me guvner, but my overzealous cannoneers. I'd flog 'em for it, but I abhor violence in all its forms, you see. Don't worry though, I'll give them a stern talking too right after supper!" ==== The better one is the final final fight right before you meet Eothas for the last time. Ironically enough, I found out just before this that the final final fight can be completely avoided with the right* amount of Stealth and/or a well timed leap. * The right amount being a Stealth score of around 16 or so! Also makes me think about the resolution of the Gunpowder plotline. While I suspect it's just going to be tracking a global data variable [Kith killed or something like that], you'd think that would auto-fail it as well. Though it DOES kinda restrict which ending factions one can take, so perhaps not. Also means more than a few quests can't be done. The mutually exclusive Crookspur ones, for instance. Probably some others I'm not thinking about right this second as well. Naturally, the bounties are pretty much excluded almost immediately, depending on how many of them start with Kith enemies.
  24. So when looking for information about the Bearth's Blessing files in the game data, I found something a little interesting. Namely, some/many of the upcoming achievements are already in gui.gamedatabundle with the descriptions in achievements.stringtable, even though they don't do anything yet. All of them are End Game cheevos, as might be expected. I don't know what the God Challenges are yet, beyond what Obsidian has already mentioned in their last couple updates. Might look through the game data later tonight when I have a chance. Challenge The Gods: Complete the game with a God Challenge enabled. (5 new game points) Challenge The Pantheon: Complete the game with all God Challenges enabled. (10 new game points) Diplomat: Complete the game without killing any kith. (5 new game points) Expert Mode: Complete the game on Expert Mode. (2 new game points) Holy Crown: Complete the game on Expert, Trial of Iron, and Path of the Damned with all God Challenges enabled. (20 new game points) Holy Crown Solo: Complete the game on Expert, Trial of Iron, and Path of the Damned with all God Challenges enabled while not taking any Companions. (20 new game points) Naked Run: Complete the game without wearing any armor, boots, gloves, helmets, or accessories in combat. (5 new game points) No Rest for the Pro: Complete the game with fewer than 10 rests. (5 new game points) Path of the Damned: Complete the game on Path of the Damned Mode. (5 new game points) Trial of Iron: Complete the game on Trial of Iron Mode. 5 new game points) Triple Crown: Complete the game on Expert, Trial of Iron, and Path of the Damned modes. (10 new game points) Triple Crown Solo: Complete the game on Expert, Trial of Iron, and Path of the Damned modes while not taking any new companions. (10 new game points) Zero Knockouts: Complete the game without any party members falling unconscious during combat. (5 new game points) The deluge of that many New Game Points leads me to think there will be a LOT more to spend them on, including ones that hinder the party presumably. Maybe the God Challenges are 'bought' with new game points? Find out soon enough, I suppose. === Can already see how Diplomat will be a fun one.
  25. Grep works fine Yeah, I just brute search-and-replaced WHILE making sure the proper amount of tabs were put in. If only so the code still looks (somewhat) pretty. Did mean I had to do a few of them to make sure the indentation level was the same, but pretty sure I got all of them on the few things I've modded locally.
×
×
  • Create New...