PDA

View Full Version : Generic Actions extension for Fantasy Grounds Unity 5E ruleset



Pages : [1] 2

SilentRuin
June 23rd, 2020, 06:20
Now in Forge. Old DMsG version will be maintained though is no longer for sale there.

Generic Actions Extension (Fantasy Grounds Unity) (https://forge.fantasygrounds.com/shop/items/152/view)

48443

This stand-alone extension for Fantasy Grounds adds basic actions as clickable buttons on player and non-player character sheets.

This extension unlocks the following functions:


Adds the generic actions found in the 5e Player’s Handbook as buttons on the character sheet.

Includes: Grapple, Break Grapple, Shove, Dash, Disengage, Dodge, Help, Hide, Ready, Search, and Use Object.

Generic actions that have checks or contesting rolls allow targeting creatures, and rolls are done automatically (completed in a similar manner to spell saving throws).

Checks and contesting rolls support the dice tower

NPC’s also gain these buttons on their character sheet —valuable for DMs or player-controlled sidekicks.


Verify options are used to insure the named operation going on cannot happen if out of ammo, Paralyzed, Stunned, Unconscious, Incapacitated, or Grappled (optional as grappling is nebulous on when it should prevent something based on DM preferences).

Updates:

[See .txt file for early updates and features]

V1.43 - Bug - Was not handling register function correctly so that others doing same register of them could be fully compatible. Fixed. (BCEG conflict resolution impacting ranged calcs)

V1.44 - New .ext delivered with GenericActions for asset layer support in more than just 5E.

V1.46 - Conflict - upped my load order from 99 to 150 to prevent having onDamage code stomped by someone else - I call the original code so won't stomp them.

V1.47 - Bug - invisible flanking tokens were giving flanking advantage. Fixed.

V1.48 - Bug - Hide button was not taking into account armor disadvantages. Fixed.

New GenericActionsLayer.ext delivered with GenericActions.ext so it can be used in more than 5E -
"Feature: Generic Actions Layer"
(for the moment the 2E, 3.5E, 4E, 5E, PFRPG2, and SFRPG rulesets are supported)
See end of txt file for more details.

V1.8 - Bug - Action buttons have cast buttons divided into attacks and saves. The cast attack will actually trigger two call backs which can cause name conflicts. I've now distinguished these by appending "Cast" to end of name when its a cast trigger (watch chat you'll see two messages generated - one for cast - one for attack). If you have the debug option on then you'll see what names are being looked up including their defaults.

V1.9 - Conflict - upped my load order from 99 to 150 to prevent having onDamage code stomped by someone else - I call the original code so won't stomp them.

V1.10 - Features - New "Self" appended to any effect name so that the target (normal name) and source (self name) can be separated. This new "self" name cannot be extracted from CT effect so the display all effects map button will only find non "self" name matches. Not sure what to do about that for now (I'm just making a non self name where required - still not perfect). If you add "Keep" to end of any asset name it will be stored as a separate layer "GA_<name>_<source name>". This new name will check vs any delete node operation to see if it has is an "%.effects.%id" node path and then determine the CT node and label value from that - then form and check the name vs existing layer names and remove any match. How I plan to use this to keep my lazy DM ways is for example - my player Cirrus will do a Fog Cloud spell (I use advantagesPA extension) by using a ptr shape of circle to place where they want the fog cloud - then select targets and apply the effects which will trigger an asset name match on FogCloudPTRCircleKeep.webm and place that 20ft cloud scaled to circle placed in a map layer called GA_fogcloud_Cirrus. When the concentration effect expires or is deleted the layer will be found and also be deleted. The other default layer names have also been shortened so they can be seen (limited MAP UI to display name no way to see full name). The new names are "GA" , "GA Ptr", and "GA Effect". Also when a PTR Keep asset is placed it will check if the original name matches an NPC name and if it does it will place that NPC in the CT and at the center of the PTR. And when that PTR Keep asset is removed it will also check for the matchin NPC and remove it completely also. As I plan to use it - I will have for example a Fog Cloud NPC that has an AURA effect on it - so that when the Fog Cloud effect is reset (without changing duration of course unless you have duplicate effects allowed) it will appear to move the Fog Cloud Asset and the NPC associated with it (invisible). And when effect is removed it will remove the asset and the NPC (including its aura effects on anything). I do this by also using AURA and Equipped Effect Extension for most of these keep type of NPCs. While Fog Cloud NPC does not require AURA as I define it to have a trait defined as Fog Cloud and a custom effect defined as "Fog Cloud; LIGHT: 20/20 darkness". My Flaming Sphere NPC however requires AURA as I have a trait defined as Flaming Sphere and a custom effect defined as "Flaming Sphere; (C); AURA: 5 all; Flaming Sphere; SAVEA: [SDC] DEX (H)(M); SAVEE: [SDC] DEX (H)(M); SAVEDMG: 2d6 fire". The Keep naming option is just a tool and provides you ways to do lots of things. For instance, I may have an invisible assistant GM PC that has a number of traits and custom effects which allow me to trigger keep PTRs asset placement based on pretty much anything I want and simply remove them by removing the effect from my dummy PC (or NPC). Of course, the downside of tools are they allow you to do truly stupid things. I suspect some nut will have 1000 targets and trigger assets and NPCs for each one of them until their map runs out of memory and drops dead. Back up your projects which include your maps IMHO or suffer the consequences.

V1.11 - Bug - Display effect assets button was deleting PTRs instead of just effects. Fixed. Other general fixes.

V1.12 - Feature - if (P) appears in effect name and it happens to trigger a Keep generic actions asset then it will treat that asset as permanent until the effect itself is deleted. Personally, I can see so many uses for this I'm not going to bother to enumerate them. For sure my examples will have a WayPointSelfKeep.webm and a WayPointSelfPTRCircleKeep.webm that I tested with - but that is truly only a trivial use I can see for this power.

V1.13 - Bug - Cannot remove selection to hide targeting arrow so asset can be seen better as this effects vision. Will have to let targeting arrow overlay the asset for now.

V1.14 - Feature - new option "Asset: Generic Action Layer NPC faction will be none" defaulted to "on". While I originally used AURA/BCEG tied to NPCs for mines in SW5E where the faction is required to be the faction of what placed it - I can see no harm in allowing NPCs to be placed with none in other campaigns as it will not effect my definition of what the AURA effects are one way or the other (I don't use none but instead depend on things respecting the non targetable aspect of the NPC token) and I can just turn it off in places I need the NPC to have a faction so it can have more power in the AURA discrimination of friendfoe.

V1.15 - Bug/Feature - the attempt to make the NPC non targetable failed so took a completely different tact. If the effect "NOTARGETING" is present (NPC proxy will have it added in) in the CT entry then no targeting will be allowed (ctrl click on map or ctrl click on CT to target) and will be set back to not targeted. AuraEffect.isAuraApplicable function in AURA extension has also been overwritten to respect this effect. If its there - targeting (and Aura application) will not take effect - if its not there it will. Simple but deadly. Use this extension and feature at your own risk - ye be warned.

Grim Press video.

https://www.youtube.com/watch?v=3s2mB-1dDGI

A video made for my own entertainment...

https://youtu.be/ZS7wImwotnk

New layers playlist of videos I've made...
https://www.youtube.com/watch?v=b2AljJKfy4I&list=PLudwZcUmLrnD9hmPavCJFTxN9LNyJeLZ2

Grim Press will be handling the sales and promotion of this extension.
If you'd like to engage with us, please feel free to join the Grim Press discord: https://discord.gg/N7MM93a

Extensions = RISK: This note is added to all the extensions I maintain. I want users to understand that extensions are code that is added to or overrides portions of code in the Fantasy Grounds Unity (FGU) application. When the underlying code in FGU changes it can break an extension. When you run with other extensions they can conflict by trying to overwrite the same parts of the FGU code. I will keep my extensions working with FGU changes, and the extensions I use (listed in my FGU signature) as I have direct control over those things. I cannot make the same promise with other extensions. If I am notified of an incompatibility I will attempt to resolve it - but if I cannot I will list what the known extension incompatibilities are. Understand before you get any extensions that it comes with RISK. Not just my extensions - any extension. These extensions are also maintained by me for me. I provide them outside of my own games purely to those who wish to take advantages of things I use for myself.

Included is original text used for describing this extension - has a lot of details but really provided for reference if needed.

LordEntrails
June 23rd, 2020, 17:59
Sure, go ahead and include a video and a cover image. All is good :)

Trenloe
June 23rd, 2020, 18:03
Very cool you've taken the step onto DMs Guild.

One question - is this purely for the 5E ruleset or will this work in CoreRPG or other CoreRPG rulesets? The functionality looks pretty much tied to D&D 5e. If that's the case I'd recommend removing the mention of CoreRPG otherwise people might think they can use this with any CoreRPG ruleset.

SilentRuin
June 23rd, 2020, 19:18
Very cool you've taken the step onto DMs Guild.

One question - is this purely for the 5E ruleset or will this work in CoreRPG or other CoreRPG rulesets? The functionality looks pretty much tied to D&D 5e. If that's the case I'd recommend removing the mention of CoreRPG otherwise people might think they can use this with any CoreRPG ruleset.

I only run with Fantasy Grounds Unity 5E/CoreRPG of which the extension references some specific messages and icons in both 5E and CoreRPG for display purposes. For sure it's tied to D&D 5E as the generic actions are all specific to that rule set and the player handbook references. As I was given permission to put more in than just the link I'm adding the video and cover page to the first post next after I reply here.

As far as the CoreRPG reference, you can't run 5E without CoreRPG. And I reference strings/icons from both rulesets - plus specific code in each. My statement is literally everything you need to run the extension...

UNITY
5E
CoreRPG

It can't live without any of them.

mattekure
June 23rd, 2020, 19:21
This looks great. Well done. I'm not sure I like the Search button automatically switching between perception/investigation. As a DM I know I prefer to tell my characters which to roll depending on how they describe their actions. also for the stealth checks, if done against a target, does it roll a contested stealth vs perception?

Trenloe
June 23rd, 2020, 19:26
I only run with Fantasy Grounds Unity 5E/CoreRPG of which the extension references some specific messages and icons in both 5E and CoreRPG for display purposes. For sure it's tied to D&D 5E as the generic actions are all specific to that rule set and the player handbook references. As I was given permission to put more in that just the link I'm adding the video and cover page to the first post next after I reply here.
In that case my recommendation stands. Your extension is only compatible with the 5E ruleset. Sure, 5E runs on top of CoreRPG, but your extension only works in 5E. My strong recommendation to you is to remove references to CoreRPG - this will not work in CoreRPG games. At the least, you'll avoid people asking "Can I run this in my CoreRPG based campaign?" , but I think you'll more than likely get lots of comments (and poor reviews) based off people trying it in CoreRPG and it not working. Removing any reference to CoreRPG is the best, and most accurate, approach.

SilentRuin
June 23rd, 2020, 19:46
This looks great. Well done. I'm not sure I like the Search button automatically switching between perception/investigation. As a DM I know I prefer to tell my characters which to roll depending on how they describe their actions. also for the stealth checks, if done against a target, does it roll a contested stealth vs perception?

I actually thought about DM's who do not take "best of" skills in any of those die rolls and figured if they wanted to do pure checks off the main page - nothing stops them. Even my players mix between the search and specific checks as they prefer.

For sure that is call for DM and nothing in this extension prevents that call.

This is more along the lines of my cover page - these are actions available for use. And my players rarely used them. Heck, I rarely used them myself. But with them front and center as part of the Actions you have available - my players use them a lot more. Especially, in curse of strahd where character wipes are a close "thing" in almost every major encounter unless you play it very smart.

But yes, some DM's may want to divide out Search or Hide or any of the other "best of" single or VS die rolls into specifics. You can. The normal main page checks. But for those who want to simply take the "best of" this is much simpler.

And I'm all about what makes my life simpler as a DM :)

Plus, the play styles of my players have actually changed since I introduced this. Help is now used. Along with Dash, disengage (pesky opportunity attacks thwarted), and all the other infrequent "out of sight, out of mind" actions. And while I've not truly used it in my NPC's yet, I will.

When it makes sense, because I now have the easy option.

Imagine the surprise when that key strong critter in a pack of intelligent critters suddenly gets Help advantage... MUAHHAHHAHAHAHHAHHAH.. (cough)... sorry.

Got carried away there :)

SilentRuin
June 23rd, 2020, 19:48
In that case my recommendation stands. Your extension is only compatible with the 5E ruleset. Sure, 5E runs on top of CoreRPG, but your extension only works in 5E. My strong recommendation to you is to remove references to CoreRPG - this will not work in CoreRPG games. At the least, you'll avoid people asking "Can I run this in my CoreRPG based campaign?" , but I think you'll more than likely get lots of comments (and poor reviews) based off people trying it in CoreRPG and it not working. Removing any reference to CoreRPG is the best, and most accurate, approach.

Will simply putting in a comment like I did about Unity work? I'm was a developer by trade before I retired and it really does not sit well with me not listing things my extension is REQUIRED to run with. What do you think?

I added in the extra warning to this and my page description in DMsG.



ONLY TESTED IN UNITY.



ONLY WORKS WITH D&D 5E.



RUNS WITH FANTASY GROUNDS UNITY. USES BOTH 5E AND CORERPG RULESETS.

Trenloe
June 23rd, 2020, 19:57
Will simply putting in a comment like I did about Unity work? I'm was a developer by trade before I retired and it really does not sit well with me not listing things my extension is REQUIRED to run with. What do you think?
Listing CoreRPG means nothing in terms of functionality, and it could create confusion and problems for you. It only works with the 5E ruleset, just list the 5E ruleset, don't mention CoreRPG at all. 5E will not run without CoreRPG, it's not like anyone can make a decision to run 5E without CorerPG - they' can't. Your extension is even tagged to just run in 5E - it won't appear as an option for a CoreRPG campaign. I really don't see why you want to have CoreRPG in there.

You reached out prior to posting on DMs Guild for guidance. This is simply me trying to help you to avoid issues. I've been supporting FG products on these forums for 6 years and my experience is that people see things and don't read details. So if someone sees "CoreRPG" somewhere they'll think it will run with just CoreRPG - even if you mention it doesn't elsewhere. You gain nothing by mentioning CoreRPG, other than a bunch of headaches and confusion.

SilentRuin
June 23rd, 2020, 20:17
Listing CoreRPG means nothing in terms of functionality, and it could create confusion and problems for you. It only works with the 5E ruleset, just list the 5E ruleset, don't mention CoreRPG at all. 5E will not run without CoreRPG, it's not like anyone can make a decision to run 5E without CorerPG - they' can't. Your extension is even tagged to just run in 5E - it won't appear as an option for a CoreRPG campaign. I really don't see why you want to have CoreRPG in there.

You reached out prior to posting on DMs Guild for guidance. This is simply me trying to help you to avoid issues. I've been supporting FG products on these forums for 6 years and my experience is that people see things and don't read details. So if someone sees "CoreRPG" somewhere they'll think it will run with just CoreRPG - even if you mention it doesn't elsewhere. You gain nothing by mentioning CoreRPG, other than a bunch of headaches and confusion.

I have edited it all. Except the title thread of this post - how do I edit the thread title of an existing forum post? Can I get a mod to change it to...

Generic Actions extension for Fantasy Grounds Unity 5E ruleset

Also, the title of DMsG was changed and now shows (just don't look at the link name as that is permanent).

[Figured out my forums stuff - "Go Advanced" answered the questions I've deleted in this post. Now I just need to figure out how to rename the thread.]

SilentRuin
June 23rd, 2020, 20:37
Sure, go ahead and include a video and a cover image. All is good :)

Is there a way to edit the thread title of the post?

SilentRuin
June 23rd, 2020, 20:55
also for the stealth checks, if done against a target, does it roll a contested stealth vs perception?

Sorry missed this first time I read it. No, as the video shows it will simply roll the stealth and ask the DM if it "worked". Its Hide which I figured was tricky to handle with all sorts of targets and I stayed away from anything sight/LOS related - which this would be. Simply displays die roll and message to ask DM if it "worked".

LordEntrails
June 23rd, 2020, 21:45
Is there a way to edit the thread title of the post?
No. Only moderators can and only if no one has subscribed to the thread. Fortunately, no one has and I changed the thread title for you :)

SilentRuin
June 23rd, 2020, 21:58
No. Only moderators can and only if no one has subscribed to the thread. Fortunately, no one has and I changed the thread title for you :)

Thank you much! I did send the moderators a mail - so you beat them to it :)

Trenloe
June 23rd, 2020, 22:40
Moderators can always change the title of a thread, no matter the activity on the thread.

I didn't see the follow up posts, and I changed the title to what was requested in post #10. If this isn't correct please let us know. I didn't see a mail, the only way to send a message to the moderators is to "report" a post.

SilentRuin
June 23rd, 2020, 22:45
Moderators can always change the title of a thread, no matter the activity on the thread.

I didn't see the follow up posts, and I changed the title to what was requested in post #10. If this isn't correct please let us know. I didn't see a mail, the only way to send a message to the moderators is to "report" a post.

All is good. Thanks a lot for your advice also.

ScriedRaven
June 23rd, 2020, 22:50
From testing it appears to work in FGC. Very useful extension

SilentRuin
June 23rd, 2020, 22:56
From testing it appears to work in FGC. Very useful extension

Interesting. While I'd love to broadcast it works in classic - here is the reasoning I'm going to keep to my claim of tested only in Unity. I don't own classic. I will probably not ever own classic. So if I add things in the future, or FGU changes their underlying code forcing me to change something to fix it, I can't EVER guarantee it will continue to work in classic.

But I'm happy to hear it does. You just won't ever hear me SAY it does, for the reasons I just stated.

If you use FGC, the old latin proverb applies.

Caveat emptor!

[Actually as its pay what you want that probably does not really apply to the vast majority of users :) ]

SilentRuin
June 24th, 2020, 20:24
Guess I'll start on the next thing on my todo list for what I want to help run my campaign. This one took about 80 hours, 70 hours of which was learning how to do it and debugging idiot moves on my part with print statements. And two full rewrites when I hit dead ends. Thinking I had it, only to find I had fatal flaws in my understanding of how FG client/host code works.

I'll have to see how long this next one takes, as its also new FG code territory to me. Hopefully less "stupid" on my part will cut down the effort :)

jrowsey1
June 25th, 2020, 06:34
I tested this extension with a barbarian with a rage effect that grants advantage on strength checks. The Grapple and Shove abilities did not grant advantage while the barbarian is raging.

SilentRuin
June 25th, 2020, 10:41
I tested this extension with a barbarian with a rage effect that grants advantage on strength checks. The Grapple and Shove abilities did not grant advantage while the barbarian is raging.

Excellent catch. Please let me know if the fix resolved your issue. ADVCHK:Athletics would have worked :) But was wrong so I fixed it.

DMsG has been updated.

V1.1 Fix - was not using stat text for ADVCHK:stat type of effects, which caused them to be ignored. Fixed.

Should know better than to look at my mail when I wake up in the middle of the night! I'll check on status when I wake up if you've checked it by then.

jrowsey1
June 25th, 2020, 15:46
I was able to test it and the updated extension is now correctly applying advantage on the Shove and Grapple actions while the Barbarian is raging. Thanks for the quick reply, and sorry to wake you in the middle of the night :)

4wire
June 25th, 2020, 16:12
For simplicity, I think Dodge is already a special keyword. No need to spell out the advantages.

Loko
June 25th, 2020, 16:29
Awesome! Purchased.

vaughnlannister
June 25th, 2020, 16:43
Hi great extension bought it :)! Do you have any new ideas an updates that you would like to implement for this extension?

Would be cool if you could add some other buttons for ability checks, like for Arcana or History Check, we use those a lot in my game?

SilentRuin
June 25th, 2020, 18:37
I was able to test it and the updated extension is now correctly applying advantage on the Shove and Grapple actions while the Barbarian is raging. Thanks for the quick reply, and sorry to wake you in the middle of the night :)

Found intelligence was missing in my fix so another update - testable by doing search where investigation stars are better than perception.

V1.2 Fix - missing intelligence stat text for ADVCHK:stat type of effects, which caused it to be ingored. Fixed.

SilentRuin
June 25th, 2020, 18:44
For simplicity, I think Dodge is already a special keyword. No need to spell out the advantages.

Dodge is not really available in the 5e Effects window. You'd have to key it in yourself. My buttons are designed to do that for you. And I prefer the readability of seeing what it actually does. For sure I see the code in one place doing a check for the word "Dodge" and applying bADV = true and another doing the check and applying bDIS = true.

This will not hurt my logic at all. And it still puts it out there for you which only a raw keyin does right now. If you know the secret code. I did not. I suppose it was lucky I picked the same keyword exactly :) Either way - don't see the harm in keeping it readable.

This is from a purely Unity 5E perspective.

SilentRuin
June 25th, 2020, 18:49
Hi great extension bought it :)! Do you have any new ideas an updates that you would like to implement for this extension?

Would be cool if you could add some other buttons for ability checks, like for Arcana or History Check, we use those a lot in my game?

I do but I'm designing extensions for use in my campaign the way I like them first. I have two others on my list todo first - of which one I'm deep in the coding now. I switched gears for these fixes because "needs must" but not planning on doing other updates to this until I'm done with my "needs" :)

My guys use those checks too - but they are not really an either or for me and I have them do the checks straight out of the skills page for those (clicking the die roll indicator by the skill on the character sheet).

I'm also in the early days of my first campaign (4 sessions done - once a week), and as its my first time in FGU I may find other "needs" as we go along.

4wire
July 1st, 2020, 05:14
We played with your extension today and had to disable the attack and cast check. Is there a reason why grappled and restrained prevent attacking and casting? It shouldn't from RAW but we may have been misinterpreting them...

SilentRuin
July 1st, 2020, 06:03
We played with your extension today and had to disable the attack and cast check. Is there a reason why grappled and restrained prevent attacking and casting? It shouldn't from RAW but we may have been misinterpreting them...

I used all those disable features because I have no idea what other extensions they might interfere with. The only things all those features do in Options is let attack not allow firing when out of ammo, and to not let any form of attack in a state the character is paralyzed/stunned/unconscious/Incapacitated/Grappled/Petrified.

For sure grappled is interpreted by my group as the following:

1) You are not able to use any weapon till you break out of the grapple. Physically you can't.
2) You are not able to cast any spell because all spells require concentration and usually hand movements and components to boot. You will not have concentration while someone is physically restraining you from using a weapon or your mind (concentration) in active grapple (wrestled to get into that position and maintain it). It's the nature of grappled that we assume they know the danger of letting you do anything dangerous to them.

If you play different then you can just turn off the options. I'm pretty strict on that stuff - and do not assume the person grappling you is not "disturbing your concentration".

But the choice is yours. Hence, you can turn it off if you don't want that dynamic. You can also turn it off for things the DM feels are exceptions and turn it back on immediately after. My campaigns absolutely do want it.

[Edited to remove comments about restrained as that is not one of my limits]

SilentRuin
July 1st, 2020, 06:08
- removed as I remembered it does not count restrained as one of the limits for those attacks/casts -

4wire
July 6th, 2020, 14:26
- removed as I remembered it does not count restrained as one of the limits for those attacks/casts -

Hum. Strange. Maybe both messages were coming from Grappled then.

One modest proposal: Instead of multiple switches for each option, maybe it would be simpler to have just a single switch for RAW 5e versus your house rule of the grappled condition? That way we could use your extension fully.

SilentRuin
July 6th, 2020, 16:18
Hum. Strange. Maybe both messages were coming from Grappled then.

One modest proposal: Instead of multiple switches for each option, maybe it would be simpler to have just a single switch for RAW 5e versus your house rule of the grappled condition? That way we could use your extension fully.

Ok we are evidently both talking about different things. Let me try and clarify...

Grappled is not Restrained. These are not "my" house rules.

Restrained is not something I limit you over in my extension. If you have a Restrained effect - my extension will not care. The game will take care of this. If you have Restrained in your effects - its really this...

Restrained; GRANTADVATK, DISATK, DISSAV: dexterity

Restrained also puts your movement to 0. It is to much of a grey area to manage for my code so I don't use it as a limit at all - that is up to the DM.

Restrained can be applied by


Spells. A number of spells impose the restrained condition.

Net. The net is a special ranged weapon that can be a used to restrain a creature.

Magic Items. There are some magic items that allow you to restrain a creature.


I believe even a feat (with a grappler?) can allow grapple to turn into Restrained.

But Restrained IS NOT Grappled. I only support limits if you are Grappled.

A successful Grapple means you just physically gained control of a PC/NPC with your strength. You can move them around at half speed, and they DO NOT attack anything until they BREAK out of the grapple. That includes spells, as you are under physical control of the "grappler" and not going to be able to "do things" or "concentrate" until you break out of their physical control.

What I've described above? I do not believe are house rules - but the D&D 5E rules.

As far as if you feel a situation is an exception? Turn off the option for whatever is the exception. I can imagine NO exception where a physical attack could come into play when grappled. But if you have your own house rules that don't require concentration for spells/psionics - then that is YOUR house rules. Not some D&D 5e set of rules.

Gist is - I give you that option to work around by turning off specific attack limits if your house rules allow it - which can then be turned right back on.

I agree - if they are my house rules or my interpretation of the rules - I'd give an exception to just that Grappled "effect". But I do not believe that is the case here. Grappled effect will prevent you from doing a number of things. Restrained (which I do not even limit - game does that) will not.

Apply the right effect - for the right situation - never think of them as the SAME. They are not.

[Also, you are on V1.3 correct? Check DMsG for the latest version there have been several edits since I first put it out and its possible some early one had restrained - though I really don't remember - only why it is NOT a thing I can limit.]

4wire
July 6th, 2020, 19:47
I was talking about grappled indeed, not restrained.

And originally was really looking for your interpretation of grappled as well. I understand grappled and restrained are different.

The RAW are :
"Grappled
A grappled creature's speed becomes 0, and it can't benefit from any bonus to its speed.
The condition ends if the grappler is incapacitated (see the condition).
The condition also ends if an effect removes the grappled creature from the reach of the grappler or grappling effect, such as when a creature is hurled away by the thunderwave spell."

Sage Advice:
"If a creature is grappled, can it still attack and use its
special abilities? The grappled condition limits movement,
not attacks, spellcasting, and the like. That said, many grappling abilities, such as a roper’s tendril attack, also deliver
effects like the restrained condition."

Again, not trying to win an argument, just trying to understand your interpretation.

Cheers!

SilentRuin
July 6th, 2020, 20:03
I was talking about grappled indeed, not restrained.

And originally was really looking for your interpretation of grappled as well. I understand grappled and restrained are different.

The RAW are :
"Grappled
A grappled creature's speed becomes 0, and it can't benefit from any bonus to its speed.
The condition ends if the grappler is incapacitated (see the condition).
The condition also ends if an effect removes the grappled creature from the reach of the grappler or grappling effect, such as when a creature is hurled away by the thunderwave spell."

Sage Advice:
"If a creature is grappled, can it still attack and use its
special abilities? The grappled condition limits movement,
not attacks, spellcasting, and the like. That said, many grappling abilities, such as a roper’s tendril attack, also deliver
effects like the restrained condition."

Again, not trying to win an argument, just trying to understand your interpretation.

Cheers!

Understood. I'm just trying to understand your interpretation of RAW (the rules as written).

Sage Advice is not RAW.

In no place that I've found is that Sage Advice in the rules. If I read the rules as written, Grappled is a strength overpowering of the player as I described. You can move them half speed at your control (0 is not interpreting the wording correctly). And as Concentration is written - there is no way a Grappled effect (actively being overpowered) is not going to break concentration. As Attacks are written - there is no way being physically controlled (a successful grapple) will allow you attacks.

Sage Advice is dead wrong IMHO in relation to RAW. Just the way I'm seeing it.

Can you justify being physically overpowered by someone - in their physical control - and them allowing you to use a weapon or concentrate on a spell (or move to do one) or psionics?

I cannot. Not in my wildest imaginations. Nor do I see this in RAW PHB description when taken in context with use of a weapon and concentration.

Hence, any other interpretation is a "house rules" thing from my interpretation of RAW.

If you can convince me that - as I've described in this post and my last - how a grappled PC/NPC can maintain concentration or wield a weapon - I will add an option to make grappled subject to that interpretation of the rules. I imagine their arms immobilize and they can be frog marched at half speed wherever the grappler wants.

Otherwise... :)

It's almost like Restrained is what you consider grappled. Not the same.

[And I understand even RAW is subject to interpretation so its entirely possible I'm in the minority - but I'm open to be convinced you can control their movement but not their ability to do anything else.]

[As we argue this I even begin to wonder if I should code successful grapple to break any (C) effects on the target rather than leaving it up to the DM to do that.]

4wire
July 6th, 2020, 20:49
Understood. I'm just trying to understand your interpretation of RAW (the rules as written).

Sage Advice is not RAW.

... snip ...

Hence, any other interpretation is a "house rules" thing from my interpretation of RAW.

If you can convince me that - as I've described in this post and my last - how a grappled PC/NPC can maintain concentration or wield a weapon - I will add an option to make grappled subject to that interpretation of the rules. I imagine their arms immobilize and they can be frog marched at half speed wherever the grappler wants.



Well... We use Sage Advice (which is official) as argument breakers, at least in my groups. If you prefer using your interpretation, I'm fully comfortable with that! :)

Not going to try and convince you, your opinion is valid but sometimes rules take shortcuts to simplify and balance the different classes. I prefer to use the official text as much as I can. Easier to play with different groups.

I've just commented out the grappled check in your code and it's perfect for us!

Thanks for the fun exchange dude!

LordEntrails
July 6th, 2020, 20:57
I'll add my view... :)

RAW says nothing about losing concentration, or being unable to attack. Any interpretation of a grapple that adds those caveats is a houserule. The RAW description of grapple could have easily said that it broke concentration, or that it prevented attacks or other actions. But it doesn't, so RAW a grapple does not.

Now, how do I envision this? Instead of some 'grapple' like a wrestler where the grappled creatures is wrapped up completely and can not move any appendages, a grapple also includes the 'simple' case where a creature wraps a tentacle around the waist of a person and prevents them from moving. Since that is all the grappled condition does, reduce movement speed to 0, that's all the grappled condition is trying to represent.

Now, I can certainly see other abilities or conditions that do more than a RAW grapple, but that's not imo relevant to a discussion of the grappled condition in 5E.

SilentRuin
July 6th, 2020, 21:27
I'll add my view... :)

RAW says nothing about losing concentration, or being unable to attack. Any interpretation of a grapple that adds those caveats is a houserule. The RAW description of grapple could have easily said that it broke concentration, or that it prevented attacks or other actions. But it doesn't, so RAW a grapple does not.

Now, how do I envision this? Instead of some 'grapple' like a wrestler where the grappled creatures is wrapped up completely and can not move any appendages, a grapple also includes the 'simple' case where a creature wraps a tentacle around the waist of a person and prevents them from moving. Since that is all the grappled condition does, reduce movement speed to 0, that's all the grappled condition is trying to represent.

Now, I can certainly see other abilities or conditions that do more than a RAW grapple, but that's not imo relevant to a discussion of the grappled condition in 5E.

So do you envision no disadvantage to being grappeled? It does not "say" anything about that either.

And grappled allows you to MOVE a grappled opponent - so that kind of breaks movement reduced to 0.

As in most things in the rules, it must be read in context with other rules. The 0 movement is under your OWN movement power. Restrained would be more of a an absolute 0 movement.

Either way - I can add the option to make grappled have no effects to combat at all if people are actually doing that.

It's crazy in my opinion to treat being grappled as "free to attack" with no problems but they can be dragged around wherever you want them to be dragged, and their concentration is intact. Just because the words are not explicitly stated - but things that break concentration and prevent attacks are elsewhere in other context.

I apply common sense interpretations in most rules I encounter and so they are in the extensions (all those other effects you can be in and limit your attacks etc.).

SilentRuin
July 6th, 2020, 21:30
Well... We use Sage Advice (which is official) as argument breakers, at least in my groups. If you prefer using your interpretation, I'm fully comfortable with that! :)

Not going to try and convince you, your opinion is valid but sometimes rules take shortcuts to simplify and balance the different classes. I prefer to use the official text as much as I can. Easier to play with different groups.

I've just commented out the grappled check in your code and it's perfect for us!

Thanks for the fun exchange dude!

Why I commented the code so heavily - so that could be done :)

As it stands someone else has taken your side so I'll probably go ahead and add an option to discount grappled as a limiting effect on attacks.

Still nuts in my opinion so have no limits or disadvantage to being grappled just because they didn't mention it - but context shows concentration and attacks would be seriously hindered.

Still - even if I never use the switch others obviously will. Go figure :)

SilentRuin
July 6th, 2020, 21:57
Alright - option is out there in V1.4 - Page 1 of this has been updated - DMsG has been updated.

Nice if someone tested it and let me know it actually worked.

LordEntrails
July 6th, 2020, 22:09
Thanks :)

I don't disagree with how you envision grapple for your table. And if that makes sense and fun for your table,I'm all for it.

My take, for my table, is I try not to read intentions or implications into the rules. We don't worry about it (and many of us play with a 3.5E DM who does, and we find it tedious and inconsistent because he changes his house rules all the time). So for me, since RAW doesn't say it does anything else, then for us grapple is something that only reduces the speed to 0.

Their are some NPCs (roper & choker maybe?) that do more than just grapple a creature with an attack. And in those cases (if I remember correctly) they specify that they do more than just apply the grappled condition. And we're good with that :)

SilentRuin
July 6th, 2020, 22:59
Thanks :)

I don't disagree with how you envision grapple for your table. And if that makes sense and fun for your table,I'm all for it.

My take, for my table, is I try not to read intentions or implications into the rules. We don't worry about it (and many of us play with a 3.5E DM who does, and we find it tedious and inconsistent because he changes his house rules all the time). So for me, since RAW doesn't say it does anything else, then for us grapple is something that only reduces the speed to 0.

Their are some NPCs (roper & choker maybe?) that do more than just grapple a creature with an attack. And in those cases (if I remember correctly) they specify that they do more than just apply the grappled condition. And we're good with that :)

Oh I'm all for not making things tedious and calculation heavy. Why I write these extensions when I get annoyed at figuring things out and why I like FGU :)

I love it when I have to figure out why all the dice were rolling only to find after doing a forensics of chat - that yes, FGU knew to break the concentration, add advantage, etc. and was correct.

I'm essentially a lazy DM and like all these things magically done for me. And at some point I'll probably not even forensics the chat when I see mysterious extra dice flying out of some roll, I'll just say...

It knows what its doing :)

Here's to reaching that point someday!

4wire
July 8th, 2020, 17:57
Have we been violently cordial to one another? :)

Thanks for the update my man.

SilentRuin
July 8th, 2020, 18:45
Have we been violently cordial to one another? :)

Thanks for the update my man.

Indeed ;)

Let me know if it worked.

4wire
July 8th, 2020, 19:34
Indeed ;)

Let me know if it worked.

Works indeed!

Now for the extra comment/suggestions:
- I try to avoid double negatives in my workday code, something like "Apply Grappled Effect" ON/OFF may have been better UX but that is subjective.
- The IF statement where you check for the Conditions (e.g. line 170 to 178 of manager_generic_actions.lua) would make a nice little function and avoid repeating that chunk of code for all "verify" logic.

Feel free to ignore me, I'm a Sr. Software Manager, can't help myself.

SilentRuin
July 8th, 2020, 20:59
Works indeed!

Now for the extra comment/suggestions:
- I try to avoid double negatives in my workday code, something like "Apply Grappled Effect" ON/OFF may have been better UX but that is subjective.
- The IF statement where you check for the Conditions (e.g. line 170 to 178 of manager_generic_actions.lua) would make a nice little function and avoid repeating that chunk of code for all "verify" logic.

Feel free to ignore me, I'm a Sr. Software Manager, can't help myself.

:)

The option wording is subjective. But, when considered from my perspective, the one who has that OFF always and wants it considered an override to IGNORE the good and wholesome interpretation of those rules...

Well, you can see that it is correctly worded ;)

If you note one of the comments near the top of all the .lua code I've written, it might answer that observation on my lack of breaking out common "functionality" and even templates!

A more detailed answer is quite simple, I had to - and continue to have to - change things and experiment with things to the point I'm willing to duplicate things to make it easier to read at a glance what is going on in that area of the code. Not as clean, for sure, but ever so much more convenient when any of these may change from "identical operations" to unique.

Feel free to ignore me, I'm recently retired from 35 years of software development, just learning LUA for the first time :)

4wire
July 8th, 2020, 21:08
Feel free to ignore me, I'm recently retired from 35 years of software development, just learning LUA for the first time :)

I knew it! :)

SilentRuin
July 28th, 2020, 15:19
I knew it! :)

After running a session with my group yesterday - I've come around to your way of thinking so changed the default to ON so that grappled will allow attacks by default. To many NPC's can specifically attack while grappling someone - so if I have a need to prevent any attacks while grappled I can just set the options to off for that situation.

You won! ;)

mattekure
July 28th, 2020, 17:40
I enjoy the extension, but I am not clear on what all of the Options do. Specifically all fo the "Verify X" options. They all default to on. Can you make a post explaining what they are doing?

SilentRuin
July 28th, 2020, 18:07
I enjoy the extension, but I am not clear on what all of the Options do. Specifically all fo the "Verify X" options. They all default to on. Can you make a post explaining what they are doing?

Sure - that bottom of DMsG for that extension you'll see


There are also Generic Actions (GM) options for attacks and spell casting commands that prevent them from working if out of ammo (weapons only) or in a state (effect) that would not allow that action. If you set them to off and want the overrides to no longer be executed in code (done in onInit), then you will need to restart FGU (in case overriding these results handlers interfered with some other extension and you wanted them completely disabled not just off from the users perspective).

To translate,

Normally, you can attack anything. This annoyed me as I would always forget to track what state they were in and whether they actually could attack anything. So I added to every type of attack a check on their current effects to see if they could attack. Including a check on ammo.

So, If they are

Paralyzed
Stunned
Unconscious
Incapacitated
Petrified
(optionally grappled)

A message will pop up in chat telling them they can't attack because they have one of those effects.

I was worried that some people might not like this or it would interfere with other extensions and they would want to the ability to turn them off.

So for each type of attack (in the code, not really visible to you as the user) I gave an option to turn off the verification against those effects.

So basically in the code, you can turn off the overrides on the ruleset for each of those types of things (Attack, Cast, Cast Effect, Cast Save, Damage, Heal, Power Save). Each of those are actual pieces of code I'm overriding to make these checks. Probably should have just made one option that said "do verification on effects" or not. But at the time I was more worried about other extensions (I've now learned caring about other extensions is not really something extension writers do to much).

As far as the Ignore Grappled Effect - I had actually included grappled as one of those effects (with a big explanation of my reasoning earlier in this thread) where I eventually conceded to make an option so you did not have to have it.

Just today I changed it to default NOT to use grappled as one of those effect verification checks as I realized to many NPCs can have you grappled and still attack you. Hence, by default its no longer in the checks. Its worded really poorly because I wanted that effect as part of the checks as default - and I'm to lazy to make it any better now (working on other extension that's taken 4 weeks of hell but am closing in on it).

vaughnlannister
August 21st, 2020, 20:52
Hi Silentruin, not sure if you noticed, however unfortunatley the latest FGU update afflicts your extension, I get an error message "Unable to find extension".
While the extension is still in my extension folder.

Thank you for taking a look!

SilentRuin
August 21st, 2020, 20:58
Hi Silentruin, not sure if you noticed, however unfortunatley the latest FGU update afflicts your extension, I get an error message "Unable to find extension".
While the extension is still in my extension folder.

Thank you for taking a look!

Yeah THANK you for confirming I'm not the only one seeing this. It's literally for every extension I get these errors. At least the one's I run which include Death Indicator. Please note in this thread (https://www.fantasygrounds.com/forums/showthread.php?61091-Latest-build-just-broke-all-my-extensions) that you have also seen this with this update. I have no idea what is going on.

mattekure
August 21st, 2020, 21:08
I tried it out and dug into your extension. The error is because your XML files have comments between the <xml declaration at the top and the <root tag. If you take out any comments between those, the extension loads just fine. This is due to the FGUnity xml parser being much more strict than the one from FG Classic. Classic allowed a number of things which are really bad xml, and just ignored it. Unity doesnt allow them.

If you want to include comments, just do it right after the opening <root tag. so they would look like.



<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<!--
comments
-->
<whatever code>

SilentRuin
August 21st, 2020, 21:13
I tried it out and dug into your extension. The error is because your XML files have comments between the <xml declaration at the top and the <root tag. If you take out any comments between those, the extension loads just fine. This is due to the FGUnity xml parser being much more strict than the one from FG Classic. Classic allowed a number of things which are really bad xml, and just ignored it. Unity doesnt allow them.

If you want to include comments, just do it right after the opening <root tag. so they would look like.



<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<!--
comments
-->
<whatever code>


So the most recent update just killed it now? Ok - I can fix all that I guess. Let me give it a try. So 4 extensions I have to fix. Wondrous. Thanks much for the news. Please post that in this (https://www.fantasygrounds.com/forums/showthread.php?61091-Latest-build-just-broke-all-my-extensions) other thread.

SilentRuin
August 21st, 2020, 21:18
I tried it out and dug into your extension. The error is because your XML files have comments between the <xml declaration at the top and the <root tag. If you take out any comments between those, the extension loads just fine. This is due to the FGUnity xml parser being much more strict than the one from FG Classic. Classic allowed a number of things which are really bad xml, and just ignored it. Unity doesnt allow them.

If you want to include comments, just do it right after the opening <root tag. so they would look like.



<?xml version="1.0" encoding="iso-8859-1"?>
<root>
<!--
comments
-->
<whatever code>


Let me make absolutely sure on this - your talking about where I started with Death Indicator and they had comments in all there XML's with something like this...



<!--
File: record_char.xml
Author: Cleveland E. Raymond (Valerian Stormbreaker)
Copyright © 2019 Slotware Gaming Technologies LLC. All Rights Reserved.
-->


And I need to move that down into the root correct? Because I did copy that format assuming it was the way to go in ALL my xml files. Just want to make sure I'm understanding you correctly.

mattekure
August 21st, 2020, 21:23
Yes, this


<?xml version="1.0" encoding="iso-8859-1"?>

<!--
File: extension.xml
Author: Cleveland E. Raymond (Valerian Stormbreaker)
Copyright © 2019 Slotware Gaming Technologies LLC. All Rights Reserved.

Modified 2020 SilentRuin
-->


<root version="3.0">



Should look like this:


<?xml version="1.0" encoding="iso-8859-1"?>
<root version="3.0">
<!--
File: extension.xml
Author: Cleveland E. Raymond (Valerian Stormbreaker)
Copyright © 2019 Slotware Gaming Technologies LLC. All Rights Reserved.

Modified 2020 SilentRuin
-->

SilentRuin
August 21st, 2020, 21:33
Yes, this


<?xml version="1.0" encoding="iso-8859-1"?>

<!--
File: extension.xml
Author: Cleveland E. Raymond (Valerian Stormbreaker)
Copyright © 2019 Slotware Gaming Technologies LLC. All Rights Reserved.

Modified 2020 SilentRuin
-->


<root version="3.0">



Should look like this:


<?xml version="1.0" encoding="iso-8859-1"?>
<root version="3.0">
<!--
File: extension.xml
Author: Cleveland E. Raymond (Valerian Stormbreaker)
Copyright © 2019 Slotware Gaming Technologies LLC. All Rights Reserved.

Modified 2020 SilentRuin
-->



Well crap - just moved all those in death indicator of which there are a bunch - and the same error popped up. Let me double check I did not miss one. You sure you had a failing version and fixed it right?

mattekure
August 21st, 2020, 21:37
Yes. I downloaded the most recent death indicator. stripped out the comments. and it loads fine in unity.

https://imgur.com/4jJhQg9.jpg

I've attached my version here.

SilentRuin
August 21st, 2020, 21:42
Yes. I downloaded the most recent death indicator. stripped out the comments. and it loads fine in unity.

https://imgur.com/4jJhQg9.jpg

I've attached my version here.

Stripped OUT the comments. That's different than moving them under the root. I actually have another extension with comments between xml and root that is not giving this error. And when I moved them under root (like you did not) I still get the error.

Something is still weird here. I'm beginning to think there is a special char that's been copied around from the original comments or something.

mattekure
August 21st, 2020, 21:46
thats certainly possible. I know I ran into the issue of comments between <xml and <root before, which is where my suggestion came from. And stripping those comments has worked for both extensions I tested. perhaps the copyright character or something else is causing FG to treat the xml file as invalid.

SilentRuin
August 21st, 2020, 21:50
thats certainly possible. I know I ran into the issue of comments between <xml and <root before, which is where my suggestion came from. And stripping those comments has worked for both extensions I tested. perhaps the copyright character or something else is causing FG to treat the xml file as invalid.

Crap I'm going to have to literally load your version and try it because deleting them I still get that (notepad++ editor?)

SilentRuin
August 21st, 2020, 21:52
thats certainly possible. I know I ran into the issue of comments between <xml and <root before, which is where my suggestion came from. And stripping those comments has worked for both extensions I tested. perhaps the copyright character or something else is causing FG to treat the xml file as invalid.

Double crap. Your's works. Time for a bit of winmerge and see what the heck is really different here.

SilentRuin
August 21st, 2020, 21:56
thats certainly possible. I know I ran into the issue of comments between <xml and <root before, which is where my suggestion came from. And stripping those comments has worked for both extensions I tested. perhaps the copyright character or something else is causing FG to treat the xml file as invalid.

Something is different in every single xml file. Here is one of them.

mattekure
August 21st, 2020, 22:03
yeah, thats weird

SilentRuin
August 21st, 2020, 22:14
yeah, thats weird

Weirder I can't even get anything I edit to work. Do you use notepad++? If you do can you check what you have on encoding or language? I have UTF-8 and Normal.

mattekure
August 21st, 2020, 22:17
Yes, I use notepad++. For all the files I normally work with, I use UTF-8. When I open your files though, they are listed as Western European->ISO-8859-1

SilentRuin
August 21st, 2020, 22:17
Weirder I can't even get anything I edit to work. Do you use notepad++? If you do can you check what you have on encoding or language? I have UTF-8 and Normal.

Actually when I'm up in one of these files its iso-8859-1 also.

SilentRuin
August 21st, 2020, 22:18
Yes, I use notepad++. For all the files I normally work with, I use UTF-8. When I open your files though, they are listed as Western European->ISO-8859-1

It's because the XML states that is what they are.

Trenloe
August 21st, 2020, 22:29
So, there's two places that encoding is used - in the XML and in the file encoding data.

In XML it is just telling XML what encoding the file *should* be in - and as long as the XML engine reading the file reads that, then the file should also be in that encoding. To set the file encoding, in Notepad++ use the "Encoding" menu option. I don't know if this is the issue though, but it's good practice to make sure you're saving the files using the expected encoding.

SilentRuin
August 21st, 2020, 22:37
Yes, I use notepad++. For all the files I normally work with, I use UTF-8. When I open your files though, they are listed as Western European->ISO-8859-1

This is insane. It has nothing to do with the comments at all. I'm willing to bet if you zip up the original code yourself and deliver it - it will work fine.

I use this script to deliver all my files.



powershell "Compress-Archive '.\DeathIndicatorEx\*' '.\DeathIndicatorEx.zip'"
ren DeathIndicatorEx.zip DeathIndicatorEx.ext
move /y DeathIndicatorEx.ext "-----my dir ----\AppData\Roaming\SmiteWorks\Fantasy Grounds\extensions\"
Pause


It has always worked. I deliver these files in fact.

Well I could NEVER get your files to work - not even the exact ones. I finally did the right mouse compress file by hand - renamed it to DeathIndicatorEx.ext - then manually copied it over to the extensions directory - and it worked. Every time. Every time I used my script - it did not.

Nothing has changed on my end at all. I left the comments in and it worked - IF I compressed the directory manually.

WHY is the current delivery choking on power shell generated files? What is different? What changed in how they read a zip that now makes this bad?

mattekure
August 21st, 2020, 23:08
that is interesting. I use a batch file and 7zip to zip up mine and have never encountered an issue.

SilentRuin
August 21st, 2020, 23:14
that is interesting. I use a batch file and 7zip to zip up mine and have never encountered an issue.

Yeah I never did till now with powershell. Basically even the old ones I did weeks ago stopped working with this release - fine if I go back to PREV release. Gist is I did them all manually leaving the comments as they were - with right mouse and compress files in windows 10 and it worked. Just got done redelivering all my extensions here and in DMsG. What a pain. Glad I figured it out - thanks to you for providing the clues.

mattekure
August 21st, 2020, 23:15
yeah, glad you go it fixed. sorry for the misleading path down the comments issue. I know I experienced that previously, I guess they have made changes to the xml parsing behavior since then.

SilentRuin
August 21st, 2020, 23:18
yeah, glad you go it fixed. sorry for the misleading path down the comments issue. I know I experienced that previously, I guess they have made changes to the xml parsing behavior since then.

I would not have solved it without that misleading path so don't apologize. The ONLY way this was solved was by taking your files and finding they did not work but your zip of them did.

SilentRuin
August 21st, 2020, 23:22
yeah, glad you go it fixed. sorry for the misleading path down the comments issue. I know I experienced that previously, I guess they have made changes to the xml parsing behavior since then.

Also I just downloaded 7zip - when next I work on an extension I will be making a file to auto execute using that instead - once I test it of course :) Thanks for that also.

mattekure
August 21st, 2020, 23:24
I use a simple batch file like this to auto build for both classic and unity.



cd "C:\Users\John\Projects\Shops\extension\"
7z a "Shops.zip" *
COPY "C:\Users\John\Projects\Shops\extension\Shops.zip" "C:\Users\John\Fantasy Grounds\extensions\Shops.ext"
MOVE "C:\Users\John\Projects\Shops\extension\Shops.zip" "C:\Users\John\Fantasy Grounds Unity\extensions\Shops.ext"

SilentRuin
August 21st, 2020, 23:39
I use a simple batch file like this to auto build for both classic and unity.



cd "C:\Users\John\Projects\Shops\extension\"
7z a "Shops.zip" *
COPY "C:\Users\John\Projects\Shops\extension\Shops.zip" "C:\Users\John\Fantasy Grounds\extensions\Shops.ext"
MOVE "C:\Users\John\Projects\Shops\extension\Shops.zip" "C:\Users\John\Fantasy Grounds Unity\extensions\Shops.ext"



Awesome - already replaced the powershell line with the 7z stuff in my script and all is working fine.

mattekure
August 29th, 2020, 02:54
I'd like to suggest adding another button, "Stand Up" which removes the prone condition.

Also, would it be possible to put the buttons list higher up, under the Weapons list. some characters have a ton of powers that I have to scroll through and having them higher up would be nice.

SilentRuin
August 29th, 2020, 03:22
I'd like to suggest adding another button, "Stand Up" which removes the prone condition.

Also, would it be possible to put the buttons list higher up, under the Weapons list. some characters have a ton of powers that I have to scroll through and having them higher up would be nice.

It’s strictly supporting the RAW 5E in the PHB pages I listed. Trying not to keep adding everything that can be added as it would be never ending. Not sure why FGU leaves it to DM to remove prone as I can see a use for something like that - but also players being able to remove effects would need to be limited to only on turn and such.

Gist is “stand up” is not one of the official actions - though I suppose it should be.

For the move up these things are additional actions per PHB - hence they are added at bottom of pc and NPC sheets. NPC sheet is formatted differently than PC sheet but same sub window is appended at bottom of both.

SmackDaddy
August 30th, 2020, 03:39
Very interested in this extension.....sorry if this has already been answered, but I know there's always a possibility that extensions can class, but for a FGU licensed user, will this work with the Rob2e DM and Player tools running along side of it? Thank you in advance for your time.

SilentRuin
August 30th, 2020, 05:27
Very interested in this extension.....sorry if this has already been answered, but I know there's always a possibility that extensions can class, but for a FGU licensed user, will this work with the Rob2e DM and Player tools running along side of it? Thank you in advance for your time.

I have no earthly idea if it does or not. The only thing I can answer for sure is it works with the extensions I use personally in my signature. For sure others have commented on different aspects in this thread and the DMsG replies for this - but there is no way I will ever "certify" it works in things I don't use myself.

Maybe someone has tried it and can answer your question here, but I cannot. Nor will I ever claim it will work in those other things even if others claim it does. Not trying to scare you off but its just the facts of extensions that unless you actively use them with the ones a developer uses you really have no idea if they work or not.

Or will keep working if they do - as FGU is still Beta and changing.

SmackDaddy
August 30th, 2020, 20:26
I have no earthly idea if it does or not. The only thing I can answer for sure is it works with the extensions I use personally in my signature. For sure others have commented on different aspects in this thread and the DMsG replies for this - but there is no way I will ever "certify" it works in things I don't use myself.

Maybe someone has tried it and can answer your question here, but I cannot. Nor will I ever claim it will work in those other things even if others claim it does. Not trying to scare you off but its just the facts of extensions that unless you actively use them with the ones a developer uses you really have no idea if they work or not.

Or will keep working if they do - as FGU is still Beta and changing.

Oh, no worries @SilentRuin - I completely get that -- so no apologies or caveats needed but I appreciate the attempt. Just was hoping SOMEONE here could report whether or not they use Rob2e/Diablobob's extensions along with this one successfully in Unity, before I pulled the trigger and purchased it for myself. I find it would be an awesome addition for my players to use for simplicities' sake. Anyone else able to confirm/deny? Thank you in advance.

jrowsey1
August 31st, 2020, 22:03
@SmackDaddy I am running this extension in Unity along with most of Robs/Diablobob/Kent's extensions, and have not encountered any issues so far. YMMV

SmackDaddy
September 6th, 2020, 21:39
Thank you for this extension. One of my characters noticed a typo in the "Dodge" button text (when you hover over it) - it says it imposes "Disadvantage" to Dexterity Saving throws....but shouldn't it impose Advantage?

SilentRuin
September 6th, 2020, 23:49
Thank you for this extension. One of my characters noticed a typo in the "Dodge" button text (when you hover over it) - it says it imposes "Disadvantage" to Dexterity Saving throws....but shouldn't it impose Advantage?

Typo in the tooltip - V 1.7 has it fixed - thanks :)

SmackDaddy
September 9th, 2020, 21:20
Typo in the tooltip - V 1.7 has it fixed - thanks :)

Very welcome! :) Thank you for the extension! ;)

jrowsey1
September 17th, 2020, 04:28
Suggestion/Request:
I see that there is already a generic action for "Ready". Anyway to add/modify a button for "Ready Action" and "Ready Spell"? The reason for the distinction being that when you Ready a Spell you have to maintain concentration on that spell until the Trigger occurs, so the Ready Spell button would add "Ready Spell (C)" effect to the PC on the Combat Tracker so that if the PC takes damage before the Trigger happens, a concentration check will be made automatically.

SilentRuin
September 17th, 2020, 05:08
Suggestion/Request:
I see that there is already a generic action for "Ready". Anyway to add/modify a button for "Ready Action" and "Ready Spell"? The reason for the distinction being that when you Ready a Spell you have to maintain concentration on that spell until the Trigger occurs, so the Ready Spell button would add "Ready Spell (C)" effect to the PC on the Combat Tracker so that if the PC takes damage before the Trigger happens, a concentration check will be made automatically.

The concentration is supposed to be for the actual spell which would be to difficult to really do without knowing the spell. For sure I have an extension that will actually remove concentration spells currently in effect for that player which depends on (C) effects actually being correctly defined.

Hence, not something I’m willing to add to this extension - sorry. But nothings says you can’t modify it for yourself.

mattekure
September 17th, 2020, 13:19
The concentration isnt the concentration of the spell, its concentrating on the act of holding the spell. Once the spell is cast, it may or may not require continuing concentration.

From the PHB:

When you ready a spell, you cast it as normal but hold its energy, which you release with your reaction when the trigger occurs. To be readied, a spell must have a casting time of 1 action, and holding onto the spell's magic requires concentration. If your concentration is broken, the spell dissipates without taking effect. For example, if you are concentrating on the web spell and ready magic missile, your web spell ends, and if you take damage before you release magic missile with your reaction, your concentration might be broken.

SilentRuin
September 17th, 2020, 15:14
The concentration isnt the concentration of the spell, its concentrating on the act of holding the spell. Once the spell is cast, it may or may not require continuing concentration.

From the PHB:

When you ready a spell, you cast it as normal but hold its energy, which you release with your reaction when the trigger occurs. To be readied, a spell must have a casting time of 1 action, and holding onto the spell's magic requires concentration. If your concentration is broken, the spell dissipates without taking effect. For example, if you are concentrating on the web spell and ready magic missile, your web spell ends, and if you take damage before you release magic missile with your reaction, your concentration might be broken.

Exactly.if you read the whole thing you would have seen the example showing you that The ready is specific. Ready action is specific - not generic - players have to tell me action specifically they are readying in detail - which is why the ready action button is just a signal of intent - not specifically what they are readying. Spell concentration is even more specific with actual consequences. You don’t get to say I’m readying a specific spell and then change it something else when you trigger it. This action supported here does not attempt to cover all the details of that.

Your example is spot on for what I was talking about.

mattekure
September 17th, 2020, 15:52
I think we agree on the mechanics, but not necessarily how it should be implemented. I think having a "Readied Spell (C)" action/effect button would be extremely helpful. With a spellcaster only able to concentrate on a single spell at a time, Its less important for me as the DM to see which readied spell they are concentrating on, that would be declared when they state their action. But having it auto track that a readied spell was disrupted would be very helpful as its easy to forget if not tracked. Even if you choose not to add a Readied Spell (C) action button, I'll still have my players create a power with that and use it. It seems to offer a significant benefit over the default lack of tracking readied concentration.

If there is a way to remove existing concentration effects when a new one is added, that would be cool too.

SilentRuin
September 17th, 2020, 16:37
I think we agree on the mechanics, but not necessarily how it should be implemented. I think having a "Readied Spell (C)" action/effect button would be extremely helpful. With a spellcaster only able to concentrate on a single spell at a time, Its less important for me as the DM to see which readied spell they are concentrating on, that would be declared when they state their action. But having it auto track that a readied spell was disrupted would be very helpful as its easy to forget if not tracked. Even if you choose not to add a Readied Spell (C) action button, I'll still have my players create a power with that and use it. It seems to offer a significant benefit over the default lack of tracking readied concentration.

If there is a way to remove existing concentration effects when a new one is added, that would be cool too.

How it would have to be implemented would be how I implemented all my spell work in Polymorphism. Any concentration spell would have to have to make sure it had the source node that generated it, any application of concentration would have to kill all others from that source node, and that is no small thing. I do that in my other extension because I have full control of the spells involved and can fully implement this for "my stuff only". To do it for every spell there is that does concentration would be an extension all by itself. For example, this is one tiny part of the concentration logic where I stop other concentration effects in polymorphism...



local aSelfEffects = {};
local aSourceConcentrationEffects = ActionSave.getConcentrationEffects(rSourceActor);
for _,v in ipairs(aSourceConcentrationEffects) do
if v.nodeCT == rSourceActorCT then
table.insert(aSelfEffects, { nodeCT = v.nodeCT, nodeEffect = v.nodeEffect });
else
EffectManager.expireEffect(v.nodeCT, v.nodeEffect, 0);
end
end
for _,v in ipairs(aSelfEffects) do
EffectManager.expireEffect(v.nodeCT, v.nodeEffect, 0);
end


To fully implement this correctly as you would have me do would require this type of logic across the code to insure that any concentration effect killed any others by the source node, that it placed the effect with the appropriate source node, that it supported dropping a spell from "spells" onto the ready button and recorded the name with "Ready" in front of the name with (C) and the relevant source node. It would require it to be killed any time any other concentration effect by that source node was attempted (not put into effect - attempted) which FGU does NOT do currently - would have to do all that myself. It would have to have some trigger logic that based on the Ready<spellname> (C) would kick off that spell and replace that effect with the real one or nothing if it failed. It would then be logical to support a big text note in Ready that told you the specfics of what they were reading and put it in chat regardless if it was a spell or not.

Point being - the reason I don't do "distance in the map" and some features described in the PHB specifics is the same reason FGU does not do a lot of these things. To many variables, the DM has too many options that can't all be covered easily by code. In those instances, I either partially implement what I can - or don't implement it at all except by a "notify of intent".

I'm not going to wreck my own extensions (polymorphism) which currently handle (C) things correctly by incorrectly implementing a concentration effect sabotaging my own session game play. Some day FGU may properly implement (C) effects - but they don't right now. I do in something I have full control over. This ready action? That can be anything. As I said - I'm not willing to step into that morass partially implementing it.

Maybe someday I'll make an extension that FULLY implements (C) effects across the board - but it would likely be dependent on specific spell effect properly defining the (C) effect everywhere and implementing a STOP CONCENTRATION button as I do in polymorphism all over the place.

Gist being - this is not the extension that is going to embark on the task.

Ready is just a notification of intent. This extension solves some of the missing functionality in FGU - not all of it. Nor will it unless it is clear cut and simple to implement. What your asking? Is not simple. Even if you would accept the partial solution - I would not.

Personally I remember it or have them enter in chat or add my own dummy effect. For sure you can go into upper right and add a custom effect ReadyEffect (C) for 1 turn and simply click on it if that is what you want. For sure I don't want that - and in the end - the extension is for my game playing style where I want (C) effects to be real and correctly defined and implemented - or leave it to the DM to do. In this case, its up to the DM.

ShaunB
September 27th, 2020, 23:41
I'm introducing one of my players to 5e for the first time with this new campaign, and having the basic actions on the sheet with automation is awesome. Well worth the cost of a coffee. Thanks for making this

SilentRuin
September 28th, 2020, 00:28
I'm introducing one of my players to 5e for the first time with this new campaign, and having the basic actions on the sheet with automation is awesome. Well worth the cost of a coffee. Thanks for making this

No worries - made all my extensions in my signature for my own use anyway. My first campaign in FGU has my players entering Vallaki in curse of strahd soon and these are the extensions I felt compelled to make so far. If something annoys me as we progress, you can bet I'll write an extension for it. Honestly though, hoping we have smooth sailing now and I can take a break from writing these things I use to achieve the zen of the lazy DM :)

arcanjl
October 3rd, 2020, 22:35
I was looking through your code to add:
Insightful Fighting
At 3rd level, you gain the ability to decipher an opponent’s tactics and develop a counter to them. As a bonus action, you make a Wisdom (Insight) check against a creature you can see that isn’t incapacitated, contested by the target’s Charisma (Deception) check. If you succeed, you can use your Sneak Attack against that target even if you don't have advantage on the attack roll, but not if you have disadvantage on it.

But all I ended up doing was breaking it. LOL. How hard would it be to add a insight vs deception?

SilentRuin
October 3rd, 2020, 23:36
I was looking through your code to add:
Insightful Fighting
At 3rd level, you gain the ability to decipher an opponent’s tactics and develop a counter to them. As a bonus action, you make a Wisdom (Insight) check against a creature you can see that isn’t incapacitated, contested by the target’s Charisma (Deception) check. If you succeed, you can use your Sneak Attack against that target even if you don't have advantage on the attack roll, but not if you have disadvantage on it.

But all I ended up doing was breaking it. LOL. How hard would it be to add a insight vs deception?

This extension is just for literal actions that are part of the Players Handbook actions that FGU did not provide. There are a million different special case rolls you could expand things into but I intentionally stayed away from anything not in RAW PHB actions section. And also steered clear of anything that had a lot of special cases to it (you'll notice it never even tries to adjust anything distance related and some of the buttons are purely to make a notification of intentions because there are to many variables in them).

Gist being, even though I know how to do that it won't be going in this particular extension. Having said that - I heavily commented the code and you should be able to modify it however you wish for your own uses. That's actually how I learned to code in FGU by examples and a lot of trial and error.

I made one generic die roll in there but there are plenty of examples in these forums and in my own code of how it is done. The problem is FGU die rolls are always branched off in stages - its not like your just writing code that does it in a linear manner. You kick off OOB messages to execute at the host which do one thing and then they write out results completely separately from your main branch of logic - which means you have to design your code with that in mind. Its not like it ever comes back from the processing of the OOB message to your original code. It just tosses that message out and carries on. You have to design all your logic following that OOB message until it completes. Unless you play even weirder games. To make special results like I did I could not actually use the canned dice rolls completely as you can see in the code. I had to make my own. Which is what you have to do if you want to control the process from beginning to end (and do logic in between stages of it).

Probably just confused you more. But its not hard once you understand the logic flow of OOB messages which are a key part of dice rolls. You just have to get creative if you want to do more than one thing during and after the roll (i.e. can't use the canned functions that just roll it and toss out results to chat). If you have specific questions and post an example of the code in your extension in the forums under the workshop area - you will get people to help you. Even me if I happen to see it.

arcanjl
October 4th, 2020, 10:52
Wow thank you for that response and the guidance, I will get to grinding :)

SilentRuin
November 2nd, 2020, 16:22
New fix to this extension

V 1.8 - PC and NPC code to determine skills was changed to fix bugs where NPC was not parsing skill text. Result is when a skill proficiency is set in PC/NPC it will use the proper modification value, otherwise it will use normal stats per PHB for the relevant die roll.

mordkhaan
November 10th, 2020, 07:34
May have come up before but in case it hasnt...
If I grapple someone and succeed and wish to then move them to the edge of a cliff and drop them, I would normally then use shove
But when I try it says you cannot shove a grappled target
So how should this be resolved?

SilentRuin
November 10th, 2020, 09:23
May have come up before but in case it hasnt...
If I grapple someone and succeed and wish to then move them to the edge of a cliff and drop them, I would normally then use shove
But when I try it says you cannot shove a grappled target
So how should this be resolved?

I can honestly say I’ve never been asked this before.

You tell your DM “I stop grappling”.

At which point they delete the effect.

Then you do whatever it is your going todo.

SilentRuin
November 16th, 2020, 21:48
I have partnered with Grim Press (https://discord.gg/N7MM93a) to handle sales and promo of this extension. I'm just to lazy to bother :)

SilentRuin
November 19th, 2020, 16:19
Added new grim press video.

Korav
November 21st, 2020, 15:44
Thank you Silent Ruin for the extension. It's been very helpful. I tried to read through several of the last few pages of this thread for an answer, but I didn't see anything. Any time someone has the grappled condition, they are restricted from performing a grapple and/or shove. I understand from the post on page 10 that you suggest removing the grappled condition in order to shove someone, which somewhat makes sense. However, by RAW, there is nothing that limits someone from grappling while being grappled.

From a narrative stand point, my perspective is that if a goblin has grappled a kobold, that shouldn't prevent the kobold from grappling the goblin. If this becomes limited, then the grappler will always have "the upper hand" in every interaction.

I played with the "Ignore Grappled Effect" but it doesn't seem to change the behavior (maybe I am misunderstanding the intention of it). Is there a way to allow the Grapple (and/or Shove) button to work for someone that has the grappled condition? If this is not possible and you aren't interested in making this part of the core extension, that's cool. I'm fine to make local changes to the mod if that's required, but if possible could you provide some guidance on where to start with it would be appreciated.

SilentRuin
November 21st, 2020, 16:15
Thank you Silent Ruin for the extension. It's been very helpful. I tried to read through several of the last few pages of this thread for an answer, but I didn't see anything. Any time someone has the grappled condition, they are restricted from performing a grapple and/or shove. I understand from the post on page 10 that you suggest removing the grappled condition in order to shove someone, which somewhat makes sense. However, by RAW, there is nothing that limits someone from grappling while being grappled.

From a narrative stand point, my perspective is that if a goblin has grappled a kobold, that shouldn't prevent the kobold from grappling the goblin. If this becomes limited, then the grappler will always have "the upper hand" in every interaction.

I played with the "Ignore Grappled Effect" but it doesn't seem to change the behavior (maybe I am misunderstanding the intention of it). Is there a way to allow the Grapple (and/or Shove) button to work for someone that has the grappled condition? If this is not possible and you aren't interested in making this part of the core extension, that's cool. I'm fine to make local changes to the mod if that's required, but if possible could you provide some guidance on where to start with it would be appreciated.

Originally I had a grappled individual defaulted to not be able to attack or throw spells, that was that entire discussion you saw earlier in this thread. That is what the "Ignore Grappled Effect" was for and why it was defaulted to be on. If its off then you can't attack or throw spells (I think if memory serves me). Most rules, as you know, in D&D Raw have grey areas. If you are grappling someone - it means you have enough control of them you can drag them around at half your speed. It means you have OVERCOME their strength/whatever to do this. In order to escape this - you must escape the grapple. Obviously if your overpowered by someone having a grip on you enough to drag you around you can't really suddenly overpower them in turn - that would essentially BE breaking the grapple. Which you have to do first. However, if you have some idea that both can overpower each other at same time (something impossible in my mind) you will have to - as host - apply the grapple yourself. Nothing stops you from dropping the grappled effect into a combat tracker entry yourself.

Personally, if someone is grappled I would never allow that. They would have to break the overpowering grip on them before they could overpower their opponent - in which case they would have broken their opponents grapple to do so. That's how this interprets this rule. But nothing stops you from simply dragging the grappled effect and dropping it over a combat entry like you do without this effect. I can't remember the source rules for it when that happens but if it applies the source then my break grapple will still work - otherwise you'd have to manage that manual grappled effect ending yourself.

And of course, you can modify the extension to simply take that "if check" out in your version. Sounds like you know how and its very simple to do. But I design all my extensions for my own games, and while I have been convinced to change them in the past (as you can see in any of my extensions threads), the first hurdle is to convince me I want it in my game or that enough people want something that won't effect my game (another option in this case).

If you need to know where exactly to make the change to allow this in your version let me know and I'll post it for you - should be pretty simple to find though if you know extensions as it sounds like you do.

Korav
November 21st, 2020, 17:27
I'm familiar with how to make basic modifications of extensions, but I've reviewed the code and I'm not following where the initial check, so a starting point would be helpful.

SilentRuin
November 21st, 2020, 17:42
I'm familiar with how to make basic modifications of extensions, but I've reviewed the code and I'm not following where the initial check, so a starting point would be helpful.

Sent you PM with the code changes that "I think" you need - but in the end you'll have to make sure of my guess.

DM_BK
November 23rd, 2020, 20:33
Love this extension! But why does Dodge set the effect to Init adjustment at 0? This causes the effect to fall off at the top of the round which isn't how Dodge works. It's in effect "Until the start of your next turn".

SilentRuin
November 23rd, 2020, 21:21
Love this extension! But why does Dodge set the effect to Init adjustment at 0? This causes the effect to fall off at the top of the round which isn't how Dodge works. It's in effect "Until the start of your next turn".

I use reshuffle option to reroll init every turn to keep my players guessing. Nothing in FGU can do the "until the start of your next turn" without setting the nInit part of the effect (init in DB) to the init of whomever is applying the effect. And if you do the reshuffle - like me - your out of luck other than tracking it into the next turn for a bit. However, having said that - give me a bit and I'll put the init in the Help and Dodge so that people who don't do reshuffle of the init every turn can get it to work better. But can't really totally solve this one. Let me see what I can do.

Also Celestian had some free extension I think that would reset any effect init values to the reshuffled one but not sure if it worked or not based on posts in that thread. Also this is FGU - not FGC.

SilentRuin
November 23rd, 2020, 21:34
Love this extension! But why does Dodge set the effect to Init adjustment at 0? This causes the effect to fall off at the top of the round which isn't how Dodge works. It's in effect "Until the start of your next turn".

Went ahead and added init into effects. Won't help me as I reroll init every round but will help those that do not.

V 1.9 - Added init to effects for DODGE and HELP so that you can get them to actually last to next turn. Warning: If you use the reroll init every round like me you'll have to manually update the effect init value to the new initiative of the player. Still - willing to make the change even though I can't take advantage of it.

DM_BK
November 24th, 2020, 00:38
Awesome! Thank you!!!

DM_BK
December 1st, 2020, 17:46
1.9 works like a champ!

I thought of one more really helpful thing for this extension: Can you add a Stand button to the generic actions that simply says "<name> stands up!" and also removes Prone effect?
It would fit in so well with this extension IMO.

SilentRuin
December 1st, 2020, 17:56
1.9 works like a champ!

I thought of one more really helpful thing for this extension: Can you add a Stand button to the generic actions that simply says "<name> stands up!" and also removes Prone effect?
It would fit in so well with this extension IMO.

That's been suggested before and my response is the same - this extension just covers the missing actions in PHB as listed in the .txt file of page 1. For sure you can make an extension pile all sorts of things into it - which if you've used any of mine you know I do already as I'm writing them for myself. But "prone" is something I only ever want in the hands of the DM (me) in my games. Never in the hands of a player. And that is the true litmus test for any changes/extensions I put out there.

Is it what I want.

So while you can see I do react to things I think are justified in my games (or I consider bugs) and add them into the extensions fast, I also have no fear of saying "NO" :) In this case, sorry but it does not fit in my own game play so not going to do this one.

SilentRuin
December 18th, 2020, 23:14
The sales for this product in DMsG may soon be deactivated per this post - will let you know when that happens and when it finds a new home. (https://www.fantasygrounds.com/forums/showthread.php?64473-How-important-to-Community-is-a-SmiteWorks-store-app-to-do-Extensions&p=565817#post565817)

SilentRuin
February 16th, 2021, 23:56
you must update extensions - they will have issues with latest fgu update - if you don't update fgu then keep your old extension

Daniel Fletcher
February 17th, 2021, 03:38
Thanks for updating so fast: Will download the latest. Are all the other ones updated?

SilentRuin
February 17th, 2021, 03:46
Thanks for updating so fast: Will download the latest. Are all the other ones updated?

Of mine, yes.

Kingfish
February 18th, 2021, 22:04
Of mine, yes.

The update fixed my issues...wish I would have just skipped to the end of this and read it first. I was yankin mah'hair out! I JUST bought your big bundle off DMGuild. I hope its not a case where I should have waited. Really good stuff so far, highly pleased!!!

SilentRuin
February 18th, 2021, 22:06
The update fixed my issues...wish I would have just skipped to the end of this and read it first. I was yankin mah'hair out! I JUST bought your big bundle off DMGuild. I hope its not a case where I should have waited. Really good stuff so far, highly pleased!!!

Then repull Equipped Effects per its thread in here - idiot (me) made a stupid mistake. Fixed in latest version.

Kingfish
February 19th, 2021, 01:25
Then repull Equipped Effects per its thread in here - idiot (me) made a stupid mistake. Fixed in latest version.

So I got it today, its all good then, correct?

I got a question about that AND the polymorhism one...maybe I should ask that on the other thread...

SilentRuin
February 19th, 2021, 01:32
So I got it today, its all good then, correct?

I got a question about that AND the polymorhism one...maybe I should ask that on the other thread...

Yep all my extensions were good if you got them since Tuesday after FGU extension breaker update dropped. Except Equipped Effects which I had to fix earlier this afternoon per that thread (whatever time/version that was)

SilentRuin
February 26th, 2021, 21:40
V1.11 - Bug: was not supporting effects that modified raw abilities (ex. STR: 5). Fixed.

nephranka
March 3rd, 2021, 20:24
Please forgive me if this has been explained, but I do not see in the guild the 1.11 version only 1.10? I have purchased it and tried re-downloading it today. Maybe 1.11 is somewhere else? Thanks!

SilentRuin
March 3rd, 2021, 20:37
Please forgive me if this has been explained, but I do not see in the guild the 1.11 version only 1.10? I have purchased it and tried re-downloading it today. Maybe 1.11 is somewhere else? Thanks!

Not entirely sure - I think I forgot to update version number then corrected it after I delivered - or never delivered it? That's the only reason I can think. Repackaged and redelivered with the version number for sure this time. It's updated DMsG. Thanks for noticing because my local machine showed the version number updated which was not the case in DMsG.

nephranka
March 3rd, 2021, 22:11
Indeed, It is now reporting 1.11. Thanks!

jesshmusic
May 29th, 2021, 18:11
About to get this extension but I have a question. In the video you make NPC sheets into little draggable icons on the tabletop. How did you do that? I assume its an extension?

daggerfortysix
May 29th, 2021, 20:05
About to get this extension but I have a question. In the video you make NPC sheets into little draggable icons on the tabletop. How did you do that? I assume its an extension?

This is standard functionality in FGU. Right click and select the minimize icon on the radial menu. You can do this with most windows.
47193

SilentRuin
July 12th, 2021, 21:54
V1.12 - Bug - Help did not have the apply="roll" set so that it would disappear after next ability check roll in addition to the original limit of 1 round. Fixed.

SilentRuin
July 26th, 2021, 23:34
A new video (https://youtu.be/ZS7wImwotnk) has been added to page 1 - hidden discreetly after the official Grim Press one. Mostly for my own entertainment ;)

arcanjl
July 26th, 2021, 23:50
Loved it!

MrDDT
July 27th, 2021, 09:13
A new video (https://youtu.be/ZS7wImwotnk) has been added to page 1 - hidden discreetly after the official Grim Press one. Mostly for my own entertainment ;)

This is great, too funny. 100% worth the watching time.

SilentRuin
August 12th, 2021, 03:19
V1.13 - Bug - Dice rolls were not taking into account source or target SKILL or CHECK effects. Fixed.

MrDDT
August 12th, 2021, 03:20
V1.13 - Bug - Dice rolls were not taking into account source or target SKILL or CHECK effects. Fixed.

Love you man!

SilentRuin
August 12th, 2021, 06:58
Fixed for CHECK and SKILL to support following type (strength, athletics, etc.) - not worth a version change

SilentRuin
November 10th, 2021, 00:56
V1.14 - Feature - Added Disarm, Overrun, and Tumble from DMG p.271 optional actions. Disarm is a toggle which will hijack normal attack mechanism to do a disarm set of rolls. You will have to turn it off and on manually, as long as NPC or PC sheet is up it will respect it - otherwise it will just do normal attacks. There is a new option "Disarm and Overrun target will get size ADV-DIS roll (otherwise manual for DM)" added in because I had to make size ADV/DIS considerations on the target rolls (as want not simple to do as DMG p.271 wanted on attacker rolls). Just turn it off if you want to apply DIS/ADV based on DM figuring out size considerations manually. Overrun also does the size on targets - otherwise Overrun and Tumble follow the DMG p.271 rules. The new buttons appear after the existing generic actions already out there.

SilentRuin
November 10th, 2021, 12:57
V1.14 - Feature - Added Disarm, Overrun, and Tumble from DMG p.271 optional actions. Disarm is a toggle which will hijack normal attack mechanism to do a disarm set of rolls. You will have to turn it off and on manually, as long as NPC or PC sheet is up it will respect it - otherwise it will just do normal attacks. There is a new option "Disarm and Overrun target will get size ADV-DIS roll (otherwise manual for DM)" added in because I had to make size ADV/DIS considerations on the target rolls (as want not simple to do as DMG p.271 wanted on attacker rolls). Just turn it off if you want to apply DIS/ADV based on DM figuring out size considerations manually. Overrun also does the size on targets - otherwise Overrun and Tumble follow the DMG p.271 rules. The new buttons appear after the existing generic actions already out there.

Had to back this out of DMsG while I work on some more fixes - was not quite ready for delivery. Was not on Forge yet.

SilentRuin
November 10th, 2021, 13:43
Had to back this out of DMsG while I work on some more fixes - was not quite ready for delivery. Was not on Forge yet.

Apparently my character in the campaign I was testing with was bugged (a case where CT entry was not the token that was out in map even though I thought it was). Anyway, V1.14 is back out in DMsG and will soon be on Forge. Test thoroughly. As leaving it to me to do the testing... well... EXTENSION = RISK!

SilentRuin
November 11th, 2021, 06:32
Fix for V1.14 when target not defined for disarm generates code error. Not worth a version number update.

amanwing
November 20th, 2021, 22:01
If I try to click break grapple it gives message Cannot Break Grapple when no Grappled effect in combat tracker. But the effect is there.

SilentRuin
November 20th, 2021, 22:17
If I try to click break grapple it gives message Cannot Break Grapple when no Grappled effect in combat tracker. But the effect is there.

If the effect is properly defined you'll see "applied by" when you expand it - and then it will most certainly work. If you however put some dumb text out there without properly applying the the grappled effect (as in - it was applied by someone on a target) then of course it won't be able to find who applied the grapple and won't be able to apply the break grapple rolls to them.

So my question is - did you properly apply the grapple effect - and does it show "applied by" when you expand the effect out in combat tracker?

amanwing
November 20th, 2021, 22:21
If the effect is properly defined you'll see "applied by" when you expand it - and then it will most certainly work. If you however put some dumb text out there without properly applying the the grappled effect (as in - it was applied by someone on a target) then of course it won't be able to find who applied the grapple and won't be able to apply the break grapple rolls to them.

So my question is - did you properly apply the grapple effect - and does it show "applied by" when you expand the effect out in combat tracker?
I just put two dudes into the combat tracker. Targeted the other and used your grapple button. The Test character has no name. Maybe thats why I was confused with the testing. Now it applies the name and it works. Cool. Thanks

Gwydion
November 25th, 2021, 17:39
Just FYI, it seems this extension messes with spell visibility on the actions tab. When I have this extension loaded and I toggle to "combat" view, the spells I know but are not prepared still show up on the actions tab but they shouldn't. When I deactivate this extension the spell visibility behaves as intended. I am running the latest version of FGU and I believe the latest extension version.

SilentRuin
November 26th, 2021, 17:41
Just FYI, it seems this extension messes with spell visibility on the actions tab. When I have this extension loaded and I toggle to "combat" view, the spells I know but are not prepared still show up on the actions tab but they shouldn't. When I deactivate this extension the spell visibility behaves as intended. I am running the latest version of FGU and I believe the latest extension version.

Not sure what is going on but I turned off all of my extensions and theme and my test project still had stuff appear that was not prepared - some worked - some did not. I'll have to spend some time looking.

Gwydion
November 26th, 2021, 17:42
Not sure what is going on but I turned off all of my extensions and theme and my test project still had stuff appear that was not prepared - some worked - some did not. I'll have to spend some time looking.

Not a big deal at all. Just wanted to let you know.

SilentRuin
November 26th, 2021, 18:08
Not a big deal at all. Just wanted to let you know.

Well here is what I did...

1) Tested in an old all purpose test campaign that has been around and beaten on for about a year. Saw very inconsistent things going on with the selected/unselected preparation Actions to combat Actions switch (some stuff worked some things did not). Turned off all extensions and themes. Some stuff worked some did not.

2) Went to current campaign which has all my stuff and theme I use active (same as in first test above) and everything worked. No problems translating between selected/unselected Preparation Action to combat Actions. All worked fine.

3) Created brand new 5E campaign with all my extensions - with the modules I use and options I usually use - and created a wizard through character wizard. Gave him a few first level spells and still - all the selected/unselected Preparation Action to combat Actions worked fine.


So I can see there is a problem. I can't see it being related to these extension but in something with the actual character data. As I have one project which does this even with extensions or without I'll see if I can determine what it is. But it something very weird. Probably nobody noticed it because it does not seem to happen in existing campaigns or new campaigns but does in some with or without extensions. No idea why but I'll take a stab at it.

SilentRuin
November 26th, 2021, 18:17
Not a big deal at all. Just wanted to let you know.

I also created a new character in the campaign that had a character behaving weirdly and they worked just fine. I'll try to compare the DB.xml char vs bad char and see if I notice something but this does not appear to be an extension thing - its a data thing. How the data got bad I don't know. Only one of my campaigns has this happening and it has been hit with all sorts of testing horrors over the last year.

SilentRuin
November 26th, 2021, 18:51
Not a big deal at all. Just wanted to let you know.

Found it - at least for when its happening in my case. When the power groups "prepared" value is corrupted or set to 0 (blank) then the preparation selection will be ignored and the spell will always be shown. Not sure how my one character had power groups defined without a prepared setting or how it got whacked but none of my extensions touch that stuff so thinking something else happened. Simply setting it to number of spells you can have prepared for that power group allows the spells to reflect the preparation setting.

50104

weretygr
December 15th, 2021, 06:40
Loving this extension as a DM. I did notice in our session last night that the hide button does not notify the StealthTracker extension (https://forge.fantasygrounds.com/shop/items/165/view) that the actor is hiding via the Hide action.

I as the DM do get the message though so I currently manually update the effect if it exists.

SilentRuin
December 15th, 2021, 17:56
Loving this extension as a DM. I did notice in our session last night that the hide button does not notify the StealthTracker extension (https://forge.fantasygrounds.com/shop/items/165/view) that the actor is hiding via the Hide action.

I as the DM do get the message though so I currently manually update the effect if it exists.

No idea what that is so can't help. Although some author of some extension recently contacted me for some info so maybe that was it. Either way - you'll have to take it up with whatever that extension is.

SilentRuin
December 16th, 2021, 17:05
V1.15 - Feature - Added support for Grappler feat as defined in RAW 5e Rules. Advantage on grapple rolls and restrained if grappled already. Break grapple will remove restrained if source of grapple had Grappler feat. Will look for traits ("powerful build") in both PC (traitlist) and NPC (traits) and feats ("Grappler") in both PC (featlist) and NPC (actions) for case insensitive name matches.

If you drop a trait or feat into a PC (abilities tab) or NPC (main page unlocked) and its one I support ("powerful build" or "Grappler") then the grappler button will respect it as described above.

SilentRuin
January 20th, 2022, 18:48
V1.16 - Feature - New option "Apply DIS for weapon range (restart app)" defaulted to off. This will check the distance between attacker and target and check if ranged weapon with a "range low/high" in PC( charsheet inventorylist)/NPC(CT inventorylist or actions) is within 5ft or if range is > low or <= high range and apply disadvantage. It will put chat messages if either of these - or the range is > high (won't stop the attack its just informative - if you do damage it will still do it per hit/miss roll). If the attacker is using something with "crossbow" in the name and has the "Crossbow Expert" feat they will not have the 5ft disadvantage applied. If they have the "Sharpshooter" feat (or "Fighting Sharpshooter Mastery" feat - for SW5E - which is the real reason I'm adding this mess for my game) they will not have the low/high range disadvantage applied. The option is defaulted to off so if you turn it on you will have to restart the app (like some of the other options) in order to get it applied. If its on when you start the app then you can turn it off and on and it will work. The reason these (restart app) options are done this way is they override critical functions that will usually stomp anyone else who uses those same registered handlers. So I make sure if you turn them "off" and then restart the app - they are no longer overriding that handler. No other way to really do it. If you don't want this - just leave it off.

nephranka
January 25th, 2022, 12:53
V1.16 - Feature - New option "Apply DIS for weapon range (restart app)" defaulted to off. This will check the distance between attacker and target and check if ranged weapon with a "range low/high" in PC( charsheet inventorylist)/NPC(CT inventorylist or actions) is within 5ft or if range is > low or <= high range and apply disadvantage. It will put chat messages if either of these - or the range is > high (won't stop the attack its just informative - if you do damage it will still do it per hit/miss roll). If the attacker is using something with "crossbow" in the name and has the "Crossbow Expert" feat they will not have the 5ft disadvantage applied. If they have the "Sharpshooter" feat (or "Fighting Sharpshooter Mastery" feat - for SW5E - which is the real reason I'm adding this mess for my game) they will not have the low/high range disadvantage applied. The option is defaulted to off so if you turn it on you will have to restart the app (like some of the other options) in order to get it applied. If its on when you start the app then you can turn it off and on and it will work. The reason these (restart app) options are done this way is they override critical functions that will usually stomp anyone else who uses those same registered handlers. So I make sure if you turn them "off" and then restart the app - they are no longer overriding that handler. No other way to really do it. If you don't want this - just leave it off.

Any plans to include ranged spell attacks (like eldritch blast) in the group that has DIS applied when in melee? Thanks!

SilentRuin
January 25th, 2022, 16:38
Any plans to include ranged spell attacks (like eldritch blast) in the group that has DIS applied when in melee? Thanks!

That was a bug on my part will be fixing it shortly. Was assuming the range low/high had to be present for the 5ft check and that only the target was in 5ft. I'm now doing it correctly with any "not same faction" (because of my world the way I use factions) in 5ft that is not incapacitated. Will be done shortly after some basic testing.

nephranka
January 25th, 2022, 16:41
Thanks! No worries. I read your use of "weapon attacks" I assume it was being very specific. As a result I did not see this as a bug but working as described.

SilentRuin
January 25th, 2022, 17:04
V1.17 - Bug - V1.16 range feature was not handling the 5ft disadvantage rule correctly. This has been fixed. Note: Because I use NPCs and all the factions, the hostile within 5ft is really a "not same faction" in 5ft check in my world. This is also for any ranged attack (not just a weapon with a "range low/high").

nephranka
January 31st, 2022, 12:14
Last night my group saw strange behavior from Kent's pack tactics and using the Generic actions range weapon option. When a creature with pack tactics attacks it would throw 3 dice keep one of the adv rolls and the normal roll and add them together. I guess these are in conflict.

SilentRuin
February 1st, 2022, 01:29
Last night my group saw strange behavior from Kent's pack tactics and using the Generic actions range weapon option. When a creature with pack tactics attacks it would throw 3 dice keep one of the adv rolls and the normal roll and add them together. I guess these are in conflict.

Would not surprise me - why its defaulted to off. Anything that touches the attack logic usually has issues from either having to put something in middle or not calling the super calls to let someone else do them. Just leave that option set to off if you use those things.

nephranka
February 1st, 2022, 02:01
I was hoping it was an easy fix as I like using the GA to do my range finding in combat. Thanks for the info.

SilentRuin
February 1st, 2022, 05:26
I was hoping it was an easy fix as I like using the GA to do my range finding in combat. Thanks for the info.

Well crud. I just had my Monday night game and when one guy got within 5ft of an enemy with DIS on his attack - 3 dice rolled. I'm going to have to look into this from the extensions I used. So maybe a bug - I'll have to look at it later this week or on the weekend.

nephranka
February 1st, 2022, 11:41
I see. As you said, "Anything that touches the attack logic" could be a large number of exts...

wframe
February 1st, 2022, 16:29
Well crud. I just had my Monday night game and when one guy got within 5ft of an enemy with DIS on his attack - 3 dice rolled. I'm going to have to look into this from the extensions I used. So maybe a bug - I'll have to look at it later this week or on the weekend.

I saw this behavior in my game last night as well. Confused the heck out of me and my players. It took a while to figure out that it was Generic Actions that was causing it. It seems to happen when the ADV or DIS buttons are pressed before an attack and/or an effect that bestows one of those conditions (such as restrained) is on the character. I'm glad you noticed it. I was just coming here to report it.

Edit: Extensions I was using:

5e - Advanced Effects
5e - Advantage Display
5e - Auto encumbrance
5e - automatic death resistance
5e - automatic mirror image
5e - automatic sneak attack
5e - Generic Actions
5e - indicators
5e - polymorphism
5e - turn based effects
5e - equipped effects
5e - elven accuracy
5e - legendary assistant
5e - modifier buttons A
Clear dead
easy lights
feature: Aura Effects
Feature: Better combat effects
Feature: Friend Zone
Feature: Party Item identified
Feature: Size matters
Feature: StealthTracker
Feature: Token Height indication
Select on Turn
Toggle Light effects

SilentRuin
February 2nd, 2022, 01:39
I saw this behavior in my game last night as well. Confused the heck out of me and my players. It took a while to figure out that it was Generic Actions that was causing it. It seems to happen when the ADV or DIS buttons are pressed before an attack and/or an effect that bestows one of those conditions (such as restrained) is on the character. I'm glad you noticed it. I was just coming here to report it.

Edit: Extensions I was using:

5e - Advanced Effects
5e - Advantage Display
5e - Auto encumbrance
5e - automatic death resistance
5e - automatic mirror image
5e - automatic sneak attack
5e - Generic Actions
5e - indicators
5e - polymorphism
5e - turn based effects
5e - equipped effects
5e - elven accuracy
5e - legendary assistant
5e - modifier buttons A
Clear dead
easy lights
feature: Aura Effects
Feature: Better combat effects
Feature: Friend Zone
Feature: Party Item identified
Feature: Size matters
Feature: StealthTracker
Feature: Token Height indication
Select on Turn
Toggle Light effects

For now just turn off the range option - I'll get to it sometime in the next few days.

SilentRuin
February 2nd, 2022, 02:28
V1.18 - Bug - V1.16 range feature did ADV/DIS buttons incorrectly resulting in 3 dice being used when either was pressed. Fixed.

nephranka
February 2nd, 2022, 03:21
That's fixed it. Thanks!

SilentRuin
February 13th, 2022, 04:02
V1.19 - Conflict - rewrote code to try to make less likely to cause a conflict at out of ammo optional checks.

SilentRuin
March 3rd, 2022, 17:44
V1.20 - Feature/Fix - fixed effects applicable to range calcs and also that critical damage is applied to things within 5 ft if incapacitated (or paralyzed or unconscious).

SilentRuin
June 5th, 2022, 17:59
V1.21- Bug - improper return code was preventing "out of ammo" attack verification from stopping the attack (just flashed up out of ammo message but continued processing the roll). Fixed.

SilentRuin
July 7th, 2022, 19:15
V1.22 - Bug - incapacitated was incorrectly applying critical damage at 5ft attacks. Fixed.

SilentRuin
July 12th, 2022, 23:37
Updated in delivery just in case with new FGU updates.

SilentRuin
August 4th, 2022, 00:50
V1.23 - Update - Support for Sir Motte's theme.

spencerg
September 10th, 2022, 00:39
Love this extension. I have one request, could you clean up the u.i. abit. I can do it myself by hacking the file but prefer not too in case of updates. Could you make it so the container is collapsible, like all the other powers/spells, and perhaps make the buttons smaller and all the same size to give it an even look ... (i set them to 75 i think).
Id love to see the u.i. cleaned up and the ability to hide/collapse the group when not using.

SilentRuin
September 10th, 2022, 01:02
Love this extension. I have one request, could you clean up the u.i. abit. I can do it myself by hacking the file but prefer not too in case of updates. Could you make it so the container is collapsible, like all the other powers/spells, and perhaps make the buttons smaller and all the same size to give it an even look ... (i set them to 75 i think).
Id love to see the u.i. cleaned up and the ability to hide/collapse the group when not using.

If I get a chance. Been gone a few weeks and found that FGU changes have once again trashed a number of my extensions. Will have to look into those first.

spencerg
September 10th, 2022, 01:15
I feel your pain.. I just finished a release cycle, 3rd party API annihilated our solution with an update. Fun times. Great work, I always wanted the generic options to be at least visible, people tend to forget they can do more than attack. Out of curiosity, which extensions are you referring too, I believe I have a few of yours!

SilentRuin
September 10th, 2022, 02:04
I feel your pain.. I just finished a release cycle, 3rd party API annihilated our solution with an update. Fun times. Great work, I always wanted the generic options to be at least visible, people tend to forget they can do more than attack. Out of curiosity, which extensions are you referring too, I believe I have a few of yours!

Here is my current internal list...
[Keep in mind I have not tried testing everything yet so who knows if it will grow or not. Some of these are purely for myself - as I tend to do things for me and my players - you guys get them as a by product of Grim Press selling them.]

Combat Groups = CT order no longer works in latest FGU update as they now support this - remove all that code and option - work around to get FGU new order stuff to work is to turn off my option.

Assistant GM = on client side can no longer display CT info as it will get both an index field "traits" is nil error and warnings about could not find templates for label_ct_actions and list_ct_actions in client_ct entry.

? = Client double click on map not bringing up the NPC it owns when its not a friendly faction (think it used to or I would have noticed as we have players run other factions all the time) - not sure where this is failing or which extension or FGU raw performs this. Need to get it back to respecting ownership regardless of faction.

Carrier = extension.xml needs new icon name put in for Sir Mott's theme.
Carrier = has weird rotation results when all are drivers and some are carriers for other things - probably just the way it is (rules applied correctly to give garbage - you get what you define) - but make sure.

Death Indicators = can leave tombstone as icon in some cases - need to duplicate and see how this is happening.

Equipped Effects = needs to be tested for performance and streamlining.

Generic actions = has been requested to have optional open/close window option and to have all buttons same size.

New Races in Rime of the Frost Maiden need to be added to a new module for my players as we are starting that campaign - so it points to all spells/feats/etc. from Aridhro supplemental stuff like my AE5ePHBClasses module I gave them.

ScriedRaven
September 10th, 2022, 03:09
Generic actions = has been requested to have optional open/close window option and to have all buttons same size. .
54307 Here's what I made for myself a while ago (ignore the prone thing, I was working on an idea but ran out of time). I can send that to you if you want to just copy it

spencerg
September 10th, 2022, 04:58
54307 Here's what I made for myself a while ago (ignore the prone thing, I was working on an idea but ran out of time). I can send that to you if you want to just copy it

just hacked this yesterday to same effect, beauty, i got lazy on the offsets. trying to set up syrinscape for first time.

spencerg
September 10th, 2022, 05:01
Well I have a few of those. They’re great. Id write a few myself but i get enough code dumped on me daily that id rather just play. However, i did peek at writing extensions the other day, haven’t seen LUA scripts in along time :)) , blast from past. I love equip effects, bravo on that one

SilentRuin
September 10th, 2022, 21:31
54307 Here's what I made for myself a while ago (ignore the prone thing, I was working on an idea but ran out of time). I can send that to you if you want to just copy it

Working on other stuff right now. After its all done I'll see if this is something I want to supply and will look into it. Not sure yet what I want to do as I've not really looked into having it as its own closable window (as the whole purpose was for it always to be in your face so you remember they exist).

SilentRuin
September 18th, 2022, 22:27
V1.24 - Bug - had to fix onInit() checks - if a option has never been toggled it will not be in db.xml and the check will fail to find it - even though has been registered.

Technical developer info:

If you do operation in onInit (now onDesktopInit as of the fix I'm doing) then you can't use OptionsManager.isOption check as the client will only ever get the default value. So I had to switch to checking via CampaignRegistry - but now it turns out if you've never actually set the option (or toggled it) it will not be in <options> of db.xml and will not be defined in the CampaignRegistry. So to fix all this I've had to move my onInit() checks that do ActionsManager.registerResultHandler into onDesktopInit and also insure immediately after I call OptionsManager.registerOption2 I have to do something like OptionsManager.setOption("VERIFY_ATTACK_TYPE", OptionsManager.getOption("VERIFY_ATTACK_TYPE")); to insure that its in the local CampaignRegistry. Technically I would only have to do that once ever in a campaing to get it in db.xml but for saftey's sake I just always do it after I OptionsManager.registerOption2 the option. Crazy stuff. But nobody really cares as long as the fix works, noting in case I need to remember why I did all that.

MrDDT
September 18th, 2022, 23:41
Thanks SR for keeping these so updated and always trying to fix them to work the best they can.

SilentRuin
September 19th, 2022, 00:20
Will probably simplify that coding next time I'm in based on talk with Moon Wizard and onDesktopInit() supposedly supporting the client side using isOption at that point - for now I'm leaving it till next time I'm forced to fix something.

SilentRuin
September 20th, 2022, 21:04
Love this extension. I have one request, could you clean up the u.i. abit. I can do it myself by hacking the file but prefer not too in case of updates. Could you make it so the container is collapsible, like all the other powers/spells, and perhaps make the buttons smaller and all the same size to give it an even look ... (i set them to 75 i think).
Id love to see the u.i. cleaned up and the ability to hide/collapse the group when not using.

Ok I'm going to look into making the buttons less bulky and taking up less space - but won't be doing the collapsible container as the whole point of this extensions is to remind players/DM's the things they always forget are actions they can use. Hiding them would defeat the purpose.

MrDDT
September 20th, 2022, 21:06
Ok I'm going to look into making the buttons less bulky and taking up less space - but won't be doing the collapsible container as the whole point of this extensions is to remind players/DM's the things they always forget are actions they can use. Hiding them would defeat the purpose.

I agree the whole point is to see the things they can do.
Do you think you can add a "Ready" action button? Because players can do this and I would like the effect to be placed in the CT showing they are taking the with the effect dropping off at the start of their turn (Or on any action)

This helps DM's and players to see they are taking the ready action.

SilentRuin
September 20th, 2022, 21:13
I agree the whole point is to see the things they can do.
Do you think you can add a "Ready" action button? Because players can do this and I would like the effect to be placed in the CT showing they are taking the with the effect dropping off at the start of their turn (Or on any action)

This helps DM's and players to see they are taking the ready action.

Ready is just a note in chat as its too complex to really perform reliably any other way IMHO. This is a case where its either too simple (my current version) or way to complex (causes headaches and more trouble than its worth). To do it right you'd have to have the ability to select an action and store that as text in effect that gets put into their CT which dissapears at end of round. As that can get into even notes of what they plan on triggering it also - not something I'm willing to support. In my games they just tell me the ready action and I let them trigger it when they wish - verbally. As its just one round its not a big deal.

MrDDT
September 20th, 2022, 21:49
Ready is just a note in chat as its too complex to really perform reliably any other way IMHO. This is a case where its either too simple (my current version) or way to complex (causes headaches and more trouble than its worth). To do it right you'd have to have the ability to select an action and store that as text in effect that gets put into their CT which dissapears at end of round. As that can get into even notes of what they plan on triggering it also - not something I'm willing to support. In my games they just tell me the ready action and I let them trigger it when they wish - verbally. As its just one round its not a big deal.

I don't think there needs to be a longer note than just "Readying an Action" or "Ready" as this will put a note on them saying they are doing it. I've often times seen that things happen and ready actions were missed as the DM or player forgot. I think putting in longer notes would really mess things up, but a simple note that Ready action is an option and that they choose to take it would be highly effective for people to see and the DM to see it's on a player.
I understand if you don't want to do it, however, I figured I would ask since you did say why this GA was down at the bottom already was to help remind people the actions they can take which READY is one of an important and often overlooked action people can take.

SilentRuin
September 20th, 2022, 22:22
I don't think there needs to be a longer note than just "Readying an Action" or "Ready" as this will put a note on them saying they are doing it. I've often times seen that things happen and ready actions were missed as the DM or player forgot. I think putting in longer notes would really mess things up, but a simple note that Ready action is an option and that they choose to take it would be highly effective for people to see and the DM to see it's on a player.
I understand if you don't want to do it, however, I figured I would ask since you did say why this GA was down at the bottom already was to help remind people the actions they can take which READY is one of an important and often overlooked action people can take.

Its reminded in the chat. For me, the whole pain/maintenance/keeping it clean with a CT effect is simply to cumbersome and not worth the effort and headache.

SilentRuin
September 20th, 2022, 22:23
V1.25 - UI - reordered and sized the buttons to keep same text size but save on real estate in the default sheet size.

New look... shown with Sir Motte's theme...

(had to redeliver for a quick fix because hide was missing - no version change)

54440

MrDDT
September 20th, 2022, 22:55
Its reminded in the chat. For me, the whole pain/maintenance/keeping it clean with a CT effect is simply to cumbersome and not worth the effort and headache.

Figured I would ask, I will keep editing the GA to add this effect for my players when they click it. Coding isn't hard just causes me to have to update it each new version that comes out.
Personally, I find it almost useless for it be in chat as chat scrolls by and used mostly for insta information or information you want to look at if you knew about it and scrolled back to. Whereas the CT is information of what is on going. Effects that are currently in place. I would never look in chat to see who had one effect on them, or what someone was doing currently, or the status of an effect. I would only use chat as a way to see what has happened, or figure out what happened, but never a status update or current status.

Chat to me is used for insta information, or a history of what has happened. I also do not find it "maintenance" or "pain" to have a player do nothing more or less than they were already doing and getting more out of it. I only find it a benefit to the player or DM. The automation is the of most of these exts is to help not do so much. Having to try to remember someone's current stats of ready or not means more on the player/DM.

I can see for you as an ext maker how it would be more of a headache upfront, however, this coding is super simple so I didn't think it would be an issue at all.

SilentRuin
September 20th, 2022, 22:59
Note had to make a redelivery with no version change to fix hide having been overwritten by another button. Image of new UI also updated in original post.

In DMsG - will be in Forge when grim press gets around to it.

SilentRuin
September 20th, 2022, 23:01
Figured I would ask, I will keep editing the GA to add this effect for my players when they click it. Coding isn't hard just causes me to have to update it each new version that comes out.
Personally, I find it almost useless for it be in chat as chat scrolls by and used mostly for insta information or information you want to look at if you knew about it and scrolled back to. Whereas the CT is information of what is on going. Effects that are currently in place. I would never look in chat to see who had one effect on them, or what someone was doing currently, or the status of an effect. I would only use chat as a way to see what has happened, or figure out what happened, but never a status update or current status.

Chat to me is used for insta information, or a history of what has happened. I also do not find it "maintenance" or "pain" to have a player do nothing more or less than they were already doing and getting more out of it. I only find it a benefit to the player or DM. The automation is the of most of these exts is to help not do so much. Having to try to remember someone's current stats of ready or not means more on the player/DM.

I can see for you as an ext maker how it would be more of a headache upfront, however, this coding is super simple so I didn't think it would be an issue at all.

It's not a matter of ease of coding for me. Its that I have enough spam in my effects without adding more. But if you've coded it yourself - that's great - your happy in your game management - and I'm happy in mine :)

MrDDT
September 20th, 2022, 23:13
It's not a matter of ease of coding for me. Its that I have enough spam in my effects without adding more. But if you've coded it yourself - that's great - your happy in your game management - and I'm happy in mine :)

I understand, however, you did say it was a matter of ease just not only ease of coding, you said other things, which I stated why. I do think that ease of coding is a matter for you as I've seen you state this before. I think in the current one it's not a matter as it is easy. So are you saying that ease of coding is not a factor at all when considering adding something to an ext? Because I've seen this stated by you before and this seems to be a conflict of statements.

None the less, I do think you are unlikely to add this as you are happy with the current stats and see no need for it in your ext or games. So I get why you wouldn't want to code it easy or not. I just think some of your statements here are wrong, which is why I wanted to clear that up.

SilentRuin
September 20th, 2022, 23:39
I understand, however, you did say it was a matter of ease just not only ease of coding, you said other things, which I stated why. I do think that ease of coding is a matter for you as I've seen you state this before. I think in the current one it's not a matter as it is easy. So are you saying that ease of coding is not a factor at all when considering adding something to an ext? Because I've seen this stated by you before and this seems to be a conflict of statements.

None the less, I do think you are unlikely to add this as you are happy with the current stats and see no need for it in your ext or games. So I get why you wouldn't want to code it easy or not. I just think some of your statements here are wrong, which is why I wanted to clear that up.

LOL
The only conflict is that I told you how it should be done but that it would be a pain to maintain the code, and you said you didn't need all that and just wanted a dumb effect text added. Which I then replied and said I don't want that pain of a extra spam effects (sometimes referred to notes) going into the CT entry.

So, we will have to agree to disagree - if it were to be done it would need to be done as I stated first, have an action selected and notes provided and translated into an effect (pain to code and maintain). Though you are happy with just a dumb effect saying ready. Either way spam I don't need in my effects.

Now I may not have stated it plainly as I was just reacting to each message in the context as I saw it - so you can blame me for any misinterpretation. You can parse the context of my replies as you see fit in order to try to "convince" me to do this but gist is... it's staying the way it is. For both the reasons I gave for either approach, yours, and mine.

MrDDT
September 21st, 2022, 00:14
LOL

So, we will have to agree to disagree - if it were to be done it would need to be done as I stated first, have an action selected and notes provided and translated into an effect (pain to code and maintain). Though you are happy with just a dumb effect saying ready. Either way spam I don't need in my effects.


I'm going to narrow this down a bit, because I think it's getting lost in the other parts of the msgs.

First let me state I don't expect this msg to change your mind on doing it or not. I just figured I would post here to maybe help you and others on what is going on.

In the quote above you are stating as if it were fact that something has to be done that way, when it does not. That is how you would choose to do it apparently, but the wording is important here. As I stated already, it COULD be (and I do already) do it differently.

Then with the other part of your quoted statement, I don't think we need to be attacking people calling things "dumb".

I would like to thank you for your effort and time on here for the work you do. I wont post anymore on this topic as I stated already, I'm not expecting you to change your mind.

spencerg
September 22nd, 2022, 05:28
Slick U.I/U.X. change. Thank you for taking the time to make this change.

SilentRuin
October 20th, 2022, 18:27
V1.26 - Kludge - checking to insure disarm check on button works - if not (due to some incompatibility) it will simply skip it and move on (disarm won't work with no warning other than when button is pressed it won't work). This was to insure its not going to break everything else when this type of thing happens. Most users won't care about this at all.

Naxyr
December 2nd, 2022, 19:12
I am using the "Size Matters" addon as well as increasing the size of one of my players in the combat tracker as a result of the "Enlarge" spell. He is attempting to grapple a "huge" creature but it fails because it registers the PC as a medium creature even with size "10" set as well as size "large" in the combat tracker vs a "huge" creature who is size "15".

55321

SilentRuin
December 2nd, 2022, 20:19
I am using the "Size Matters" addon as well as increasing the size of one of my players in the combat tracker as a result of the "Enlarge" spell. He is attempting to grapple a "huge" creature but it fails because it registers the PC as a medium creature even with size "10" set as well as size "large" in the combat tracker vs a "huge" creature who is size "15".

55321

As long as this extension sets and respects the ActorCommonManager.getCreatureSizeFromSizeFieldCor e value that is extracted in basic FGU functionality - then this will work. If it does not then it will not - nor will other things that use the standard size function extraction in the FGU code.

MrDDT
December 2nd, 2022, 21:21
I am using the "Size Matters" addon as well as increasing the size of one of my players in the combat tracker as a result of the "Enlarge" spell. He is attempting to grapple a "huge" creature but it fails because it registers the PC as a medium creature even with size "10" set as well as size "large" in the combat tracker vs a "huge" creature who is size "15".

55321

Maybe this could be posted over on M&U's ext size matters and M&U can make sure it's doing what it needs for GA ext.

Naxyr
December 2nd, 2022, 21:59
Yeah that was gonna be my next try. I just wish there was an easier way to just change character size since things exist to change them.

Naxyr
December 2nd, 2022, 23:08
55323

Found the issue. For 5e, since we never really used a lot of the character notes, I forgot it had an area for size. Once I put "Large" in there, everything works as intended.

SilentRuin
December 6th, 2022, 23:46
V1.27 - Bug - Grappler was not setting Restrained effect when it was set for the target of the second grapple (see 5e rules for grappler). Fixed. New option "No effect applied for grapple (left manual for DM)" defaulted to off has been added as I had a case where someone was grappled already and I wanted to use the grapple roll (just rolls) to determine if I could wrestle something from their arms. My advice - don't ever set this except temporarily for doing a pure grapple roll check with no effects being applied.

Updated in DMsG - will be updated in Forge when Grim Press gets around to it.

MrDDT
December 7th, 2022, 00:05
Thanks for the update.

SilentRuin
December 12th, 2022, 07:39
V1.28 - Bug/Update - Fixed range within 5ft issues when dealing with > medium critters. Added new option "Determine Flanking Advantage on Melee Attack" defaulted to off. This will give a melee attack that is within their reach and advantage if there is a flanking token on the other side of the target token where it satisfies the following criteria: in same map as attacker, has same target as attacker, has same faction as attacker, token is currently visible in map, and it is within a mathematical cone. The center point of the cone will be the attacker token position, the end point for the cone vector will be our target token position, the radius of the cone will be distance between the attacker token position and the flanking token position, and two boundary vectors will be formed by point +/- 26.5 degrees. If the attacker has a flanking token fitting the criteria then the attack will be given advantage. Obviously, other things can cancel that out per normal FGU rules. Gist is - you can ingore the math and simply experiment with a medium, large, and gargantuan critters and experiment around to "see" where things have advantage and where they do not. Warning messages will be given if an attack is outside of its reach though it will proceed normally (without advantage - kind of like out of ammo chat warning). Info message will tell in chat which creature it used to determine flanking - it will only mention the first one it finds. If you don't like my flanking rules - simply leave them off. Its for me - by me - the way I want it.

I got annoyed at having to constantly do flanking manually in my large scale battles where many tokens had flanking position.

SilentRuin
December 12th, 2022, 22:06
A free word of advice on Generic Actions extension flanking option. This is verbatim what I've told my players. DO NOT tell me "Oh, sorry I was targeting someone else - let me retarget so you will get flanking advantage".... The proper DM response to this will be - "you were not even flailing at this guy to distract him from the other attack. If you were standing their drooling or fighting someone else don't think for a SECOND you will get to suddenly retarget when it is NOT YOUR TURN. Standing next to someone twiddling your thumbs or attacking someone else is NOT going to get you made into a flanker for someone."

Of course you can do what you want. If you want to be WRONG ;)

SilentRuin
December 13th, 2022, 20:19
V1.29 - Bug - Messages to chat were not all broadcasting properly. Fixed. A side note - I've also had to add a KLUDGE factor in my cone calculations due to some lua true/false weirdness going on. Also the FGU function used to insure the attacker and flanker are within reach of the target does not return what I would expect. Result is half square distances past what I consider the reach limits will still act as if they are within reach. Nothing I can do about it so I will just live with it (in practical terms this means that flanking can be applied when the attacker or flanker are a little bit father out from target than expected).

Reason for this Kludge (https://www.fantasygrounds.com/forums/showthread.php?76098-FGU-lua-math-and-function-wierdness)

SilentRuin
December 20th, 2022, 17:48
V1.30 - Update - made sure attack/damage checks even if on never trigger if the CT entry effects has "IGNORECHECKS" somewhere in it. Also support "UNFLANKABLE" in CT entry effects which prevents token from being flanked.

Had some issues with BCEG effects allowing something dead to trigger damage on what killed them so made sure the checks (you could just turn them off) did not perform when something had an effect of "IGNORECHECKS". Also as BCEG had the keyword "UNFLANKABLE" in its effects list I just looked for it in the target to make sure flanking did not work on it.

SilentRuin
January 8th, 2023, 23:59
V1.31 - Update - check for flanking was changed from must be the same faction to must be different faction than target for flanking to take effect.

Lets me still get flanking when two things of differing factions are attacking a 3rd faction. Plus works all the normal ways it did.

SilentRuin
January 31st, 2023, 05:46
V1.32 - Bug - The feat "Crossbow Expert" was not being respected as it should have been for 5ft ranged attacks ignoring disadvantage. Fixed.

Somehow I lost the original check - fixed now.

SilentRuin
February 6th, 2023, 07:04
V1.33 - Bug - removed check for duplicate effects as the underlying code changed from only conditions to any effect.

SilentRuin
February 12th, 2023, 19:41
V1.34 - Update - changed all default options to what I want as I got tired of updating them all. Users can turn them off now if they don't want them.

SilentRuin
February 15th, 2023, 02:17
V1.35 - Update - implemented node and childList changes to code that SW wanted.

SilentRuin
April 2nd, 2023, 01:31
V1.36 - Update - new option "Max temp HP additive heal syntax supported" defaulted to "off". When "on" this will then for any [HEAL] operation it will match the description that comes with it for "search {max: X}" where X is the max temp HP allowed and also trigger all [HEAL] rolls to be additive and never exceed this max tempHP value. If no target is provided it will assume it is the same as the source (SELF which is a keyword not supported anywhere except in effects). This will only come into play if the description with that heal roll contains the syntax this is looking for. Examples are in forum thread.

https://www.fantasygrounds.com/forums/attachment.php?attachmentid=56923&d=1680391860

Likely only I will use this so you can safely ignore it.

SilentRuin
April 2nd, 2023, 21:15
V1.37 - Update - new option "Fumble/Crit Tables used with appended CT type" defaulted to "off". Can be set to "both", "fumble", or "criticalhit" which will cause those tables to look for the default table with the type of the combat tracker node added onto the name. For example, if a CT type of "Vehicle" has a critical hit and the option is "both" or "criticalhit" then the table used will be "Critical Hit Vehicle". When no table is found it will always default to the FGU House Rules logic. This option will always try to find that table with type added first if set before it defaults to original FGU House Rules behavior.

56946

SilentRuin
April 6th, 2023, 05:59
V1.39 - Bug - Range calculations would never work when a weapon name had parenthesis in it as it was not stripping them before comparison. Fixed.
Update - Range limitations will now be checked for the 5ft disadvantage penalty, the range low/high disadvantage penalty (advantage for saving throws), and stop processing when distance to target is farther than the high range for both attacks and saving throws that have range defined. For both attacks and saving throws the name shown in the roll description will be pulled out and used to find match in the PC/NPC DB node inventorylist (properties value), the PC powers (range value), the NPC actions (desc value), and the NPC spells (desc value) in order to determine the range limitations to apply to the distance between the source and target. A new effect "NORANGE" is now also supported in case you don't want to turn off the runtime range limitation flag but want certain CT entries immune to range limitations. The name of the range limitation flag option has been changed to "Range Limits/Advantages/Disadvantages applied".

SilentRuin
April 6th, 2023, 19:14
Some notes I should make about options that require each other in order to function:


"Range Limits/Advantages/Disadvantages applied" option requires the "Indicator: Verify Attack (restart app)" option (for attacks) and the "Indicator: Verify Power Save (restart app)" option (for saving throws) to be "on".

"Determine Flanking Advantage on Melee Attack" option requires the "Indicator: Verify Attack (restart app)" option to be "on".

"Max temp HP additive heal syntax supported" option requires the "Indicator: Verify Heal (restart app)" option to be "on".


Most of the options here are purely for conflicts so they can be turned off (with restart of app so the registered functions that cause a conflict are no longer registered). If no conflicts, and you want the checks to prevent things from processing in certain states - then just leave them on.

I run with these options:

https://www.fantasygrounds.com/forums/attachment.php?attachmentid=56989&d=1680801213

SilentRuin
April 7th, 2023, 18:08
https://www.youtube.com/watch?v=lCocZ9zwy4k

SilentRuin
April 7th, 2023, 20:52
V1.40 - Bug - Range name comparisons was not handling some names correctly. Fixed.

Names with a dash in it were not parsing correctly for name matching. Name cleanup now stops at first ")", "*", and " -".

SilentRuin
April 7th, 2023, 21:04
Note on range limits - they will not apply to things that have range but only do heal or damage actions (no attack or saving throw rolls). I can only thing of two in my world - Bacta Pack (healing in SW5E) and Magic Missiles (damage in PHB). I'm sure there are others. But these you have to manage range limits on your own.

SilentRuin
April 16th, 2023, 23:46
V1.41 - Bug - According to 5E rules only attacks (not power saves) check the 5ft rule, so no longer will check that for power saves. The PC powers will now check the descr for the range syntax first and if present override the range attribute definition. This way you can define a range low/high in the description for something no matter what it is.

webdove
April 21st, 2023, 23:11
Hi,
I just enabled "range limits/advantages/disadvantages". It gives disadvantage for daggers at 35'
"[Attack (R)] Dagger [14] -> [at Decrepit Skeleton 3] [MISS][BLOCKED BY ARMOR]"
"Disadvantage range for weapon Dagger(20/60) at 35"

However, I have an Aarakocra adjacent to the thrower and no disadvantage is applied for a thrown dagger.
[ATTACK (R)] Dagger [EFFECTS 1d12-6]
[Attack (R)] Dagger [13] -> [at Aarakocra] [HIT]

I do not have crossbow expert on the thrower.
Why should that be?

SilentRuin
April 21st, 2023, 23:24
Hi,
I just enabled "range limits/advantages/disadvantages". It gives disadvantage for daggers at 35'
"[Attack (R)] Dagger [14] -> [at Decrepit Skeleton 3] [MISS][BLOCKED BY ARMOR]"
"Disadvantage range for weapon Dagger(20/60) at 35"

However, I have an Aarakocra adjacent to the thrower and no disadvantage is applied for a thrown dagger.
[ATTACK (R)] Dagger [EFFECTS 1d12-6]
[Attack (R)] Dagger [13] -> [at Aarakocra] [HIT]

I do not have crossbow expert on the thrower.
Why should that be?

Are you asking why the dagger you have defined in in "Decrepit Skeleton 3" main page has a range 20/60 in description (meaning 35 will be DIS) or why your "Aarokocra" ranged dagger does not have a range in its description data?

Having dropped a dagger in actions in an NPC and seeing the daggers range (with EE) being put in that description and even deleted range out of description and left dagger in its inventory and it still respected it - I'm going to go with my almost always correct answer...

Users be crazy.

webdove
April 21st, 2023, 23:33
Poor phrasing on my part.
I was wondering why the dagger thrown at the adjacent aarakocra is not given disadvantage.

SilentRuin
April 21st, 2023, 23:40
Poor phrasing on my part.
I was wondering why the dagger thrown at the adjacent aarakocra is not given disadvantage.

Well looking at your dagger throws both are completely different. One has an effect of some sort so not enough info. The way you can figure it out is if there can only be one ADV or DIS setting resolved at the end - if both occur then they cancel out.

So what is going on there? I have no idea. Look to your effects being applied and work it out. And by effects I mean ANY - as obviously prone, unconscious, etc. have their own ramifications.

SilentRuin
April 21st, 2023, 23:42
Well looking at your dagger throws both are completely different. One has an effect of some sort so not enough info. The way you can figure it out is if there can only be one ADV or DIS setting resolved at the end - if both occur then they cancel out.

So what is going on there? I have no idea. Look to your effects being applied and work it out. And by effects I mean ANY - as obviously prone, unconscious, etc. have their own ramifications.

I will try and duplicate this as you now describe and see if something is off with 5ft rule.

webdove
April 21st, 2023, 23:45
Ok. I will provide more info when I get back to my computer.

SilentRuin
April 21st, 2023, 23:47
Ok. I will provide more info when I get back to my computer.

Yeah I can't duplicate your issue. Again - check that all effects are accounted for (and abilities if its crossbow expert or one of the others I support). I suspect its doing exactly what your telling it to do. Just figure out what that is.

webdove
April 22nd, 2023, 00:41
57115
57116
This is mysterious. Stjarna does not have any effects that look like they would prevent disadvantage for ranged in melee. Zer0 has "crossbow expert". Yet Stjarna has no disadv shooting in melee and Zer0 does. My game is about to start so I will have to look into this further with all other extensions unloaded tomorrow.

SilentRuin
April 22nd, 2023, 00:52
57115
57116
This is mysterious. Stjarna does not have any effects that look like they would prevent disadvantage for ranged in melee. Zer0 has "crossbow expert". Yet Stjarna has no disadv shooting in melee and Zer0 does. My game is about to start so I will have to look into this further with all other extensions unloaded tomorrow.

I'm not sure what I'm looking at here. For sure your not showing me the abilities tab - which is the ONLY thing that matters when finding if someone is a crossbow expert. Could care less if an effect states it or not.

It looks at the feat - literally in the DB - nothing else.

SilentRuin
April 22nd, 2023, 01:59
I think I've misunderstood your argument entirely as its just been pointed out to me by MrDDT and Ryan that the rule is anyone hostile within 5ft causes disadvantage of ranged attacks and I'm only doing the target.

SilentRuin
April 22nd, 2023, 06:39
Monday after some weekend testing will get a new Generic actions where ranged attacks with ANY token of a different faction within 5ft (and not incapacitated/Unconscious/Paralyzed) will get Disadvantage (was only doing target - will be fixed). And will fix Flanking to no longer requires the flanker to also be targeting the targeted token and to check not the same factions for target and same faction for source and flanker. The "Determine Flanking Advantage on Melee Attack" will also support off/ADV/+1/+2 and default to ADV.

SilentRuin
April 24th, 2023, 18:16
V1.42- Bug/Feature - Ranged attacks with ANY token of a different faction within 5ft (and not incapacitated/Unconscious/Paralyzed/Blinded and attacker is not set to always invisible) will get Disadvantage (was only doing target - fixed). Fixed Flanking to no longer requires the flanker to also be targeting the targeted token and to check not the same factions for target and same faction for source and flanker (and not incapacitated/Unconscious/Paralyzed/Blinded and attacker is not set to always invisible). The "Determine Flanking Advantage on Melee Attack" will now support off/ADV/+1/+2 and default to ADV.

MrDDT
April 24th, 2023, 19:35
Thanks for this update, really like the details you've done to keep this working so well with 5E rules.

SilentRuin
April 25th, 2023, 05:32
Fixed potential problem when flanking was set to no longer existing "on" setting - now is "off/ADV/+1/+2" possible settings. No version update.

Console error of 483 given because if previous setting was "on" for flanking that no longer exist. Fixed. Worked around in my LIVE game before fix by resetting the flanking option.

Xerophilex
April 25th, 2023, 16:15
Thanks for the update

SilentRuin
May 23rd, 2023, 22:00
V1.43 - Bug - Was not handling register function correctly so that others doing same register of them could be fully compatible. Fixed. (BCEG conflict resolution impacting ranged calcs)

Xerophilex
May 24th, 2023, 16:45
V1.43 - Bug - Was not handling register function correctly so that others doing same register of them could be fully compatible. Fixed. (BCEG conflict resolution impacting ranged calcs)

Appreciate the bug fix.

SilentRuin
July 10th, 2023, 06:15
New .ext delivered with Generic Actions (GenericActions.ext and now GenericActionsLayer.ext also)

Here is a snippet from .txt file:

New GenericActionsLayer.ext delivered with GenericActions.ext so it can be used in more than 5E -
"Feature: Generic Actions Layer"
(for the moment the 2E, 3.5E, 4E, 5E, PFRPG2, and SFRPG rulesets are supported)
The assets placed are very temporary and are not dynamic (do not move with anything).
The new option to place assets in the "Generic Actions" map layer will work in the following manner:

Assets that are under tokens are scaled at 2*token spacing and should be designed to take up the boundaries of the image (as map layers are always under tokens). Ranged assets are going to be 1 grid unit X range grid units in scale and have option to have different ones assigned at different ranges so these assets should also take that into consideration for design. Any melee should be along the right border of the defined boundry with space allowed for where a token would assume to be overlayed. Ranged will be simply stretched out along the width and should be moving left to right if wanting appearance of movement from source to target. Also, any source token with a ranged asset placed will be unseleted so that targeting arrows do not block the layer graphics.

Assets to be used by this feature will be accessed from the directories <FGU>/campaign/images/Generic Actions/* + <FGU>/images/Generic Actions/* including all sub-directories where all the asset names will be cached with relevant info (memory cache will only updated on a refresh asset button update) to be referenced by asset's name (minus any "_%d" range suffix). The lua pattern which does this is as follows:

local sSearchAsset = sResultAsset:gsub("[%w%p%s]*%/", "");
sName, sDist = string.match(sSearchAsset, "([%w%p%s]-)[%_%.]?(%d*)%.");
All names used to search this cache will be simplified (no punctuation or spaces) so the asset file name will be expected to match though the file can be of any case. Any duplicate names in cache will be wiped or last come first serve depending on order they are hit - so don't have duplicates. Name matching and placement will work in the following manner:

All of the following name matches below that have a range component in description can also have an "_%d" appended to end of the asset file name indicating a numeric range in the maps local units (not grid units). For example:

<FGU>/images/Generic Actions/DefaultRanged_05.webm
<FGU>/images/Generic Actions/DefaultRanged_15.webm
<FGU>/images/Generic Actions/DefaultRanged_30.webm
<FGU>/images/Generic Actions/DefaultRanged_60.webm
<FGU>/images/Generic Actions/DefaultRanged_90.webm
Where the range between source token and target token will find the closest value and apply that asset for ranged (run) placement. Of course the above is just an example and could be in the campaign/images/Generic Actions directory or any sub-directory under those respective directories (the code only cares about the asset files not where they may reside under those directories). The alphabetical order must be preserved for this to work - so if you have a range of 100 in there then all the others have to be 3 digits - like 005 etc.

ll of the following name matches will also search for the (AdvantagesPA.ext Advantages Extension) imageControl.getLastActivePtrs() function. If it is found and data is returned for the last stored pointer data (cone, circle, rectangle) then and it will append "PTRcone" or "PTRcircle" or "PTRsqr" to the current asset name being placed. If it finds the asset in the cache for the current last stored pointer shape it will place that asset on "Generic Actions Ptr" named layer (before the one going to "Generic Actions" layer is placed so that it will be overlayed with the original last pointer data - layers being layers after all) with the appropriate scale and orientation for the last stored pointer shape. To get rid of the last stored pointer shape YOU MUST use the clear last pointer data map toolbar button - otherwise the last shape placed (visible any longer or not) will be removed. All of this only works if you have "5E: Advantages Pointer Areas" extension loaded. Otherwise, ignore this option.

ActionAttack.onPostAttackResolve

- will find the name by the following lua pattern:

sMatchName = string.match(rRoll.sDesc, "%]([%w%p%s]-)%[");
or
sMatchName = string.match(rRoll.sDesc, "%]([%w%p%s]*)");
If their is a range between the source token and target token > than the source's reach then the name will have "Ranged" appended to the end of the name. Otherwise it will have "Melee" appended to the name. The name will then be simplified (all punctuation and spacing removed and lower cased). This final form of the name will then be used to access the cache of asset file names which will have their case lowered also. If no match in cache is found then "DefaultRanged" (if ranged per rules above) or "DefaultMelee" will be used to find cache. Otherwise nothing will be done if no match found. Any range match will scale ( width 1 grid unit, height - see code for math) and orient the asset and place it between the source token and target token on the "Generic Actions" map layer. Essentially this will be weapon or spell name its looking for most likely.

ActionPower.onPowerSave/ActionPower.onPowerCast (only 5E)

- will find the name by the same lua pattern searches in onPostAttackResolve.
The name will then be simplified (all punctuation and spacing removed and lower cased). This final form of the name will then be used to access the cache of asset file names which will have their case lowered also. If no match in cache is found then "DefaultPowerSave"/"DefaultPowerCast" will be used to find cache. Otherwise nothing will be done if no match found. Any range match will scale ( width 1 grid unit, height - see code for math) and orient the asset and place it between the source token and target token on the "Generic Actions" map layer. Essentially this will be spell name its looking for most likely. If this was a cast attack it will append "Cast" to end of name search.

ActionDamage.onDamage

- will find the name by the following lua pattern:

sMatchName = string.match(rRoll.sDesc, "%[TYPE:([%w%p%s]-)%(");
The name will then be simplified (all punctuation and spacing removed and lower cased). This final form of the name will then be used to access the cache of asset file names which will have their case lowered also. If no match in cache is found then "DefaultDamage" will be used to find cache. Otherwise nothing will be done if no match found. The asset will be placed on the target token at a scale of 2*token spacing. It will also append "DMGRun" to end of name (and default name) and do another asset search where any range match will scale ( width 1 grid unit, height - see code for math) and orient the asset and place it between the source and token on the "Generic Actions" map layer. This allows two assets to be placed if found - one over target and one on the run between source and target. Essentially this will be damage type name its looking for most likely.

ActionHeal.onHeal

- will find the name by the following lua pattern:

sMatchName = string.match(rRoll.sDesc, "%[HEAL%]([%w%p%s]*)");
The name will then be simplified (all punctuation and spacing removed and lower cased). This final form of the name will then be used to access the cache of asset file names which will have their case lowered also. If no match in cache is found then "DefaultHeal" will be used to find cache. Otherwise nothing will be done if no match found. The asset will be placed on the target token at a scale of 2*token spacing. It will also append "HealRun" to end of name (and default name) and do another asset search where any range match will scale ( width 1 grid unit, height - see code for math) and orient the asset and place it between the source and token on the "Generic Actions" map layer. This allows two assets to be placed if found - one over target and one on the run between source and target. Essentially this will be damage type name its looking for most likely.

EffectManager.addEffect

- will find the name by the following lua pattern:

sMatchName = string.match(rRoll.sDesc, "%[EFFECT] ([%w%p%s]*)");
The name will then be simplified (all punctuation and spacing removed and lower cased). This final form of the name will then be used to access the cache of asset file names which will have their case lowered also. If no match in cache is found then "DefaultPowerSave" will be used to find cache. Otherwise nothing will be done if no match found. The asset will be placed on the target token at a scale of 2*token spacing. Essentially this will be effect name its looking for most likely.

The "Generic Actions*" map layers may be removed manually if desired - but will also be automatically removed on the following calls:

CombatManager.showTurnMessage
Token.onClickDown
ActionsManager. performAction - only if following is true:
if not string.match(rRoll.sDesc, "%[SAVE%]([%w%p%s]*)") then
PowerActionManagerCore. performAction

Here is an example of my test file definitions and arbitrary directories under the required one plus a video that was more proof of concept (things have changed a bit but still mostly relevant and too lazy to make anther):

58140


https://www.youtube.com/watch?v=LoN6PGeeVhg

mordkhaan
July 10th, 2023, 07:54
I love it when you talk "codey"

But seriously, thank you so much for this.
Hope many more FGU GMs do too.

SilentRuin
July 10th, 2023, 15:45
I love it when you talk "codey"

But seriously, thank you so much for this.
Hope many more FGU GMs do too.

Ha. Likely nobody will even notice :) It's thoroughly guarded by a text wall after all :bandit:

Also, as the video mentions if your using .webm (VP8) assets you will see a random bug in FGU code. They are looking into it I'm informed... https://www.fantasygrounds.com/forums/showthread.php?78466-Image-addLayerPaintStamp-not-respecting-w-and-h-grid-unit-scaling&p=692436&viewfull=1#post692436

SilentRuin
July 10th, 2023, 15:50
Per usual, all my code is not in the vault and people are free to look/scavange what they need out of it if they need to do similar things.

SilentRuin
July 10th, 2023, 17:01
My plan is just to find webm resources and sounds for all the PC's actions in my current campaign and then as I build a session flesh out whatever they are to encounter with sounds and webm or as PCs aquire new actions also.

This where I gather my free webm resources and how I convert them to webm VP8...


For assets to be used in this extension I usually have to make sure the asset is modified to fit over a token which it will be behind and have asset on far right so when oriented will be facing target and out from behind the token - on runs between token that it is centered and in a left to right motion - not to mention filling as much space as possible.These are where my free webm animation for testing came from. Any not in webm VP8 format I use https://shotcut.org/download/...

- drop in video
- drag to into timeline
- open filters for timeline
- set chroma:simple filter, choose background with eye dropper that is to become transparent, drag distance bar to < ~3% (otherwise will find similar colors on actual video and transparent them)
- export file as webm VP8 alpha channel
- combine any other webm's or edit them in the manner this extension requires.

And any other editing I want to do including combining webm's. Usually filter "size, rotation, position", "crop: circle", and then "chroma:simple" for each source to be combined if more than one. Usually if I combine things I have to export the new webm VP8 alpha channel, reopen it, and apply the "chroma:simple" filter again to make background color transparent. I also use "crop: source" to get into a square of only what I want with export advanced making sure all my resolution and aspect ratio are all the same largest of the values (though I'm sure you could do different to get a square this is just simplest to preserve detail).

I use https://pixelied.com/convert/png-converter/png-to-webp to convert all my .jpg and .png without loss of detail into .webp to save space.

I use https://www.getpaint.net/download.html to edit the webp.

From Grim Press


rhagelstrom — 07/06/2023 3:31 PM
I signed up for their patreon https://jb2a.com/. Its the same stuff that you'll see in foundry. They also have a free set. Then there is their github where you can get stuff https://github.com/Jules-Bens-Aa/JB2A_DnD5e I don't know if that is just the free set or the full set I haven't really checked to figure it out but I think it might be full set. I'm not really sure on what their $ model is so that is why you'll just have to convert them yourself.

From FGU forums (rhagelstrom has 4 .mod files with webm VP8 assets)

https://www.fantasygrounds.com/forums/showthread.php?63775-extension-Spell-Tokens-Extension&p=690627&viewfull=1#post690627

From web


https://pixabay.com/videos/search/portal/

The files I generated from above resources (referenced above) and conversion and naming techniques and store in my "<FGU>/images/Generic Actions" directory are here (https://www.dropbox.com/scl/fi/e6cwybc5liqlbhhq30dsx/GenericActionsLayerImages.mod?rlkey=8c5opoqnpmrows po5o1swf1c4&dl=0) if you want to use them in testing (its a mod file you can put in your modules directory and will put the assets in the subdirectly where I expect to find them in the FGU assets window).

This is how I do sound to match those things...


https://www.fantasygrounds.com/forums/showthread.php?78105-How-to-use-the-new-sound-triggers-in-discord-using-the-free-VLC-media-player&p=690919&viewfull=1#post690919


Though obviously there are different places and ways to do everything I just described. That's just how I do it.

Jaegar
July 10th, 2023, 21:49
Looking forward to further developments!

Awesome!!!

Thank You!!

SilentRuin
July 11th, 2023, 21:40
GenericActionsLayers.ext - V1.1 - Feature - if you have AdvantagesPA.ext from Advantages Extension loaded then you will have access to the last stored pointer data (cone, circle, rectangle) - FGU provides no way to track or no what pointer shapes are currently in image so have to do this wierd logic to track it myself. As I already do it in this free extension I simply check to see if the function to retrieve it is available on the image. If it is found and data is returned for the last stored pointer data (cone, circle, rectangle) then and it will append "PTRcone" or "PTRcircle" or "PTRsqr" to the current asset name being placed. If it finds the asset in the cache for the current last stored pointer shape it will place that asset on "Generic Actions Ptr" named layer (before the one going to "Generic Actions" layer is placed so that it will be overlayed with the original named asset - layers being layers after all) with the appropriate scale and orientation for the last stored pointer shape. To get rid of the last stored pointer shape YOU MUST use the clear last pointer data map toolbar button - otherwise the last shape placed (visible any longer or not) will be removed. All of this only works if you have "5E: Advantages Pointer Areas" extension loaded. Otherwise, ignore this version update completely. See end of txt file for more details.

Its a TOOL - so obviously you can do what you want with it. The below example actually wipes out the default runs for fireball here I did - which you can tell I was showing a cone and my webm have almost nothing to do with matching what I'm doing :)

https://www.fantasygrounds.com/forums/attachment.php?attachmentid=58163&d=1689104869

SilentRuin
July 12th, 2023, 01:10
V1.2 - Feature - new option "Generic Action Layer debug sent to chat" defaulted to "off". When "on" this will send debug information to chat about name lookups and what assets they found if any.

Prevent questions on what is being looked up and what it found. Turn this on and find out for yourselves.

SilentRuin
July 12th, 2023, 06:49
[EDITED IMPORTANT NOTE]

wonderful found another undocumented function - this will solve my scaling issue I think.

local tImageSize = {};
tImageSize.w, tImageSize.h = Interface.getAssetSize(sAsset);

Removed my directions on scaling asset before use.

SilentRuin
July 12th, 2023, 21:10
GenericActionsLayer.ext - V1.3 - Bug/Feature - added corrected scaling for taking into account assets with differing width and height definitions - also added it to debug optional chat output for when FGU bug fails to scale or what the corrected scaling to new width and height values was, if any was done. Added a new option "Generic Action Layer scale for width and height of an asset under a token" defaulted to "2". This allows the previous hardcoded scaling for assets placed behind tokens to be set by user. Valid choices are 1.5, 2, 2.5, and 3. Previously this was 2 only.

This corrects a problem with assets that did not have the same height and width.

SilentRuin
July 13th, 2023, 02:43
Updated video...


https://www.youtube.com/watch?v=8GURalFTFSQ

SilentRuin
July 13th, 2023, 07:26
GenericActionsLayer.ext - V1.4 - Feature - full support of all effects with a hook that replaces the old one with EffectManger.addEffect.

This fully supports all effects added into the CT.

SilentRuin
July 13th, 2023, 17:13
I thought I'd try something and.. well... coolio :)

PC: "They're somewhere in that direction!!!!!"
(and no you can't see arrow until it enters vision of light source - dimly see in the dim then see it as it is close)

https://www.fantasygrounds.com/forums/attachment.php?attachmentid=58189&d=1689261177

SilentRuin
July 13th, 2023, 21:26
Here is a painful lesson I'll pass on. If you ever delete your layers yourself - insure your map layers are locked as if you hamhandedly delete the wrong layer your map can dissapear. If its in a module with no changes you can simply refresh it to recover. If however, you had any local changes or it was a local map. Woe be to you for not backing things up!!!

Lesson given.

SilentRuin
July 13th, 2023, 23:50
GenericActionsLayer.ext - V1.5 - Feature - another hook added for onPowerCast. Also, resolved pointer layers now being always on the bottom and added some logging for when no name match is found.