Skip to content
View in the app

A better way to browse. Learn more.

Obsidian Forum Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Kvellen

Members
  • Joined

  • Last visited

Everything posted by Kvellen

  1. There isn't anything in the documentation about scripts that call console commands unfortunately. Edit: Examining the game assemblies with DnSpy shows this: So if there were a script for changing tactical mode it would look something maybe: "Data": { "FullName": "Void SetTacticalMode(TacticalMode)", "Parameters": [ "Roundbased" ] } However this didn't seem to work from what I have tested... My assumption is that it has to actually be added to a list of available scripts to be accessible outside of the console commands.
  2. A lot of skimming through .gamedatabundle files for modding! 😄 For the longest time I just thought the Vox Machina character data in SSS files was somekind of buried Easter egg. Like maybe the characters were in the spectators stands. (Very well armed spectators!) I finally tracked down an encounter with the DebugName of "lax01_arena_duel_vox_machina", I figured maybe it could be unlocked by playing through some combination of SSS fights. Only to find out even if you were to meet the conditions to show it (one of which being a boolean that's always set to "False"), it isn't even on the list of available arena encounters.
  3. At some point during development of Seeker, Slayer, Survivor there was to be a "Champion of the Hunt" challenge involving a fight against the members of Vox Machina. The remaining data (character stats, arena encounter listing, and a conversation) and ui suggests it was probably in early stages when it was scrapped. Though it is no longer accessible via the Pool of Memories without mods, it can still be started through the console ( ` ) with cheat enabled (iroll20s): To load into the map: LaunchRandomEncounter 7ae85798-f2a8-41ff-a210-ffdbce5f2311 To get the conversation to play and the characters to turn hostile: StartConversation b1a8e901-0000-0000-0000-000000000000 85427693-4d26-4f96-9f17-3358fb87d940 0 The conversation consists purely of lines taken from the voice sets added in the Critical Role Pack dlc. Though audio no longer plays as it should, due to the "ExternalVO" line in the .conversationbundle file pointing to old/incorrect filenames. There are also no portraits attached to the characters. Either way I would guess it was only ever meant to serve as a placeholder conversation for the early stages of development. There is no reward for completing this encounter.
  4. The media player Foobar2000 with the vgmstream component is very useful for audio modding. This will allow you to listen to .wem files directly in the player, and then convert them to other formats for editing.
  5. In the documentation it states that "Boolean expressions are evaluated right-to-left with no operator precendence." Am I correct in my understanding of this as: when a script tries to run it checks off all the conditions required, in the case of formatted json, from "bottom to top"? And if a condition is not met does it still go through the remaining list or does it stop checking at the first conditional that would stop the script from running?
  6. The lethargic-misshapen-bird has been grounded! Other than this and the "DLC installed" message boxes, another change I've made to better integrate the DLCs is to change the global script for Vatnir's missive to prevents it arriving during The Steward's ship-supply briefing: There is now a "IsConversationPlaying" conditional on the missive, and a "CallGlobalScriptAfterTimePasses" that this script again fires after a few in game hours. That way it'll arrive a few hours after the player has begun sailing towards Port Marje. While this solution feels better to me and the timing is such that the letter will arrive several before Furrante comes boards, it stills feel a bit awkward to have both irruptions happen in such close succession. The difficulty of Beast of Winter is also not really intended for a Watcher who is fresh off Port Maje island, so I'm wondering if there might be someway to delay it's arrival further so that it will arrive later into the game? Edit: Nevermind, it seems a "IsLevel" conditional can be put on the "DeliverMissive" script to ensure that Vatnir will only contact the player character once they've reached the recommended level.
  7. Yup, that's where it was! Thanks! Ran a search for mentions of the note's GUID in the level and .assets files using Notepad++, which turned up a single mention in "level1123". Some pretty involved digging into this file with UBE indicates that the script is tied to a trigger object called "LAX03_Trigger_Pet_Smasher_Missive". From what's readable in Notepad, I'm guessing that when the player sails into the trigger box the script is fired. Which then hurls the poor bird at the ship, and finally disables the trigger box. So it should just be a simple matter of finding the GUID for this object and then disabling it with a scripthook!
  8. I am working on a mod that will hides the message boxes that alert you to DLCs being installed. The "DeliverMissive" script for a certain “lethargic, misshapen bird" bearing a message about the wonderous critter cleaver, is however proving very hard to track down. Any ideas where I might find this? The only information I have to go on is that the critter cleaver apparently came with the Forgotten Sanctum DLC, but I can't find any mention of the script that delivers the letter in the lax_3_exported folder.
  9. Ah right yeah, seems Eder ("A_Head_Eder") and Vatnir ("a_Head_Vatnir") are the exceptions to the rule. Edit: Hmm Nevermind, Eder's head doesn't seem to working for me either... Edit 2: Just rechecked and had just copied the name of Eder's head wrong, should work now! If the game can't find a prefab matching the name to load it still loads a blank selection to the list of appearance options. I compiled this list, which should hopefully be the correct names for all of appearance options unique to companions: Name Head Hair Facial hair Aloth a_Aloth_Head a_Aloth_Hair Eder A_Head_Eder a_Eder_Hair a_Eder_Facialhair Fassina a_Fessina_Head a_Fessina_Hair Konstanten a_Konstanten_Head a_Konstanten_Hair a_Konstanten_Facialhair Maia a_Maia_Head a_Maia_Hair Pallegina a_Pallegina_Head a_Pallegina_Hair Rekke a_Rekke_Head a_Rekke_Hair Serafen a_Serafen_Head a_Serafen_Hair a_Serafen_Facialhair Tekēhu a_Tekehu_Head a_Tekehu_Hair Vatnir a_Head_Vatnir Xoti a_Xoti_Head a_Xoti_Hair Ydwin a_Ydwin_Head a_Ydwin_Hair Mirke has neither a unique head or a unique hairstyle.
  10. characters.gamedatabundle Though, since it seems to be (from what I have tested) one of the few game data types that requires including all components when adding something to it, the above example also contains the whole section.
  11. It requires adding the name of the companion's head data to the list of "NPCAppearanceOptionsGameData". The names of which tends to start with a lower case "a", followed by the name of the "Companion" (first letter is usually upper case) and then either "Head" or "Hair" (likewise first letter upper case). I feel like there may possibly be an exceptions to this naming convention, but I can't remember it off the top of my head. So for example Rekke is: "a_Rekke_Head", and Xoti is: "a_Xoti_Head". You then add this to one of the lists of head options like so: "MaleHeadAppearancePieces": [ { "ModelVisualDataPath": "prefabs/heads/m_hum_head01/a_m_hum_head01.asset" }, { "ModelVisualDataPath": "prefabs/heads/m_hum_head01/a_m_hum_head05.asset" }, { "ModelVisualDataPath": "prefabs/heads/m_hum_head01/a_m_hum_head06.asset" }, { "ModelVisualDataPath": "a_Rekke_Head" } ], "FemaleHeadAppearancePieces": [ { "ModelVisualDataPath": "prefabs/heads/f_hum_head01/a_f_hum_head01.asset" }, { "ModelVisualDataPath": "prefabs/heads/f_hum_head01/a_f_hum_head04.asset" }, { "ModelVisualDataPath": "prefabs/heads/f_hum_head01/a_f_hum_head05.asset" }, { "ModelVisualDataPath": "prefabs/heads/f_hum_head01/a_f_hum_head06.asset" }, { "ModelVisualDataPath": "a_Xoti_Head" } ], Example of the above that adds Xoti's and Rekke's appearances to the list of Meadow Folk head options: Deadfire_companion_heads.zip The companion's head should now appear in the customisation menu as a white icon. It's worth noting that there will be some strange visual glitches, such as facial hair clipping and the skin color of the head not being affected by your selection. In the case of the latter it might be possible to change this by opening the assetbundle and making changes to the one of the actual files.
  12. Two things you could try that might hopefully work: The keyboard shortcut: "Windows Key + ↑ (Up Arrow Key)" which sets a currently selected window to full screen. Right-click the task bar select "Cascade windows". This shrinks and stacks all opened windows on top of eachother.
  13. Hey, hope you're doing well, and sorry for the very late reply! I've done a bit of looking into modding companions recently, and remembered your post asking for information on the subject, and thought I might share something that might be useful. For companion data, the GUID on the "CompanionGuidString" line refers to the ID of the actual in game object of the character. This is a different GUID to the ones found in "lax2_characters.gamedatabundle", and is pretty hard to track down. But opening up the game an using the "PrintInstance oei_hovered" console command while hovering your mouse over Waidwen should get you the right ID. If so then replacing the "b1a7e811-0000-0000-0000-000000000000" in your code with this ID, as well as in the script you're using to add him to the party, could possibly work? Maybe... I haven't actually tried it with an NPC. 🤷‍♂️
  14. The portrait I used here. Which is an edited alternative to one of the vanilla elf portraits (male_elf_c). Looks great, and I'm glad to hear that the conversion file was useful!
  15. So I did a bit of tinkering using the excellent documentation noqn has provided, and have created a basic proof of concept! PoE2_Adventurer_Conversation.zip There isn't really much to this mod beyond this one custom conversation, with a man giving monosyllabic responses (and possibly challenging you to a staring contest), but it does maybe give some insights into a few aspects of how a custom conversations can be implemented. For convenience, the "Speech Bubble" in the actual mod comes pre-equipped on the character. There is likely a lot I am skipping over explaining, so if there is something that anyone is curious about or would like me to go into further detail on, please let me know! Here are a few interesting aspects: As you can hear the conversation uses voice lines from the Stoic Male voice set. I've used the "ExternalVO" line on some nodes in the .conversationbundle to play specific audiofiles during certain points. For example "ExternalVO": "player_stoic_m/ch_player_stoic_m_investigate_40011", is used on the first node of the conversation for the character to give a sort of grunt as a greeting. However it's totally possible to add new voiced dialogue for characters during a custom conversation! I only did things this way to keep it simple for myself. But as I mentioned in the original post, if there is an audio file related to a conversation in the folder associated with the speaker (this is defined by the ChatterPrefix line) the game will play it. The audio file itself needs to be named after conversation and the 4 digit ID of the specific node it should be played on. So for example if there were an audio file named "adventurer_caedman_0001.wem" in the "player_stoic_m" folder, this could be played without needing "ExternalVO": "", to be used. There are a few minor details you might noticed that don't really sell this as a proper conversation between the characters: The adventurer and Watcher don't turn to face each other when speaking. Which is pretty impolite if you ask me! The Watcher won't approach the adventurer like they do other companions, which leads to potential for instances of conversations happening over long distances, or from other rooms entirely. The scripts FaceTarget and AIPathToObject/AIPathToPoint could be potential solutions for these respective problems? But I've yet to actually test them, since I've only just become aware of them as I am writing this post. Moving on to the character themselves, there are some pretty cool things that could potentially be done using the GUID of an exported character. An example of this is to do with the "Speech Bubble" item. On the "InspectOnUseButton": [ ] there is a conditional to only display the "Talk to Caedman" button when a character with the specific GUID of the adventurer is in the party. Oh and with regards to making a fully featured companion with topics of interest... this GUID can be used to link companion data to the adventurer! I haven't looked into anything really surrounding flagging a node as a topic, so I have no idea if this character will "roll their eyes and let out a long sigh" when an assigned topic is mentioned in other conversations. So yeah really exciting stuff!
  16. Hey, I believe that the line you would need to change for Borrowed Instinct to be: "OverrideTacticalActionType": "None", to "Free", . This might actually affect spell casting time in turnbased as well? So worth trying changing that line for Mental Binding to one of the options here to see if it will work: https://eternity.obsidian.net/game-data-formats/enumerations#tacticalactiontype Could it be that you are changing the values on "Mental_Binding_AOE" instead of "Mental_Binding_Target"? Though according to the modding documentation CastSpeedID is to do with the duration of the casting animation, but it is unclear if it relates to the amount of turns it takes to cast in turn based mode. Otherwise it's worth checking that the mod is loading properly by searching the output_log.txt file for any mention of "error"? Even one error in a gamedatabundle can cause the file to either not load, or partially load. The Output log can be a little hard parse, but usually it will mention if there is an "unexpected" character like a comma, "quotes" or bracket {} [] as causes.
  17. Despite my not really being that into the setting anymore, a 40k CRPG is always something that is rolling around in my head pretty often. Specifically this section of the intro before the "In the grim darkness of the far future, there is Only War" bit, always seems to me really ripe with unexplored potential subject matter: 40k narratives don't tend to focus in on the nitty gritty details of day to day life for very long. Which I kind of get. The fantasy of 40k is being the arm of the Imperium, carelessly weeding out corruption to prevent the forces of Chaos bleeding into reality. As opposed to something as mundane as an inquisitor looking into mutations among the population, and finding the most likely cause to be slurry from the massive factory seeping into the water supply of its workers. I have yet to get round to any of the Pathfinder games, but from reviews Owlcat seem like a good choice for making a CRPG based on an established licence.
  18. Oh yeah now that you mention it, script hooks could total work for this couldn't they! I do wonder though, would there potentially be some impact on performance with a lot of scripts checking if their conditions are met on level load? Awesome!
  19. This isn't something I am really working on, but I figured it might be interesting to others. I've just discovered it is possible to have adventurers (the custom characters that can be hired from most inns) speak during a conversation! In brief you can do this by adding the speaker GUID (these are found in speakers.gamedatabundle) of the voice set in use by the character to the SpeakerGuid and FocusedSpeaker sections of a conversation node. The name of the character and the current portrait will then appear in the conversation window. If there are audiofiles that correspond to the conversation node in the folder associated with the voice set these will also be played during the conversation. This should in theory allow for the creation of rudimentary sidekicks/companions with voiced dialogue! With a lot of work and some degree of trial and error possibly even full conversation hubs of their own... Though the main hurdle as far as that goes, is that the lack of a button to start a conversation with adventurers directly. So the only way I could think of is using something like an item to start the conversation, similar to how the burned book works. There is also the lack of modding documentation related to the data structure of .conversationbundle files to contend with. None the less could be really cool to see what someone dedicated enough might come up with! I'm happy to answer questions to the best of my ability about anything I have written here.
  20. Matter of fact a mod that does this already exists: https://www.nexusmods.com/pillarsofeternity2/mods/499 Uses the same data structure as other promotional item DLC for Deadfire from what I can tell, and the author mentions having Obsidian's permission to upload it.
  21. The thing is all the backer items are actually present in the game files and as such can be acquired by console commands or with mods. If there were an official release that made the items easier to access for everyone? I don't know what the reaction would be.
  22. I am really glad that it works now! Only have the GOG version so can't upload to Steam's Workshop, I've uploaded it to Nexus though.
  23. That is strange... I assume that Deadfire stores a snapshot of some data related to acquired weapons/items/companions/etc in the save of the character, which would be my guess for why the changes might not apply to the weapon if it already in your inventory. Maybe changing the event list to use the standard arquebus sounds might work? Try placing the "dragons dowry fix" folder in the attached zip into the override folder (if there is no folder called "override" create it). Hope this works! dowry_sound_fix.zip

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.