Jump to content

BMac

Developers
  • Posts

    418
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by BMac

  1. Okay, I get your problem now. Unfortunately, we do not support uninstalling a mod and then loading a save that relies on content from that mod, nor is it likely that we'll be able to add support for that.
  2. If cheats are enabled, F11 opens a menu that lets you move to any map. You can also use "AreaTransition ReferenceByName PartySpawner".
  3. Yes, it should be. Scripted interactions are actually just special conversations. You can check out any of the existing ones at "Exported/Design/Conversations" to see the format for them (see any file with an XX_si prefix). Make sure you add the new conversation to the file "Manifests/conversations.manifest". This file can be overridden in override directories. Once you make the conversation, you can trigger it by adding a call to StartScriptedInteraction anywhere else in data that will take a script call. You can also test it via the command line with the same command.
  4. Yeah, this would be nice to have. It became a bit more difficult to hook up when we changed how we produce stat breakdowns for Deadfire, which is why we don't support it at the moment. The megaboss "DLC" is packaged with the game by default, unlike other DLC like the Rum Runner's Pack. You can treat it as base game content from a modding perspective. Thanks for that report. The fix will be in the week-one hotifx (3.0.1).
  5. Thanks for catching that. This will be fixed in the 3.0.1 week-one hotfix patch.
  6. It will work with the player, but it'll only hit their personal inventory, not their equipment. Any chance you could elaborate on what this means BMac? Does it mean we have access to more UTF-8 supplements? Yes, essentially. You now have access to our Chinese, Korean, and Cyrillic characters in all languages. Previously, we were switching to different fonts when you changed to a non-Latin language, so you'd only have access to e.g. Cyrillic characters when playing in Russian. Now I've combined all the fonts into a single font asset, so you have access to all these characters no matter what the language setting is. There aren't any new Latin supplements that weren't available before, though. Unfortunately it looks like we don't build any of the non-unicode characters from that font into the font atlas, so they aren't available right now. The only non-unicode characters we include are the lnums and extra ligatures from the normal Espinosa Nova, which are added automatically by the game when appropriate. Yes, that was also added, but I neglected to mention it because its only purpose is for us to retroactively fix some stuff in existing saves. More details: it lets us flag existing abilities that were granted by scripts (like the backer NPC training abilities) as being from a script. Going forward, the AddAbility sets this up automatically when the ability is added and the flag is completely unnecessary - it's only needed to retroactively fix abilities that players already have. Though if you have modded in an ability that's granted to the player via the AddAbility script, you would want to set this flag, so I'll add it to the notes. Yes, it does, provided you use the equivalent Latin ASCII-range character instead of the Cyrillic character. For example, U+0412 is a Cyrillic character and it'll be handled by the Cyrillic font, not the Capitals font, but U+0042 will now be handled by the Capitals font - even if the language setting is Russian.
  7. Sorry for the reduced responses recently - my schedule for the last two weeks has been pretty irregular due to jury duty. That does sound like there's probably a layout bug if a tree that's at least 3 nodes wide appears at the far left of the tree, but I'm glad you found a workaround. That's certainly possible; noted. I see your point here, but it would be a big process to pitch and make this change for the whole game. Perhaps we could allow passive abilities to be pulled over into the active abilities section if they have active abilities are prerequisites. You can use the command "find " to search for commands by name. Also note that all scripts can be used from the console - though there are additional console commands that are not scripts. Unfortunately, I don't believe there's one for adding class resources. If you just need it to test wound abilities, you could use ToggleResourceLimit to have infinite wounds. Yep, sounds like a good idea to have some way to view the rest of the mod description if it gets truncated by the UI. Responded to this post.
  8. This is a list of changes from 2.1.0.0034 to v3.0.0.0010 (currently on the BETA branch) that specifically affect modding the game. The patch notes for other changes to the game can be found here. We're putting more time into some big new features for the next few patches, so modding isn't getting as much new functionality as it has in the previous ones. There are a few fun new possibilities, though, such as a status effect type that can allow party members to equip pets, and some more attack and status effect validity conditionals. Modding Patch Notes for 3.0.0.0010 All languages now use the same font asset, which contains all the characters from all the supported languages. That means these characters can be used in any game text without switching the font with TextMesh Pro tags. Added AttackBaseComponent.AttackValidityConditional Added AuraAbilityComponent.AffectedTargetConditional Added RaceComponent.IsKith Added ShipCrewMemberDataComponent.VisibilityConditions Added SubraceComponent.CanHaveHair, HasFaceCustomization Added StatusEffectAttackFilter.Race, IsKith Added GenericAbilityGameData.GrantedViaScript Added StatusEffectEventType OnSuccessfulInterrupt Added ShareTargetTypes.NoPartyMembers Added StatusEffectType.AllowPetSlot Added RemoveAllItemsFromObject script
  9. It's hard to tell exactly what's going on without knowing what you did to produce those saves, but it sounds like you had the "pantry" mod installed when you produced the "beforefish" save and then removed it? In this case I would not expect the items to disappear from the store since the ModScriptHook has already run and generated its items into the store's inventory. After that point it doesn't matter whether the ModScriptHook continues to exist as the items have already been generated.
  10. Taking a look at the ClassProgressionTableGameData PT_Wizard, this was done by adding an AvailabilityConditional to each entry in the table that checks that the acquiring character is not one of the prohibited subclasses (ProgressionTableIsSubclass). This isn't the nicest way to have to do this, but I think that's how it has to be done.
  11. There is a ScriptEventType called OnDeath that we can hook up scripts to on character prefabs - but that's in the Unity object data. Maybe you could do something with an ability with a status effect that triggers on death? You could grant the ability to the character by modding its progression table or with a ModScriptHookGameData.
  12. No modded game data files will be loaded, so you won't be able to change what icons or model visual data the armor is pointing to (well, the change won't be loaded in Magran's Fires). However, you could find the names of the icons that the Reckless Brigandine is pointing to and override those icons in a custom atlas as described in this tutorial. You could override them with any image you like, including the images from the normal Brigandine.
  13. For what it's worth, companion portraits can also be modded in this fashion as well '/gui/portraits/companion' Now we just need Aarik to package up his durance photoshops into a Church Of Durance mod! That's a good point, though those portraits won't be selectable by player characters and hired adventurers, of course.
  14. These patch notes stand unchanged for v2.1.0.0034 (with the exception of fixes for the two bugs you reported in the beta).
  15. This tutorial is mirrored as a Steam guide. This tutorial will walk you through the process of uploading your mods for Pillars of Eternity II: Deadfire to the Steam Workshop. This tutorial doesn't cover the process of actually creating a mod. For tutorials and information on creating mods, check out this tutorial. You must be running the game through Steam in order to upload mods to the Steam Workshop. Uploading a Mod First, you need to indicate that you are developing the mod you want to upload. Create a file called "devmode.json" in the override folder, if it doesn't exist already. Open the file in a text editor and paste the following text into it. { "DevMode": [ ] } Now add the folder names of the mod or mods you're working on to the DevMode list. The names should have quotes around them and be separated by commas. For example, if I was developing the modder-background and penguin-sword mods, my devmode.json would look like this: { "DevMode": [ "modder-background", "penguin-sword" ] } By default, the "thumb.png" file in your mod folder will be used as the thumbnail icon in the Workshop. Optionally, if you create an image called "steam-thumb.jpg" in your mod folder, that image will be used instead. The recommended size for "steam-thumb.jpg" is 512x512. Now launch the game. On the main menu, navigate to the Mod Manager (click Options, then click Mod Manager). Each mod you indicated in DevMode should have a Steam button on its entry. Click the Steam button for the mod you want to upload. Review the text in the message that appears. If you have not accepted the Steam Workshop Terms of Service, follow the link and review and accept the terms. If you agree with all the terms, click "Accept". You'll see a few progress bars. Once the mod is finished uploading, the Steam Workshop page for the newly-created mod will open in your browser. Here, you can write a full description for the mod, upload images, and set up other data. Once you're satisfied with the mod's page, you just need to set it as visible to the public from the Change Visibility dropdown. Your mod is now available for players to download and play with! Updating a Mod If you make changes to your mod after releasing it, you can easily update the Workshop version. After changing the mod, open the Mod Manager and click the Steam button next to your mod again (your mod will still need to be included in devmode.json). This time, you'll be presented with a window where you can briefly describe what you changed. Enter your description, then click Accept. Your update will be uploaded to the workshop and be available to players immediately.
  16. You might also take a look at the game's output_log.txt file to see if there are any errors that might be helpful. It'll be easiest to filter through if you start the game up fresh and go straight to character creation to see that the changes aren't there, then check the log.
  17. PrintString will print a message to the combat log (debug only) and ShowMessageBox will show a pop-up message to the user (supports localization and is fine to use in released content). I'm not familiar with what's going on there, I'll have to take a look at it if I get a chance. Those will be fine in v2.1 release or if we update the v2.1 beta before then. There is a problem in beta 2.1.0.0021 where sometimes no mod game data is loaded at all.
  18. I may not be 100% clear on what you're trying to achieve - but if you add your new items to stores in the fashion described in the new tutorial, you shouldn't have any issues with waiting out store regeneration times or items not appearing in games that have already visited those stores.
  19. Thanks for all the details - I found the bug. It looks like game data objects from mods are getting unloaded sometimes when they aren't supposed to be. We'll get this fix in by v2.1 release, and I'll see if we can get more testing time dedicated to mods in the future. That fix should account for most of the issues here - though not any issues with missing strings in modded content. If anyone else is seeing that, I'd like to know which mods you're trying to use. Yeah, you will want to move most of the conditionals on your recipes from VisibilityConditions to CreationConditions. This is just because in the old UI, we set up non-qualifying mods to hide to reduce confusion. Now that we have the new UI, we can show all these mods in a way that's actually understandable. The only thing you need VisibilityConditions for is if you actually wanted to hide a recipe entirely until the user meets some condition. You do also need to fill in the PrerequisiteItemModID in order for the UI to understand how to display your recipes in the tree. Though these particular changes are necessary to have the mods play nice with the UI, in general, it's fine if you're missing fields that have been added (like CostByValueMultiplier). They'll automatically have an appropriate default value. I should have marked that as a breaking change because of the UI - I'll do that now.
  20. That looks like a bad bug. I'll get that fixed for the release version.
  21. Yeah, that would be pretty handy, though it might be tricky to detect which mods are adding content that actually appears in the save. Conversations don't currently support partial overrides but that would be a very nice thing to add. It should be possible to add new conversations, though I haven't tested it extensively. I do know that you need to add the conversation to a manifest file, in addition to adding the conversationbundle. The file would be "design/manifests/conversations.manifest" in your mod folder. You can refer to the same file in the "exported" data for the format.
  22. The IsSkillValue conditional script has a parameter "IsAssisted" that specifies whether assists are allowed. This is a separate thing from which character(s) are actually allowed to make the check. When the portraits slide up and allow you to pick a character from the party, that's done by the InteractionSelectPartyMember script. This is usually followed up by an IsSkillValue conditional script on the next node to check the skill of the selected character (Specified0-5). If you wanted to change a check of this sort to Watcher-only, you'd want to remove the InteractionSelectPartyMember script entirely and have the IsSkillValue check the Player guid instead of the Specified guid.
  23. The main thing that I think answers your questions is that this script doesn't add a loot list itself to anything. Instead, it immediately generates a set of items as defined by the specified loot list and places them into an inventory, where they'll stay until they're removed. This would be in addition to any existing loot lists that generate into this object. There would be two separate events happening: the store would generate items from its loot lists into the container, and then your script would generate items from its loot list into the container, adding to the ones that are already there. Yes, this could be used on any object with an inventory (containers, characters, stores). You can't add additional loot lists onto NPCs or creatures such that they will generate when that character dies. However, if the character is configured to drop its inventory on the Unity object (I believe this is true for most kith characters), then the items would have been added to its inventory and would be available in the corpse container or when pickpocketing.
  24. The DoC armor is spawned through the loot list "Store_05_AD_Marihi_CarocBreastplate". The list is checking a particular global variable from the first game to determine if the breastplate should be spawned. If you can determine which global variable state represents the "killing Harmke" state you want to check, you can add another entry to the loot list with that check. It might be tricky to figure out exactly which global variable you need to check. Searching the file at "exported/design/globalvariables/pillars1.globalvariablesbundle" and using the PrintGlobal console command in your save might help you figure that out. Adding the Legendary mod to each soulbound item should be pretty easy. If you find the data object for each soulbound item (see the Basic Concepts tutorial), you'll see a list of UnlockStages on the Game.GameData.SoulbindComponent. Each stage has a list of ItemModsToAddIDs and ItemModsToRemoveIDs. { "$type": "Game.GameData.SoulbindComponent, Assembly-CSharp", "ProhibitUnbind": "false", "BindableClassesIDs": [ "825817d4-1fb0-4e5c-bf84-473743ad98de", "568f1c26-1398-4e67-8b81-0f6a60e6cdde", "6e6750b6-61d7-4b61-9713-55957e0f0591" ], "UnlockStages": [ { "Note": "1st Unlock", "LoreToAdd": 5180, "ItemModsToAddIDs": [ "947dd50f-5f17-4a84-9242-ccd4556c4551" ], "ItemModsToRemoveIDs": [ "6fe48bee-c40e-4030-9dea-0610dbc3aa9b" ], "EligibleClassesIDs": [], ... You can locate the ID of the LegendaryWeapon item mod and add it to the list, and shuffle the others between stages as you like. Custom soulbind unlocks are pretty hairy to put together, but it is possible to do both things you want. If you check out the data for the Voulge more, you'll find an item mod "Soulbound_Progression_Damage_Dealt_Shock" (6fe48bee-c40e-4030-9dea-0610dbc3aa9b) that applies some status effects that trigger when the character deals shock damage and increase the soulbind progress. You could do something similar with critical hits. If you're just looking to re-order the unlocks, you can just cut and paste the data to the stage you want it at. If you need help actually creating these mods, you might be able to request it from the folks in the pinned Mod Requests thread.
  25. I think I already described this somewhere, but the Unity data GUIDs are not straight aliases of game data guids. Unity objects have their own GUIDs (described here) that represent that object in-game. Each Unity object may make use of a number of different game data objects (a CharacterStatsGameData, a MoverGameData, etc). A lot of these game datas are used by many characters or creatures in the game, so the relationship between the Instance and the Game Data isn't one-to-one. If you could read the Unity data, it wouldn't be difficult to collect the mappings, but I know it's really not set up in a way that makes that reasonable. We could potentially provide a better way to dump these GUIDs along the lines of the PrintInstance console command. This is another place where I'd like to just remove the WeaponType enumeration and let you create arbitrary WeaponTypeGameData objects and just use those instead (like we did with Classes). That's doable but it takes some work to convert over all the old data, and I'll also have to worry about compatibility with old mods. Yep, I'll note that character creation needs scrollable panels. That's probably doable. It'll be tricky to do it in a way that doesn't break compatibility with mods that are already changing that value, but doable. Noted - that's definitely not a use case I anticipated, haha. If you shut down the game you can manipulate the order in the file "%userprofile%\AppData\LocalLow\Obsidian Entertainment\Pillars of Eternity II\modconfig.json". I'm not aware of anything that's changed that would prevent you from manipulating save games. What kind of problem are you having?
×
×
  • Create New...