Jump to content

Recommended Posts

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 by peardox
  • Like 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

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 by TT1
  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...

 

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)

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...