Welcome to Obsidian Forum Community

# First Mod (spoilers)

67 replies to this topic

### #1 peardox Posted 17 July 2018 - 04:17 AM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK
I promised to throw a beginners guide to Modding up - this does almost nothing but is a valid Mod

This is the slimmest mod I could imagine

If you haven't got one create an override directory in "Pillars of Eternity II Deadfire\PillarsOfEternityII_Data"

Create a new directory called first_mod

Now create a sub-sirectory called design and one below that called gamedata

In that directory create a file called first_mod.gamedatabundle (no .txt) and stick the following in it
{
"GameDataObjects": [
{
"$type": "Game.GameData.WeaponGameData, Assembly-CSharp", "DebugName": "Great_Sword", "ID": "3530e7a2-ec4f-4d5f-a436-53e26ed3e075", "Components": [ { "$type": "Game.GameData.ItemComponent, Assembly-CSharp",
"DisplayName": 11,
"DescriptionText": 262,
"FilterType": "Weapons",
"InventoryAudioEventListID": "d9ef8ec9-f1fb-4d0b-88b7-49d7c0310019",
"IsQuestItem": "false",
"IsIngredient": "false",
"IsCurrency": "false",
"CanSellForFullValue": "false",
"MaxStackSize": 1,
"NeverDropAsLoot": "false",
"CanBePickpocketed": "true",
"IsUnique": "false",
"Value": 50,
"IconTextureSmall": "gui\/icons\/items\/weapons\/great_sword\/great_sword_s.png",
"IconTextureLarge": "gui\/icons\/items\/weapons\/great_sword\/great_sword_l.png",
"PencilSketchTexture": "",
"InspectOnUseButton": [],
"IsPlaceholder": "false"
},
{
"$type": "Game.GameData.EquippableComponent, Assembly-CSharp", "EquipmentType": "GreatSword", "EquipmentSlot": "BothPrimaryAndSecondary", "AppearancePiece": { "ModelVisualDataPath": "prefabs\/items\/appearance\/weapons\/great_sword\/great_sword01.asset" }, "ItemModsIDs": [], "OnEquipVisualEffects": [], "RestrictedToClassIDs": [], "RestrictedToPlayer": "false", "ProficientAbilityID": "0b5fe616-3d6d-460d-a02d-28a1b4217796", "CannotUnequip": "false", "ItemRendererPrefab": "prefabs\/itemrenderers\/genericitemrenderer.prefab", "ItemModel": "art\/character\/weapons\/great_sword\/great_sword01\/w_gs01.fbx", "AnimationController": "", "PaperdollOverrideRenderer": "", "AttackSummonID": "00000000-0000-0000-0000-000000000000", "CannotSheathe": "false", "PropVisualEffects": [] }, { "$type": "Game.GameData.WeaponComponent, Assembly-CSharp",
"Stance": "TwoHandedClosedGrip",
"AnimationStanceID": "2bfb014c-53e1-44d0-82c8-3c3ff7a6741e",
"StatusEffectsOnLaunchIDs": [],
"IsDisplayedWhenAlternate": "true",
"IsUniversalType": "false",
"AttackID": "1d10eee8-c68a-4593-8075-7a2e19db6602",
"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
"ForceBackScabbard": "true",
"ScabbardAppearancePiece": {
"ModelVisualDataPath": "prefabs\/items\/appearance\/weapons\/great_sword\/a_great_sword01_scabbard.asset"
},
"ScabbardRendererPrefab": "prefabs\/itemrenderers\/genericitemrenderer.prefab",
"ScabbardModel": "",
"AudioEventListID": "00000000-0000-0000-0000-000000000000"
}
]
}
]
}

Everything in POE2 is identified using a GUID - all we've done so far is clone an existing item

Let's go get one...

For testing we'll use fe314613-c507-4f86-86d2-dd94b09429e0

Now, let's change the first couple of lines to look like this

            "DebugName": "First_Mod_Great_Sword",
"ID": "fe314613-c507-4f86-86d2-dd94b09429e0",

We've now got our own Great Sword, let's go name it.

You see DisplayName and DescriptionText, lets change those...

Create first_mod\localized\en\text\game and a new file called items.stringtable

Stick the folowing in it...

<?xml version="1.0" encoding="utf-8"?>
<StringTableFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Name>game\items</Name>
<Entries>
<Entry>
<ID>12650</ID>
<DefaultText>First Mod Great Sword</DefaultText>
<FemaleText />
</Entry>
<Entry>
<ID>12651</ID>
<DefaultText>For Frodo!</DefaultText>
<FemaleText />
</Entry>
</Entries>
</StringTableFile>

Note the numbers - make then something weird so as not to clash > 10k is good but bear in mind another Mod authour may be using the same numbers (Mod Clash)

Change your gamebundle to reference the new strings

                    "DisplayName": 12650,
"DescriptionText": 12651,

Save your mod and start a game.

Now we're going to cheat ourselves in out new item - this is perfectly acceptable when Modding for quick tests

To get into the terminal hit the back-quote () character and type in iroll20s
Now let's get us our new sword...
Hit the back-quote () character and type in GiveItem fe314613-c507-4f86-86d2-dd94b09429e0
Hit the back-quote () character and type in iroll20s again to switch off Cheat mode

A zip of first_mod with far more utility folders is attached

All we've done so far is copy an item and make it our own - this is where the fun begins

Hopefully one of our Slack Team will continue this (I'm busy)

There in no mention of translations, changing the basic sword or whatever in this article

#### Attached Files

• AndreaColombo, tonpix, Zap Gun For Hire and 2 others like this

### #2 mant2si Posted 17 July 2018 - 04:51 AM

mant2si

(6) Magician

• Members
• 680 posts

I want to start with modding but now little bit afraid. How to investigate all possible values for each property ? How to navigate between GUID's ?

Do you know if obsidian plans to release some open source tool to help developers ? Otherwise maybe community want to develop this tool ? I think this is not big problem to put all *.gamedatabundle to Elastic/(any db that natively support JSON) and create GUI with React or VUE

Edited by mant2si, 17 July 2018 - 04:58 AM.

• kilay likes this

### #3 kilay Posted 17 July 2018 - 05:11 AM

kilay

(5) Thaumaturgist

• Members
• 524 posts

I want to start with modding but now little bit afraid. How to investigate all possible values for each property ? How to navigate between GUID's ?

Do you know if obsidian plans to release some open source tool to help developers ? Otherwise maybe community want to develop this tool ? I think this is not big problem to put all *.gamedatabundle to Elastic/(any db that natively support JSON) and create GUI with React or VUE

https://eternity.obs...ormats/concepts

Edited by kilay, 17 July 2018 - 05:12 AM.

### #4 mant2si Posted 17 July 2018 - 05:37 AM

mant2si

(6) Magician

• Members
• 680 posts

I want to start with modding but now little bit afraid. How to investigate all possible values for each property ? How to navigate between GUID's ?

Do you know if obsidian plans to release some open source tool to help developers ? Otherwise maybe community want to develop this tool ? I think this is not big problem to put all *.gamedatabundle to Elastic/(any db that natively support JSON) and create GUI with React or VUE

https://eternity.obs...ormats/concepts

Hmm, this is API ? But again for game developing I prefer GUI, simple because I don't like navigate by GUID with CTRL + F, I like autocomplition and live validation. So now there non exist any GUI tool ?

Maybe something like starcraft 2 GalaxyEditor

Edited by mant2si, 17 July 2018 - 05:40 AM.

### #5 kilay Posted 17 July 2018 - 05:53 AM

kilay

(5) Thaumaturgist

• Members
• 524 posts

I want to start with modding but now little bit afraid. How to investigate all possible values for each property ? How to navigate between GUID's ?

Do you know if obsidian plans to release some open source tool to help developers ? Otherwise maybe community want to develop this tool ? I think this is not big problem to put all *.gamedatabundle to Elastic/(any db that natively support JSON) and create GUI with React or VUE

https://eternity.obs...ormats/concepts

Hmm, this is API ? But again for game developing I prefer GUI, simple because I don't like navigate by GUID with CTRL + F, I like autocomplition and live validation. So now there non exist any GUI tool ?

Maybe something like starcraft 2 GalaxyEditor

https://spiritualsuccessor.net

Edited by kilay, 17 July 2018 - 05:54 AM.

• Grape_You_In_The_Mouth likes this

### #6 peardox Posted 17 July 2018 - 01:16 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

Hey, this was a VERY basic mod piece

@House2fly wanted a specific example - I gave him one

Expanding this is dead sample is super simple

Rats - I'm gonna expand it, ain't I - well it's only an hour or so to make first mod into uselful kit

Then I have to attatch it to a shop

### #7 peardox Posted 17 July 2018 - 02:50 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

As this is now pinned

well -byee week off

I've gotta do one of these a day

I'll ask our Slack for some help (they're good)

### #8 peardox Posted 17 July 2018 - 03:09 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

I'm stickied now (thanks @CDiaz)

I'll spend a few days taking first mod to - well, higher numbers

### #9 peardox Posted 18 July 2018 - 04:25 AM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

Part 2

This one is code-light but experience heavy

OK - let's not rely on cheats. Let's go give it to a vendor.

There is a problem - well, two actually.

1) Other Modders are looking to add items to a vendor so we can get Mod Clash. If two Mods use the same vendor one wins the other loses. We have petitioned the Devs to let us convert any named NPC into a vendor, if/when we get this ability the issue becomes moot.

2) Savegames cache state. If you enter an area and talk to someone that information is saved. If you've already talked to your vendor we get the saved vendor list NOT our new version - there are ways around this but involves hacking your savegame (they're ZIPs if you want a clue)

Bearing in mind these to-be-resolved issues it is highly recommended to interact with NOBODY and make a bee-line for Port Maje then save before entering the town

This takes ages so I've prepared one for you (See attachments) - geez - I had to Zip a Zip...

Stick this in your Savegames directory - on Windows it'll be C:\Users\<you>\Saved Games\Pillars of Eternity II - got a Mac but someone can give us the path for that one

This character is a nothing rogue with no companions who decided to save the box (not really worth it) ignored everyone and is standing outside Port Maje (PM) - he's a good character as a base for Mod experimentation - he's called First Mod and has done everything wrong.

You're now in the perfect place to do some more advanced Mod development

Feel free to create your own Dev save - I'm simply circumventing the necessity or going thru the torturous StartGame and wasting 20 mins getting solo to PM.

OK - we are now standing directly outside PM and we've interacted with as few people as possible.

You can see the issues if you use this save, go talk to fishmonger THEN apply today's Mod, reload - no MOD stupid sword. Apply the Mod (we're almost there) and repeat this using the savegame - First Mod Great Sword is buyable!

Our experiments show that if you've talked to a vendor this is when the bug occurs. Without Mod installed go to fishmonger - save - chat, save. Install Mod and reload before and after.

We're simply trying to make your own Mod development less frustrating - took us days to work out the rules.

OK - let's vendor our crap sword

In items.gamedatabundle we can find...

            "DebugName": "Store_09_PM_Fishmonger",
"ID": "101d4c38-674b-415d-bb1e-bd68846ef033",



We need to override her while keeping good JSON formatting

You'll find this....

        {
"$type": "Game.GameData.LootListGameData, Assembly-CSharp", "DebugName": "Store_09_PM_Fishmonger_Rack", "ID": "a6696c7c-edaf-4996-be76-8978225b5930", "Components": [ { "$type": "Game.GameData.LootListComponent, Assembly-CSharp",
"Conditional": {
"Operator": 0,
"Components": []
},
"OutputChance": 1,
"OutputMode": "All",
"Items": [
{
"Conditional": {
"Operator": 0,
"Components": []
},
"OutputChance": 1,
"MinCount": 2,
"MaxCount": 3,
"Weight": 1,
"ItemID": "f2a6175c-1107-4920-9e2f-ae7d07e09167",
"LootListID": "00000000-0000-0000-0000-000000000000",
"LockedVisible": "false"
},
{
"Conditional": {
"Operator": 0,
"Components": []
},
"OutputChance": 1,
"MinCount": 3,
"MaxCount": 4,
"Weight": 1,
"ItemID": "859b1408-0d16-4e80-8dd6-0b35c42ee9ec",
"LootListID": "00000000-0000-0000-0000-000000000000",
"LockedVisible": "false"
}
]
}
]
},



Note the comma at the end - lose it and we've now got a valid JSON object

Now let's add it to first_mod.gamedatabundle

As mentioned in Part 1 your mod gamedatabundle can include things in other official bundles

We're going to take the last item in Fishmonger's shop and add our rubbish sword - don't worry, we'll make it better next time. We thought you'd like to see the shop bit first.

OK - this is Part 1 with some added data for the shop

{
"GameDataObjects": [
{
"$type": "Game.GameData.WeaponGameData, Assembly-CSharp", "DebugName": "First_Mod_Great_Sword", "ID": "fe314613-c507-4f86-86d2-dd94b09429e0", "Components": [ { "$type": "Game.GameData.ItemComponent, Assembly-CSharp",
"DisplayName": 12650,
"DescriptionText": 12651,
"FilterType": "Weapons",
"InventoryAudioEventListID": "d9ef8ec9-f1fb-4d0b-88b7-49d7c0310019",
"IsQuestItem": "false",
"IsIngredient": "false",
"IsCurrency": "false",
"CanSellForFullValue": "false",
"MaxStackSize": 1,
"NeverDropAsLoot": "false",
"CanBePickpocketed": "true",
"IsUnique": "false",
"Value": 50,
"IconTextureSmall": "gui\/icons\/items\/weapons\/great_sword\/great_sword_s.png",
"IconTextureLarge": "gui\/icons\/items\/weapons\/great_sword\/great_sword_l.png",
"PencilSketchTexture": "",
"InspectOnUseButton": [],
"IsPlaceholder": "false"
},
{
"$type": "Game.GameData.EquippableComponent, Assembly-CSharp", "EquipmentType": "GreatSword", "EquipmentSlot": "BothPrimaryAndSecondary", "AppearancePiece": { "ModelVisualDataPath": "prefabs\/items\/appearance\/weapons\/great_sword\/great_sword01.asset" }, "ItemModsIDs": [], "OnEquipVisualEffects": [], "RestrictedToClassIDs": [], "RestrictedToPlayer": "false", "ProficientAbilityID": "0b5fe616-3d6d-460d-a02d-28a1b4217796", "CannotUnequip": "false", "ItemRendererPrefab": "prefabs\/itemrenderers\/genericitemrenderer.prefab", "ItemModel": "art\/character\/weapons\/great_sword\/great_sword01\/w_gs01.fbx", "AnimationController": "", "PaperdollOverrideRenderer": "", "AttackSummonID": "00000000-0000-0000-0000-000000000000", "CannotSheathe": "false", "PropVisualEffects": [] }, { "$type": "Game.GameData.WeaponComponent, Assembly-CSharp",
"Stance": "TwoHandedClosedGrip",
"AnimationStanceID": "2bfb014c-53e1-44d0-82c8-3c3ff7a6741e",
"StatusEffectsOnLaunchIDs": [],
"IsDisplayedWhenAlternate": "true",
"IsUniversalType": "false",
"AttackID": "1d10eee8-c68a-4593-8075-7a2e19db6602",
"NoiseLevelID": "15743f94-1026-40b0-8e13-a667b3f66f63",
"ForceBackScabbard": "true",
"ScabbardAppearancePiece": {
"ModelVisualDataPath": "prefabs\/items\/appearance\/weapons\/great_sword\/a_great_sword01_scabbard.asset"
},
"ScabbardRendererPrefab": "prefabs\/itemrenderers\/genericitemrenderer.prefab",
"ScabbardModel": "",
"AudioEventListID": "00000000-0000-0000-0000-000000000000"
}
]
}, {
"$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": 6,
"MaxCount": 8,
"Weight": 1,
"ItemID": "e253a1c6-5e1c-409a-8666-e27243f3b703",
"LootListID": "00000000-0000-0000-0000-000000000000",
"LockedVisible": "false"
},
{
"Conditional": {
"Operator": 0,
"Components": []
},
"OutputChance": 1,
"MinCount": 1,
"MaxCount": 1,
"Weight": 1,
"ItemID": "fe314613-c507-4f86-86d2-dd94b09429e0",
"LootListID": "00000000-0000-0000-0000-000000000000",
"LockedVisible": "false"
}
]
}
]
}
]
}


All we've done is replicated an item and changed an ID to our junky sword's ID

Go see fishmonger in PM, she's near your eventual Ship

Go to her shop and we get this...

Attached is an updated version of first_mod.zip - just overwrite part one with this and you've got a shop

Next time we'll make crap sword into good sword

#### Attached Files

• kilay likes this

### #10 peardox Posted 18 July 2018 - 07:10 AM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

Part 3

A cool update in 1.2.0 was the inclusion of the Mod Manager

There is no code in this one - this is simplifying some complex issues raised by @BMac in his starting out post

If you look in the first_mod folder, assuming you've got installed you'll find two files - manifest.json and thumb.png

The thumb.png is a 149x82 image that will show up in Mod Manager.

We got ours under license (I have to say this every time) from Mark Millmore of https://discoveringegypt.com/

You replace that image with your own, if omitted you'll get a stock piccie

Let's get to personalising it

{
"Title" : {
"de" : "First Mod",
"en" : "First Mod",
"es" : "First Mod",
"fr" : "First Mod",
"it" : "First Mod",
"pl" : "First Mod",
"pt" : "First Mod",
"ru" : "First Mod",
"zh" : "First Mod"
},
"Description" : {
"de" : "For Frodo",
"en" : "For Frodo",
"es" : "For Frodo",
"fr" : "For Frodo",
"it" : "For Frodo",
"pl" : "For Frodo",
"pt" : "For Frodo",
"ru" : "For Frodo",
"zh" : "For Frodo"
},
"Author" : "Peardox",
"ModVersion": "1.2",
"SupportedGameVersion" : {
"Min" : "1.1.0",
"Max" : "1.2.0"
}
}


The Description and Title bits allow us to define localisation so go to Google Translate and grab basic translations (we'll be coming back to this point)

The next bits are pretty self-evident - I wrote it, I've given it version 1.2 (as I'm using 1.2.0 of the game)

The SupportedGameVersion is something we need to pay attention to

We've already tried setting Max to 1.3.0 but on August 3rd we get a V2 so this mod won't, most likely, be picked up

If you're doing nothing dangerous simply set Max to 99.0.0

OK - translations

Most of our co-dependant Slack Group (see my sig) don't speak English as their native language but have good English skills

We've got Russian, Italian, Polish and German covered which is fairly good (Obsidian are far worse)

I can go to our Slack and tomorrow have a (mostly) fully translated manifest.json

The next update will include these changes

Sometimes we have to go "outside the box", I personally know pro translators - I hate asking them so ask us for an invite

PM me

Right - translation crew...

### #11 peardox Posted 18 July 2018 - 02:00 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

I'm almost ready for the next part

If anyone can fix the translations before I write it....

{
"Title" : {
"de" : "First Mod",
"en" : "First Mod",
"es" : "First Mod",
"fr" : "First Mod",
"it" : "Prima Mod",
"pl" : "Pierwszy Mod",
"pt" : "First Mod",
"ru" : "First Mod",
"zh" : "First Mod"
},
"Description" : {
"de" : "Für Frodo",
"en" : "For Frodo",
"es" : "Para Frodo",
"fr" : "Pour Frodo",
"it" : "For Frodo",
"pl" : "Dla Froda",
"pt" : "For Frodo",
"ru" : "For Frodo",
"zh" : "For Frodo"
},
"Author" : "Peardox",
"ModVersion": "1.2",
"SupportedGameVersion" : {
"Min" : "1.1.0",
"Max" : "1.2.0"
}
}

### #12 Xaratas Posted 18 July 2018 - 11:04 PM

Xaratas

(7) Enchanter

• Members
• 901 posts

I allways see the guid generator. Thats not needed at all. The rule is to only use hex digits, and then you can create numbers like this:

With a prefix for you self and an count for your mods. That way will make it more easy to track down a modded file and brings some ordering in the mods in general.

"$type": "Game.GameData.WeaponGameData, Assembly-CSharp", "DebugName": "First_Mod_Great_Sword", "ID": "AA000000-0000-0000-0000-000000000001",  • TT1, tonpix and BMac like this ### #13 BMac Posted 19 July 2018 - 08:18 AM BMac Programmer • Developers • 410 posts I allways see the guid generator. Thats not needed at all. The rule is to only use hex digits, and then you can create numbers like this: With a prefix for you self and an count for your mods. That way will make it more easy to track down a modded file and brings some ordering in the mods in general. "$type": "Game.GameData.WeaponGameData, Assembly-CSharp",
"DebugName": "First_Mod_Great_Sword",
"ID": "AA000000-0000-0000-0000-000000000001",`

You may want to instead generate most of the GUID randomly and use a small chunk for counting (e.g. "544a30f4-b90e-451b-bb2d-fadc88000001").  Random GUIDs are useful because they are statistically guaranteed to be unique, but the less of the GUID you generate randomly, the more likely it'll conflict with one in someone else's mod.

• Zap Gun For Hire likes this

### #14 kilay Posted 19 July 2018 - 08:45 AM

kilay

(5) Thaumaturgist

• Members
• 524 posts

I'm almost ready for the next part

If anyone can fix the translations before I write it....

{
"Title" : {
"de" : "First Mod",
"en" : "First Mod",
"es" : "First Mod",
"fr" : "First Mod",
"it" : "Prima Mod",
"pl" : "Pierwszy Mod",
"pt" : "First Mod",
"ru" : "First Mod",
"zh" : "First Mod"
},
"Description" : {
"de" : "Für Frodo",
"en" : "For Frodo",
"es" : "Para Frodo",
"fr" : "Pour Frodo",
"it" : "For Frodo",
"pl" : "Dla Froda",
"pt" : "For Frodo",
"ru" : "For Frodo",
"zh" : "For Frodo"
},
"Author" : "Peardox",
"ModVersion": "1.2",
"SupportedGameVersion" : {
"Min" : "1.1.0",
"Max" : "1.2.0"
}
}

It's "it" : "Per Frodo"

Edited by kilay, 19 July 2018 - 08:45 AM.

### #15 house2fly Posted 19 July 2018 - 08:22 PM

house2fly

(8) Warlock

• Members
• 1162 posts
Q for peardox: you mention having to have a save before ever talking to the vendor, but in my save I used the temple vendor in Sacred Stair as my vendor and I've talked to her plenty before, and the items seem to show up just fine. Same for, say, TT1's items- I've chatted with the Wild Mare vendor a million times. Why do you need a "fresh" save?
• peardox likes this

### #16 kilay Posted 19 July 2018 - 08:47 PM

kilay

(5) Thaumaturgist

• Members
• 524 posts

Q for peardox: you mention having to have a save before ever talking to the vendor, but in my save I used the temple vendor in Sacred Stair as my vendor and I've talked to her plenty before, and the items seem to show up just fine. Same for, say, TT1's items- I've chatted with the Wild Mare vendor a million times. Why do you need a "fresh" save?

I guess that this is just related to the tutorial process , so you can avoid the waiting process for the stacks refresh and load quickly for testing.

If not you can wait 25 hours and the vendor inventory will be refreshed with the new item.

### #17 peardox Posted 22 July 2018 - 04:13 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

Q for peardox: you mention having to have a save before ever talking to the vendor, but in my save I used the temple vendor in Sacred Stair as my vendor and I've talked to her plenty before, and the items seem to show up just fine. Same for, say, TT1's items- I've chatted with the Wild Mare vendor a million times. Why do you need a "fresh" save?

A save - at least before 1.2.2 (not sure now) saves a bit too much data.

I have provable saves that illustrate this issue

So - go to a vendor BEFORE you activate your mod and save then again AFTER you do your mod

The result is the AFTER mod won't have your new item but your BEFORE mod will

We've made the Devs aware of this - I have a way around it but this involves hacking a savegame so hope this gets in 1.2.2 / 2.0.0

Convo Mods appear immune to this (for everyone else)

### #18 peardox Posted 22 July 2018 - 05:08 PM

peardox

(5) Thaumaturgist

• Members
• 564 posts
• Location:Manchester, UK

@house2fly

Yep - confirmed this is still broken

From what I can tell if you go into a new area you're safe

If you DONT talk to the vendor, see their shop + save you're still fine

Lastly TALK and see what she has

Install a Mod I purposely use Shatusi (or whatever) as it's easy to get to with https://www.nexusmod...rnity2/mods/125 (one of mine)

Two final tests - stick my (or anyone else's vendor)

Go back to Eofonia from PM and you get a load of extra items

We've been discussing this for over a month

### #19 Kexby Posted 30 July 2018 - 08:11 PM

Kexby

(2) Evoker

• Members
• 72 posts
• Location:Australia

This is a wonderful tutorial peardox. Even beginners like me can follow it

So I'm going to be brave and try making my own custom weapon.

I just have one question about the GUID. If I replace the first 3 entries with kex would that count as a unique GUID?

For example, your original sword's ID was: "ID": "3530e7a2-ec4f-4d5f-a436-53e26ed3e075",

If I changed it to: "ID": "kex0e7a2-ec4f-4d5f-a436-53e26ed3e075",

Would that work?

### #20 kilay Posted 30 July 2018 - 08:19 PM

kilay

(5) Thaumaturgist

• Members
• 524 posts

This is a wonderful tutorial peardox. Even beginners like me can follow it

So I'm going to be brave and try making my own custom weapon.

I just have one question about the GUID. If I replace the first 3 entries with kex would that count as a unique GUID?

For example, your original sword's ID was: "ID": "3530e7a2-ec4f-4d5f-a436-53e26ed3e075",

If I changed it to: "ID": "kex0e7a2-ec4f-4d5f-a436-53e26ed3e075",

Would that work?

Nope

use that to create new GUID  (use 4 UUID , the one in the middle of the page)

#### 1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users