PDA

View Full Version : Assistant GM Extension (Fantasy Grounds Unity 5E Ruleset)



SilentRuin
February 17th, 2021, 18:19
Only in Forge.

Assistant GM (Fantasy Grounds Unity) (https://forge.fantasygrounds.com/shop/items/153/view)

Players can become an Assistant GM and fully control Monsters & NPCs in D&D 5e!
This stand-alone extension was created for 5th Edition Dungeons & Dragons, and its use in Fantasy Grounds allows a Game Master to grant full Monster & NPC control to any number of Assistant Game Masters or share monsters individually so players can easily control movement, targeting, and abilities.

This extension unlocks the following functions:


Assign one or more players an Assistant GM role, which unlocks:


Control of a Monster’s and NPC’s: actions, stats, movement, and abilities
End a Monster’s or NPC’s turn, switching to the next actor in combat

Grant Monster & NPC access on a monster-by-monster basis
Clear all defined users and access to all shared NPC access for everything in campaign.


Network problems can reek havoc with this - as it can with anything else in FGU. Make sure you actually have given ownership to a player - combat groups will have ability to hover over CT link and show who owns it. I can't count how many times I thought I dragged the CT link over the players portrait and dropped it in giving them ownership or Granting NPC access to a user only to find something did not actually work due to network or mouse lag of actually grabbing the link.

Also when you use the Clear All button remember it will remove all ownerships defined and clear the list of current logged in players. To recover the selection list you will need to have them erase their logged in PC and reselect it. Also, best to have players close maps and combat tracker before you do Clear All if you have a lot of owned NPCs ( can be up to a minute while all the clients maps flash and CT's get refreshed for each NPC - small numbers its not noticeable).

Updates:

[See .txt file for early updates and features]
V1.5 - Bug - missing init call and did not place limit in combobox definitions so that scroll bar would be used properly.

V1.6 - Feature - when the CT map token is double clicked it will insure the CT scrolls to a point in the window that it is showing that CT token's entry - if visible in the CT list.

V1.7 - Bug - added additional end turn check to resolve an incompatibility with another extension.

V1.8 - Bug - Added in client message to try and insure that any owned token change is selected on client after change. Trying to prevent a black screen for player.

V1.9 - Bug - Fixed where GrantNPCAccess button would only clear access of an owned NPC if it was a logged in user. In one of my sessions one of the players was out and another took over his PC and NPCs for that character but I had to recreate the NPCs in CT because I could not free up the usernames owned ones (because he was not logged in). Will now clear owned NPCs (that were assigned by AssistantGM) whether logged in or not when the GrantNPCAccess is turned off for that user.

V1.10 - Bug - AssistantGM would cause NPC's that used polymorphism to lose their ownership when switching back to original NPC by running through CT entries to remove ownership. Rewrite of portions of extension to make sure ownership removal was only done by those who owned the PC/NPC. Also guarded to make sure this logic was never called for a PC CT node. Hopefully this fixes my problems with losing ownership of map tokens for players.

V1.11 - Update - FGU update required changes to code.

V1.12 - Update - Support for Sir Motte's theme.

V1.13 - Update - FGU update required changes to code.

V1.14 - Update - FGU update required changes to code.

V1.15 - Bug - AssistantGM had major client CT initialization issues that slowed down the host when any client first brought up their CT with a huge number of shared NPCs that they had the potential to control. Rare for normal users to see but a killer on performance like big player controlled battles like I sometimes run. Fixed.

V1.16 - Update - added support for TokenHeight so that when you change ownership you keep the token height assigned.

V1.17 - Bug - FGU snuck a relocation of the target logic for ct clients - which resulted in the logic that allows owned NPCs to show targets on client ct's to be disabled. Fixed.

V1.18 - Update - added support for client combat tracker sheet links when they have ownership of the CT entry.

V1.19 - Bug - fixed some issues with V1.18 not displaying link correctly all the time (when combat tracker window was not up and other cases). Added Clear Button that will clear only the current User selected in the list - will do the same as clear all button but do it only for one user (remove all ownerships). When doing a clear all the list of users will now be replaced with the active logged on users (instead of empty).

V1.20 - Update - added ability to drop NPC CT entry onto the Clear button to remove NPCowner access to a single entry. If you accidentally click on the clear button when you do the drop and have an active user - then obviously you can kiss all that user's owned stuff goodbye as designed.

V1.21 - Update - implemented node and childList changes to code that SW wanted.

V1.22 - Update - supported vehicle class as much as possible in the same manner as npc class.

V1.23 - Bug - Assistant GM is allowing PC to get an NPC access control icon shown when it should not - fixed. Was not allowing PC sheet to be displayed from CT link - fixed. After an NPC was polymorphed it was stuck on assistant GM ownership even when cleared on host - fixed. Running a local client would have ownership detection issues - changed check to be with Session.UserName instead of User.getUserName() so the correct login user would be returned for comparison with owner when the client is running on same machine as host.

V1.24 - Bug - V1.23 tied the CT player side to the host CT and accidental wiped the link data when not displayed. This causes the link to be broken on host - this fixes it so it won't kill the link anymore. If you suffered from that brief window V1.23 was live just delete and replace any CT entries that lost their link.

V1.25 - Bug - This was super weird - basically I fixed it by trial and error so when a PC is added into CT on host it will now have correct CT entry (no assistant GM icon) and will not blank the name. Voodoo fix. Not even going to explain what I did as I don't understand why it fixed it to start with.

V1.26 - Bug - add new callback for CombatRecordManager.getRecordTypePostAddCallback("charsheet") to insure if someone defined this already I call theirs before I do my stuff. Prevent conflicts (maybe, as this is voodoo code now and if everyone setting these RecordType functions does not also do this type of thing my stuff will be stomped if the load order does not favor me - but at least now I won't be responsible for the stomping of anyone else).

V1.27 - Deprecated Code - Deprecated legacy functionality I still use has been moved directly into the extensions which removes the deprecated errors. The new CT (client/host) does not easily support what I need to do and don't have time to figure it out, so for now just sticking with old way of doing things until something makes me do it differently.

V1.28 - Bug - FGU underlying execution somehow shifted so that my end turn override didn't get applied anymore. Fixed.

V1.29 - Update - using local client confuses User.getIdentityOwner(sIdentity) calls so have to check for nil and then use sIdentity.sUser in order for it to get the local machine name (user). Only relevant if your using a local client like I do for testing. Will be part of next delivery version as this is just for me.

V1.30- Update/Bug - FGU no longer properly processes a double click in maps that are not simple (not much or any LOS/Lighting). Using middle mouse button to also do the onDoubleClick logic here.

43847


https://www.youtube.com/watch?v=892TL-gzJms

A homemade big battle to demo some things... A video made for my own entertainment...

https://youtu.be/ZHOex26Vjic

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 - provided for reference if needed.

SilentRuin
February 17th, 2021, 20:27
Grim Press posted a video.

The High Druid
February 17th, 2021, 21:42
. . . will I finally be able to offload maps to a player client on a second monitor?

SilentRuin
February 17th, 2021, 22:08
. . . will I finally be able to offload maps to a player client on a second monitor?

I'm afraid that sentence is not making sense to me. Forgetting my extension - which has everything to do with NPC control and nothing to do with maps - you can currently...

Make a map public to all players (right mouse over list of image and share).
Make a map shared to one player (drag image link over player portrait - you can share any DB thing (notes, images, NPCs, etc.))

So what are you saying? Sounds like what you want - you can do now.

Now, if you are saying you split the party and some are on one map - and some are on another... then maybe? Your still one host and all those messages are still flying around one chat log. Not sure that would be what you envision. If you are talking about a clean two hosts running with copies of the campaign that you offload to someone else - that is still how you would have to do it I'm afraid. Unless I'm not understanding - which is very possible :)

The High Druid
February 17th, 2021, 23:00
Not really. Ideally I want a full DM's map on the second screen, so the main screen is clear for the combat tracker, story entries, the second floor map I'm trying to fix while the players clear the first, etc (no, screen stretching doesn't work, different sized monitors with different resolutions). Thinking about it though, that would mean the assistant DM would at least need to be able to open locked doors, reveal secrets, add npc's (and players I guess) from combat tracker onto the map, and probably other things I'm not thinking of right now . . .

Basically all the stuff I can do in Foundry by logging in as a second DM.

SilentRuin
February 17th, 2021, 23:14
Not really. Ideally I want a full DM's map on the second screen, so the main screen is clear for the combat tracker, story entries, the second floor map I'm trying to fix while the players clear the first, etc (no, screen stretching doesn't work, different sized monitors with different resolutions). Thinking about it though, that would mean the assistant DM would at least need to be able to open locked doors, reveal secrets, add npc's (and players I guess) from combat tracker onto the map, and probably other things I'm not thinking of right now . . .

Basically all the stuff I can do in Foundry by logging in as a second DM.

Well let me spitball here on how I'd do it. Forget this extension for the moment. I use Combat Group extensions to pre setup every map/encounter the party might visit/revisit before any session I start. And while they are playing I use it to manage other things in CT as long as I remember to keep the combat group I'm working on invisible to them. That takes care of your first sentence. As far as the monitor, I suffer that pain also. I already have to bump up the scaleui to see things well and have one large monitor (waiting until Star Citizen comes out before I get new hardware - sigh). And nothing is going to solve the Host can only do it via engine code (no API to get out some low level parts of map stuff/priv) to do that last sentence. The only thing this extension will help you with is if you want someone do all the combat for you - you still have to have the map given out - placement of initial stuff (I do that with Combat Groups as I said) - but then they can fully run the encounter as far as running the NPCs (including editing them in CT if you need that). Gist is nothing I have will help you with that whole host only stuff in your last sentence. Just FYI.

Extension = RISK so always be careful on spending on anything you don't need - including on my stuff :)

FundPirate
February 18th, 2021, 08:10
Could we potentially have three Assistant DMs each running one or two NPCs each coming together in potential four-way free for all so that players would see alternative players/NPC suddenly pop onto the battlefield and having to convince them to be on 'their' side? If so I am assuming someone can make them invisible to the players til thhe AsstDM decides to have her NPCs reveal themselves?

SilentRuin
February 18th, 2021, 13:15
Could we potentially have three Assistant DMs each running one or two NPCs each coming together in potential four-way free for all so that players would see alternative players/NPC suddenly pop onto the battlefield and having to convince them to be on 'their' side? If so I am assuming someone can make them invisible to the players til thhe AsstDM decides to have her NPCs reveal themselves?

Yes. You can assign any number of players the ability to control NPCs. Of course only one can have read/write control of one at any time but that is why the red dice icons are in CT - if open on that entry you have control of that entry if not you do not. Having said all that - me testing this is not same as live testing it out in the wild so will have to see how extension holds up after live. But the intent is - yes.

SilentRuin
February 18th, 2021, 15:12
Could we potentially have three Assistant DMs each running one or two NPCs each coming together in potential four-way free for all so that players would see alternative players/NPC suddenly pop onto the battlefield and having to convince them to be on 'their' side? If so I am assuming someone can make them invisible to the players til thhe AsstDM decides to have her NPCs reveal themselves?

As I use Combat Groups to manage group visibility not sure how hard/easy that is to do in normal combat tracker - so there is that caveat of an unknown there as this extension does nothing with visibility. I.E. You are dealing with raw FGU for that.

SilentRuin
February 22nd, 2021, 16:02
Activated in DMsG - see Page 1. Let me know how it works.

SilentRuin
February 22nd, 2021, 23:51
My first use with my players in my COS campaign will happen tonight. About a half mile away they will see an encounter beginning to happen between Rictavio and his tiger and some vistani. At that point I plan to use combat groups to turn off the PC's party and turn on that group into the CT. Double click on the text field to bring up map and again to bring into view - make that group visible - and grant NPC rights to all my players. They will then "fight" the NPCs against each other as their actual PC's are either trying to reach them or just watching. We shall see how it works out :)

SilentRuin
February 23rd, 2021, 13:13
My first use with my players in my COS campaign will happen tonight. About a half mile away they will see an encounter beginning to happen between Rictavio and his tiger and some vistani. At that point I plan to use combat groups to turn off the PC's party and turn on that group into the CT. Double click on the text field to bring up map and again to bring into view - make that group visible - and grant NPC rights to all my players. They will then "fight" the NPCs against each other as their actual PC's are either trying to reach them or just watching. We shall see how it works out :)
This worked, but I’m going to pass on some lessons I learned.

Granting NPC access to every player on the board and telling them which NPCs they control works. Unfortunately a bunch of players simultaneously picking the wrong NPC to control or opening up others just to look will lock out the player who is going to play them. Also having several open up control at same time had one guy appear had released control on his CT but still had it from other players perspective. I had to have them both relinquish control and then the guy who appeared to have control click it on and off. Then the other guy got control when he tried again. I could have also just taken away NPC access to the one player and regiven to fix this I suspect. Or just nuked it all but then they would have to release their PC and reselect it to get back in logged in list not to mention have to reassign an NPC pack mule that was controlled by a player (drag CT link onto portrait).

I also had a player claim he could not get control (no conflict) and it turned out he was double clicking red dice icon turning it off and on.

I could have avoided this if I individually shared each NPC to each player (one guy controlled 5) but that’s permanent control till a clear all or unshaing them manually in NPC list. And would impinge on my laziness - and enhancing my laziness is the whole point.

Lesson learned was players are pesky.

Herding cats is often easier.

Daniel Fletcher
February 24th, 2021, 01:35
Thanks for the update: Yeah was wondering about other players sneaking at the NPCs even if you say not to. Maybe you can change it so the DM can assign the NPC. Not sure on that but right click the NPC and give out but again way more coding. I am liking it for large combat with friendly NPCs. Going to use it that way also.

SilentRuin
February 24th, 2021, 02:07
Thanks for the update: Yeah was wondering about other players sneaking at the NPCs even if you say not to. Maybe you can change it so the DM can assign the NPC. Not sure on that but right click the NPC and give out but again way more coding. I am liking it for large combat with friendly NPCs. Going to use it that way also.

Think I will be leaving it get hammered by users for a bit before I contemplate rocking the boat with more features. But I have thought about this and other stuff I’d like after using it. Just want to make sure it’s stable enough (see equipped effects why I’m currently gun shy right now) :)

GuardianLurker
March 7th, 2021, 03:54
OK, I've downloaded this, but haven't used this yet.

So let's reiterate my scenario - big huge climatic battle at Tiamat's Palace in Avernus. Consisting of (1) Tiamat's Privy Court, (2)-(6) The Courts of each of her consorts.
A Consort's Court consists of a) The Consort, a Legendary, Classed/Advanced, Dragon; b) 2 Ancient Dragons; c) 4 Old Dragons (upgraded Adults); d) 7 abishai
Tiamat's Privy Court consists of I) Tiamat; II) Tiamat's Grand High Priest of Law (classed/advanced ancient blue); III) Tiamat's Grand High Priest of Death (classed/advanced ancient black;IV) Tiamat's Grand High Priest of War (classed/advanced ancient green); V) Tiamat's Grand High Priest of Trickery (classed/advanced ancient white); VI) 2 Fang Dragons.

I think you can see why I want/need Assistant GMs.

From of the sounds of things, right now, I can grant Assistant GMs access to all the NPCs, but I can't limit specific assistant to specific factions (E.g. GM Assistant 1 to just the White Court). I have to rely on the discipline of my Assistants. (Shrug. I can work with that.)

Feature request: "Faction" support (which you've already nodded to).
Feature Request: Move it out from under 5e to a CoreRPG derived module.
Feature Request: User Manual/Reference Module built-in to the extension itself.

SilentRuin
March 7th, 2021, 06:09
OK, I've downloaded this, but haven't used this yet.

So let's reiterate my scenario - big huge climatic battle at Tiamat's Palace in Avernus. Consisting of (1) Tiamat's Privy Court, (2)-(6) The Courts of each of her consorts.
A Consort's Court consists of a) The Consort, a Legendary, Classed/Advanced, Dragon; b) 2 Ancient Dragons; c) 4 Old Dragons (upgraded Adults); d) 7 abishai
Tiamat's Privy Court consists of I) Tiamat; II) Tiamat's Grand High Priest of Law (classed/advanced ancient blue); III) Tiamat's Grand High Priest of Death (classed/advanced ancient black;IV) Tiamat's Grand High Priest of War (classed/advanced ancient green); V) Tiamat's Grand High Priest of Trickery (classed/advanced ancient white); VI) 2 Fang Dragons.

I think you can see why I want/need Assistant GMs.

From of the sounds of things, right now, I can grant Assistant GMs access to all the NPCs, but I can't limit specific assistant to specific factions (E.g. GM Assistant 1 to just the White Court). I have to rely on the discipline of my Assistants. (Shrug. I can work with that.)

Feature request: "Faction" support (which you've already nodded to).
Feature Request: Move it out from under 5e to a CoreRPG derived module.
Feature Request: User Manual/Reference Module built-in to the extension itself.

Faction request - why bother? You make your own factions - I had my guys basically take two NPC groups fighting each other - one guy had multiples. Described how I did that in this thread somewhere. You just tell them which they should control. While its like herding cats - once they are sorted out they are fine. Gist being as I've said before - if you can't trust your players you have bigger problems. No need for faction support - have them or don't - matters not to who controls the NPC. They can play the faction or not. I only have neutral/foe/friendly anyway - and attack and damage never care.

CoreRPG - I only use 5E. If some day I wish to play another ruleset I'll make sure it runs under it. Thing is - ruleset's be crazy and not all of them follow CoreRPG rules. Not sure - but think it is already CoreRPG in all the calls. Point being - extensions = RISK - and I won't risk people assuming I'll support something because I added the ruleset in. I have people who modify it for their own personal use as it is. Feel free.

Manual/Reference Module - I don't have one. This thread and the .txt file are it. You have to understand - I make these for me - and that is who my primary customer is. I don't think anyone will argue that I don't actively support my extensions more than most - because I actively use them. I sell them so that other people can use them. But the hurdle for getting me to add something into them - is that I want that for me. Several have gotten me to add things in because I wanted what they wanted.

Sorry, but none of these are something I want at the moment. Your free to try to convince me - but that is the task. I won't just add something in because people want it. I have to want it.

Grim Press will update the videos at some point but probably not until FG Forge comes out. Plus they complain I add to many things in constantly so the video would be out of date constantly.

If you have any bugs that were not "that's how it works" per commentary in this thread - let me know and If I can duplicate I'll fix it.

Minethulhu
March 11th, 2021, 07:25
I'm wondering if some combination of:

Assistant GM
Combat Groups

would allow spells like:

Summon <Whatever>
Conjure <Whatever>
Animate Object

to function more easily. Or would only Assistant GM and some pre-made encounters be enough?

I've made the mistake (?) of giving one of my players an item that can summon several raven swarms once daily only to realize I've just given myself extra work.

Hmm...if this works, since my group is way too big, I may let each player control a Raven swarm so they can at least do something while waiting. The summoner can give commands on their turn, but it's up to each player to interpret as they wish (this way I've got complete deniability if somebody else decides the creature will behave more like it's nature dictates rather than an automaton).

Edit: remembered the conjure spell...

SilentRuin
March 11th, 2021, 14:51
I'm wondering if some combination of:

Assistant GM
Combat Groups

would allow spells like:

Summon <Whatever>
Conjure <Whatever>
Animate Object

to function more easily. Or would only Assistant GM and some pre-made encounters be enough?

I've made the mistake (?) of giving one of my players an item that can summon several raven swarms once daily only to realize I've just given myself extra work.

Hmm...if this works, since my group is way too big, I may let each player control a Raven swarm so they can at least do something while waiting. The summoner can give commands on their turn, but it's up to each player to interpret as they wish (this way I've got complete deniability if somebody else decides the creature will behave more like it's nature dictates rather than an automaton).

Edit: remembered the conjure spell...

Basically I look at it as a sharing issue (see post here for share details) (https://www.fantasygrounds.com/forums/showthread.php?66295-Sharing-and-Public-DB-node-records-(the-things-on-the-right-side-of-your-app)&highlight=) where if I want global access to NPCs given - I'd grant rights in Assistant GM. I can only see doing that productively if you have someone running NPC's for you or you have all the players running a purely NPC vs NPC set of battles.

When using Assistant GM for players it becomes a bit like herding cats. Someone will always be opening control (blocking it) to take a peek at something or making a mistake on which they open for their control and can take a while to sort them out.

In what you describe I'd be doing the share via dragging the combat tracker entry link onto a portrait for the NPC raven you want a particular player to control. That way they actually only have those NPC's you've given them. If you have Assistant GM or polymorphism running then this will essentially give them full ownership of those NPC's and they can do whatever they want. But even without my extensions you can do a lot of what you want when you share in this way.

So personally, that is how I'd manage it - well actually - I'd never allow a situation where someone could just spam numerous NPC's. Bag of tricks throwing some single NPC is more my speed - or sharing a Pack animals like a mule (if you have inventories in NPCs) is about all I'd do.

As I described in here I have had my players sight a group of NPCs in the distance about to fight - then used Combat Groups to turn off all their PC's from combat tracker and turn on all the NPC's groups then granted them NPC control. Took a while to herd those cats to only control the things they were going to fight with but once done it was pretty easy for the two groups of NPCs to duke it out - even though one player had to control multiple NPCs.

Minethulhu
March 11th, 2021, 22:21
With FGC players were able to move friendly NPCs (I did this extensively as a kludge workaround for wildshape before I started using tons of extensions). It seems this is no longer the case with FGU since my players can no longer move the tokens of anything aside form their PC. Does your extension fix this?

NOTE: I always play with tokens unlocked and a ton of extensions, so maybe I'm doing something wrong above.

A few enhancement requests (obviously your call, but it can't hurt asking):

Combat Tracker
As a GM I much prefer doing my most things from the Combat Tracker. Giving an "assistant GM" access to more of the hidden combat tracker stuff would be nice. Especially the "Offense" section since I 100% prefer that as a GM vs. the NPC record sheet. Also nice would be the "Targets" icons (there's an extension called Player Targeting that does this for PCs in the combat tracker)

Bell on turn
Some of my players zone out during combat but amazingly respond to the ding from Fantasy Grounds when it's their turn. It would be nice if this worked for NPCs that have an assigned player to control them.

Minethulhu
March 11th, 2021, 22:36
Also...it wasn't obvious, but does Assistant GM allow players to click End Turn for the assigned NPC(s)?

SilentRuin
March 11th, 2021, 22:41
With FGC players were able to move friendly NPCs (I did this extensively as a kludge workaround for wildshape before I started using tons of extensions). It seems this is no longer the case with FGU since my players can no longer move the tokens of anything aside form their PC. Does your extension fix this?

NOTE: I always play with tokens unlocked and a ton of extensions, so maybe I'm doing something wrong above.

A few enhancement requests (obviously your call, but it can't hurt asking):

Combat Tracker
As a GM I much prefer doing my most things from the Combat Tracker. Giving an "assistant GM" access to more of the hidden combat tracker stuff would be nice. Especially the "Offense" section since I 100% prefer that as a GM vs. the NPC record sheet. Also nice would be the "Targets" icons (there's an extension called Player Targeting that does this for PCs in the combat tracker)

Bell on turn
Some of my players zone out during combat but amazingly respond to the ding from Fantasy Grounds when it's their turn. It would be nice if this worked for NPCs that have an assigned player to control them.

I know nothing about FGC - never used it never plan to - only FGU is relevant to me so can't answer that comparison. NPC's cannot be moved by players unless shared as I described - or given rights as Assistant GM. And no, you can never more more than your owned PC's unless you have that movement options set in FGU ("I think"). Check into it. It seems you are not familiar with FGU.

Given your questions here - have you ever used Assistant GM? Obviously the offense section is there for the player its just not called that - its the Assistant GM expanded page though more or less. As far as other people's extensions I don't use them. Nor do I plan on implementing more targeting options - if you have that extension and its compatible - have at it. The map targeting tools and combat tracker are plenty for me.

Bell on turn? That's an option in standard RAW FGU. I admit I've never tried it on an NPC or shared NPC as I don't run with it. Not sure if that option would work or not. But you should try it. Not something I really use.

Minethulhu
March 11th, 2021, 23:24
Thanks. Just had questions that I didn't see answered here or in the video. Will be grabbing this now...

SilentRuin
March 11th, 2021, 23:36
Thanks. Just had questions that I didn't see answered here or in the video. Will be grabbing this now...

As I state up front - videos are hopelessly out of date on all my extensions - you have to read the version updates to find out what things do now.

webdove
March 16th, 2021, 22:51
Hi Silent, Nice extension. I used it last Friday.

I was playing with it today and noticed a couple of things.
(Note, I normally exclude all PC's from party vision except for a single metacharacter affectionately named "PV" so fog of war is realistic. By default all non-friendlies are excluded.)

When I drag an NPC/CT token to a PC Portrait they gain shared vision from that NPC, access to its sheet by double clicking on the map NPC token, and the ability to move the NPC.

I discovered that if I toggle the "grant NPC access" button for that PC, it clears that access away from that PC. This is great because I never knew a way to undo inadvertent NPC access by a PC.

I read from the text file:

"you can drop an individual NPC from CT onto portrait of player and give them full control of that NPC movement, targeting(Map or CT), and access to NPC sheet to control whatever you wish".

What did "targeting (Map of CT)" mean? For me the PC can select the NPC, but control clicking while the NPC is selected only targets for the PC, not for the NPC.

Is there any way for that NPC control to include adding the die icon in the CT so the PC can open the NPC/CT entry and control it using CT controls?
(The NPC sheet can be clunking to use and takes up a lot of space.)

Thanks
Web

webdove
March 16th, 2021, 22:53
Ah. I bet you meant dragging a save or damage to a target rather than selecting a target.

SilentRuin
March 16th, 2021, 22:59
Hi Silent, Nice extension. I used it last Friday.

I was playing with it today and noticed a couple of things.
(Note, I normally exclude all PC's from party vision except for a single metacharacter affectionately named "PV" so fog of war is realistic. By default all non-friendlies are excluded.)

When I drag an NPC/CT token to a PC Portrait they gain shared vision from that NPC, access to its sheet by double clicking on the map NPC token, and the ability to move the NPC.

I discovered that if I toggle the "grant NPC access" button for that PC, it clears that access away from that PC. This is great because I never knew a way to undo inadvertent NPC access by a PC.

I read from the text file:

"you can drop an individual NPC from CT onto portrait of player and give them full control of that NPC movement, targeting(Map or CT), and access to NPC sheet to control whatever you wish".

What did "targeting (Map of CT)" mean? For me the PC can select the NPC, but control clicking while the NPC is selected only targets for the PC, not for the NPC.

Is there any way for that NPC control to include adding the die icon in the CT so the PC can open the NPC/CT entry and control it using CT controls?
(The NPC sheet can be clunking to use and takes up a lot of space.)

Thanks
Web

If you log in as a player you should see the entire CT NPC set of powers just like you would on attack in your host CT - unless you set it invisible (as player side has that option). Yeah that clear button (not the grant button) is all powerful and if you read .txt file you'd see where I mention it will wipe out all shared NPC connections. Now I had to do some special recognition stuff in DB and code to make sure you did not lose an NPC you were given control of just because you were also granted Assistant GM powers - so you can gain control and lose control without you actually losing control of previous shared ones. But hit the clear and everything is gone.

Don't forget whatever DB record you share to a player by dropping it over the portrait - it will be shown as shared in the DB records list and you can unshare it there also. NPC's are just one of the DB records you can share in that manner. Normal FGU stuff.

webdove
March 17th, 2021, 06:59
When I drag an NPC onto a PC portrait, the Player can double click on the NPC map icon to pull up the NPC sheet and they can drag attacks and such from the NPC sheet onto another character in the CT.
The Player does not see the NPC CT display that I as the GM sees. They cannot select targets for the NPC in the CT. They cannot see the NPC/CT list of attacks and spells. That was what I was hoping for.

They only way to get the full NPC/CT display is the select the Player in the Assistant GM selection window at the top of the CT and "Grant them NPC access" (to all visible NPCs). Then they can see all the NPC/CT features.

webdove
March 17th, 2021, 07:03
BTW, I would be thrilled to learn that I am just not pushing the correct buttons :)

SilentRuin
March 17th, 2021, 11:22
BTW, I would be thrilled to learn that I am just not pushing the correct buttons :)

I’m not sure what your expecting here. If you share an NPC via the portrait your giving ownership but it’s the same rules as normal player side NPC except you can click anything in sheet like polymorphism buttons or map parcel inventories. You for sure can target but normal FGU rules apply - as in must be your turn if player. The attack like player abilities are ONLY if you use assistant GM capabilities per description.

webdove
March 19th, 2021, 01:51
One suggestion that I would offer is that the buttons "add", "Delete from CT" and "Frieds" growth the Combat Tracker about 40% horizontally.
If they could be slid under the Group Name box immediately to their left it would make for a more compact Combat Tracker. (My screen space is somewhat limited).

webdove
March 19th, 2021, 02:09
Here is a quirk. It appears that clicking Grant NPC Access for any PC erases all memory of the map for all PCs.
Before clicking Grant
44993

After clicking Grant
44994

Clicking Grant with Party Vision disabled and with only a PV character in Party Vision causes the PV character to get kicked out of Party Vision.

SilentRuin
March 19th, 2021, 04:36
One suggestion that I would offer is that the buttons "add", "Delete from CT" and "Frieds" growth the Combat Tracker about 40% horizontally.
If they could be slid under the Group Name box immediately to their left it would make for a more compact Combat Tracker. (My screen space is somewhat limited).

Your talking about combat groups not assistant GM, this is Assistant GM thread - and the reason its only on one line is to keep it obvious what the active group selected is tied with and due to the pain it is to manage things in FGU windows. May consider it at some point in combat groups but not any time soon as I like it this way (one single line for all the functionality). For sure you could edit your version to change it though.

SilentRuin
March 19th, 2021, 04:39
Here is a quirk. It appears that clicking Grant NPC Access for any PC erases all memory of the map for all PCs.
Before clicking Grant
44993

After clicking Grant
44994

Clicking Grant with Party Vision disabled and with only a PV character in Party Vision causes the PV character to get kicked out of Party Vision.

I'm not sure what your telling me here. If you grant NPC access the whole CT is redone and updated on the players side - which will clear any active status likely. If you don't have a player active you will see nothing. Its the way FGU works. Activate the player token and you'll see their perspective again. Per usual FGU.

Unless I'm misunderstanding what your saying.

webdove
March 19th, 2021, 05:01
What I am observing is that the the PC's memory of the map that they have seen so far is lost when I click Grant.

You can see in the first image the screen view for the Player controlling the Minsc character to the SE of the nightmare with that character token not selected.
The gray regions are his memory of map areas he has seen in the past.

The second image is the view for that same character with the token unselected after Grant was pressed. The gray (memorized) areas from the previous image are now black (erased).

My players like being able to see in gray where they have been on the map and erasing that information will make them unhappy.

webdove
March 19th, 2021, 05:02
My apologies for cross posting.

SilentRuin
March 19th, 2021, 05:18
What I am observing is that the the PC's memory of the map that they have seen so far is lost when I click Grant.

You can see in the first image the screen view for the Player controlling the Minsc character to the SE of the nightmare with that character token not selected.
The gray regions are his memory of map areas he has seen in the past.

The second image is the view for that same character with the token unselected after Grant was pressed. The gray (memorized) areas from the previous image are now black (erased).

My players like being able to see in gray where they have been on the map and erasing that information will make them unhappy.

Ok let me explain the basic facts of FGU and visibility. The visibility is tied to the token, which is tied to the combat tracker entry. You can think of that data as being part of that combat tracker entry. Forget this extension. Go into combat tracker and remove everything and then put it all back in. Or just do it for one token/CT entry PC or NPC does not matter. What you will see is that the history view of that token is gone. In fact, you will see a black screen until the map is re-shared to a player if you remove their CT entry and remove the token from the map then put it back out there from the host side. This is because this is how visibility works in FGU. Active token is what you see the visible perspective of. No active token - black map. Re sharing the map will give them that token's viewpoint again as there is no way for them to select it in a black map. This is all without this extension. Its how it works.

So when this extension replaces the CT entries - or anything else does - then you are back to how FGU works when you delete a CT entry from the map and replace it while that player is still logged in. You will have to reshare the map. And no matter what, just like in FGU, the history tied to that old CT entry that was replaced is gone.

I can't "fix" how FGU works in that regard. It is what it is. Now I could kludge it probably to force some kind of post operation to activate the token or something for the logged in unit - but really I'm not going to want to mess with that basic FGU behavior. If they don't bother to insure the logged in token is activated when you replace its map and CT entry I'm not going to make it behave differently.

Also if your making an assistant GM - you share and leave it for them for the duration - you don't switch it on and off like a light switch. Or at least for the duration of that map.

webdove
March 19th, 2021, 13:17
I understand.

If you remove and replace a CT entry you eliminate that character's memory of the map.
In order to Grant NPC access you must remove and replace the CT entry because you cannot modify the CT entry object in place to accomplish this.

SilentRuin
March 22nd, 2021, 21:48
corrected spelling of AssistantGM.ext that I deliver to DMsG - irrelevant really as they rename the whole thing when they deliver it but in case it matters to people - the name is now spelled correctly.

webdove
March 25th, 2021, 20:23
I just had a problem with Party Vision that stopped when I disabled loading of Assistant GM. Party vision and movement was turned off. I had one character (PV) included in party vision and moved them around the map so PV built a party vision memory of everywhere the party had been. I then stopped both clients and restarted everything. I put PV back into Party Vision and shared the map. My two clients (PV and Dufus) could the the areas that PV had memorized into Party Vision during the previous run. When I clicked to open the combat tracker on the Dufus client and clicked the map there all Party Vision memory was erased both on Dufus and on PV. I repeated this experiment with Assistant GM disabled and Party Vision memory was saved across different runs of fantasy grounds. I wonder if Assistant GM is doing something with the PV character entry in the Combat Tracker (when Dufus opens his Combat Tracker) that is causing PV's memory of Party Vision to get erased.

SilentRuin
March 25th, 2021, 20:31
I just had a problem with Party Vision that stopped when I disabled loading of Assistant GM. Party vision and movement was turned off. I had one character (PV) included in party vision and moved them around the map so PV built a party vision memory of everywhere the party had been. I then stopped both clients and restarted everything. I put PV back into Party Vision and shared the map. My two clients (PV and Dufus) could the the areas that PV had memorized into Party Vision during the previous run. When I clicked to open the combat tracker on the Dufus client and clicked the map there all Party Vision memory was erased both on Dufus and on PV. I repeated this experiment with Assistant GM disabled and Party Vision memory was saved across different runs of fantasy grounds. I wonder if Assistant GM is doing something with the PV character entry in the Combat Tracker (when Dufus opens his Combat Tracker) that is causing PV's memory of Party Vision to get erased.

Didn't we just cover all this a few posts ago? LOS is a combat tracker (CT) stored thing. If you replace the CT entries your going to lose all that LOS remembered data. I'm positive we just discussed this above. Not sure where the disconnect is happening for you - as ANY LOS remembered data will be lost if you replace the CT entry. Party vision set or not. And assistant GM will do that when it has to reformat the CT on the player side. As we discussed - don't grant stuff on and off if you plan on having an assistant GM. And if you plan to let players run NPCs then don't do it when using the same map. But point is - do not use assistant GM if you want some player to retain past memory of a map. Period. Its an FGU thing as I told you - remove a CT entry and it removes its LOS/occluder/whatever memory with it - as far as I've been able to tell.

Here is a handy rule of thumb. If you have an Assistant GM to run NPCs for you grant them access and leave it alone forever. They have access - end of story. No memory will then be lost except for things they remove from the CT in normal ways - or via other extensions.

If you have players you want to run NPCs then don't plan on the LOS memory being retained after the point you do the grant off or on because that will reformat the CT on their side which likely includes removing and adding in the CT entries in a new version of the CT display. As in not the old one. As in no LOS remembered data in that one.

webdove
March 25th, 2021, 21:32
Yes I understood that granting assistant would replace a CT entry. I imagined that it would only affect the CT memory of the PC that was granted Assistant status.

What I had not realized is that just having the Assistant module loaded without changing any granting of assistant GM or modifying any Assistant GM settings wipes all Party Vision for all characters.

Thus even your suggestion "If you have an Assistant GM to run NPCs for you grant them access and leave it alone forever." will still result in wiped party vision the next time the game is loaded. That was in fact the experiment that I performed.

I am not being critical, I am just observing that Party Vision and Assistant GM are incompatible.

SilentRuin
March 25th, 2021, 21:59
Yes I understood that granting assistant would replace a CT entry. I imagined that it would only affect the CT memory of the PC that was granted Assistant status.

What I had not realized is that just having the Assistant module loaded without changing any granting of assistant GM or modifying any Assistant GM settings wipes all Party Vision for all characters.

Thus even your suggestion "If you have an Assistant GM to run NPCs for you grant them access and leave it alone forever." will still result in wiped party vision the next time the game is loaded. That was in fact the experiment that I performed.

I am not being critical, I am just observing that Party Vision and Assistant GM are incompatible.

Its how FGU works. If LOS data is tied to the CT entry - any removal of it will result in its loss. Not anything I'm going to manage as LOS data is notoriously tricky even for them. Its not party vision. Its the CT entry's individual recording of its LOS data.

I'm going to ask an expert to make sure my world view on the way FGU works with history data is correct - remove CT entry or change its map and the LOS history data is lost. If I can get that theory validated - I will come back and double down on this not being anything to do with party vision or anything else but what I've said it is. If not - I'll tell you what I found out.

SilentRuin
March 25th, 2021, 22:24
Ok this is according to Moon Wizard:


Token history is tied to a “tokeninstance”; which at the API level is part of an image value. FoW is tied to a tokeninstance. Therefore, since FoW is only relevant to the image value that the tokeninstance is part of; then there is no mechanism to track a historical FoW since the FoW data is only relevant to the current image. Plus, it would get huge data wise.
This is completely independent of the CT; which only saves a “link” to a tokeninstance using a image data path and token ID.
When a token is added/deleted; the CoreRPG code checks this “token link” to see if it is “linked” to a CT entry for actions, decorations, etc.

FoW data is huge; since it’s actually a geometric Boolean of all visible regions.
Plus, there is no where to store this information right now; and it could be a problem that additional database checks would need to be added for every image database node to know when images deleted in order to remove the token data to prevent crashes later.

So every time CT entry gets updated by AssistantGM and the tokeninstance gets copied to the new entry the FoW data is lost.

Nothing to do with party vision. Nothing to do with anything except the replacement of the CT window list and the data within it - which is mostly copied.

I asked to make sure there was no way to get this data when replacing a tokeninstance (which I do in several of my extensions not just this one - so do others I'm sure) and got this answer from Moon...


No; there is no way to retrieve this data; and even if we did; it would be a lot of data to pass through an API. Hundreds of points defined in floating point variables.

So, doubling down on my answer. This is how FGU works. If you want to use Assistant GM - or some of the other extensions that replace or update a tokeninstance? You will lose the FoW data. Like I said - its fragile data useful while in one map for one run. Though if you stay on that one map that history will still be there as long as nothing changes to that tokeninstance. And if your using Assistant GM for that player - it will.

And just went to the trouble of trying to not copy the tokeninstance and got a nasty reminder of why I had to copy it in the first place. Its the only way to inherit the new ownership from the CT entry. Hence, it is what it is and that's the way it has to be to work. If you want to preserve your FoW - do not grant access to Assistant GM - though that will only interfere with it after you start a new session or switch it back your FoW will be there for the time in between - do not change the tokeninstance in normal FGU by switching maps, removing the CT entry (which removes the tokeninstance) and probably a bunch of other ways in FGU and with other extensions.

webdove
March 26th, 2021, 01:23
So to gain control of a tokeninstance which contains its own FoW data you must construct a new one which has no FoW data.
Odd that it seems to be erasing all FoW data even though I have not activated Assistant on anything. Perhaps the client preemptively recreates all the tokeninstances when the client opens the CT?

Moon says: "the FoW data is only relevant to the current image" I parse that as: "the record of current (white) and memorized (gray) map appearance only pertains to the tokeninstance's current containing image (picture of the map)".
That is perfectly sensible.

He avoids maintaining a FoW history, but there is no need for historical FoW data here only current data not being lost.

The only way this could work is if you could create a new tokeninstance for so you inherit ownership (as you currently do) and then copy the linkage from the old tokeninstance to its FoW and transplant that copy into the new tokeninstance so it now has proper FoW to match the old tokeninstance then delete the old tokeninstance. You would now have a properly owned tokeninstance with the correct current FoW image data attached.

That does sound tricky though. It would require you to find the FoW structure attached to the old tokeninstance and I have been searching corerpg, 5E and refdoc and can find no reference to {LOS Sight Line-of-sight} anywhere. Perhaps Moon knows where it is hidden.

Thanks very much for helping me learn. I am working to convert Celestian's 2E DMGX code to 5E with an extension (having last written lisp code decades ago) and learning all of this is a real challenge without an overall explanatory document for all the classes, attributes, methods and their relationships.

SilentRuin
March 26th, 2021, 04:10
Honestly I've explained as best I can. If you have Assistant GM active for the player it will wipe out the FoW due to the fact it has to update the CT to be different from the default and apply ownerships. All your doing is describing the exact same thing I've described already. This will happen when you open the CT when active for first time - or when its up and you grant access on or off. If active. Its for the reasons I stated. I'm not sure what you mean by "preemptive" - if its active it HAS to update the CT which involves updating all the relevant entries and thus all the tokeninstances. As I've stated - again.

And yes I tested that the FoW is still there after the session restarts if the Assistant GM for that user is not active. It was still there.

webdove
March 26th, 2021, 05:00
You were right that some other extensions may be updating token instances and erasing FoW data. I saw it happen if my PV PC had a set of map FoW in Party Vision and I used the GM to flip PV out of and back into Party Vision. That wiped the Party Vision memory.

The workaround that I have found is if I never login a client in control of the PV character that I include in Party Vision. With that restriction I can keep all my extensions loaded (several are yours) and the PV token never loses its Party Vision memory of the map. I had been logging in as the PV client using my localhost connection when I was talking with you before.

Again, thanks for your help.

vaughnlannister
March 27th, 2021, 14:37
Hi, a small thing that annoys me somewhat as DM is that my players aren't able to drag their player token from the Combat Tracker onto the map, is that something that they would be able to do with assistant GM :)? Thanks!

SilentRuin
March 27th, 2021, 14:51
Hi, a small thing that annoys me somewhat as DM is that my players aren't able to drag their player token from the Combat Tracker onto the map, is that something that they would be able to do with assistant GM :)? Thanks!

No that is FGU behavior which I happen to agree with. Last thing one needs is a bunch of players screwing with the map by simply moving locked tokens to where ever they like simply by dragging into a new position. I'm not going to provide that and I hope they never allow it also!

vaughnlannister
March 27th, 2021, 16:08
Ok, yes that would be really bad :p, though you could use masking :P, and only reveal the area their allowed to drag them, though then you would have to remove the mask again XD, so ummh more clicks lol, if you use the green icon at the bottom of the Combat Tracker, its just on click-drag anyway ;). I'm always looking for little tweaks that give me less clicks during a sessions :), for instance, would a feature that allows to auto-share a map with the players, after you've dragged them onto the map something you would be interested in?

SilentRuin
March 27th, 2021, 16:54
Ok, yes that would be really bad :p, though you could use masking :P, and only reveal the area their allowed to drag them, though then you would have to remove the mask again XD, so ummh more clicks lol, if you use the green icon at the bottom of the Combat Tracker, its just on click-drag anyway ;). I'm always looking for little tweaks that give me less clicks during a sessions :), for instance, would a feature that allows to auto-share a map with the players, after you've dragged them onto the map something you would be interested in?

To many variables. People will not be ready to "share" a map right away without doing some prep work first in some cases right before they hand it out. I would not want to automate that - especially when lighting comes around.

SilentRuin
April 22nd, 2021, 15:29
While this video shows a lot of other stuff just for fun - it does have example of having a player's druid going "bad" and breaking from the party, attacking them with the help of a orc war band. They use assistant GM to play out the battle between the druid and orc band (player controlled) vs the rest of the party PC's controlled by the GM. Just and example of how this can work - but really - its up to your own imagination how you use it. I've also done multiple players controlling two completely different groups of NPC's battling each other (using combat groups to remove all the PC's from the combat tracker only leaving NPC's). It's a long boring video I posted in another thread to show generally what things can be done with extensions, modules, and themes - but it does show the use of Assistant GM in it as I described above.

This shows an example of a PC player turning evil and taking over an orc war band to fight PC's. (https://youtu.be/Rym-nbuh8E8?t=418)

SilentRuin
May 11th, 2021, 15:31
V1.1 - Feature - when dropping a CT entry onto player portrait to give ownership to the player the NPC will now allow the operations to show in CT just as if it were activated for Assistant GM. This means all things host normally can click on in CT to do attacks, etc. will be available to player who owns the NPC. As before, if you remove Assistant GM access it will preserve previous ownerships created via the portrait drops.

Basically, I was in my COS game and it became annoying that one of my players had to go through the main tab and find things they could do in a particular nasty NPC support character they were running that had a lot of things it could do. Made me think - why am I not letting the single ownership show the details in the players individually given NPCs like I do when they are granted access to all the NPCs? No reason I could think of. So I've added it in.

The effect of this is that if you have dropped a CT link onto a player portrait it will still get FULL ownership but will now also let them pick form the CT tracker for attacks, etc. just like they could if they had granted access to all NPC's and chosen one or more of them. If you grant access you will not be able to close NPCs in player CT that already had FULL ownerships via portrait drop and they will still be accessible after Grant NPC access has been taken away as they were given ownership through the other mechanism. Confused? To bad, that's what is going on. Here I'll toss in a few pictures.

The first picture shows a Mule and PugUgly in CT that were dropped over portrait to give access. The second picture shows that same CT after the player was granted NPC access. When that access is removed you'll be back to the first picture.
46515

46516

webdove
May 11th, 2021, 16:41
Will Polymorphism get the same feature?

SilentRuin
May 11th, 2021, 16:52
Will Polymorphism get the same feature?

Nope. While it has shared code for making the NPC fully controllable the CT client modifications are purely Assistant GM and will remain so. As I use all my extensions as essentially one beast, this has no effect on me. If you have polymorphism only you'll certainly still have full control of your NPC as you had before.

SirMotte
May 12th, 2021, 01:08
V1.1 - Feature - when dropping a CT entry onto player portrait to give ownership to the player the NPC will now allow the operations to show in CT just as if it were activated for Assistant GM. This means all things host normally can click on in CT to do attacks, etc. will be available to player who owns the NPC. As before, if you remove Assistant GM access it will preserve previous ownerships created via the portrait drops.

Basically, I was in my COS game and it became annoying that one of my players had to go through the main tab and find things they could do in a particular nasty NPC support character they were running that had a lot of things it could do. Made me think - why am I not letting the single ownership show the details in the players individually given NPCs like I do when they are granted access to all the NPCs? No reason I could think of. So I've added it in.

The effect of this is that if you have dropped a CT link onto a player portrait it will still get FULL ownership but will now also let them pick form the CT tracker for attacks, etc. just like they could if they had granted access to all NPC's and chosen one or more of them. If you grant access you will not be able to close NPCs in player CT that already had FULL ownerships via portrait drop and they will still be accessible after Grant NPC access has been taken away as they were given ownership through the other mechanism. Confused? To bad, that's what is going on. Here I'll toss in a few pictures.

The first picture shows a Mule and PugUgly in CT that were dropped over portrait to give access. The second picture shows that same CT after the player was granted NPC access. When that access is removed you'll be back to the first picture.
46515

46516

This is exactly what I wished for since I first experimented with the extension. Thanks! While I do trust my players to not screw things up, I felt a little uneasy granting full access all the time ;).

SilentRuin
May 26th, 2021, 03:22
V1.2 - BUG - Fixed stuttering recursive call problem that caused first click of visibility icon on player CT to not take and sometimes make the option go away when dealing with a shared NPC (via portrait drop). Fixed clearall.

SilentRuin
May 26th, 2021, 16:51
V1.3 - BUG - Fixed dropping NPC on player portrait will now automatically update players CT - same for clearing.

SilentRuin
May 26th, 2021, 21:50
Now, if I were player and wanted control of an NPC mule and/or an enemy Pugugly NPC - how would I do it? I'd have the host drag the NPC CT entry link I wanted to be controlled by the player and then drop it over that players portrait! Then on the players side... you'd have full control of the map and the sheet! See here is a picture of how the players sees those NPCs in its combat tracker (CT)... but... what is that? Can anyone see a strange difference from normal FGU players CT? Hmmmm.....
47125

Or if I open the CT visible icon on Pugugly...

47126

An example of my short version explanations on how player controlled NPC's work in my world ;)

SilentRuin
June 7th, 2021, 06:59
V1.4 - BUG - Polymorphism had timing issues with this extension which caused its ownership to get removed (could not move transformed NPC and other owner issues). Fixing this also allowed Polymorphed NPCs to show their full CT action list for use by player - just like in host.

SilentRuin
July 13th, 2021, 00:24
V1.5 - Bug - missing init call and did not place limit in combobox definitions so that scroll bar would be used properly.

SilentRuin
August 3rd, 2021, 22:28
I have a very good network and a decently powerful machine - so if you don't - don't recommend you trying something this big and this network heavy... See if I can setup something where I can theoretically be the ultimate in lazy and not do ANYTHING as a DM and a massive battle plays out.... On page 1 also.


https://youtu.be/ZHOex26Vjic

SilentRuin
August 7th, 2021, 01:56
V1.6 - Feature - when the CT map token is double clicked it will insure the CT scrolls to a point in the window that it is showing that CT token's entry - if visible in the CT list.

SilentRuin
September 6th, 2021, 19:45
V1.7 - Bug - added additional end turn check to resolve an incompatibility with another extension.

Specifically this was for Friends Zone extension.

SilentRuin
September 22nd, 2021, 01:14
V1.8 - Bug - Added in client message to try and insure that any owned token change is selected on client after change. Trying to prevent a black screen for player.

The black screen issue where every time I switched an owned NPC to a new map seems to be fixed in the one test I did with a remote user. Will have to see in my next COS game when we get back to it in a few weeks as it was 100% happening in the Ulrich Manor and Berez map I was switching between. Hopefully it resolves it.

SilentRuin
September 23rd, 2021, 19:12
The extension was updated as a printstack() statement was left over in the code. No version change. Get new .ext to get rid of spam in log file.

SilentRuin
October 19th, 2021, 03:54
Well finished my Massive ship boarding combat session for SW5e - this was the 2nd session dedicated to the one boarding action and will likely take up most of a 3rd session also. The grand experiment (for my group at least) is working and massive combat while time consuming can be fun. The only issue I have is that I have to click on and off ownership (assistant GM CT button on player side) sometimes when the map goes black and they cannot select the NPC. Same happens for PC but that requires a different work around - closing and reopening the map. Does anyone else suffer from this map blindness?

I note the workarounds (NPC - player clicks off and on ownership CT toggle; PC - close and reopen the map) here in case other are experiencing this. It does not happen all the time but it happens frequently enough to be noticed.

SilentRuin
October 19th, 2021, 17:15
Handy tip for large scale battles using Combat Groups and Assistant GM (from same game as previous post) - Player CT's are limited to what they see by only allowing them to see the same faction and/or the same group. In truly large battles I use the the same group option and just make sure the logged in PC owns any NPCs they control and that they are all in the same unique group. That way the player only sees what they control and can only see allies/enemies on the map (LOS/lighting) for targeting and such (not shared views). This keeps the game flowing much faster and does not give away things they do not see in large combat situations (keeps it simple for them). Unfortunately, the host still has to have all the groups visible on his CT so his CT is heavily populated (not simple). However, whenever an end turn occurs the PC/NPC is scrolled to be visible in the CT. Any double click on the CT token will center that token in the map. Also, anytime a map entry is double clicked the CT will be scrolled to have that entry visible. This is still a pain when you have 20 things visible in a CT display area and have to find that one you are looking for (not their turn - your looking at it to get to CT actions etc.). I find even if I have a host with a ton of entries - if I simply minimize the CT window area so only a few entries are shown at any time - then end turn or double clicking on map will get that entry quickly found in the 3-5 entries I have shown in my host window area - even if there are 50 or so entries currently visible in the CT. I was having trouble in my Monday game finding NPCs that had opportunity attacks on something where I could just click on the CT action (not their turn - buried somewhere in the CT list). It took me 5-10 seconds to find them in the 20 or so entries currently displayed on my host CT. But with a minimal window of 3-5 entries - I immediately found them after the double click insured they were displayed. Gist being - even if I have a zillion entries in the host CT I can just have only a few of them displayed as end turn will center any in CT and map and then if I double click on any in map they will be visible someplace in my CT area and if I double click any CT tokens they will be visible and centered in the map. This makes managing large scale battles with these extensions much easier and the game flows quickly.

SilentRuin
November 1st, 2021, 00:35
V1.9 - Bug - Fixed where GrantNPCAccess button would only clear access of an owned NPC if it was a logged in user. In one of my sessions one of the players was out and another took over his PC and NPCs for that character but I had to recreate the NPCs in CT because I could not free up the usernames owned ones (because he was not logged in). Will now clear owned NPCs (that were assigned by AssistantGM) whether logged in or not when the GrantNPCAccess is turned off for that user.

SilentRuin
November 18th, 2021, 05:13
V1.10 - Bug - AssistantGM would cause NPC's that used polymorphism to lose their ownership when switching back to original NPC by running through CT entries to remove ownership. Rewrite of portions of extension to make sure ownership removal was only done by those who owned the PC/NPC. Also guarded to make sure this logic was never called for a PC CT node. Hopefully this fixes my problems with losing ownership of map tokens for players.

Basically, in my last game I had random hard to pin down ownership issues with PCs and NPCs when going through map transitions or polymorphism. After about 24+ hours of debugging with tons of print statements and multiple test players (remote) I think I've got it "better". Gist is when doing a single player it always worked. With multiple players doing NPC polymorph and Grant NPC access and sharing NPC access directly I would see hard to pin down cases where ownership of map token for player was lost. I eventually trial and errored my way down to timing issues. I've reduced the amount of redundant check/setting that was happening for NPC sharing (dropping NPC on player portrait) and polymorphism to just the CT node getting updated that was actually changed. I've also made sure that no ownership removal will occur unless the CT entry is actually owned by the player currently having their CT updated. Gist is was doing a lot of overkill to make sure the CT entries were always up to date and updated for ownership which I think caused timing issues. Anyway, assuming it was something I could do something about I've tried to do something about it by reducing the amount of changes AssistantGM did to the players CT entries and the redundant checking and setting of ownership. Hopefully, my next session I won't see players losing control of their tokens forcing me to reshare them or open/close their maps.

SilentRuin
January 14th, 2022, 17:30
Note added to page 1:


Also when you use the Clear All button remember it will remove all ownerships defined and clear the list of current logged in players. To recover the selection list you will need to have them erase their logged in PC and reselect it. Also, best to have players close maps and combat tracker before you do Clear All if you have a lot of owned NPCs ( can be up to a minute while all the clients maps flash and CT's get refreshed for each NPC - small numbers its not noticeable).


This was added because I had made a demo copy of one of my live campaigns with around a 100 NPCs in combat tracker (combat groups) with 5 players each running around 3-4 extra NPCs (owned) and another player running all the enemy NPCs (20-30) with about 60 neutral NPCs nobody owned. When I got in my demo copy to show someone I cleared the character owners - logged in as one - and wondered why I could not control any NPCs after I had granted myself "Grant NPC Access". It was only after that I noticed chat filling up my window with warnings about all the NPCs were still owned by someone else and who they were (I had copied a live in progress campaign after all where ownerships were currently in use). So I went ahead and did a Clear All so I could redo it. Well let me tell you - when you trigger around a 100 NPCs to tell everyone their tokens (ownership) and CT entries need to refresh - it can take like a minute. With the clients maps all flashing as the ones they own are updated. And the host has no idea this is all going on because it does those changes and sends the packets to update out to the client fairly fast. So BEWARE. FGU does not let a host know the client communications queues are still processing stuff out and in clients. That's for anything not just my stuff. Usually if you have only around 10 owned things this is not really noticeable. But if you have a BIG complex battle like I do - then your going to notice it.

SilentRuin
March 3rd, 2022, 16:48
V1.11 - Update - FGU update required changes to code.

SilentRuin
July 12th, 2022, 22:45
Updated just in case for latest FGU delivery.

SilentRuin
August 3rd, 2022, 23:57
V1.12 - Update - Support for Sir Motte's theme.

SirMotte
August 3rd, 2022, 23:59
V1.12 - Update - Support for Sir Motte's theme.

Awesome :). Thanks a lot :)

SilentRuin
August 16th, 2022, 03:18
V1.13 - Update - FGU update required changes to code.

DMsG updated, Forge will be when Grim gets around to it.

SilentRuin
September 10th, 2022, 00:09
Heads up been gone a few weeks and found that recent FGU updates have once again trashed my extensions. This one 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 - likely I'll have to find this all out on my own but hopefully I can get some feedback that at least gives me a hint as to what is going on - otherwise its spending hours trying to parse the winmerge diffs from last ruleset and this one trying to figure out where/what/why the changes were made and how to get my stuff back to functioning.

Moon Wizard
September 10th, 2022, 01:05
I responded in Discord, where you posted your question. The changes aren't that complex, but objects have been moved for performance reasons.

Regards,
JPG

SilentRuin
September 10th, 2022, 01:07
I responded in Discord, where you posted your question. The changes aren't that complex, but objects have been moved for performance reasons.

Regards,
JPG

Will check thanks.

SilentRuin
September 10th, 2022, 22:00
V1.14 - Update - FGU update required changes to code.

FGU update changes broke it. I have kludged it to a working state. Don't use it unless you get this update. In DMsG - will be in Forge when Grim gets around to it.

SilentRuin
September 28th, 2022, 22:01
Something has changed somewhere in the last few months that causes Assistant GM to no longer release CT entries on client it has taken ownership of - I'll have to do a deep dive to figure out what is the issue now. Also in my large test case I use to test my stuff its also causing a huge slowdown that it did not used to suffer from due to to many token updates - I'll have to find that also though its less noticeable unless you have a ton of client controlled NPCs.

[Update] Appears the issue with not being able to unassign ownership is only when TokenHeight is active - somehow its reselecting the token and keeping the ownership that was just removed.

[Update] For now it appears the slow down is caused by the sheer number of shareable NPCs I have defined in the host CT in my mega test campaign, which it evidently wants to verify they are all the proper ownership when it first initializes the client CT (and its map if its up). For my test case this means I have to sit and watch the host spin for a few minutes to process the 2-300 CT entries and update their tokens (which is only way to get ownership set in a token from the DB entry that had ownership updated). After its updated though everything is fast as it should be. Just a real pain to initialize large cases - compounded by how many clients its got to do that for. So for now I'll have to think about it because it has to do these operations for the clients CT/map which are all local versions. When just a normal amount of shared NPCs then nobody will notice. I suspect over time FGU has added more smarts and its finally got slow enough I noticed it as more than an inconvenience. For now I'll let it sit as its rare anyone is going to have that many shareable NPCs. And if they do - go have everyone log in and get something to eat before they come back it should settle down by then.

SilentRuin
September 29th, 2022, 22:23
V1.15 - Bug - AssistantGM had major client CT initialization issues that slowed down the host when any client first brought up their CT with a huge number of shared NPCs that they had the potential to control. Rare for normal users to see but a killer on performance like big player controlled battles like I sometimes run. Fixed.

Decided to fix this annoyance. Updated in DMsG will be updated in Forge when Grim Press gets around to it.

SilentRuin
October 2nd, 2022, 04:05
V1.16 - Update - added support for TokenHeight so that when you change ownership you keep the token height assigned.

Reynard203
December 11th, 2022, 21:33
@SilentRuin Just for clarity, does this grant the "assistant GM" permission to unlock and edit the statblock/NPC record too?

Thanks.

SilentRuin
December 11th, 2022, 22:27
@SilentRuin Just for clarity, does this grant the "assistant GM" permission to unlock and edit the statblock/NPC record too?

Thanks.

Gives full ownership and whatever that means to FGU. The below pictures are using all the extensions I use so I will just describe it and you can pick out what has meaning for you. Below is an exact example of someone helping me run my next Mondays game as a player - they will do all the NPCs so I can be uber lazy DM. 4 other players will be normal characters.

In this case, I show you an Assistant GM dummy character (empty placeholder) which is a member of Rival Gang combat group and when active player will show only that group in its CT (combat group option). Assistant GM 2 dummy character (empty placeholder) which is a member of Rival Gang 2 combat group and when active player will show only that group in its CT (combat group option). My assistant will run both of these characters as shown below with Assistant GM currently active (Rival Gang in CT). The host has granted NPC access and he has taken ownership of everything in his CT by clicking special button icon in upper right of each entry he sees (which in this case is only Rival Gang). I then show him double clicking on the map token for Rival Gang Leader and unlocking and adding the word BUBBA to the end of it (he would need to have taken ownership which he has).

55417

I then have him switch to his other dummy char he has selected to run which is Assistant GM 2 which is tied to Rival Gang 2 combat group which is all that will show in CT. I can do this all as one dummy char or as many as I like when dividing things into groups to make them more manageable for him (I mean he controls mines but with Aura extension BCEG effects there is not anything he really has to do with them so I broke them out to keep his turns simpler and CT less cluttered).

55418

I include host's perspective so you can see how his CT shows all the combat groups I have visible and how the dummy chars are in CT with same combat groups as things I want that character to control though no player will actually see/do anything with those dummy characters (they are not even on map) plus turn ignores anything marked not visible (option). These were created with encounters then added into combat groups.

55419

I show you all this as I get asked a combination of questions like this and I can just point to this post now. Your specific answer is in the BUBBA example where they edited an NPC sheet they had taken ownership. If they release that ownership obviously they will no longer be able to do anything with the CT entry, map token, or NPC sheet.

SilentRuin
December 13th, 2022, 00:16
V1.17 - Bug - FGU snuck a relocation of the target logic for ct clients - which resulted in the logic that allows owned NPCs to show targets on client ct's to be disabled. Fixed.

Since mid august this has been bugged.

SilentRuin
December 25th, 2022, 20:10
V1.18 - Update - added support for client combat tracker sheet links when they have ownership of the CT entry.

My last complex large campaign I got supper annoyed that players could not always double click the map token to get the sheet for things they owned - now with the same link that host sports on its combat tracker - the client combat trackers will have one also (if they own the ct entry).

SilentRuin
December 26th, 2022, 02:40
While V1.18 works - it has some stuff I'm working through to fully fix. Apparently the owned NPC can get "lost" for the carrier/link info and you just have to un-own it and re-own it (toggle assistant GM ownership button on far right of NPC entry) to get the link or carrier data (if present) to appear. The PC links also seem to have some issues where they do not appear at all (though do sometimes when running from client on same host as machine - which is how I tested - but now I have an external user trying it and I see something is not updating).

In the end, you have more than you had with V1.18 - but still working out the kinks. As both carrier extension data and assistant GM extension data have client CT entry buttons dependent on ownership to display - the above workaround will have to be used (except for PCs which is another issue of its own).

SilentRuin
December 26th, 2022, 23:30
V1.19 - Bug - fixed some issues with V1.18 not displaying link correctly all the time (when combat tracker window was not up and other cases). Added Clear Button that will clear only the current User selected in the list - will do the same as clear all button but do it only for one user (remove all ownerships). When doing a clear all the list of users will now be replaced with the active logged on users (instead of empty).

SilentRuin
January 4th, 2023, 00:36
V1.20 - Update - added ability to drop NPC CT entry onto the Clear button to remove NPCowner access to a single entry. If you accidentally click on the clear button when you do the drop and have an active user - then obviously you can kiss all that user's owned stuff goodbye as designed.

Got annoyed in last night's game from having to switch around owners of NPCs from a player not able to make it and only way was to clear whole users owned npcs - when I just wanted to clear one. Now I can.

SilentRuin
February 15th, 2023, 01:24
V1.21 - Update - implemented node and childList changes to code that SW wanted.

SilentRuin
March 3rd, 2023, 00:16
V1.22 - Update - supported vehicle class as much as possible in the same manner as npc class.

webdove
March 3rd, 2023, 22:43
We noticed an odd thing last Friday with this extension. The assisting GM could operate the NPC properly in all respects except that the end-turn button on the bottom of the combat-tracker had no effect. Is there something special they need to do to end an NPC turn?

SilentRuin
March 4th, 2023, 04:22
We noticed an odd thing last Friday with this extension. The assisting GM could operate the NPC properly in all respects except that the end-turn button on the bottom of the combat-tracker had no effect. Is there something special they need to do to end an NPC turn?

No there shouldn't be. I'd try and see if you can duplicate it with no other extensions to rule out a conflict. I assume he ran with a dummy PC logged in and part of the combat tracker - or else more than end turn would might be affected as FGU is geared for clients to have a logged in PC. I admit I've never tried without logging in a PC in combat tracker (even a dummy one for the assistant GM running purely NPCs). All the demo's show that as required. If everything worked without that - well I'd be surprised for one - but who knows? Try it and see. Might surprise me and work without a logged in PC or not in the combat tracker. But I doubt it - as something has to have meaning for the combat tracker tools.

SilentRuin
March 4th, 2023, 22:57
V1.23 - Bug - Assistant GM is allowing PC to get an NPC access control icon shown when it should not - fixed. Was not allowing PC sheet to be displayed from CT link - fixed. After an NPC was polymorphed it was stuck on assistant GM ownership even when cleared on host - fixed. Running a local client would have ownership detection issues - changed check to be with Session.UserName instead of User.getUserName() so the correct login user would be returned for comparison with owner when the client is running on same machine as host.

SilentRuin
March 5th, 2023, 05:52
But in latest delivery that can blank the host link - will need to fix. You will see a broken link symbol on right of host CT entry.

SilentRuin
March 5th, 2023, 06:37
V1.24 - Bug - V1.23 tied the CT player side to the host CT and accidental wiped the link data when not displayed. This causes the link to be broken on host - this fixes it so it won't kill the link anymore. If you suffered from that brief window V1.23 was live just delete and replace any CT entries that lost their link.

SilentRuin
April 27th, 2023, 21:37
There are two bugs in Assistant GM currently I'm trying to figure out how to solve. One has evidently always been there - when I process a clients CT initial add of something the onInit functions for the buttons and things do not get the full PC data. The other is that the PC name will not be displayed after something is initially added into the CT only on the client. This is when the host adds something to CT (or something like Polymorphism adds something to CT). This is evidently caused by when I started supporting PC links in the client.

I have no solution for either of these yet. The work around for the first is if a PC looks like it has the Assistant GM icon on it (only NPCs should) just close and reopen the CT on the client. If the client's CT entry name is missing after you added something to the CT in the host (or something added it for you in code) then the name will remain blank until the client is shutdown and brought up.

I'll try and figure these out but as they are things happening down in FGU code someplace it may take a while to figure out where/how and then how to work around it.

SilentRuin
April 28th, 2023, 01:16
V1.25 - Bug - This was super weird - basically I fixed it by trial and error so when a PC is added into CT on host it will now have correct CT entry (no assistant GM icon) and will not blank the name. Voodoo fix. Not even going to explain what I did as I don't understand why it fixed it to start with.

See previous post for description of what was voodoo fixed.

SilentRuin
June 7th, 2023, 22:58
V1.26 - Bug - add new callback for CombatRecordManager.getRecordTypePostAddCallback("charsheet") to insure if someone defined this already I call theirs before I do my stuff. Prevent conflicts (maybe, as this is voodoo code now and if everyone setting these RecordType functions does not also do this type of thing my stuff will be stomped if the load order does not favor me - but at least now I won't be responsible for the stomping of anyone else).

A guess based on what someone told me was conflicting with dropping something in CT for 5E Advanced Effects extension.

SilentRuin
September 26th, 2023, 04:22
Note to self:

Something in FGU changed in the last month so that:

Owned NPC cannot have end turn done by player that owns it (previously worked fine).
Owned NPC that player executes a generic actions help operation says it has no target when it does (previously worked fine) - can't duplicate with local client.

SilentRuin
September 26th, 2023, 18:08
V1.28 - Bug - FGU underlying execution somehow shifted so that my end turn override didn't get applied anymore. Fixed.

SilentRuin
December 27th, 2023, 21:26
V1.30 - Update/Bug - FGU no longer properly processes a double click in maps that are not simple (not much or any LOS/Lighting). Using middle mouse button to also do the onDoubleClick logic here.