Zyra wrote: ↑Wed Jan 22, 2025 8:24 pm
Is there a way to make a spell a ritual type manually (or infinite uses without impacting resources)? I am using one of the ones I couldn't figure out: song of rest. If so, what would that look like and are there any other additive modifiers you can add to the giving spell command?
Thank you!
Did you find a solution you liked?
Here's a long answer that should point you in the right direction.
Song of Rest costs an
Action Point to cast but it also requires a
Long Rest before you can use it again. I don't think we can edit the spell itself to make it Ritual (a mod could). In the game files there are many different versions of spells and some of them happen to be Ritual but I couldn't find one for Song of Rest. I also couldn't find a preventative spell-side method to negate the requirement for it's
Long Rest.
The first part of your question is about free-casting or infinite
Action Points. The method I use is cheating infinite points. I write my code this way because I like seeing those groupings of four points like a four-leaf clover. However,
"ActionResourceConsumeMultiplier(ActionPoint,0,0)" is all you'd need for this situation.
Code: Select all
{$lua}
if syntaxcheck then return end
boosts =
{
"ActionResourceOverride(ActionPoint,4,0)",
"ActionResourceOverride(BonusActionPoint,4,0)",
"ActionResourceOverride(ReactionActionPoint,4,0)",
"ActionResourceConsumeMultiplier(ActionPoint,0,0)",
"ActionResourceConsumeMultiplier(BonusActionPoint,0,0)",
"ActionResourceConsumeMultiplier(ReactionActionPoint,0,0)"
}
[ENABLE]
AddBoostsToPlayer(boosts)
[DISABLE]
RemoveBoostsFromPlayer(boosts)
You could also restore all your spent
Action Points and
Bonus Action Points with this status:
Code: Select all
{$lua}
if syntaxcheck then return end
status = "POTION_OF_MALIGNANT_AWAKENING_UNSTABLE_RESTORATION"
[ENABLE]
ApplyStatusToPlayer(status)
[DISABLE]
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Here are some solutions to restore the spell's
Long Rest requirement. I've included several rest-like actions and a couple actual
Long Rest cheats that don't require you to go to camp; they won't activate dream sequences either. It might just be my game but Song of Rest will not let you reset it's
Long Rest requirement while in combat. Most spells I've tried will though.
This first one is the restoration status you get when drinking
Angelic Slumber:
Code: Select all
{$lua}
if syntaxcheck then return end
status = "ALCH_POTION_REST_SLEEP_GREATER_RESTORATION"
[ENABLE]
ApplyStatusToPlayer(status)
[DISABLE]
RemoveStatusFromPlayer(status)
My all time favorite restoration status is the one from those Nautiloid Restoration pods:
Code: Select all
{$lua}
if syntaxcheck then return end
status = "TUT_RESTORATION"
[ENABLE]
ApplyStatusToPlayer(status)
[DISABLE]
RemoveStatusFromPlayer(status)
These next two are actual
Long Rests and they'll auto-save when used:
Code: Select all
{$lua}
if syntaxcheck then return end
local uuid = "3fc599d8-c8c7-1fa6-c832-4802573720e4" -- Debug_LongRest_
[ENABLE]
SetFlagOnPlayer(uuid)
[DISABLE]
Code: Select all
{$lua}
if syntaxcheck then return end
------------------------------
initiator = GetHostCharacter()
------------------------------
SetArgToString(0,initiator)
SetArgToInteger(1,1)
[ENABLE]
ExecuteCall("RequestLongRest")
[DISABLE]
"Restore Party" is another powerful ExecuteCall that's very similar to taking a rest but doesn't auto-save or restore
Short Rests:
Code: Select all
{$lua}
if syntaxcheck then return end
------------------------------
character = GetHostCharacter()
------------------------------
SetArgToString(0,character)
[ENABLE]
ExecuteCall("RestoreParty")
[DISABLE]
"ResetCooldowns" does exactly that and nothing more:
Code: Select all
{$lua}
if syntaxcheck then return end
------------------------------
character = GetHostCharacter()
------------------------------
SetArgToString(0,character)
[ENABLE]
ExecuteCall("ResetCooldowns")
[DISABLE]