Jump to content

peardox

Members
  • Posts

    564
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by peardox

  1. A hover on Mod Manager

     

    I have this text for the short description on Nexus for my latest (can't try Steam - GOG installed)...

     

    "Adds all Enchanting ingredients to Fishmonger in Port Maje (patch 2.1.0+)"

     

    In manifest.json I am forced to use...

     

    "All enchanting ingredients are available"

    Maybe an altDescription with more text for the hover?

  2. We could sorely use a complete list of all console commands

     

    The autoComplete for printInstance oei_hovered for example ain't enabled - just had an whoops with that one with a fellow Modder in our Slack (fortunately as I've written quite a lot in the Adding Items thread I was able to correct myself rapidly)

     

    While I'm sure there are some commands in console that are rightly hidden the majority should be fine for us to be aware of.

     

    We'd settle for an addition to the Docs pages or even a post here for now (sticky it if you chose this option)

     

    A related question by one of my fellow Mods that remains unanswered is here...

     

    https://forums.obsidian.net/topic/104936-the-feature-requests-to-obsidian-for-modding-deadfire-thread/?p=2096308

     

     

    • Like 2
  3. So if there's limited slots the mod lootlist would override the original one? Ie if I have 14 items and add them all to the pig it'll drop those 14 items and none of its original loot?

     

    Regarding attack mode, do you mean when the enemy is officially "spotted" and autopause kicks in (if enabled)? That WOULD be a short window! But if that window is all you need to add loot to any NPC or creature in the game then that's plenty

     

    I'm not sure if there's a race - I've tried this half a dozen times but the porky mod APPEARS to always win - I'm guessing that the ModScriptHook takes preference over a lootlist rewrite - Only @BMac nows for sure.

     

    As the standard lootlist 

    	"DebugName": "LL_Boar_Young",
    	"ID": "310520c4-4ab8-401f-b7c8-79c3f4a91343",
    
    

    Has a "OutputMode": "One_Random" we can replace it with a "OutputMode": "All" in our override

     

    Add this one (it's in the attach) - make sure you don't have porky mod installed as they use the same ID for the lootlist.gamedatabundle (all the above do), load the porky save and, voila...

     

    Now we get the pork as well as the added items

     

    There IS however an apparent limit on loot from anything that ain't a shop of 14 items - ships appear to fill it up (no reason we can't use the same trick with everything)

     

    The printInstance oei_hovered does work when you hit auto-pause (just checked). Maybe they've changed something? Maybe I just mis-typed the command in debug? Dunno.

     

    I used the Boar as it's right at the start but it potentially works on ANY NPC

    pdx-unique-items-additem-porky-plus.zip

  4.  

    Second, you mention stores specifically but presumably this can be used with any object that contains loot? Ie if I want to add a unique weapon to the digsite dungeon at the start of the game all I'd need to do is go to that dungeon, find a suitable loot container, and PrintInstance to get the ID?

    Relatedly, if you did this to a NPC, is it possible to add it to its LootList via the same means? This would make it so an NPC could drop a specific item on death, which I know a couple of people have been asking about.

     

    (and would it be pickpocketable if so [some people might not like that, is why I ask, though it wouldn't matter for hostile NPCs as they can't be pickpocketed])

     

    Even if it doesn't, this opens up a world of possibilities.  :thumbsup:

     

     

    OK here's a well fed boar (they eat anything)

     

    The savegame is in porky.zip, the other one's the loot

     

    Getting the ID is tricky going on my attempts to get it - you need the target (Young Boar) to be visible but you need to NOT be in attack mode. There's a very short period between the Boar being visible and the auto-attack kicking in. Pause in that window and do a printInstance with your mouse over the Boar and you get it (c0d8cf7b-8f24-4bb2-b7d9-51ea73f897b8)

     

    This one's exactly the same as the others above so read them for the skinny.

     

    The changes are ...

     

    1) the lootlist in pdx-unique-items.gamedatabundle has been shortened as there are only 14 slots on a pig

    2) the attached trigger in lootlist.gamedatabundle now has the Boar's ID

    3) The boar's normal drop is set to one_random and I've already given it six so the natural drop don't happen

     

    If you load Mapper -> Porky the boar will wander into view after a few seconds, kill it to get the new lootlist rather than the usual Pork drop

    pdx-unique-items-additem-porky.zip

    porky.zip

    • Like 3
  5. I'm happy to announce that we have a new member

     

    @Cassiopia is still learning Modding so we're helping out with his / her Modding learning curve

     

    The BIG thing to us is that he / she does French properly (only Spanish to go)

     

    We've also worked out another new technique that only applies to 2.1.0+

     

    This one ain't a spoiler...

     

    We can now add items to chests etc (I'll be trying NPCs in the AM before I go vanilla again)

     

    This kind of ability gives us a lot of flexibility (it'll be cool if I can get NPCs modded using this technique)

    This stuff is getting FUN again!

     

    We have many upcoming facilities owing to our ties with the Dev team - announcements when we get to explore them

    • Like 1
  6. OK - done @house2fly's version

     

    This one uses a diffo save and a very small mod to the original lootlist.gamedatabundle above

     

    If you load the savegame and cheat (console) PrintInstance oei_hovered you'll find it's ID is 05b7a207-5857-4a01-b62d-cd3345dc2c22

     

    All we have to do is change lootlist.gamedatabundle to use this ID (twice!!!)

     

    Note that all these Mods happily co-exist in 2.1b (don't test my theory though!)

     

    If you read the above instructions it's exactly the same deal apart from this time you wanna load Mapper -> FirstBox (it's the first locked box I tend to come across in Sea Cave) 

     

    The box is locked but it's pickable - the playable has enough to do this (ain't there a console that unlocks everything?)

     

    One last point is that players call console the Cheat, we actually rely on it when developing Mods

     

    Look at the crappy character I gave you in this save! If there's something we can't afford from someone like this piece of junk we need to be able to givePlayerMoney 10000000 simply to test things out. We constantly use giveItem <ID> (Rant over)

     

    So - here are the files - if you Mod this is extremely simple - no real need to read the rest :)

     

    Where's the fun in that

     

    OK - I recommend a clean override before you start

     

    First install the savegave (see my initial message on this above)

    Load the save and open the box - full of junk

     

    Exit to desktop

     

    Install the new mod in override and open the box again - cool, far better loot

     

    I'm gonna try an NPC with the same lootlist tomorrow

     

    I THINK we need a NAMED NPC to lootlist them ATM (may change my mind)

     

    Tried the piggie before seacave, that one's harder but have changed it's lootlist

     

    Problem is I can't printInstance the thing

     

    Here are the files...

     

    Housefly.zip is the savegame

     

    pdx-unique-items-housefly.zip

    housefly.zip

  7. Forgive the basic questions:

     

    Would generating your lootlist into the object add your lootlist to the existing lootlist, or replace it? I presume it would just add, hence avoiding conflicts with mods?

     

    Second, you mention stores specifically but presumably this can be used with any object that contains loot? Ie if I want to add a unique weapon to the digsite dungeon at the start of the game all I'd need to do is go to that dungeon, find a suitable loot container, and PrintInstance to get the ID?

     

    This is very exciting news by the way!

     

    Rats - forgot this one my Slack friend

     

    I'll do a sample at the start of game that does an object attach as I think I understand this now

     

    I'm not gonna Mod your mod, simply detail how to do what you ask (I'll use my Mod as I can permit myself to do this kinda stuff)

     

    May try a character mod as well (simply to see if I can do it)

     

    Now I have to reload 2.1b - arggh!

     

    Shoulda thought this thru!

  8. FYI

     

    Our output will likely be less than usual until 2.1.0 reaches release

     

    We're in contact with the OBS Devs and they listen to us, we're indirectly changing the game in a good way

     

    There are some HUGE things from a Modding stand-point coming in 2.1.0 that make Mods more stable (spent the morning researching and testing this kinda thing)

     

    On behalf of the team I wish to apologise in advance for any current delays in the modreq system

     

    I'd explain why we are all waiting for 2.1.0 but this is a no-spoiler zone (and the answer requires some very specific spoilers)

     

    Bear with us

     

    In a non-spoiler example I know that some people can't get specific Mods to work. Well, 2.1.0 fixes a specific issue that can be applied to all Mods that add items to any Vendor - this is why we're not as active as usual...

    • Like 3
  9. Did the Beta - takes AGES to get back to Vanilla so I do this as rarely as possible (currently on revert cycle)

     

    Anyway

     

    I had a go and answered my own question

     

    https://forums.obsidian.net/topic/105275-tutorial-adding-items-to-a-store-v210-beta/?p=2094352

     

    It's a slightly different in practice than how I read the docs etc first time so I posted a full example with break / work examples of savegames. As this one's for experienced Modder's I only put in the salient points (as nothing actually changes much anyway)

     

    The next two posts in that thread clarify the situation resulting with the reason for this thread now being redundant

     

    We can do exactly what we hoped

     

    My todo list is rather long helping everyone else - plus the revert takes so long :(

  10. Yeah - there's no remove option cos people will grief the modlist so only I have the ability to delete them (which I do manually)

     

    Do the invite thing - read my Sig - we've got a lot of very helpful people and one / two / many of them will defo be able to fix your white icon issue whether it be with Art, Modding advice or whatever (we also translate text into six not-English languages - missing French + Spanish ATM)

  11. I've now explored OpenInn

     

    Go grab https://www.nexusmods.com/pillarsofeternity2/mods/111 and install

     

    If you change lootlist.gamedatabundle in the above attachment and replace c164ad1a-fabc-4c50-9238-c86f2f8999ad with 1cf96a2c-466a-4246-b224-95648881beb0 (twice!!!) - this one's the same as OpenStore but has some extra stuff

     

    We're now adding to The Wild Mare

     

    I've got a save where TT1's Dead Parrot is shown - this may not be true for you so just use any Wild Mare you have to hand

     

    I could EASILY now be 100% TT1's would appear by adding it to lootlist.gamedatabundle but that means modding his mod. I'm not doing that - his stuff is his stuff, anything posted by myself here is free for use though.

     

    Wild Mare now has the stuff we stuck on Eofania earlier! If you've got TT1's loaded and a good save you've also got his stuff

     

    Here are the additional lootlists you can play with...
     

    exported/design/conversations/00_prototype/00_cv_himuihi.conversationbundle
    exported/design/conversations/00_prototype/00_cv_nairi.conversationbundle
    exported/design/conversations/03_neketaka_vailian_district/03_cv_gyntel.conversationbundle
    exported/design/conversations/05_neketaka_artisans_district/05_cv_bathhouse_owner.conversationbundle
    exported/design/conversations/06_neketaka_slums_district/06_cv_tender_toko.conversationbundle
    exported/design/conversations/09_port_maje/09_cv_port_maje_tavernkeeper.conversationbundle
    exported/design/conversations/16_wahaki_island/16_cv_wahaki_trader.conversationbundle
    exported/design/conversations/17_dunnage/17_cv_tavern_owner.conversationbundle
  12. As promised above here is a list of every conversationbundle that triggers an OpenStore

     

    [Arrgh - addition] Just discovered we've also got an OpenInn that triggers unmarked stores in conversationbundle files (there are eight) - investigating 1cf96a2c-466a-4246-b224-95648881beb0 (Wild Mare)

     

    At some point I'll link them to their characters but as a quick reference this is useful

     

    If you want to find a specific vendor then you simply need to find them in charaters.gamedatabundle. Using Eofania as an example again if you search for her you'll find she has this property...

     

    "SpeakerID": "6b043fd4-902e-48ef-af38-c92cd4b5c7e4"

     

    From the following list this one only crops up in /09_port_maje/09_cv_eofania.conversationbundle (grep or something similar really helps here)

     

    Check out that file and search for OpenStore and we get the ID we need to plug in to lootlist.gamedatabundle

     

    These are all in exported/design/conversations

     

    /00_prototype/00_cv_himuihi.conversationbundle

    /00_prototype/00_cv_vektor.conversationbundle

    /03_neketaka_vailian_district/03_cv_sanza.conversationbundle

    /03_neketaka_vailian_district/03_cv_vd_vendor_armorer.conversationbundle

    /03_neketaka_vailian_district/03_cv_vd_vendor_cobbler.conversationbundle

    /03_neketaka_vailian_district/03_cv_vd_vendor_fishmonger.conversationbundle

    /03_neketaka_vailian_district/03_cv_vd_vendor_huntingandsundries.conversationbundle

    /03_neketaka_vailian_district/03_cv_vd_vendor_tailor.conversationbundle

    /03_neketaka_vailian_district/03_cv_zamar.conversationbundle

    /04_neketaka_palace_district/04_cv_vendor_general.conversationbundle

    /04_neketaka_palace_district/04_cv_vendor_pets.conversationbundle

    /05_neketaka_artisans_district/05_cv_fessina.conversationbundle

    /05_neketaka_artisans_district/05_cv_herbalist.conversationbundle

    /05_neketaka_artisans_district/05_cv_imp_store.conversationbundle

    /05_neketaka_artisans_district/05_cv_iolfr.conversationbundle

    /05_neketaka_artisans_district/05_cv_marihi.conversationbundle

    /05_neketaka_artisans_district/05_cv_vendor_drink.conversationbundle

    /05_neketaka_artisans_district/05_cv_vendor_food.conversationbundle

    /06_neketaka_slums_district/06_cv_fabrozzo.conversationbundle

    /06_neketaka_slums_district/06_cv_street_dealer.conversationbundle

    /06_neketaka_slums_district/06_cv_tender_toko.conversationbundle

    /06_neketaka_slums_district/06_cv_vendor_bm_aumaua.conversationbundle

    /06_neketaka_slums_district/06_cv_vendor_bm_orlan.conversationbundle

    /06_neketaka_slums_district/06_cv_zahak.conversationbundle

    /07_neketaka_temple_district/07_cv_dawnstar_vendor.conversationbundle

    /07_neketaka_temple_district/07_cv_vendor_temple.conversationbundle

    /07_neketaka_temple_district/07_cv_vendor_tiabo.conversationbundle

    /08_neketaka_rauatai_district/08_bs_lounge_server.conversationbundle

    /08_neketaka_rauatai_district/08_cv_orlan_peddler.conversationbundle

    /08_neketaka_rauatai_district/08_cv_sabormi.conversationbundle

    /08_neketaka_rauatai_district/08_cv_uto.conversationbundle

    /09_port_maje/09_bs_fishmonger.conversationbundle

    /09_port_maje/09_cv_eofania.conversationbundle

    /09_port_maje/09_cv_port_maje_tavernkeeper.conversationbundle

    /09_port_maje/09_cv_shady_merchant.conversationbundle

    /09_port_maje/09_cv_vendor_market_blessings.conversationbundle

    /09_port_maje/09_cv_vendor_market_trading_post.conversationbundle

    /09_port_maje/09_cv_vendor_market_weapons.conversationbundle

    /13_fort_deadlight/13_cv_deadlight_merchant_02.conversationbundle

    /13_fort_deadlight/13_cv_deadlight_merchant.conversationbundle

    /14_slaver_port/14_cv_aeldys_spy.conversationbundle

    /14_slaver_port/14_cv_merchant.conversationbundle

    /15_rdc_port/15_cv_fish_vendor_01.conversationbundle

    /15_rdc_port/15_cv_weapon_merchant_01.conversationbundle

    /16_wahaki_island/16_cv_wahaki_trader.conversationbundle

    /17_dunnage/17_cv_dimesa.conversationbundle

    /17_dunnage/17_cv_market_bartender.conversationbundle

    /17_dunnage/17_cv_market_food_vendor.conversationbundle

    /17_dunnage/17_cv_ramaso.conversationbundle

    /17_dunnage/17_cv_tavern_owner.conversationbundle

    /20_splintered_reef/20_cv_undead_barkeep.conversationbundle

    /26_uncharted_islands/26_cv_tama_watua.conversationbundle

    /28_drowned_barrows/28_cv_vendor_huntress.conversationbundle

    /generic/00_cv_debug_guy_random_encounters.conversationbundle

    /re_scripted_interactions/re_cv_generic_merchant.conversationbundle

    /re_scripted_interactions/re_cv_generic_slaver.conversationbundle

  13. I just had a go at this and thought I'd share the results

     

    Please note that this ONLY works with 2.1.0Beta or above (like the release when we get it)

     

    First grab this https://www.nexusmods.com/pillarsofeternity2/mods/125

     

    Then grab the attachments to this post

     

    Extract savegames.zip into C:\Users\<Your Login User>\Saved Games\Pillars of Eternity II (or wherever it goes on Max / Linux)

     

    The savegames have cheats enabled BTW so ignore the usual moan about missing junk. These saves are both having gone from the beach talking to Rinco + Savia (coulda skipped that bit) and headed straight for Eofania (nothing else), this is a good clean small save.

     

    Next extract the NexusMods version into override (this version will break)

     

    Start up POE2 and load Mapper -> Before Eofania then talk to her (you're stood next to her) and open her store - LOTS of added items

     

    Now load After Eofania. The only difference between these saves is that in the second one I've already had a look at her inventory. Check her store - all Mod items are now missing

     

    This is an issue we've been aware of since the game came out

     

    If you check ...

     

    override\pdx-unique-items\design\gamedata\pdx-unique-items.gamedatabundle you'll see a standard lootlist re-write

    	"DebugName": "Store_09_PM_Eofania_BaseInventory",
    	"ID": "0954daa7-cef5-4ffe-9a65-08abfbd618e8",
    
    

    Exit to Desktop

     

    Delete the Nexus Mods version of pdx-unique-items in override and replace it with pdx-unique-items-additem (attached)

     

    Repeat the above Eofania loads and now BOTH have the correct Modded itemlists

     

    This fixes a big headache for all Modders who do lootlists

     

    If you examine the gamedatabundle you'll see that all I've done is change the lootlist override so it now looks like this...

    	"DebugName": "Store_09_PM_Eofania_Peardox",
    	"ID": "fd5c33c9-2e15-45bd-89f5-7b98562b31e9",
    
    

    The ID is a new one and I changed the DebugName - that's the ONLY alteration to the mod - the payload happens in lootlist.gamedatabundle

     

    This was a quick test - I should really have removed the original, pre-mod, items from the lootlist 

     

    Finally if you check lootlist.gamedatabundle you'll see I've taken BMac's example and replaced the IDs

     

    Again I've changed DebugName and the IDs

     

    The important ID is c164ad1a-fabc-4c50-9238-c86f2f8999ad, this is the store triggered by asking Eofania to show you her lootlist

     

    First I've got ....

    	"Data": {
    		"FullName": "Boolean IsInActiveScene(Guid)",
    		"Parameters": [
    			"c164ad1a-fabc-4c50-9238-c86f2f8999ad"
    		]
    
    

    This checks if Eofania's store is in the level which, in the case of the supplied savegames, it is

     

    Then we've got this

    	"Data": {
    		"FullName": "Void GenerateLootListInto(Guid, Guid)",
    		"Parameters": [
    			"c164ad1a-fabc-4c50-9238-c86f2f8999ad",
    			"fd5c33c9-2e15-45bd-89f5-7b98562b31e9"
    		]
    	},
    
    

    This adds our altered lootlist to Eofania's lootlist. You can have BOTH versions of the mod installed at the same time and the broken original is still broken but the new version fixes the bad one.

     

    There are 56 conversations that trigger an OpenStore in exported/design/conversations, in this case I'm using 09_port_maje/09_cv_eofania.conversationbundle

     
    Simply search for OpenStore in that file and you'll see that triggers c164ad1a-fabc-4c50-9238-c86f2f8999ad which in turn now has the new lootlist added to it
     
    As far as I understand the OpenStore loads the original lootlist we can Mod in exported as that and the openstore ID both appear in level347 but this new scriptable alters the openstore to add our new items (if it's not exactly what happens it's close enough to the high-level version of what happens)
     
    The only thing you need to do to have free reign with any Store is to find it's OpenStore call

    I'll post a list of where they occur later to make it easier for people to track the one you're interested in down
     
    One VITAL point about this new very easy to add functionality is that we no longer need to worry about Vendor Clash when 2.1.0 hits release. For example @TT1 uses The Wild Mare for his Uniques. There is no concern over anyone adding new loot to that list using the new method (started tracking Vendor Clash a few weeks ago - pointless now). Actually, think I'll verify this by loading his Mod + change the Store to his one (I see no reason for it to fail)
     

    Using the lootlist.gamedatabundle example and making a minor change to your existing Mods makes for an easy and foolproof better way of making your Mod Items available

    pdx-unique-items-additem.zip

    savegames.zip

  14. Not quite the lottery but close...

     

    The chances (did the maths this time) are 4,194,304 to one that using my system you clash IDs

     

    I was lazy on the maths last time - this time the exact odds are presented

     

    Now take the number of modders - maybe 50, let's be generous + make it 80

     

    This makes is one in 52,429 that I tread on my own toes

     

    It has been requested that I assign number ranges to Mod Devs - yeah, of course this is do-able.

     

    The question I'm asking here is as the chances of clashing are now extremely unlikely why bother?

     

    Most of my friends hate control, oddly they're requesting it in this situation

    While knowing who is using which IDs to avoid clash is beneficial to everyone I see no point in ID reservation - hell, if you want it I'll write it but the system works as-is (the chance of a clash of ranges is 2048k to one if you want 000 - 999)

     

    I DONT wanna be number police! I CANT be, if some pillock invades your space that's very easy.

     

    Take the randomness and use it

     

    I will finish with a note that I only hack myself (this one will be fun)

  15. I've now analysed every Mod

     

    I'm very happy to report that my system appears to be working

     

    While I can find String Clash these are between members of our group who share so @Spherikal's Enhanced UI has a clash with @Kilay's Italian Mod, there is no actual clash here as both use the same stringtables @kilay provided to @spherikal

     

    While not everyone is using this system it's definitely helping (Many modders are now using unlikely to clash ranges of numbers)

     

    The analysis of all Mods will take a while, I've just done IDs - the next stage is to find references (this is rather complicated)

     

    AND - I WANNA WRITE A DAMNED MOD!!! :)

     

    Too much analysis - not enough Mod dev

  16. I did a convo Mod for endgame that teleports me back to Neketaka

     

    This ONLY WORKED once - every subsequent try sticks me back in endgame

     

    I presume there is some global I need to flick

     

    There are very specific ideas for allowing the game to continue

     

    Nothing I have in mind breaks the narrative, quite the reverse - it compounds it

     

    The globals in mods mean I can finally expand the game the way I wanna expand it

     

    Have to wait for 2.1.0 of course

     

    Been planning this for MONTHS...

     

×
×
  • Create New...