Zyra wrote: ↑Mon Nov 11, 2024 3:26 am
Several questions inbound. Thank you if you decide to read it as well as help.
Using: BG3_Patch 7_Autoload_v2.0.zip
1. How would I go about adding specific status effects from potions/elixirs? Particularly, Elixir of Hill Giant Strength/Cloud Giant Strength.
I found tried substituting "CONS_Potion_Hill_Giant_Strength" with various existing scripts but found no luck.
If it is possible, would I also be able to edit the length of the status effect? e.g. Until Short Rest, Long Rest, Permanent (until I manually disable it which should just be add/remove the set status).
Additionally, is there a way to:
2. Make MinimumRollResult(RawAbility,5);MinimumRollResult(SkillCheck,5);MinimumRollResult(SavingThrow,5) actually have the minimum roll of 5-20 instead of always 5?
3. Similar to the question that was asked early about always being accurate, is it possible to make every attack from enemies miss you without adjusting AC?
Thank you for just reading this, and if you are able to answer any of my questions I would greatly appreciate it!
I see what you did wrong. You used:
"CONS_Potion_Hill_Giant_Strength". That's the elixir's
UID. You need to use status =
"Name". The
Name is different from the
Display Name you see in game so watch out for that too.
This information comes from BG3's Mod Toolkit:
Code: Select all
"Name": "POTION_OF_STRENGTH_HILL_GIANT",
"Type": "StatusData",
"DisplayNameEnglish": "Elixir of Hill Giant Strength",
"DisplayNameFrench": "Élixir de force de géant des collines",
"DescriptionEnglish": "<LSTag Tooltip=\"Strength\">Strength<\/LSTag> increased to 21.",
"DescriptionFrench": "Votre <LSTag Tooltip=\"Strength\">Force<\/LSTag> passe à 21.",
"RootFolder": "Shared\\Public",
"StatusType": "BOOST",
"DisplayName": "h870917degc275g4ba5g9e27g0266c13f0fca;3",
"Description": "h70b7c142g4172g433dg860dg05962e3aa866;1",
"Icon": "Item_CONS_Potion_Hill_Giant_Strength_2",
"SoundLoop": "Misc_Status_Elixir_of_Cloud_Giant_Strength_MO",
"SoundStop": "Misc_Status_Elixir_of_Cloud_Giant_Strength_MO_Stop",
"StackId": "ALCH_ELIXIR",
"StackType": "Overwrite",
"Boosts": "AbilityOverrideMinimum(Strength,21)",
"ApplyEffect": "bd95b484-d37e-4811-a3f9-3d6cf5984780"
Here is an example how I toggle the Elixer of Hill Giant Strength effect:
Code: Select all
{$lua}
if syntaxcheck then return end
status = "POTION_OF_STRENGTH_HILL_GIANT"
[ENABLE]
ApplyStatusToPlayer(status)
[DISABLE]
RemoveStatusFromPlayer(status)
On the topic of duration, Elixirs aren't the best example. They're coded to last until long rest or you take another elixir to replace it. Status duration can be modified in the CT by adding some numerical values after the word "status" in the parentheses. Without any numbers (as seen above in my example) your status duration is always ON until you switch it OFF (or the conditions stated above happen). I personally don't mess around with duration. You can always copy what you see in status/spell data dumps and play around from there. Look at conditions like "BURNING" or "PRONE" if you want to experiment.
---------------------------------------------------------------
About your additional questions, I'm not sure why your rolls are locking at 5. That's not what the script means so something else must be going on. Consider attaching that information for troubleshooting or starting on a fresh save. I tested this cheat attached below. I organize scripts a little different than some on here but it still uses the architecture provided by Zanzer et all. When stacked like this it helps me spot typos and see what's included at a glance:
Code: Select all
{$lua}
if syntaxcheck then return end
boosts =
{
"MinimumRollResult(RawAbility,5)",
"MinimumRollResult(SkillCheck,5)",
"MinimumRollResult(SavingThrow,5)",
"MinimumRollResult(AbilityCheck,5)"
}
[ENABLE]
AddBoostsToPlayer(boosts)
[DISABLE]
RemoveBoostsFromPlayer(boosts)
But if your trouble persists you could try a Roll Bonus boost instead:
"RollBonus(RawAbility,5)", etc
Roll Bonus adds an extra numerical value to your dice formula. If the type of dice allows for a critical failure, this won't get you out of that situation like the MinimumRollResult boost. And like all boosts, these cheats must be turned back on each time you reload the game. Boosts do not persist through reloads or saves like status effects or passive features.
---------------------------------------------------------------
Your final question is about enemies making a critical miss against you. I recently found this one messing around with critical hits. Use this script to force every swing and shot against you to be a
Critical Miss!:
Code: Select all
{$lua}
if syntaxcheck then return end
boosts = "CriticalHit(AttackTarget,Failure,Always)"
[ENABLE]
AddBoostsToPlayer(boosts)
[DISABLE]
RemoveBoostsFromPlayer(boosts)