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

CombatMaster 2.0

1610252504
Victor B.
Pro
Sheet Author
API Scripter
Oh, that's totally different.  Hmmm....why would you adjust the turnorder like that?
1610253190

Edited 1610253479
Victor B.
Pro
Sheet Author
API Scripter
One thing I do is if I simply drag the token to top of turnorder within the turnoder, the marker shifts to token
Victor B. said: One thing I do is if I simply drag the token to top of turnorder within the turnoder, the marker shifts to token But then that shifts the token's initiative count, which I don't want to do. There are times when CM behaves weirdly and doesn't update the turn sequence. Tonight, I added a token to initiative at the end of a round and it messed the sequence up and went back to the top of initiative. Although now I'm thinking I should enable "preserve turn order" in group-init and that would solve issues. Let me try that next session...
1610254216
Victor B.
Pro
Sheet Author
API Scripter
Are you dragging across the turn boundary?  
Victor B. said: Are you dragging across the turn boundary?   I'm not sure I understand the question, Victor! :) I added the new token to combat by selecting it and running the !group-init command, at the end of the round. But doing so shifted the active turn back to the first token in the round, and I don't know why. 
1610295805

Edited 1610295855
Victor B.
Pro
Sheet Author
API Scripter
Group init had auto sort set on.  That's why I usually add tokens at end of a round, so it auto-sorts and sets active player in turnorder to first in next round.  It could be that when adding tokens to active turnorder using group init, the round counter is getting messed up in CM.  I'll take a look at that.  
Victor B. said: Group init had auto sort set on.  That's why I usually add tokens at end of a round, so it auto-sorts and sets active player in turnorder to first in next round.  It could be that when adding tokens to active turnorder using group init, the round counter is getting messed up in CM.  I'll take a look at that.   Thanks. A look would be helpful. I'm also running into a bug where CM isn't recognizing the first token in a combat sequence if I use group-init to start combat. Example: I have two PCs and two monsters. The players roll their own initiative. I add the two monsters to combat by selecting them and running group-init. All four creatures show up in the turn order window. The first creature in the turn sequence should be highlighted (with the red swirl) but isn't. Advancing combat moves to the second creature in the turn sequence, with the first creature relegated to Round 2. This doesn't happen when I select monsters and run the start combat command from within CM. I think there may be a problem currently with how CM is interacting with group-init.
1610456332

Edited 1610457327
Persephone  said: For your specific case, Jay, since you're already using CombatMaster, you could set up that marker as a condition and have that condition call the ChatSetAttr command. A lot of the conditions I have set up call a ChatSetAttr command directly and a TokenMod command thru a macro, and so far I've had no issues with commands not going through this way. Persephone (or anyone): what is the substitution string I need to enter in order to tie a ChatSetAttr command to a condition in Combat Master? I've never used this part of the script and I'm having a hard time wrapping my head around it, for some reason. This would be for an Exhaustion condition. Ideally, when I add Exhaustion to a creature, it adds the status marker and a number and then fires a ChatSetAttr call to increment the Exhaustion resource on the character sheet. Edit: I realize that CM may not be the way to go here. I would like to be able to add or remove exhaustion levels through CM, but what would happen if I added exhaustion to a creature that already had it? I don't want two exhaustion markers on the same token, just one marker (ideally with a number to indicate level of exhaustion). 
1610481015
Victor B.
Pro
Sheet Author
API Scripter
You could go either way.  There's custom icon sets that have multiple exhaustion markers.  In this case you would remove one exhaustion and replace with another using CM and the API call sets the exhaustion level.  Another option is to have a macro that either sets exhaustion or increments it and another that does the opposite.  
1610490425

Edited 1610495273
@Jay, assuming you're using the macro you shared in the other thread, !modbattr --sel --class_resource|+1 --fb-from @{selected|character_name} --fb-header Exhaustion --fb-content Your exhaustion level is now **_CUR0_**. &{template:default} {{name=Exhaustion Levels}} {{Lvl. 1=Disadvantage on ability and skill checks}} {{Lvl. 2=Speed halved}} {{Lvl. 3=Disadvantage on attack rolls and saving throws}} {{Lvl. 4=HP maximum halved}} {{Lvl. 5=Speed reduced to 0}} {{Lvl. 6=Death}} try these steps: If you don't have substitution strings already defined, go to CM setup—>Macro & API—>Add Substitution—>CharID, call it 'charidentifier' Make this a macro on it's own &{template:default} {{name=Exhaustion Levels}} {{Lvl. 1=Disadvantage on ability and skill checks}} {{Lvl. 2=Speed halved}} {{Lvl. 3=Disadvantage on attack rolls and saving throws}} {{Lvl. 4=HP maximum halved}} {{Lvl. 5=Speed reduced to 0}} {{Lvl. 6=Death}} Go to the condition's config menu and click Add API Add the previous macro's name in the Macro section (just the name, don't do #name) For the API section, paste this in {{!modbattr {{--charid charidentifier}} {{--class_resource|+1}} {{--fb-from @{selected|character_name}}} {{--fb-header Exhaustion}} {{--fb-content Your exhaustion level is now **_CUR0_**.}}}} If you're using separate conditions for each level of exhaustion, I suggest changing the command to !setattr and setting class_resource to a specific value instead of adding to it. Then in the Remove API config for the condition, have it call a command to set the attribute to 0 when it's removed. Then you might want to make a macro that invoke commands to first remove all exhaustion levels before setting the current one. That's what I'm doing in my game for conditions with multiple levels. Without this, you won't end up with multiple exhaustion markers on the token but when their turn announce come's up it would show all the exhaustion levels they've had, so I prefer to clear them all first. Here's an example of a macro I use for giving a character clumsy in PF2e: !cmaster --remove,condition=clumsy 1 ! !cmaster --remove,condition=clumsy 2 ! !cmaster --remove,condition=clumsy 3 ! !cmaster --remove,condition=clumsy 4 ! !cmaster --remove,condition=clumsy 5 ! !cmaster --add,condition=clumsy ?{Clumsy Value|1},duration=?{Rounds|1},direction=?{Indefinite|No,-1|Yes,0} ! EDIT: If your exhaustion conditions are all named Exhaustion 1, Exhaustion 2, etc. you can set up a macro like this and if it's higher than 1 it'll set the marker to show the matching number: !cmaster --remove,condition=exhaustion 1 ! !cmaster --remove,condition=exhaustion 2 ! !cmaster --remove,condition=exhaustion 3 ! !cmaster --remove,condition=exhaustion 4 ! !cmaster --remove,condition=exhaustion 5 ! !cmaster --remove,condition=exhaustion 6 ! !cmaster --add,condition=exhaustion ?{Exhaustion Level|1},duration=?{Exhaustion Level},direction=0 ! EDIT2: fixed macro syntax
@Persephone, thank you so much!! This is incredibly helpful. I will try this the next time I have a free moment.
You're welcome! =D
Persephone said: You're welcome! =D OK, I got one level working after changing --ids to --charid in the macro you modified. Thank you again! I'm going to keep plugging away at all the levels and hopefully get everything functional tonight.
Oops! Good catch. I mix up the syntax for TokenMod and ChatSetAttr sometimes ^^'
Persephone said: Oops! Good catch. I mix up the syntax for TokenMod and ChatSetAttr sometimes ^^' Yeah, that's what I figured. :) I also added a Charname substitution to make the fb-from command work. I'm so excited to be finally delving into this aspect of Combat Master!
Update @Persephone: so I got those exhaustion conditions going, with a bit of fiddling. Left off the remove API commands for all but Exhaustion 1, since in any other case I don't need ChatSetAttr telling the player his exhaustion is at 0 and then suddenly at another number with the ensuing Add API command. I'll use your "remove all then assign exhaustion" condition to modify exhaustion level unless the character's exhaustion would drop to 0 (trying to set it for 0 via Combat Master produced weird behavior and crashed the API). So if a character's exhaustion is at 1 and it needs to go down to zero, I just remove that condition via CM (actually fairly easy, since I have a "show token conditions" CM macro in my quick bar: I just show conditions, then trash-can that exhaustion).  One minor snag: still not sure how I'll handle player long rests. Currently, I have a modbattr command to decrement class_resource rolled into my player long rest macros. Doing that would decrement exhaustion on the character sheet but leave the wrong marker on the token. I'll probably just manually re-assign the new, post-long-rest exhaustion level after the party completes the long rest, since I can't think of a smoother way to do it. In any case, thanks so much for your help!
Jay R. said: Victor B. said: Group init had auto sort set on.  That's why I usually add tokens at end of a round, so it auto-sorts and sets active player in turnorder to first in next round.  It could be that when adding tokens to active turnorder using group init, the round counter is getting messed up in CM.  I'll take a look at that.   Thanks. A look would be helpful. I'm also running into a bug where CM isn't recognizing the first token in a combat sequence if I use group-init to start combat. Example: I have two PCs and two monsters. The players roll their own initiative. I add the two monsters to combat by selecting them and running group-init. All four creatures show up in the turn order window. The first creature in the turn sequence should be highlighted (with the red swirl) but isn't. Advancing combat moves to the second creature in the turn sequence, with the first creature relegated to Round 2. This doesn't happen when I select monsters and run the start combat command from within CM. I think there may be a problem currently with how CM is interacting with group-init. Hey Victor. Just bringing this bug (involving how Combat Master interacts with Group Initiative) to your attention in case you missed it. Thanks!
1610607668

Edited 1610608341
CatSwann said: @Victor B  That worked like a charm!  I have been playing with those substitutions all day to no effect, but it turned out I misinterpreted the API syntax instructions and was separating the API call and commands into individual instances of double curly brackets.  Once I corrected that, it worked great!  However, it is not letting me do the inverse for the Remove Api. {{!modattr {{--charid characterident}} {{--silent}} {{--ac!3}}}} works great to apply +3 to AC, but {{!modattr {{--charid characterident}} {{--silent}} {{--ac!-3}}}} throws this error: Errors Attribute ac!-3 is not number-valued for character Reed Marx. Attribute left unchanged   It looks like this is now a problem with ChatSetAttr not recognizing a negative modifier for AC for some reason. Or is there a character replacement for < - >? EDIT -- Figured it out!  The character replacement < ! for |> was not jiving with the < - > symbol.  Luckily, the vertical bar | character works fine. So my Add Api text ends up being: {{!modattr {{--charid characterident}} {{--silent}} {{--ac|3}}}} and my Remove Api text is: {{!modattr {{--charid characterident}} {{--silent}} {{--ac|-3}}}} Now to set up the Shield spell! Thanks for your help! Hi.  I was following this as I am having the same issue. I dont understand how I am to setup a character replacement string though. Im starting to think you need to understand code so you can use these APIs.  I thought I could use the APIs to avoid needing to learn code.  Frustration is getting real Anyway.  Any help would be appreciated the command I want to use is: !setattr --sel --blinded|1       <to add the condition to the character sheet> I tried setting the replacement string using the example in the help section as: !token-mod --api-as charidentifier --ids tokenidentifier --on showname then wrote my script in the condition API ADD config menu as: {{!setattr {{--charid charindentifier}} {{--blinded|1}}}} I get the same error as if I were using --sel. I get this error message:   Errors Invalid character id charidentifier. No target characters. You need to supply one of --all, --allgm, --sel, --allplayers, --charid, or --name. I am sure I have set the replacement wrong or missed a step entirely, but honestly, have no idea what Im doing here. please help
Wayde G. said: [...] I tried setting the replacement string using the example in the help section as: !token-mod --api-as charidentifier --ids tokenidentifier --on showname then wrote my script in the condition API ADD config menu as: {{!setattr {{--charid charindentifier }} {{--blinded|1}}}} Looks like you may have a typo in your substitution string, based on the example you gave. Try double checking that the substitution in the API ADD config matches the substitution you set up in the Macro & API config.
1610647911
Hi, sorry im a noob using api's but i have a question regarding the "caster&targets" and "Targets(Only)", they seem to do the exact same thing, they both put the condition in both the token selected as caster and the one/ones selected after the prompt shows up, they both work well, im just asking shouldnt the targets only put the condition on the target and not the caster? is it doing anything differently than caster and target? im saying because it would be nice to have the target only get applied the condition (for lets say a sanctuary spell) while the countdown corresponds to the caster and not the target. tldr: whats is the function of Targets(Only) in thwe targeted api section of the condition config menu? the info button shows nothing about it, also checked on the forum of the older version and  couldnt find anything. Thanks C:
@Saitama, those options are for any API and macro calls attached to the condition. Say you have a condition that uses a TokenMod command to double a token's size. If it's targeting is set to Caster & Targets, both the caster and all selected targets will be doubled in size. If it's set to Targets Only, the caster will not be affected. The status markers appear on both caster and targets either way.
1610651951
Persephone said: @Saitama, those options are for any API and macro calls attached to the condition. Say you have a condition that uses a TokenMod command to double a token's size. If it's targeting is set to Caster & Targets, both the caster and all selected targets will be doubled in size. If it's set to Targets Only, the caster will not be affected. The status markers appear on both caster and targets either way. Oh that makes much more sense, thank you very much! ñ_ñ
1610681709

Edited 1610682899
Persephone said: Wayde G. said: [...] I tried setting the replacement string using the example in the help section as: !token-mod --api-as charidentifier --ids tokenidentifier --on showname then wrote my script in the condition API ADD config menu as: {{!setattr {{--charid charindentifier }} {{--blinded|1}}}} Looks like you may have a typo in your substitution string, based on the example you gave. Try double checking that the substitution in the API ADD config matches the substitution you set up in the Macro & API config. ok, seeing that now.  hopefully that fixes it still getting this error message: Errors Invalid character id charidentifier. No target characters. You need to supply one of --all, --allgm, --sel, --allplayers, --charid, or --name.
1610688175

Edited 1610688684
Victor B.
Pro
Sheet Author
API Scripter
 Ok, you need to go to API&Macro in CM Config.  There choose character id and enter charidentifier.  Then it should work.  CM will then replace "charidentifier" in your API call with the actual character id from the selected tokens.  You can name charidentifer whatever you want.  cident, charident...whatever.  I made it open ended.  Just make sure it matches to what you have in your API call.  So !settattr --charid <charidentifer replaced with actual char id from selected token> --blinded|1 For other API calls, you can use API&Macro for player id (needed for token mod), token id, or char id.  This supports quite a few APIs
1610689064
Victor B. said:  Ok, you need to go to API&Macro in CM Config.  There choose character id and enter charidentifier.  Then it should work.  CM will then replace "charidentifier" in your API call with the actual character id from the selected tokens.  You can name charidentifer whatever you want.  cident, charident...whatever.  I made it open ended.  Just make sure it matches to what you have in your API call.  So !settattr --charid <charidentifer replaced with actual char id from selected token> --blinded|1 For other API calls, you can use API&Macro for player id (needed for token mod), token id, or char id.  This supports quite a few APIs As I thought, the issue was me not understanding how simple it is to set the substitution.  Thanks for your specific assistance. after 2 days playing....IT WORKS.....and Im so happy. At least I am learning as I go here. Again THANK YOU
1610689205

Edited 1610689295
Victor B.
Pro
Sheet Author
API Scripter
If this were "commerical" I'd go all in on help and editing and stuff like that.  So CM can be a bit rough.  Do read through the help files.  Each menu has a white circle info icon in far upper right corner of each menu containing a help file dedicated to that menu.  They can help.  
1610692038

Edited 1610692716
Victor B. said: If this were "commerical" I'd go all in on help and editing and stuff like that.  So CM can be a bit rough.  Do read through the help files.  Each menu has a white circle info icon in far upper right corner of each menu containing a help file dedicated to that menu.  They can help.   I was reading the help files, but was unclear on setting the substitute.  All the other help sections have been clear and very helpful one more thing: Im trying to turn off vision for the token that is blinded, but its not working. in the add APIs menu for macros I name the macro without the <#> the macro is in the main macros section (not on the character sheet) and written as: !token-mod --tokenid tokenidentifier --flip has_bright_light_vision the macro works outside of CM if i replace the substitute, but not within CM have I done this correctly? 
1610693410
Victor B.
Pro
Sheet Author
API Scripter
Ahh, you need another substitution string.  When launching token mod as a GM it works fine.  But when launching from another API Roll20 steps in and changes the launcher.  So you need this  !token-mod --set night_vision|on night_distance|300 - -api-as playeridentifier --ids tokenidentifier
1610733272

Edited 1610733402
Victor B. said: Ahh, you need another substitution string.  When launching token mod as a GM it works fine.  But when launching from another API Roll20 steps in and changes the launcher.  So you need this  !token-mod --set night_vision|on night_distance|300 - -api-as playeridentifier --ids tokenidentifier I'm confused by why this is setting night vision on at 300 feet.  I was hoping tu turn all vision off, to represent the character being blinded. I dont understand: --api-as playeridentifier --ids tokenidentifier and how that interacts with the token-mod script above I set another substitution for player ID as playeridentifier like I did for char ID and Token ID I know this is a volunteer effort for you and that this isn't your job, so I am under no impression of you having any obligation to help me or to provide promt responses.  I am completely grateful and appreciative of all the help you have, and may give to me.
1610739823

Edited 1610740884
Wayde G. said: Victor B. said: Ahh, you need another substitution string.  When launching token mod as a GM it works fine.  But when launching from another API Roll20 steps in and changes the launcher.  So you need this  !token-mod --set night_vision|on night_distance|300 - -api-as playeridentifier --ids tokenidentifier I'm confused by why this is setting night vision on at 300 feet.  I was hoping tu turn all vision off, to represent the character being blinded. I dont understand: --api-as playeridentifier --ids tokenidentifier and how that interacts with the token-mod script above I set another substitution for player ID as playeridentifier like I did for char ID and Token ID I know this is a volunteer effort for you and that this isn't your job, so I am under no impression of you having any obligation to help me or to provide promt responses.  I am completely grateful and appreciative of all the help you have, and may give to me. I think Victor intended to only highlight the --api-as playeridentifier part. TokenMod commands specifically need that to be used in CombatMaster, otherwise TokenMod will do nothing because it's getting a command from the API. So to show how you'd use it in the macro example you gave earlier, try changing it to this: !token-mod --api-as playeridentifier --ids tokenidentifier --flip has_bright_light_vision EDIT: Since changing that setting will hide the player's token from them, and won't restore nightvision if they have it, I recommend using these commands instead to represent blindness: This one when the condition is added: !token-mod --api-as playeridentifier --ids tokenidentifier --set light_losangle|0 --on has_limit_field_of_vision This one when the condition is removed: !token-mod --api-as playeridentifier --ids tokenidentifier --set light_losangle|360 --off has_limit_field_of_vision This will work for either Legacy DL or Updated DL, and will let the player see their token while hiding everything else. You may want to test this directly in the tokens' settings first to make sure their field of vision is set to 0 by default when ON, like this: then turn it back off and save the token as their default.
1610758429

Edited 1610758476
Persephone said: Wayde G. said: Victor B. said: Ahh, you need another substitution string.  When launching token mod as a GM it works fine.  But when launching from another API Roll20 steps in and changes the launcher.  So you need this  !token-mod --set night_vision|on night_distance|300 - -api-as playeridentifier --ids tokenidentifier I'm confused by why this is setting night vision on at 300 feet.  I was hoping tu turn all vision off, to represent the character being blinded. I dont understand: --api-as playeridentifier --ids tokenidentifier and how that interacts with the token-mod script above I set another substitution for player ID as playeridentifier like I did for char ID and Token ID I know this is a volunteer effort for you and that this isn't your job, so I am under no impression of you having any obligation to help me or to provide promt responses.  I am completely grateful and appreciative of all the help you have, and may give to me. I think Victor intended to only highlight the --api-as playeridentifier part. TokenMod commands specifically need that to be used in CombatMaster, otherwise TokenMod will do nothing because it's getting a command from the API. So to show how you'd use it in the macro example you gave earlier, try changing it to this: !token-mod --api-as playeridentifier --ids tokenidentifier --flip has_bright_light_vision EDIT: Since changing that setting will hide the player's token from them, and won't restore nightvision if they have it, I recommend using these commands instead to represent blindness: This one when the condition is added: !token-mod --api-as playeridentifier --ids tokenidentifier --set light_losangle|0 --on has_limit_field_of_vision This one when the condition is removed: !token-mod --api-as playeridentifier --ids tokenidentifier --set light_losangle|360 --off has_limit_field_of_vision This will work for either Legacy DL or Updated DL, and will let the player see their token while hiding everything else. You may want to test this directly in the tokens' settings first to make sure their field of vision is set to 0 by default when ON, like this: then turn it back off and save the token as their default. Thanks for the help. Believe it or not, I'm starting to learn some stuff. I just wrote a macro to give my players the options to end the grapple condition.  It works fine outside of CM.  Now im going to take on the challenge of making it a persistant macro in CM. I guess im not too old to learn new tricks, lol Oh, and I love the idea of limiting the range of vision!
1610771345
Victor B.
Pro
Sheet Author
API Scripter
--api-as is TheAarons brilliant way of allowing a player to launch token-mod.  Usually only GMs can launch APIs.  When an API calls another API, Roll20 for some reason steps in and changes the "who", which is the person who launched it.  So --API-AS can be used for GMs to allow players to launch token-mod.  In the case of CM I'm replacing the playeridentifier string with the player of the token that CM is executing the command against.  
1610852378
This is pretty minor (as in, if it's hard to change, it's not worth the time), but is there a way to end the tracker without flashing the MainMenu to my chat? I'm using !cmaster --turn,stop Did a minor glance at the code and it seems like sendMainMenu(who) is always called as part of stopCombat(). Is there a way to suppress this?
1610893169
Victor B.
Pro
Sheet Author
API Scripter
I'd have to add a nomenu to the command list like Roll20AM.  I'll consider adding it.  
1610922470

Edited 1610922730
Hello, I think I found a bug in your API :  I try to use two var in "Initiative Attr" so I input "initmod2,half_move", but afterward it only show "initmod2" in the config menu and after testing only "initmod2" was used for the initiative check. I check your code and replace : initAttributes = initiative.initiativeAttributes.split(',') by : initAttributes = initiative.initiativeAttributes.split('.') And it work like a charm with "initmod2.half_move" as input for "Initiative Attr"  I didn't find why it woudn't work with ","  ¯\_(ツ)_/¯ But with my change it work fine with "." as variable separator
1610944850

Edited 1610944921
Victor B.
Pro
Sheet Author
API Scripter
The comma delimited list is to support multiple attributes that make up an initiative roll.  In Warhammer, initiative is init_start + init_mod + init_adv (and a couple of others).  The comma separates these, splits them, pulls the values from the charsheet and then adds them together to make up the final initiative.  I used this type of init roll repeatedly in multiple warhammer games over a years time span.  The code definitely works and battle tested. Not sure why yours wasn't working.  Suspect there may have been trailing spaces after half_move causing it not to be found on the char sheet.  When you re-entered using the period, the trailing spaces went away.  
1610972657

Edited 1610975867
After adding CombatMaster to my game i started experimenting and some features just did not seem to work. It took me about an hour to find out that the turn markers are displayed on the 'current' page and not on the page that i as GM was experimenting on. Good to know: CombatMaster only works as expected on the page with the ribbon on it. 
Martijn S. said: After adding CombatMaster to my game i started experimenting and some features just did not seem to work. It took me about an hour to find out that the turn markers are displayed on the 'current' page and not on the page that i as GM was experimenting on. Good to know: CombatMaster only works as expected on the page with the ribbon on it.  LOL, welcome to the first rite of passage using CM! Literally every first-time user has made that mistake. 
@Victor, just noticed one of the bugs you fixed in 2.39 is back in 2.40, and there's a new bug. The old bug is ad-hoc conditions breaking if they don't include a message parameter. Using --show,assigned when a character has one crashes with the error "cannot get 'length' of undefined". The new bug is choosing a caster as the target of their own condition prevents the duration from decreasing.
1610997109
Victor B.
Pro
Sheet Author
API Scripter
Do you still have a version where we fixed that.  I'll grab it and do a source compare
1610997443

Edited 1611010693
I don't have the last version anymore, I switched to 2.40 a while ago and didn't notice the bugs until after I deleted 2.39. Sorry :/
am still running 2.39, if there is a way I can help with it ...
Thanks Alessandro! I also just realized I do in fact have 2.39 saved, sorry for the false alarm.
Testing out in 2.39, seems like the ad-hoc bug was still happening there, too. But it's being weirder than I realized. Here's how it's behaving in both 2.39 and 2.40: If the ad-hoc status either has no message parameter or has an empty message parameter, the every other time that character's conditions are shown either by --show,assigned or by their turn being announced, the API crashes with that "cannot read property 'length' of undefined" error. After restarting the API, their conditions are shown properly without any crashes, including the ad-hoc status. The crash happens again the second time their conditions are shown after the restart. As for the new bug with self-targeted duration, I've confirmed it is not an issue in 2.39, only in 2.40.
1611023894
Victor B.
Pro
Sheet Author
API Scripter
Every second time???? That's a new one.  I'll check it out
Could be coincidental, but that's just a pattern I noticed
1611091043
Hi all, inexperienced Roll20 user here.  Installed CM and it was working perfectly.  Just popped into my game and now it will not display the markers, jump to players on their turn or display turns in the chat.  Any ideas? 
MajorAlan said: Hi all, inexperienced Roll20 user here.  Installed CM and it was working perfectly.  Just popped into my game and now it will not display the markers, jump to players on their turn or display turns in the chat.  Any ideas?  Are you on the Player Ribbon page? CM won't work properly if you're not on that page.
1611093871

Edited 1611094001
Jay R. said: Are you on the Player Ribbon page? CM won't work properly if you're not on that page. Well, this fixed my issue, which i was also having. Thank you Jay R!!
1611132689
Kai
Pro
Sheet Author
MajorAlan said: Hi all, inexperienced Roll20 user here.  Installed CM and it was working perfectly.  Just popped into my game and now it will not display the markers, jump to players on their turn or display turns in the chat.  Any ideas?  That sounds as if you are not on the same page as the Player Ribbon?