Roll20 uses cookies to improve your experience on our site. Cookies enable you to enjoy certain features, social sharing functionality, and tailor message and display ads to your interests on our site and others. They also help us understand how our site is being used. By continuing to use our site, you consent to our use of cookies. Update your cookie preferences .
×
May your rolls be merry + bright! 🎄
Create a free account

3.5e Psionic Macros

Just started macroing for 3.5e and I'm trying to get my Psi Warriors powers all macro'd up. Right now im struggling with adding an augment function to my powers and was wondering if any could explain it? Also if anyone happens to have some Psionic macros lying around It would be greatly appreciated!
1654592715
Ziechael
Forum Champion
Sheet Author
API Scripter
I have some really old ones (using an outdated version of the Powercards API as well as some other custom stuff) that probably won't be of much use to you... but if you want to post an example of what you've got so far as well as what you'd like it to do I'd be more than happy to help out. The key to augments is to have one query do it all where possible, which means that you either have to coax it into a number that you can use in multiple places or nest some stuff in the query which can get problematic real quick!
I'm very new to Macros so I don't have any idea how to even start in the function currently most closest to finished macro is my Mindlink macro which is;  &{template:DnD35StdRoll} {{spellflag=true}} {{name=@{character_name} }} {{subtags=casts [Mindlink]}} {{School:= Telepathy [Mind-Affecting]}} {{Level:= Psion 1}} {{Cisplay:=Mental}} {{Casting Time:=1 std action}} {{Range:= Close}} {{Target:= You and one other creature with an Int of 3+}} {{Duration:= [[ 10*@{manifesterlevel} ]]mins }} {{Saving Throw:= Will negates}} {{Power Resist.:= Yes}} {{ Manifester level check: = [[ 1d20+@{manifesterlevel} ]] vs spell resistance.}}
1654636090

Edited 1654636096
Ziechael
Forum Champion
Sheet Author
API Scripter
At the very least you could add something like this to the end: {{Augment?=?{Augment|No,None|Yes,Dominate (+2PP and Will save DC14 to negate)} }} ^^Not real info but a simple idea of how to add information for augments without too much effort. More complex options are definitely available. I'll dig out my 3.5e book tomorrow and throw some real examples of some of the variations for you. note: I think the 3.5e sheet templates allows for that level of customisation... if not you could likely replace the section name with Notes or combine it with one of the other existing ones... either way I'll go into more detail on the morrow
Currently I've altered the macro to show augment cost as part of its description; &{template:DnD35StdRoll} {{spellflag=true}} {{name=@{character_name} }} {{subtags=casts [Mindlink]}} {{School:= Telepathy [Mind-Affecting]}} {{Level:= Psychic Warrior 1}} {{Cisplay:=Mental}} {{Casting Time:=1 std action}} {{Range:= Close}} {{Target:= You and one other creature with an Int of 3+}} {{Duration:= [[ 10*@{manifesterlevel} ]]mins }} {{Saving Throw:= Will negates}} {{Power Resist.:= Yes}} {{ Manifester level check: = [[ 1d20+@{manifesterlevel} ]] vs spell resistance.}} {{Power Points: 1}} {{Augment:= **4PP**: For every **4** additional power points, you can attempt to create a telepathic bond with a creature that is not willing (Will save negates)}} {{Augment 2:=**1PP**: This power can affect an additional target. Any additional target cannot be more than 15 feet from another target of the power}}
1654699914
Ziechael
Forum Champion
Sheet Author
API Scripter
Ok cool, that example gives me a great opportunity to show some of the stuff you can do: &{template:DnD35StdRoll} {{spellflag=true}} {{name=@{character_name} }} {{subtags=casts [Mindlink]}} {{School:= Telepathy [Mind-Affecting]}} {{Level:= Psychic Warrior 1}} {{Cisplay:=Mental}} {{Casting Time:=1 std action}} {{Range:= Close}} {{Target:= You and one other creature with an Int of 3+}} {{Duration:= [[ 10*@{manifesterlevel} ]]mins }} {{Power Resist.:= Yes}} {{ Manifester level check: = [[ 1d20+@{manifesterlevel} ]] vs spell resistance.}} {{Power Points: [[ 1 + ?{Augment|Additional Target(s) (+1PP/target),?{Additional Targets|0} ]]PP }} {{Augment:=This power can affect ?{Additional Targets} additional target(s). Any additional target cannot be more than 15 feet from another target of the power|Unwilling Target (+4PP/target),4 ]]PP }} {{Augment:= You can attempt to create a telepathic bond with a creature that is not willing (Will save negates) }} {{Saving Throw:= Will negates|Both (+4PP base and 5PP/additional target),(4*(1+?{Additional Targets|0})) ]]PP }} {{Augments:=This power can affect ?{Additional Targets} additional target(s). Any additional target cannot be more than 15 feet from another target of the power and you can attempt to create a telepathic bond with creatures that are not willing (Will save negates) }} {{Saving Throw:= Will negates} }} Sometimes simple is better though, unless you have a real desperate need to automate/query for some of the details you might be best off just relying on manual effort to calculate power point usage XD In the example above you get 1 or 2 queries to determine whether or not you want to use an augment (the selection process gives you enough information to make informed decisions rather than have to retcon after the fact). It also only displays the save information when appropriate.
1654937655

Edited 1654937844
Holy shit that's fantastic now I just have to reverse engineer what you've made to try and understand it! Looking at it theres a lot here I don't understand for example why the {Additional Targets|0}' ]] does that refer to a point in the macro and if so how did you work it out?
1655109588
Ziechael
Forum Champion
Sheet Author
API Scripter
So basically, all that is doing is providing a way to nest a query within another query... trying to do this would break the query as it would attempt to use the problematic characters from the nested query: ?{Query 1|This,?{Query 2}|That,?{Query 3}} But by replacing the problematic stuff with html ( more info here ... not required on attribute calls) we can create a branching tree of conditional queries: ?{Query 1|This,?{Query 2#&125;|That,?{Query 3#&125;} You can also reuse the results of those queries elsewhere which is why in the example I originally gave you'll only find the full thing (including the default value) the first time it is to be called, subsequent queries that want to reuse the result of it can be transformed from ?{Query|0} to ?{Query}... this is useful when you have a lot of queries that need to be asked EVERY time you run a macro as you can prefix the whole thing with a 'hidden' row in your macros to avoid having to replace more than the } in each subsequent instance: ! ?{Query 1|0} ?{Query 2|0} @{selected|character_name} attacks: [[ 1d20 + @{selected|bab} + ?{Situational effect|1,?{Query 1#&125;|2,?{Query 2#&125;} ]]