Maptool: Need Player and GM panels like Campaign panel

Created on 1 Sep 2019  Â·  35Comments  Â·  Source: RPTools/maptool

Is your feature request related to a problem? Please describe.

Yes, I've been using the Global window for GM macros because there is no GM window (panel) that stores GM macros in the campaign. The Campaign window is either visible to players or not, making it only useful for EITHER macros for the players OR macros for the GM.

Describe the solution you'd like
A clear and concise description of what you want to happen.

Rather than having a Campaign window with Campaign macros, I'd like to have a Player window with Campaign macros and a GM window with Campaign macros.

I would like players to only be able to see the Player (macro) window, and GMs to be able to see and use both windows.

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.

I am currently using the Global window for GM macros and the Campaign window for macros I've created for the players. I mitigate macro size limits for the Global window by using a lib:token.

Additional context
Add any other context or screenshots about the feature request here.

feature macro changes tested

Most helpful comment

How is a GM panel different than unchecking "share campaign macros" in Server Options? Asking for a friend...

Right now enabling share campaign macros makes the campaign panel a Player panel, and disabling it makes it a GM panel.

Once the GM and Player panels are properly separated I suggest we remove the share campaign macros option as it will serve no purpose.

All 35 comments

I'd like that!

I suggested a few weeks ago an option to hide macros from player (#544), but I think your proposal would work better.

Would rather see the ability to have an arbitrary number of Macro windows that the GM could designate as Player or GM and specify the title (and background color and ...).

But just leaving the Campaign window as is but adding a new GM macro window that is part of the campaign file would be good. Or it could just replace the Global window.

Having different background colors for GM vs Player macro windows would be helpful I think.

Good thoughts. I'm open to these suggestions.

I think I'd like to see the Global panel remain, it is useful for when you
have macros that are useful across multiple campaigns.

On Mon, Sep 2, 2019, 17:39 adventuremagic123 notifications@github.com
wrote:

Good thoughts. I'm open to these suggestions.

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/RPTools/maptool/issues/642?email_source=notifications&email_token=AAHB4MYOIVP2KW3E5ILEFYLQHWBY3A5CNFSM4ISV2US2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD5WSL6Q#issuecomment-527246842,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAHB4MY3RPCU64YXYOHCBQDQHWBY3ANCNFSM4ISV2USQ
.

Yes, that's true.

Should we keep the Campaign panel, but add a GM panel only visible to GMs?

Or, should we rename the Campaign panel to Campaign - Player or something of the sort?

Should we keep the Campaign panel, but add a GM panel only visible to GMs?

Definitely keep the Campaign panel. A GM only panel would be a huge improvement.

How is a GM panel different than unchecking "share campaign macros" in Server Options? Asking for a friend...

Seems like a "player" panel would be better? But is that for all players or per player?

I guess I'm saying since we already can turn the campaign panel in/off for players, it's currently more like a GM panel right now.

How is a GM panel different than unchecking "share campaign macros" in Server Options? Asking for a friend...

Right now enabling share campaign macros makes the campaign panel a Player panel, and disabling it makes it a GM panel.

Once the GM and Player panels are properly separated I suggest we remove the share campaign macros option as it will serve no purpose.

Check PR #758 for an implementation.

I think it's a good starting point. I can remove the share campaign macros if we agree the option is not needed anymore.

In this version, players can see the GM Campaign panel but it is blank to them - no macro are visible and it can't be interacted with.

GM view:

gmview

Player view:

playerview

Probably best to keep the name for the GM panel simple such as just "GM".

Did you know that you can do this: [r,macro("foo@Campaign"): ""] ? Having it be "Campaign (GM)" makes that more awkward and prone to entry errors. [r,macro("foo@Campaign (GM)"): ""]
Assuming it works that is.

Did you know that you can do this: [r,macro("foo@Campaign"): ""] ? Having it be "Campaign (GM)" makes that more awkward and prone to entry errors. [r,macro("foo@Campaign (GM)"): ""]
Assuming it works that is.

I actually had no idea. Wow.

With my current code, the following works for the GM panel:

[r,macro("foo@GmCampaign"): ""]

I guess GmCampaign should be changed to just Gm?

[r,macro("foo@GmCampaign"): ""]
Since that works I suppose no change is really needed unless others feel strongly about it one way or another. @JamzTheMan @aliasmask

Made some changes, now the panel is called "Gm" and is accessible with foo@Gm

I was ok with GmCampaign but suppose I'm ok with @GM as well.

I think it's less confusing if we have the same name gm for both the window and the @ macro access.

In this version, players can see the GM Campaign panel but it is blank to them - no macro are visible and it can't be interacted with.

I am a big fan of stuff unavailable to players, being grey'd out, unable to be clicked on altogether. Just eliminates confusion for new players, who sees all these foreign options. Just my 2 cents.

[edited] To be more precise, players not even able to open the GM Campaign Panel altogether.

I suppose the GM panel should also be closed if it was previously opened?

Greying out the option in the menu would also be nice, but it will take some work because the Windows menu does not currently support actions being disabled.

To be fair, if you select the server option to not share the campaign macros, the same thing happens, they can view the campaign panel but it's empty.

So the 2 act the same right now. Greying out the menu is one option but you can have it already open as well, then what? Close it and screw up my windows layout?

I'm totally good with them behaving the same re: open-able but not usable by Players.

If I wasn't clear I'm ok as it is as well.

I've never been a fan of referencing the panels like lib tokens supposedly from lib tokens. So, in a use case a player can run a GM only macro from a lib call if set up that way. I would be okay if there was no reference to the Campaign (GM) panel.

What I would find cool is being able to mark a group as GM only in the campaign window. That's kind of how I do things currently. I have the player macro up top then have a group for GM macros. I then put safeguards in the called code to prevent players from running.

So. If you remove the server option, you are telling me that my campaign panel is now exposed to the Player? What if I had that option checked and have like 200 macros in that panel, i now have to move them to the GM panel?

Removing the server option could "break" how people currently use it, no?

And you can't move all campaign to GM automatically because that breaks it the other way.

I thought we all agreed not to get rid of that option? It certainly wasn't checked in.

I've never been a fan of referencing the panels like lib tokens supposedly from lib tokens.

For a player to do that with a macro on the GM pane, they would have to know the name of the macro on the GM pane. If they did guess a name it shouldn't be allowed to run however.

So, in a use case a player can run a GM only macro from a lib call if set up that way.

Not really following that. If the GM sets up a Campaign macro that then calls a GM panel macro, it would be on the GM to either allow or disallow it if Campaign macros are available to the players.

What I would find cool is being able to mark a group as GM only in the campaign window.

It would be convenient to just check a box or whatever for macros instead of putting abort(isGM()) at the top.

I thought we all agreed not to get rid of that option? It certainly wasn't checked in.

My bad then, thought it was referenced again. Carry on.

@Merudo Players can execute GM macros if they can guess the name of it. Probably not a good thing.

@Phergus Players can also execute Campaign macros if they can guess the name of them when "Players Receive Campaign Macros" is disabled. It's been like that for quite a while.

However, in the case of Campaign macros, the macro is only considered trusted if the "Players Receive Campaign Macros" is enabled.

Similarly, I've set it up so that GM macros are only considered trusted if they are ran by the GM.

Maybe that's not enough? Should both GM and Campaign macros be outright disabled instead?

@Phergus Players can also execute Campaign macros if they can guess the name of them when "Players Receive Campaign Macros" is disabled. It's been like that for quite a while.

IMO, that is also not a good thing and two wrongs don't make a right. :) Now, I completely fail to see the point of not having players getting campaign macros so it doesn't really matter for my personal use. I would think though that GMs who don't share the campaign macros might actually expect them to not be accessible to the players.

However, in the case of Campaign macros, the macro is only considered trusted if the "Players Receive Campaign Macros" is enabled.

And can not be edited by the players. Right?

Maybe that's not enough? Should both GM and Campaign macros be outright disabled instead?

I think so but its also a pretty minor hole in things unless the GMs are sharing screenshots of their macro panels. Unless someone else feels strongly about this one way or the other we can just leave it as is.

Security holes, so much fun! :)

Although, most people probably don't even know that you could call macro's using that @campaign notation let alone try it when it's not shared. All in all I think it's a minor "security" issue as by far more people use @lib and secure with if !gm...

BUT, now that we have talked about it here, it's sort of public knowledge that such a thing is possible....

Question is, can you use any of the other functions and/or getInfo or anything to discover the macro names in these panels?

The use of @campaign/@global is actually documented on the wiki but I think it was in an out-of-the-way place.

Question is, can you use any of the other functions and/or getInfo or anything to discover the macro names in these panels?

Not that I found so far.

So I reckon that we can just call it done.

I see the panel separation more as a convenience rather than for security, so I don't think it needs to be air tight for security. Also, GMs may share portions or all of a framework with the players outside of the game, so guessing wouldn't be needed.

Agreed, it certainly did not make things worse security wise. I'm ok to call it done as well.

I enforce security inside the macros, using things like isGM().

I could use the "Visible to Players" setting to hide macros, but I didn't organize my lib:tokens that way. I have GM and in-game related macros in lib:utilities and character sheet macros in lib:charactersheet.

I'm not sure what the risk is that players could download and cheat by changing macros and running them locally. If I thought that was happening, I could make a simple global change to my macros before the game and detect the spoofing.

Previously, I had the die rolls sent to the GM as g: messages.

May not be able to do that now as I convert to HTML frames.

Wiki page Intro to Macro Writing updated.

Was this page helpful?
0 / 5 - 0 ratings