Page 1 of 3 123 Last
  1. #1
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620

    (New IF operator) New and much better version of Save versus tags

    Hi

    This extension will be a replacement for my save versus tags extension, https://www.fantasygrounds.com/forum...arbitrary-tags (an explanation of the extension will be also here in this thread)

    Why the rewrite?
    There were performance problems; the CUSTOM effect is a performance-eating code in FG and too many of them could cause performance problems because this created some sort of "loop" (which is not really a loop but the code had to take a long path). For this I have developed a new operator similar to IF and IFT, its name is IFTAG. It works very similar to the previous IF: CUSTOM(..) of the previous extension, but its performance is now a lot better due to a different code in its background (different to CUSTOM and IF). This needed a rewrite of the effect code in FG, so please tell me when you see errors

    What does it do?
    Before I explain the IFTAG in detail let me shortly explain the main properties:

    • There is the effect SIMMUNE for immunity against spells/actions. You trigger that effect only by pressing on the cast button. When the target has SIMMUNE then you see [IMMUNE] in the chat message of the cast message, the star icon of the cast message changes in a cancelled star and the target will be removed according to your choice in the options for Remove on Miss.
    • There is the effect SR for an effect for spell resistance. It is of the form 'SR: (N) [bonus type]'. This adds the number N as spell resistance and it does not stack with the existing value of spell resistance in the sheets since spell resistance works like that as far as I know. But, due to the mechanic of effects in FG, several different SR effects might stack when there is not a suitable bonus type, i.e. 'SR: 13; SR: 2' would result into 'SR: 15'. Hence, rather use a generic bonus type like 'SR: 13 enhancement; SR: 2 enhancement' to avoid that stacking although there is not any bonus type for magical effects for SR in the core rules. There is also not any information about the effect bonus in the chat message to avoid that players can estimate the SR of their target (but the effect seemingly works, trust me or play a bit with it :P). SR can also have a target.
    • The IFTAG operator can be used for triggering SIMMUNE, SR and SAVE only for specific type of actions and effects. So, with that extension it is possible to have saves and immunity against specific type of actions See below for details.
    • For this, there is a new automatic parsing of spells such that you do not have to do too much.
    • More features mentioned in the Updates section at the bottom

    How does it work? (if not already explained)
    See the attached picture (that is now old stuff), that is the new save configuration box of your spells. You see that there is a new box for the school and type of your action. At the moment the standard school types (and "None") are supported and for types: None, spell and spelllike.
    When you want to modify your actions a bit more with additional traits like paralysis, stun etc. then there is a new line at the bottom. Type in any tag you need for describing that spell action. Everything will work for the IFTAG (explanation for that still incoming :P), also apple, pie whatever But: separate them by a comma or semicolon or space, FG will know that words separated like that are different tags. Therefore do not use "magic missile" as one tag, rather write e.g. "magicmissile" and do not use special signs like -. Therefore spelllike, not spell-like. mindaffecting, not mind-affecting. languagedependent, not language-dependent. The parser of FG does not like that (and/or I didn't find out how to treat these signs well enough)
    You will realize that the spell parser already adds a lot of tags when you add a new spell (from a module coming from FG directly) or when you reparse them: The type is then always spell, the school depends on the string in the school entry and all remaining descriptors are automatically parsed in the bottom line

    To use the tags: Simply use IFTAG, e.g. save bonusses or immunity against specific types are written like in the following examples

    • IFTAG: spell; SAVE: 2 racial (+2 racial bonus against spells)
    • IFTAG: spelllike; SAVE: 2 racial (+2 racial bonus against spell-like effects, remember to not use the -)
    • IFTAG: poison; SAVE: 10 insight (+10 insight bonus on saves against poisons, poisons are not automatically parsed in the tag lines. You have to add them on their own such that FG will know which action corresponds to a poison)
    • IFTAG: spell; IFTAG: evocation; SIMMUNE (immunity versus spells of the school evocation)
    • IFTAG: spell, illusion; SAVE: 3 enhancement, will (+3 will enhancement bonus against spells in general and against illusions in general, so also spell-like illusions would be affected by that or anything else with the tag illusion, not only illusion spells. The comma between tags is like a logical (inclusive) OR )

    You see, after IFTAG you type in the tags which are needed to get the bonus or spell immunity (write the type (spell, spelllike) and the schools small); FG then compares these tags with the tags of the action/spell (saved in the save configuration box as explained above) to see if a save bonus or immunity has to be applied Always put these effects in new lines of effects in the combat tracker; the IFTAG works like IF and IFT, so, when the tags are not met then everything after the IFTAG will be ignored, therefore do not combine them with other effects like AC and so on, put them in different lines (or at the very end of another line without any IF and IFT,this is how FG works in general). When you want that to tags/conditions/traits (whatever) are met for a bonus, then put several IFTAGs next to each other as in the fourth effect. The fourth effect only grants SIMMUNE when the action of the attack is a spell of the school evocation, spell-like effects of evocation would not be affected by this for example.
    Instead, when you want that just at least one tag is needed for some bonus or immunity then use the structure of the last example. The last effect grants an enhancement bonus of +3 to will saves when the action is of type spell or illusion (so spell-like illusions would be affected by that effect). This allows you to put several effects of the same type (SAVE, SR or SIMMUNE) for different tags into one line. That is an exception of the rule above about putting these effects into new lines in the CT. I've implemented this to keep the CT effect entry small enough The spell and poison resistance of dwarves can then be written like: IFTAG: spell, spelllike, poison; SAVE: 2 racial

    To the users of the old extension: Sadly, IF: CUSTOM(..) will not work anymore as in the previous extension (it is still there but it works now again as usually in FG, but not as in my previous version of the extension). I had to remove that for stability of the code as mentioned in the beginning. I tried to keep this in the extension but I was not able to do this. Therefore you have to rewrite your effects sadly. I hope that this is okay; the performance is now a way better (of course performance problems can still arise when you have thousands of effects but then this is a general problem not related to CUSTOM and so on But you can really have now a lot of IFTAG effects without any lag, really a lot. Not as in the previous extension where four or five effects versus tags already produced serious lags)

    Combinations with other extensions:
    StrainInjury (by darrenan) and all other things:
    https://www.fantasygrounds.com/forum...njury-packages
    Overlays, AoO tracker and advanced effects (with incorporated keen effect from darrenan): https://www.fantasygrounds.com/forum...ea-from-Ken-L)
    It is compatible with advanced effects and AoO (and with the extension where advanced effects and AoO are combined), so the combinations are only needed when you also want StrainInjury from darrenan and/or the overlays

    Have fun

    UPDATE:

    • Both, evasion and improved evasion, can now also be combined with IFTAG.
    • DC effect for improving the difficulty class, works also with IFTAG. DC: (N), where N ist an arbitrary number and bonus types should be supported here. Basically spell focus feats can now be done with that and IFTAG, too, when you do not want to go through all of your spells E.g. IFTAG: spell; IFTAG: enchantment; DC: 1
    • [STR], [DEX] etc. are now respecting STR-, DEX- etc. effects (conditions and so on, too), they do not only take the modifier from the sheet anymore This does not hold for [BAB], [LVL] and [CL] since there are no effects for them, thence they work as usual.
    • There is now dice support for the effect parsing! Simply type [NdM+K] where M is a positive number while N and K can be both, positive and negative (or zero for K). I.e. strength damage can be now parsed without rolling manually (although there is no physical dice, so not "physical/real randomness"), e.g. STR: [-2d6+1]. This die in the bracket will be rolled (in sense of a random table) and its result will be parsed into the CT, for example STR: -2 then. dF is also supported
    Attached Images Attached Images
    Attached Files Attached Files
    Last edited by Kelrugem; August 27th, 2019 at 07:03.

  2. #2
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    I've now made it compatible again with all the other extensions, see the provided links at the end of the first post

    Sorry for that many changes. I always think "This is it now for some while" and then I already have a new idea. Then holidays.. that happens then :P

    By the way, the IFTAG code is coded very general such that I could easily combine it with any other effect (here SAVE and SIMMUNE at the time of this posting). Thence due to its more general design now I can think about combining tags with other effects. But depends on usage
    Last edited by Kelrugem; August 28th, 2019 at 13:51.

  3. #3

    Join Date
    Apr 2008
    Location
    Virginia Beach
    Posts
    3,001
    Kelrugem, you are doing great work, man. I wish I could use it, but for right now, my group wants to move to PF2. I have some mixed thoughts about that.

  4. #4
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    Quote Originally Posted by Bidmaron View Post
    Kelrugem, you are doing great work, man. I wish I could use it, but for right now, my group wants to move to PF2. I have some mixed thoughts about that.
    Thank you

    Ah, I understand the mixed feelings, I would also not be sure if I should switch (and I didn't even switch to Pathfinder) Too many books I still have to work through in 3.5e

  5. #5
    Awesome! Can't wait to test this when 3.3.8 drops.
    Gonna be used for quite a while since my group really doesn't like 2E, and switching in the middle of the 2 APs I'm running isn't feasibe anyway
    Pathfinder GM -Ultimate License
    Check out my little dungeon map blog

  6. #6
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    There were the following update for 3.3.8:

    Quote Originally Posted by Moon Wizard View Post
    Thanks, guys. I generalized what you were doing to apply to all the dice/number expression processing I found with a quick scan, across all the rulesets I support directly.

    Updates

    • [DEV][CoreRPG+] Decimal points supported in dice/number expressions (/die commands, table/template expressions, effect number parsing)


    JPG
    Therefore I updated the save versus tags extension (and the combined extension packages with save versus tags ) since my extension would overwrite this change. But you do not need to update as long as you do not use decimal points in your effect actions

  7. #7
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    I have some new and nice updates

    • Both, evasion and improved evasion, can now also be combined with IFTAG.
    • SR can also now be combined with IFTAG. (just because I was able to do it :P the general code for IFTAG allows me to extend it very easily to any effect). This effect can by the way also assigned with a target (for completeness I wanted to mention that).
    • DC effect for improving the difficulty class, works also with IFTAG. DC: (N), where N ist an arbitrary number and bonus types should be supported here. Basically spell focus feats can now be done with that and IFTAG, too, when you do not want to go through all of your spells E.g. IFTAG: spell; IFTAG: enchantment; DC: 1
    • [STR], [DEX] etc. are now respecting STR-, DEX- etc. effects (conditions and so on, too), they do not only take the modifier from the sheet anymore This does not hold for [BAB], [LVL] and [CL] since there are no effects for them, thence they work as usual.
    • There is now dice support for the effect parsing! Simply type [NdM+K] where M is a positive number while N and K can be both, positive and negative (or zero for K). I.e. strength damage can be now parsed without rolling manually (although there is no physical dice, so not "physical/real randomness"), e.g. STR: [-2d6+1]. This die in the bracket will be rolled (in sense of a random table) and its result will be parsed into the CT, for example STR: -2 then when -2 is the result of -2d6+1. dF is also supported

    I personally also like the first point because now I can finally fully automate the 3.5e version of fire shield I've started coding for FG because I wanted to automate my fire shield spell (therefore one of my first effects was HRESIST in the advanced effects extension. I didn't know that the fire shield will lead me to such extensions )
    I also cleaned the code a lot. If some other developer is interested to understand IFTAG then manager_effect_35E.lua should now look better. I merged my own functions with the original ones.

    I will upload the other updated packages with Save versus tags now
    Last edited by Kelrugem; August 8th, 2019 at 00:30.

  8. #8
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    Oh, and what I forgot to mention in the initial post: write the tags for spell types and schools always small for your effects, so evocation and not Evocation. At the moment the parser/code in the background sees them as different words. I may change this at some point

  9. #9
    Meow!
    I'm having trouble with this one... It always uses the linked effect even without it being there. I mean, tried to set it on a character as "IFTAG: necromancy; SAVE: -2" (big bad Necrotic Cyst :D). That -2 is *always* on no matter the tag. Necromancy? -2. Conjuration? -2. Even random saves (prompted by a double click on the Saving Throw number) generates a result -2. Did I set it wrong?

  10. #10
    Kelrugem's Avatar
    Join Date
    Sep 2018
    Location
    Geneva, Switzerland, and Lyon, France
    Posts
    620
    See the attached image, for me it is working Did you put it up like I did? Which other extensions are you running?

    EDIT: Test spell 2 is the abjuration spell while Test spell is necromancy. You can see that the penalty is only applied to the necromancy spell (though it should not matter whether it is a spell; when it only applies to spell then write IFTAG: necromancy; IFTAG: spell; SAVE: -2

    Make sure you wrote necromancy small and correct; I often have a typo with words like necromancy

    EDIT2: Also make sure that the school is correct in spell save description. The school is only automatically parsed for newly added spells into your action tab while the extension is active (or when you reparse a spell after right-clicking on it) But I doubt that all your spells are suddenly necromancy only
    Attached Images Attached Images
    Last edited by Kelrugem; August 9th, 2019 at 19:46.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in