peardox Posted June 28, 2018 Share Posted June 28, 2018 (edited) First off I'd go grab my exported + fixed from [https://poe2.peardox.com/exported/] These fix a load if bugs in exported Now open up json/items.gamebundle.json You'll see a load of JSON Now - grab the bit you want - it's the LootList I'm using the Fishmonger near the ship in Port Maje as an example so search for her DebugName or ID so you can pinch it We are given this... { "$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "Store_09_PM_Fishmonger", "ID": "101d4c38-674b-415d-bb1e-bd68846ef033", "Components": [ { "$type": "Game.GameData.LootListComponent, Assembly-CSharp", "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "OutputMode": "All", "Items": [ { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 3, "MaxCount": 4, "Weight": 1, "ItemID": "c9b3ab6f-4eec-4cab-aab7-2fd8d9770c4d", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" }, { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 1, "MaxCount": 1, "Weight": 1, "ItemID": "c2caa441-4723-4573-9e62-8c6529142261", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" }, { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 6, "MaxCount": 8, "Weight": 1, "ItemID": "e253a1c6-5e1c-409a-8666-e27243f3b703", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" } ] } ] }, Copy that lot into a decent text editor (Notepad++ if windows, TextWrangler if Mac and just about anything on Linux - I side on vim from console) If you look carefully at the extract you'll notice there's a comma at the end - we don't want that, it will cause our Mod to fail so get rid of it (exactly the same file without the trailing comma is valid JSON, with it it's junk (don't blame me - I'm just telling you how this works( Right, we've got her in place. We now need to pad her out so POE2 can see her This is an extremely simple process... At the VERY BEGINNING of the file add this ... { "GameDataObjects": [ Now add this to the VERY END of the file ... ] } Congrats, you just created your first shop mod Save it in overrides/testmod/design/gamedata/testmod.gamedatabundle Assuming you've followed the instuctions accurately go see the fishmonger Nothing has changed (we basically just copied her default) Let's make this interesting and give her something else to sell ... Go back to you testmod.gamedatabundle and modify it WARNING - this is the easiest place to mess it all up At the end of the file directly after LockedVisible: "false" } It's that closing brace we're looking for Add this, directly after the closing brace , { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 6, "MaxCount": 8, "Weight": 1, "ItemID": "e253a1c6-5e1c-409a-8666-e27243f3b703", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" } Save your mod again and load the game again (you need to be completely out of game in order to test) - full reload is a must (bit of a pain I know) Reload done? Go to PM's fishwife and ask her what she's got Attached you should see Defiant Apparel in her list if you did this correctly Here's the complete mod in case you messed it up somewhere { "GameDataObjects": [ { "$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "Store_09_PM_Fishmonger", "ID": "101d4c38-674b-415d-bb1e-bd68846ef033", "Components": [ { "$type": "Game.GameData.LootListComponent, Assembly-CSharp", "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "OutputMode": "All", "Items": [ { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 3, "MaxCount": 4, "Weight": 1, "ItemID": "c9b3ab6f-4eec-4cab-aab7-2fd8d9770c4d", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" }, { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 1, "MaxCount": 1, "Weight": 1, "ItemID": "c2caa441-4723-4573-9e62-8c6529142261", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" }, { "Conditional": { "Operator": 0, "Components": [] }, "OutputChance": 1, "MinCount": 6, "MaxCount": 8, "Weight": 1, "ItemID": "e253a1c6-5e1c-409a-8666-e27243f3b703", "LootListID": "00000000-0000-0000-0000-000000000000", "LockedVisible": "false" } ] } ] } ] } Please note that the entire file needs to be JSON-friendly The comma I mentioned above is ABSOLUTELY REQUIRED for any sub-items but MUST NOT appear after the final one - this is bad JSON and your MOD won't load as a result. OK - reload a game, go see the vendor - ooh, she's got something useful I urge you to not use the vendor I use in this example - try to find another i.e. change "DebugName": "Store_09_PM_Fishmonger", "ID": "101d4c38-674b-415d-bb1e-bd68846ef033", To someone else - ideally use a STORE or VD DebugName as they're almost certain to work So, for example "$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "Store_04_PD_Unas_Luxuries", I know that one works, Unas is a vendor in Serpent Crown near the south entrypoint Don't be lazy - go find your own! Personally I'm using Eofania and know TT1 is using Wild Mare If we clash over vendors everyone loses Righto Edited June 29, 2018 by peardox 2 OK Fair warning has been applied I'm gonna move the domain to https://perspak.com early Feb but will keep all content There are reasons behind this move which basically boil down to unifying my release schedule My friends are welcome to play (I'll set you up your own areas if you desire them) Please note that this process is messy so may take a few weeks Link to comment Share on other sites More sharing options...
TT1 Posted June 28, 2018 Share Posted June 28, 2018 (edited) Don't be lazy - go find your own! Personally I'm using Eofania and know TT1 is using Wild Mare other top 100 mods on Nexus: Trinkets is using Sanza's Map Emporium Grimoires of the Master Specializations is using Kraken's Eye Amir Spellbook is using Dark Cupboard The Bloody Blossom is using Marihi shop God equip is using the fish vendor in Neketaka Edited June 28, 2018 by TT1 1 Link to comment Share on other sites More sharing options...
kilay Posted July 20, 2018 Share Posted July 20, 2018 Don't be lazy - go find your own! Personally I'm using Eofania and know TT1 is using Wild Mare other top 100 mods on Nexus: Trinkets is using Sanza's Map Emporium Grimoires of the Master Specializations is using Kraken's Eye Amir Spellbook is using Dark Cupboard The Bloody Blossom is using Marihi shop God equip is using the fish vendor in Neketaka I taked Thoren in Lower Floor of Kraken's Eye (Grimoires of the Master Specializations use Norgund at upper floor) Random Reader'Plinio il Vecchio asseriva che un rimedio alla sbronza fosse quello di mangiare uova crude di gufo' I° secolo D.C. My Mods on Nexus Nexus Mods Translated to Italian Italian Localization Fix PATCH More Custom AI Conditions Enhanced UI - Afflictions and Inspirations Extended Spell TT1 Unique Items More Priest Subclasses_Ondra Hylea Abydon Channeler Cipher Subclass Are you looking for a group of modders ?Request an invite to our Slack group Do you need a mod? Fill this mod request Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now