I've extended it a wee bit to make a booster shot that is my one-stop-shot to take in the morning, which is essentially just every boost I add when I just wanna plow through content.
I have noticed though, that the game likes to crash the more boosts I add. Especially when I run my party booster version (boosts every member in my party in one click), the game rather often.
Code: Select all
{$lua}
if syntaxcheck then return end
--[[
Booster Shot.
Gives you all those vital vitamins and minerals that boost your defences and abilities.
Disappears on Load and Long Rest.
Vitamins to look at:
ProficiencyBonusOverride(4)
]]
local abilityPoints = 30 -- 30 is maximum.
local movementMeters = 1000 -- The amount of movement.
local rollBonus = 50 -- Bonus added to all dice rolls.
local resistanceLevel = "Immune" -- Resistant or Immune.
local damageRoll = "12d12+20" -- 1d4, 1d4+3, etc.
local weaponEnchantment = "20" -- Dagger +20.
local sightSpellRange = 32
local damageTypeWeapon = {
"Bludgeoning",
"Piercing",
"Slashing",
"Cold",
"Necrotic",
"Psychic",
"Radiant",
}
local damageType = {
"Bludgeoning",
"Piercing",
"Slashing",
"Acid",
"Cold",
"Fire",
"Force",
"Lightning",
"Necrotic",
"Poison",
"Psychic",
"Radiant",
"Thunder",
}
local ability = {
"Strength",
"Dexterity",
"Constitution",
"Intelligence",
"Wisdom",
"Charisma",
}
local skill = {
"Acrobatics",
"AirSpecialist",
"AnimalHandling",
"Arcana",
"Athletics",
"Brewmaster",
"Crafting",
"Deception",
"DualWielding",
"FireSpecialist",
"History",
"Insight",
"Intimidation",
"Investigation",
"Leadership",
"Luck",
"MagicArmorMastery",
"Medicine",
"Perception",
"Perseverance",
"PhysicalArmorMastery",
"Polymorph",
"Ranged",
"RangerLore",
"Reason",
"Religion",
"Repair",
"RogueLore",
"Runecrafting",
"Shield",
"SingleHanded",
"SleightOfHand",
"Stealth",
"Sulfurology",
"Survival",
"Thievery",
"TwoHanded",
"Performance",
"Persuasion",
"Wand",
"WarriorLore",
"WaterSpecialist"
}
rollType = {
'MeleeWeaponAttack',
'MeleeOffHandWeaponAttack',
'RangedWeaponAttack',
'RangedOffHandWeaponAttack',
'MeleeSpellAttack',
'RangedSpellAttack',
'Attack',
'SkillCheck',
'RawAbility',
'DeathSavingThrow',
'SavingThrow',
}
boost = {
"ActionResourcePreventReduction(Movement);",
"WeaponProperty(Magical);",
string.format("DarkvisionRangeMin(%s);", sightSpellRange),
string.format("SightRangeMinimum(%s);", sightSpellRange),
string.format("UnlockSpellVariant(DistantSpellCheck(),ModifyTargetRadius(Override,%s),);", sightSpellRange),
string.format("UnlockSpellVariant(DistantTouchSpellCheck(),ModifyTargetRadius(Override,%s),ModifySpellFlags(Melee,0),);", sightSpellRange),
string.format("ActionResourceOverride(Movement,%s,0);", movementMeters),
string.format("WeaponEnchantment(%s);", weaponEnchantment),
}
for i = 1, #rollType do
table.insert(boost, string.format("RollBonus(%s,%s);", rollType[i], rollBonus))
table.insert(boost, string.format("MinimumRollResult(%s,%s);", rollType[i], 20))
end
for i = 1, #damageTypeWeapon do
table.insert(boost, string.format("CharacterUnarmedDamage(%s, %s);", damageRoll, damageTypeWeapon[i]))
table.insert(boost, string.format("CharacterWeaponDamage(%s, %s);", damageRoll, damageTypeWeapon[i]))
end
for i = 1, #damageType do
table.insert(boost, string.format("Resistance(%s, %s);", damageType[i], resistanceLevel))
end
for i = 1, #ability do
table.insert(boost, string.format("AbilityOverrideMinimum(%s, %s);", ability[i], abilityPoints))
table.insert(boost, string.format("ProficiencyBonus(SavingThrow, %s);", ability[i]))
end
{$asm}
[ENABLE]
{$lua}
AddBoostsToPlayer(boost)
{$asm}
[DISABLE]
{$lua}
RemoveBoostsFromPlayer(boost)
{$asm}