Jump to content

Noqn

Members
  • Posts

    462
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Noqn

  1. 23 hours ago, Kvellen said:

    Have you had any luck with this?

    Thanks for reminding me 🥴

    I tried it now with the remaining voiced line in the finale, and it works flawlessly! The sfx of the wheel getting destroyed from the same .bnk still plays appropriately, so seems like just removing a single baked wem leaves the rest intact.

    23 hours ago, Kvellen said:

    Alternatively have you tried removing the "LoadAudioBankPlayAudioEvent" scripts in the conversations that are referencing the audio files? Removing both instances of such a script in "11_si_luminous_adra_vein.conversationbundle" that referenced "vo_narr_11_si" from both "-200" nodes (truly a bizarre place for a script... 🤔) seemed to stop the narration for the "As your hand touches the dim adra..." playing when I tried it.

    iirc I considered that way back but didn't want to edit any of the convo files

    • Like 1
  2. Oh and one more thing, It was a while ago I tried this but I remember having trouble with abilities that have no attacks assigned to them (triggered instantly without any cast time whatsoever).
    The removal wouldn't trigger since there were no attacks made.

    Some Fighter abilities were designed like this, like Vigorous Defense and Unbending. Not sure if any Cipher spells are like that though.

  3. iirc I've tried something like this:

    Expand TriggerAdjustment, set MaxTriggerCount to 1, RemoveEffectAtMax to true, and ValidateWithAttackFilter to true.

    I don't remember which TriggerAdjustment -> TriggerOnEvent value you need, to shut the effect off after the spell cast but still give the bonus for the cast itself.
    Either of these I think:

    • OnBeforeAttackRollCalculated
    • OnPostAttackRollCalculated
    • OnLaunchesAttack
    • OnActivateAttack

    Oh and this solution needs ClearWhenAttacks to false.

  4. On 2/20/2024 at 9:33 PM, Yhekal said:

    Sadly, it still does not work (second step - extracting icons). Window is grayed-out, gave up a after 20 min of waiting.

    One possibility is that one of the files in the export folder of your installation has been corrupted. The previous bug was caused by a single .stringtable file in the german localization (\exported\localized\de\text\conversations\05_neketaka_artisans_district\05_bs_construct.stringtable) being messed up across all installations by default. That specific file is now being skipped, but if another file has gotten corrupted Apotheosis will still stall when exporting.

    I'm working on fixing the stalling and showing an error message to the player instead (as well as showing the update-available prompt earlier), but meanwhile you could try backing up your override folder and reinstalling deadfire.

    Really sorry for all this :(

    • Like 2
  5. 23 minutes ago, Yhekal said:

    Hi,

    Any ideas why the mod won't start? The start screen is gray after I click "OK" and nothing happens.

    Sorry, I messed up an update yesterday, you can download the latest version from gitlab which has fixed this issue: https://gitlab.com/noqn/apotheosis#download-run

    You still might have to wait a minute or so for the export to finish depending on how fast your system is. For a future update I will for sure add a progress bar.

  6. 2024-02-18

    Added support for editing StringTables of all localizations!

    • Users can now switch languages with the dropdown located to the right in the headerbar, which determines from which StringTables to load and save text.
    • Note that this update may increase load times and memory usage. For a future release, users will have the option to omit loading localization files to mitigate this impact.

    ____
    Got poked by someone asking for this, most of the code for supporting this has been in place for a long time but never finalized, so it wasn't too painful to complete 😄

     

    • Like 1
  7. 3 hours ago, omgFIREBALLS said:

    @Noqn might know. I'm guessing if you look in the right file you'll find some JSON that dictates the pickpocket difficulty as well as what treasure you get.

    It's possible to edit variables in the SkillManager object's SleightOfHandSettingsComponent which affects difficulty.

    • VisionModifier & DetectionModifier - How much detection/visibility affects difficulty.
    • LevelModifiers - How much the victim's level affects difficulty.
    • ItemModifiers - How much the item's category (such as weapon, consumable, quest item) affects difficulty.


    It's also possible to edit the loot lists (though it's not possible to mod which characters use which loot lists), the loot lists can look like this:

    Spoiler

    image.thumb.png.afc2fa313b439105ffe6447a9ad9a116.png

    The above list contains several nested loot lists, one of these looks like this:

    image.png.3b3b5dd9e8e582f64daa28d70c7f896f.png

    It's possible to add conditionals to whether a single loot item, a nested loot list, and/or the entire loot list itself should be loaded.

    It's not possible to make a specific item harder/easier to pick, apart from changing its category's difficulty.

    • Like 1
  8. Hi @Kvellen sorry for late reply, I wanted to reply and post an update in the same go but I ran into what I suspect is corona 🥲
    Fever is down and headaches gone so I'm sit down and finish the last pieces now

    Thank you so much for your words and happy new year to you too ❤️

    On 12/20/2023 at 4:04 AM, Kvellen said:

    So I've managed to get it to work by changing the new node's number from "19" to "11" in Visual Studio. Which was an unused node number (presumably removed by the quest's designer when refining the quest). Honestly though I really have no idea why that worked. However any new nodes past "18" still seem to have the same issue. At this point I not so sure that this is an Apotheosis specific issue as I first thought. 🤔

    I'll see if I can look into this later on. Maybe it's something Apotheosis could automatize.

    • Thanks 1
  9. On 9/17/2023 at 6:27 PM, abot said:

    another thing that is not a bug, but could be nice to have: I noticed that the game seems to sort the in game quest steps list by string ids, so a way to automatically recalculate the ids from Apotheosis so they keep the sorting as displayed in the quest tree editor would be ace, at the moment you have to painstakingly renumber them with a text editor in the quest and strings tables to sort them

    Speaking of quests, I will take the opportunity to take a look at this as well (better late than never 😅)

    • Like 1
  10. On 12/5/2023 at 8:03 PM, Kvellen said:

    I'm trying to add a new Objective Node to the quest Hunting Season to make an alternate route to account for the player heading to Bentbranch Bog before the animal attack takes place on Sayuka.

    Oh nice, that would be great! Is the quest triggering in vanilla when you enter the bog before the druid attack or are you doing that by script hooks btw?

    On 12/5/2023 at 8:03 PM, Kvellen said:

    But I can't see that there would be any way to add alternate description IDs to the nodes or really anyway to activated an alternate description on a specific event node.

    I don't know if this was because I only half-accounted for the alternate descriptions, or because I realized they weren't usable for Objective Nodes, I'll double check later.

    It's possible to select alternate descriptions for the Quest (root) Node tho, but I noticed that Apotheosis only lets you select already defined alternate descriptions (with id >= 40_000) but not add new ones... I'll fix that for sure...

    image.png.3ef7230625e50a85fe9b7888525e3155.png

    On 12/5/2023 at 8:03 PM, Kvellen said:

    The quest seem to start and displays the string for the new Objective in the left hand corner, but shows it with a check mark as if it were just completed. And the quest log displays only the description.

    Could you send me the version of the mod where this happens, if you still have the files?

    • Thanks 1
  11. This works for me, even with an already opened container:

    image.thumb.png.ad71048fc8e2c611cfb8ab6bf9990186.png

    In this case the 22746573-3fea-4362-bc8c-a919703d5793 is the ID of the container, which I got with the "PrintInstance oei_hovered" console command.

    if
    {
        IsInActiveScene(22746573-3fea-4362-bc8c-a919703d5793)
    }
    then
    {
        GiveItemsToObject(22746573-3fea-4362-bc8c-a919703d5793, Drug_Svef, 1)
    }


     

    • Like 1
  12. On 2/9/2020 at 3:51 PM, Noqn said:

    Forgot to write it but this is a great initiative, Elric Galad !

    Oh how time flies by 🥲

    First of all, a thank you so very much for the BPM 💖
    Absolutely monumental work, well-deserved of being called complete!

    Also wanted to say that I'm really glad that you posted this and to hear people are still going to be here and available although less active.
    I feel a bit guilty since I've always been a bit lurky (never had much to contribue to strats and balancing 😅), though it's always been a delight reading your posts and the discussions in this thread. And fwiw, I am still lurking the forum!

    Lastly, if I remember correctly, someone once posted this in appreciation of the BPM and I want to say I share the sentiment:

    Spoiler
    • Like 1
    • Haha 1
  13. On 10/29/2023 at 11:36 AM, Cmushi said:

    Since I will be replacing subclasses with abilities (instead of a different subclass) for example Enchanter subclass with an ability, I assume I need the modify the following? Specifically Parameters = conditional.Data("hasAbility(this,"Specialized_Enchanter")?

    Aaah, replace that piece with this:

      result = conditional with {
        Data = conditional.Data with {
          FullName = "Boolean HasAbility(Guid, Guid)",
          Parameters = conditional.Data.Parameters.SetItem(1, pair[1])
        }
      };
    Quote

    Sorry, I am not that familiar with scripting and the lack of auto-completes. Is there any documentation that I can reference to?

    There's this documentation page, but it's lacking: https://gitlab.com/noqn/apotheosis/-/blob/main/Docs/User Scripts.md?ref_type=heads

    I'm aware the UserScripts are not very user fiendly at all, the lack of autocompletions especially is a big pain point. I'm considering adding a page to explain how to set up dotnet-script and importing the Apotheosis dlls so that so that the scripts can be edited in VS Code with full language analysis (which is what I've been doing recently), then the user can copy-paste that code into Apotheosis.

    On 10/29/2023 at 11:36 AM, Cmushi said:

    I turned Wizard base subclasses into a selectable ability and this is the result:

    CDN media

    Base subclasses have 1 specialized and 2 opposed schools. You can mix and match specialized and opposed schools with this new system.

    Ooh, I'm loving this, would open up for a lot more combinations and playstyles than vanilla wizard specializations

  14. Hi, thanks for your questions, I'll do my best to answer 😄

    On 10/27/2023 at 11:41 PM, Cmushi said:

    1. Is there a way to add components to abilities or attacks such as AuraAbilityComponent or AOEComponent without duplicating and modifying existing files that already have them?

    If you right-click the topmost row in the tree view, you can select "Add Component..." and add any valid components.

    Vs83ris.png

    nqNrO90.png

    Quote

    2. New attacks always use AttackBaseGameData, is there a way on creation to specify which GameData to use instead? 

    If you expand AttackBase row and right-click e.g. AttackBeam, you get to create a gamedata of that type instead.

    Quote

    3. Is there a way to highlight or list modified files when opening mods in the editor and include value changes?

    No, but that sounds like a good feature!

    Quote

    4. Is there a way to find out where status effects are referenced?

    Like getting a full list of other objects that reference a specific StatusEffect, or just which data types that can reference StatusEffects?
    If it's the latter, try searching the official documentation pages for Components and Structures, then manually Ctrl+F for "StatusEffectGameData".

    If it's the former, it's a feature that would be very useful but isn't available. For now, the closest thing is querying for a specific data type that may refer to a specific StatusEffect and see if that matches, for example:
    #GenericAbility.StatusEffects[*]=LAX02_Food_Ekkevit_SE_Hangover
    ^ will display abilities that contain your status effect

    Quote

    5. I am trying to write a user script that goes through all conversations and replace conditions containing a specific subclass and replace them with a specific ability. How can I achieve this?

    Ooooh, it makes me very happy that someone is getting use of the use script functions!

    This script should do the trick, just replace the contents of the SubclassPairs: https://gitlab.com/noqn/apotheosis-user-scripts/-/blob/main/swap_subclass_checks.cs
    (Note that IsPaladinOrder or IsDeity are used in some conversations instead of the HasSubclass conditional. In case you specifically want to replace Paladin/Priest subclass checks, you would have to edit this script to properly replace those checks too.)

    Quote

    5. Rangers, Chanters and Druids uses custom1 category for animal companions, phrases and spirtshifts. I tried adding custom2 and custom3 categories to ClassProgressionTableComponent, but for some reason they do not appear ingame. Is this a game limitation or is this something I am missing?

    Yeah I saw your thread, I briefly checked the decompiled code with dnSpy to see how it's implemented, but didn't get any answers from what I looked at. Anyhow, my guess is that it's hardcoded so that only Custom1 shows up.

    Quote

    6. I am currently extracting gamedatas in text files and comparing them in visual code. Is there a built-in compare select in the editor? 

    No, but that would be a good feature.
    I've considered a data view where you get to visualize all mod files of the current mod, get to see exactly which changes those files make, compare the changes with vanilla/dependent mod values, etc.

    Some kind of JSON preview would be a good thing on top of that (and really nice as a separate feature regardless).

    Quote

    7. Can BaseProgressionTables include modified abilities or new abilities only?

    If you create a BaseProgressionTableAppend object, you'll only have the option to add new abilities to the referenced table, not edit ones that already exist in it.
    The advantage is that it will be fully compatible with other mods that edit the same table, so I highly recommend it if you only need to add new stuff.

    Editing the CharacterProgressionTable or ClassProgressionTable objects directly will however allow you to edit the existing abilities, at the cost of overriding/getting overriden by all other mods that edit the same table. 

    (I might've misunderstood this question, let me know if that's the case.)

    Quote

    Can you provide a search query example for searching status effects that trigger once on the next spell attack?

    Hm, this might be tricky, don't know if there're any vanilla spells that only trigger once like that.
    Something like this for finding StatusEffects which trigger on a spell attack at least:

    #StatusEffect{AttackFilter.Source=Spell && EventValue=OnLaunchesAttack}

    On 10/27/2023 at 11:41 PM, Cmushi said:

    Can status effects trigger on targets with specific status effects or is it limited to keywords?

    I think if you edit the ApplicationPrerequisites of the StatusEffect you might be able to achieve that (though testing may be required):

    HasStatusEffect(Target, Your_SE_here)

    • Like 1
  15. On 10/16/2023 at 10:36 AM, HurukHai said:

    Hi Noqn awesome job with this!

    Thanks, your tool looks awesome too ❤️ I'll take a more in depth look at it tomorrow

    Quote

    One question, did you know if there is posible reset companion stats without start a new game? my changes only take efect on new games.

    Maybe using the RemoveFromParty / RemoveFromPartyAndLeave scripts could reset the stats? You could try running them as console commands to test:

    https://eternity.obsidian.net/game-data-formats/scripts#RemoveFromParty

    I have a gut feeling it won't work, but it's the only thing I can come up with and is worth testing at least

    • Like 1
  16. I'm gonna take this opportunity to promote Apotheosis 😎

       Download links can be found here: https://gitlab.com/noqn/apotheosis#download-run

     

    12 hours ago, Cipher_Renegade said:

    Trying to edit xoti's sickle, specifically the soul reaper enchantment

    By default it triggers when xoti kills something but I want it to trigger on kill and/or critical hit

    For this you want to navigate to GameData -> Items -> ItemMods and search for soul_reaper to find the right object.

    sYHhMlB.png

    Next you want to expand the StatusEffectsOnEquip row, right-click on the child row and select Duplicate. (Creates a new row with the same ID reference).
    AFRIhoT.png

    Then right-click the duplicate row that was just added, and select Assign Duplicate. (Creates a duplicate of the GameData object that is referenced, then assigns the ID of the new object to the selected row).

    image.png.066ef65c9809ccf34400a80015cf34fa.png

    In the popup dialog, keep the old name but add _OnCrit at the end to distinguish it from the old effect, then press Accept.

    4C98CwV.png

    Next press the Save button under the tab, then you'll get to enter a name for you mod folder.

    zTR9PVb.png


    After that, right-click the _OnCrit row and select Open in New Tab.

    In this new tab you want to make a few changes:

    1. Edit the OverrideDescriptionString text so that it mentions "on scoring Crit" or something, rather than "on scoring a Kill".
      (Press the Pen icon to edit text)
      xloV5ut.png
       
    2. Change the EventValue row from OnScoringKill to OnScoringCriticalHit

    After all that, hit the save button under the 2nd tab, as well as the save button in the upper left corner of the app window.
    UWygSK0.png

    D1KB9Ex.png

    One concern with this solution (I haven't tested it) is that the effects could stack separately (potentially getting up to two x4 stacks)? But anyhow you'll find out if that's the case 😄

    • Like 2
×
×
  • Create New...