MT1.3b87.04 Pathfinder + D&D3.5 Framework
Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice, lmarkus001
Forum rules
Discussion regarding lmarkus001's framework only. Other posts deleted without notice!
Discussion regarding lmarkus001's framework only. Other posts deleted without notice!
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
I notice you mentioning about tree trunks on the BASE map that are broken. Can you give some specifics?
GETTING STARTED WITH MAPTOOLS - TUTORIALS, DOCS, VIDEOS, TOOLS, ETC
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
DISCORD (the new MT forum!)
My stuff
Excel Tools: Table and Light editors
MT Tools: Bag of Tricks: Tools for Maptool, Dungeon Builder I, Dungeon Builder II,onMouseOverEvent.
Frameworks: Dark Heresy, Rogue Trader, Deathwatch, Black Crusade, Only War, SET Card Game, RoboRally
Wiki: Debugging Tutorial, Speed Up Your Macros, Working With Two CODE Levels, Shortcut Keys, Avoiding Stack Overflow, READ THIS
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Sorry, that was a confusing remark on my part. The last copy of the lmarkus' framework I had downloaded was missing the tree trunks from the base map (or else I somehow deleted them without knowing), so the version I had uploaded was also missing them. This new version and my new version now have them, and they seem to be fine. Keep up the awesome work.wolph42 wrote:I notice you mentioning about tree trunks on the BASE map that are broken. Can you give some specifics?
- Full Bleed
- Demigod
- Posts: 4736
- Joined: Sun Feb 25, 2007 11:53 am
- Location: FL
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Thanks for sharing this, if it only fixed the problem with Jamz 2.2 statblock importer I'd be happy! Will have to see how much else I can steal. It's unfortunate that so much of my personal framework has split away from lmarkus' original because when I first tried using it a long time ago I couldn't even tell how to get started properly.Dorn wrote:New Version of mine:
Pathfinder Empty Framework Modified
Some questions:
1) What exactly are the differences between the PF Empty Campaign and Pathfinder Empty NEW campaigns that you uploaded?
2) Is your 2.0 importer based on Jamz 2.2? (i.e. do we use it by pasting the info into the GM notes?)
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."
- JamzTheMan
- Great Wyrm
- Posts: 1872
- Joined: Mon May 10, 2010 12:59 pm
- Location: Chicagoland
- Contact:
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Dorn, great update, I'll have to take a peak. To bad your game broke up, looks like we have similar tastes in PF campaign macros, I would have collaborated more closely with you with my changes
FYI: On the treasure roll stuff, I'll have to take a look, but if a creature didn't have an Ecology section, then I believe I defaulted it to NPC Gear which is a different chart than Standard treasure. I also randomized it +/- 25% to give it some variety. From there I just did some funky math/randomizer to generate it into pp,gp,sp,cp,gems. I had defaulted it to SP because I use campaign coins so by coin "base" is sp vs gp. (get that question a lot)
I'll have to take a look at the statblock stuff too, looks like you beefed it up nicely.
FYI: On the treasure roll stuff, I'll have to take a look, but if a creature didn't have an Ecology section, then I believe I defaulted it to NPC Gear which is a different chart than Standard treasure. I also randomized it +/- 25% to give it some variety. From there I just did some funky math/randomizer to generate it into pp,gp,sp,cp,gems. I had defaulted it to SP because I use campaign coins so by coin "base" is sp vs gp. (get that question a lot)
I'll have to take a look at the statblock stuff too, looks like you beefed it up nicely.
-Jamz
____________________
Custom MapTool 1.4.x.x Fork: maptool.nerps.net
Custom TokenTool 2.0 Fork: tokentool.nerps.net
More information here: MapTool Nerps! Fork
____________________
Custom MapTool 1.4.x.x Fork: maptool.nerps.net
Custom TokenTool 2.0 Fork: tokentool.nerps.net
More information here: MapTool Nerps! Fork
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
You're welcome. The PF Empty Campaign was based on the last version of lmarkus' framework that I had. The NEW one is based on the version posted in this thread, so it has all the new updates.Full Bleed wrote:Thanks for sharing this, if it only fixed the problem with Jamz 2.2 statblock importer I'd be happy! Will have to see how much else I can steal. It's unfortunate that so much of my personal framework has split away from lmarkus' original because when I first tried using it a long time ago I couldn't even tell how to get started properly.
Some questions:
1) What exactly are the differences between the PF Empty Campaign and Pathfinder Empty NEW campaigns that you uploaded?
2) Is your 2.0 importer based on Jamz 2.2? (i.e. do we use it by pasting the info into the GM notes?)
My importer used some of the code from Jamz with fixes for the bugs mentioned earlier in this thread, but is still largely based on the old 1.9 importer. You still paste into a popup window.
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Sorry for not diving into this error a bit deeper, but whenever I "edit char" and close the core stats, I get the following error:
Is no-one else?
At first I thought it was because of some tokens I had imported from my campaign -- but I have tried setting up a blank token from scratch and I get the same error.
Truth be told, things look OK, but I'm not sure what is bombing out here.
Code: Select all
Could not execute the command: "s [H: ids = getSelected()] [H: abort(if(ids == "", 0, 1))] [H: tLib = "Lib:libDnD35Pathfinder" ] [H: tokenType = getPropertyType(ids)] [H: system = getLibProperty("system","Lib:GlobalsSRDPF")] [H, IF(system == "D&D3.5"): system = "DnD35"] [H, IF("Basic" == tokenType): setPropertyType(system,ids)] [H: cancel = input( "tChoice|Core (Level; Stats; BAB; Saves; DR/ER; Race; Feats), Speed/Movement, Skills, Weapons, Activate Mods (toggle effects), Equip Items, Edit Items, Clear All Mods, Armor (Legacy: It is better to use Worn Items), Temp Mods (Legacy: It is better to use Active Mods)|Elements to Edit|RADIO|ORIENT=V" )] [H: abort( cancel ) ] [SWITCH( tChoice ), CODE: case 0: { [MACRO("editMain@"+tLib): "Page=Main"] }; case 1: { [MACRO("editSpeed@"+tLib): "Page=Speed"] }; case 2: { [MACRO("editSkills@"+tLib): "Page=Skills"] }; case 3: { [MACRO("editWeapons@"+tLib): "Page=Weapons"] }; case 4: { [MACRO( "subMultiModToggle@"+tLib ): "" ] }; case 5: { [MACRO( "subCheckMods@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 6: { [MACRO( "subModEdit@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 7: { [MACRO("subClearAllMods@"+tLib): ""] }; case 8: { [MACRO("editArmorLegacy@"+tLib): "Page=Armor"] }; case 9: { [MACRO("editTempMods@"+tLib): "Page=Main"] }; case 10: { [H, MACRO("Spell Main@Lib:spells"): ""] }; case 11: { [H, MACRO("Spell Main@Lib:Magic"): ""] }; default: {} ]", exception = String index out of range: 963
At first I thought it was because of some tokens I had imported from my campaign -- but I have tried setting up a blank token from scratch and I get the same error.
Truth be told, things look OK, but I'm not sure what is bombing out here.
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Nope, sorry. Not running into that error at all. The only thing different in that error message from the actual macro is the "s" at the very beginning. That shouldn't be there, but it also shouldn't break the macro. I don't know if you've got a java version problem, a maptool version problem, or a problem with the specific token. Does it happen to all tokens everywhere, even the default ones on the utility map?dakuth wrote:Sorry for not diving into this error a bit deeper, but whenever I "edit char" and close the core stats, I get the following error:
Is no-one else?Code: Select all
Could not execute the command: "s [H: ids = getSelected()] [H: abort(if(ids == "", 0, 1))] [H: tLib = "Lib:libDnD35Pathfinder" ] [H: tokenType = getPropertyType(ids)] [H: system = getLibProperty("system","Lib:GlobalsSRDPF")] [H, IF(system == "D&D3.5"): system = "DnD35"] [H, IF("Basic" == tokenType): setPropertyType(system,ids)] [H: cancel = input( "tChoice|Core (Level; Stats; BAB; Saves; DR/ER; Race; Feats), Speed/Movement, Skills, Weapons, Activate Mods (toggle effects), Equip Items, Edit Items, Clear All Mods, Armor (Legacy: It is better to use Worn Items), Temp Mods (Legacy: It is better to use Active Mods)|Elements to Edit|RADIO|ORIENT=V" )] [H: abort( cancel ) ] [SWITCH( tChoice ), CODE: case 0: { [MACRO("editMain@"+tLib): "Page=Main"] }; case 1: { [MACRO("editSpeed@"+tLib): "Page=Speed"] }; case 2: { [MACRO("editSkills@"+tLib): "Page=Skills"] }; case 3: { [MACRO("editWeapons@"+tLib): "Page=Weapons"] }; case 4: { [MACRO( "subMultiModToggle@"+tLib ): "" ] }; case 5: { [MACRO( "subCheckMods@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 6: { [MACRO( "subModEdit@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 7: { [MACRO("subClearAllMods@"+tLib): ""] }; case 8: { [MACRO("editArmorLegacy@"+tLib): "Page=Armor"] }; case 9: { [MACRO("editTempMods@"+tLib): "Page=Main"] }; case 10: { [H, MACRO("Spell Main@Lib:spells"): ""] }; case 11: { [H, MACRO("Spell Main@Lib:Magic"): ""] }; default: {} ]", exception = String index out of range: 963
At first I thought it was because of some tokens I had imported from my campaign -- but I have tried setting up a blank token from scratch and I get the same error.
Truth be told, things look OK, but I'm not sure what is bombing out here.
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Yes, new tokens, tokens on the utility map (just hit edit char, choose core, click OK.) Also happens to my brother's computer.Dorn wrote:Nope, sorry. Not running into that error at all. The only thing different in that error message from the actual macro is the "s" at the very beginning. That shouldn't be there, but it also shouldn't break the macro. I don't know if you've got a java version problem, a maptool version problem, or a problem with the specific token. Does it happen to all tokens everywhere, even the default ones on the utility map?dakuth wrote:Sorry for not diving into this error a bit deeper, but whenever I "edit char" and close the core stats, I get the following error:
Is no-one else?Code: Select all
Could not execute the command: "s [H: ids = getSelected()] [H: abort(if(ids == "", 0, 1))] [H: tLib = "Lib:libDnD35Pathfinder" ] [H: tokenType = getPropertyType(ids)] [H: system = getLibProperty("system","Lib:GlobalsSRDPF")] [H, IF(system == "D&D3.5"): system = "DnD35"] [H, IF("Basic" == tokenType): setPropertyType(system,ids)] [H: cancel = input( "tChoice|Core (Level; Stats; BAB; Saves; DR/ER; Race; Feats), Speed/Movement, Skills, Weapons, Activate Mods (toggle effects), Equip Items, Edit Items, Clear All Mods, Armor (Legacy: It is better to use Worn Items), Temp Mods (Legacy: It is better to use Active Mods)|Elements to Edit|RADIO|ORIENT=V" )] [H: abort( cancel ) ] [SWITCH( tChoice ), CODE: case 0: { [MACRO("editMain@"+tLib): "Page=Main"] }; case 1: { [MACRO("editSpeed@"+tLib): "Page=Speed"] }; case 2: { [MACRO("editSkills@"+tLib): "Page=Skills"] }; case 3: { [MACRO("editWeapons@"+tLib): "Page=Weapons"] }; case 4: { [MACRO( "subMultiModToggle@"+tLib ): "" ] }; case 5: { [MACRO( "subCheckMods@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 6: { [MACRO( "subModEdit@"+tLib ): json.set( "{}", "modType", 1 ) ] }; case 7: { [MACRO("subClearAllMods@"+tLib): ""] }; case 8: { [MACRO("editArmorLegacy@"+tLib): "Page=Armor"] }; case 9: { [MACRO("editTempMods@"+tLib): "Page=Main"] }; case 10: { [H, MACRO("Spell Main@Lib:spells"): ""] }; case 11: { [H, MACRO("Spell Main@Lib:Magic"): ""] }; default: {} ]", exception = String index out of range: 963
At first I thought it was because of some tokens I had imported from my campaign -- but I have tried setting up a blank token from scratch and I get the same error.
Truth be told, things look OK, but I'm not sure what is bombing out here.
My maptools is 1.3.b89
My java is 6 update 32 (build 1.6.0_32-b05)
EDIT: and my brother's versions are:
maptools: 1.3.b89
Java: 7 update 21
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Looks like it's a bug with using b89 related to the "smilies bug" I've seen mentioned. This framework was built and tested on b87. Either you can use version b87 or just open your maptool preferences and turn off "insert smilies". That fixed it for me.dakuth wrote: Yes, new tokens, tokens on the utility map (just hit edit char, choose core, click OK.) Also happens to my brother's computer.
My maptools is 1.3.b89
My java is 6 update 32 (build 1.6.0_32-b05)
EDIT: and my brother's versions are:
maptools: 1.3.b89
Java: 7 update 21
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Absolutely perfect. Turned off smiliesDorn wrote:Looks like it's a bug with using b89 related to the "smilies bug" I've seen mentioned. This framework was built and tested on b87. Either you can use version b87 or just open your maptool preferences and turn off "insert smilies". That fixed it for me.dakuth wrote: Yes, new tokens, tokens on the utility map (just hit edit char, choose core, click OK.) Also happens to my brother's computer.
My maptools is 1.3.b89
My java is 6 update 32 (build 1.6.0_32-b05)
EDIT: and my brother's versions are:
maptools: 1.3.b89
Java: 7 update 21
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Dorn - Random Note - In your framework you need to edit the Blinded Button to point at "Blinded" and not "Blind"
G-9mm
G-9mm
---
Glock-9mm (Wgtn, NZ)
Shooting from the hip... Never the lip!
Glock-9mm (Wgtn, NZ)
Shooting from the hip... Never the lip!
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
Downloaded this tonight (June 1st) and while I'm waaay to tired to play around with it too much, I have run into the
"Illegal argument type java.lang.String, expecting java.math.BigDecimal"
error twice, once when I was trying to setup a new token using the Setup Blank macro, and then when I was trying to use the summon macro. The summon macro worked great the first time as did the timer set up, tried running it again and when I use the Finish Summon macro I get the BigDecimal Error. It will work if I reload the program so I'm not sure what could be causing it.
DJ
"Illegal argument type java.lang.String, expecting java.math.BigDecimal"
error twice, once when I was trying to setup a new token using the Setup Blank macro, and then when I was trying to use the summon macro. The summon macro worked great the first time as did the timer set up, tried running it again and when I use the Finish Summon macro I get the BigDecimal Error. It will work if I reload the program so I'm not sure what could be causing it.
DJ
- lmarkus001
- Great Wyrm
- Posts: 1867
- Joined: Sat Mar 29, 2008 12:30 am
- Location: Layfayette Hill, PA
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
You will need to include some details.Dead_Jim wrote:Downloaded this tonight (June 1st) and while I'm waaay to tired to play around with it too much, I have run into the
"Illegal argument type java.lang.String, expecting java.math.BigDecimal"
error twice, once when I was trying to setup a new token using the Setup Blank macro, and then when I was trying to use the summon macro. The summon macro worked great the first time as did the timer set up, tried running it again and when I use the Finish Summon macro I get the BigDecimal Error. It will work if I reload the program so I'm not sure what could be causing it.
DJ
1) Which version of MapTools
2) Using Java 6 or 7?
3) Which "this" are you referring too (this is an issue having a fork in the same thread).
4) What are your max memory and stack settings
Basically my framework functions stably. Your issue looks like a memory or Java version issue (like if you are running b87 on Java7). I recommend a stack size of 3MB for my framework (4 at the largest).
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
1) I'm using build 87
2) I have both java 6 and 7 installed but maptools uses the java 6. I have no problems running the last version of your framework.
3) I am having a problem getting a "Illegal argument type java.lang.String, expecting java.math.BigDecimal" error when running the summon macro's finish macro. I have noticed that it only becomes a problem after I try to summon XdY creatures and then continues to be an issues til I restart maptools.
4) my max memory size is 1G and I use stack size 3MB
Hope this helps, and sorry for not being more clear before. Thanks for everything you and everyone else did to make this amazing.
DJ
2) I have both java 6 and 7 installed but maptools uses the java 6. I have no problems running the last version of your framework.
3) I am having a problem getting a "Illegal argument type java.lang.String, expecting java.math.BigDecimal" error when running the summon macro's finish macro. I have noticed that it only becomes a problem after I try to summon XdY creatures and then continues to be an issues til I restart maptools.
4) my max memory size is 1G and I use stack size 3MB
Hope this helps, and sorry for not being more clear before. Thanks for everything you and everyone else did to make this amazing.
DJ
Re: MT1.3b87.04 PF+3.5 Framework (RELEASED... Latest Version
I'm unable to duplicate your problem, but it did point out a bug to me on the finalizing and setting up timers.
Lmarkus,
Lmarkus,
Spoiler
if you run the finalize macro on a group of summoned tokens all at once and choose to set up the timer, it bugs out because the currentToken is now a list. The same happens, of course, if you run the timer setup directly. It needs a foreach to run the timer setup on all of them.
Further, If you have a group selected, the timer setup is called multiple times (once for each selected, causing multiple loops of setup timers for each token), because the call to set the timer is within your counter in the LibRollAugment macro. If you just move this code
to the very end of the macro, it works fine. But you need to also remove the H option from those lines so the output can be seen when the timer setup is done.
So, all together...
Lastly, the "Setup Timer" button in the campaign macros needs to have "Apply to Selected Tokens" unchecked to avoid the same duplicate loop.
Code: Select all
[H: currentTokenList = getSelected()]
[H: tWinit = getInitiativeToken()]
[H, IF(tWinit == ""), TOKEN(tWinit): tCInit = 0; tCInit = getInitiative()]
[FOREACH(currentToken, currentTokenList, "<br>"), CODE: {
[H: switchToken(currentToken)]
[H: tName = listGet( token.name, 1, "--") ]
[H, IF( tName == "" ): tName = token.name; "" ]
[H: cancel=input(
'effectName | ' + tName + ' | * Spell / Effect Name | TEXT',
'Initiative |' + (tCInit + 0.001) + '| * Initiative | TEXT | WIDTH=5',
'Duration | 1 | * Duration in rounds | TEXT | WIDTH=2',
'Source',
'Description | | | TEXT | WIDTH=35',
'junk |* = REQUIRED|| LABEL | SPAN=TRUE'
)]
[H: abort(cancel)]
[H, IF( effectName == "" || effectName == "0"), CODE: {
[MACRO("LibTimerSetup@"+getMacroLocation()): ""]
};{}]
[H: Source = if(Source == 0, "", Source)]
[H: Description = if(Description == 0, "", Description)]
[H: StartRound = getInitiativeRound()]
[H: StartRound = if( StartRound > 0, StartRound, 1)]
[H: token.name = StartRound + Duration + "--" + effectName]
[H: token.label = if( Source == 0, "", Source)]
[H: addToInitiative()]
[H: token.init = Initiative ]
[H: bar.Timer = 1]
[H: setProperty("Source",Source,currentToken)]
[H: setProperty("Description",Description,currentToken)]
[H: setProperty("StartRound",StartRound,currentToken)]
[H: setProperty("Duration",Duration,currentToken)]
[H: setProperty("Initiative",Initiative,currentToken)]
[R,S,G: "<b>Setup Timer: </b>" + token.name]
}]
Code: Select all
[H, IF( makeTimer ), CODE: {
[H, MACRO("LibTimerSetup@Lib:libDnD35Pathfinder"): ""]
};{}]
So, all together...
Code: Select all
[H: tokenList = getSelected()]
[H: abort(if(tokenList == "", 0, 1))]
[H: numTList = listCount(tokenList)]
[H: allP = getAllPlayerNames() ]
[H: cancel = input(
"tabConfig | Config | | TAB",
"avgHP|Random,Average|Random or Average hitpoints?|RADIO",
'Note |(Average just sets Max HP = Current HP)|| LABEL | ',
"augSummon|0|Apply Augmented Summoning mod-set?|CHECK",
"applyTemplate|None,Celestial (Good),Fiendish (Evil),Resolute (Lawful),Entropic (Chaotic)|Apply a template?|RADIO",
"junk|---------------------------------------------------------------------||LABEL|SPAN=TRUE",
"makeTimer|0|Setup Timer?|CHECK",
"tabOwner | Owner | | TAB",
"ownerName|"+allP+"|Who should own these tokens?|RADIO|VALUE=STRING SELECT="+ listFind(allP,getPlayerName())
)]
[H: abort(cancel)]
[C(numTList,""), CODE: {
[H: tToken = listGet(tokenList,roll.count)]
[H: switchToken(tToken)]
[H: tout = "" ]
[R, S, G: IF( roll.count > 0, "</td></tr>", "<table>" ) + "<tr><td>" ]
[R, S, G: "<b><i>" + getName(tToken) + "</i></b>: </td><td>" ]
[H: rolledHP = if( avgHP, HP, eval( "" + HPmax ) ) ]
[H: tHPmax = "[R: max( Level, ( " + (rolledHP - (ConB * Level)) + " + (ConB * Level) ) )]"]
[H: setProperty( "HPmax", tHPmax ) ]
[H, IF( hasProperty( "SizeM", tToken ) ): setSize( "CUSTOM", tToken, SizeM ); "" ]
[H, SWITCH( applyTemplate ), CODE:
case 0: {
};
case 1: {
[MACRO( "applyCelestialFiendishTemplate@this" ): json.set( "{}", "tokenID", tToken, "showWarn", 0, "templateType", "Celestial" ) ]
[ tout = "<i><font color='aqua'>Celestial</font></i> " ]
};
case 2: {
[MACRO( "applyCelestialFiendishTemplate@this" ): json.set( "{}", "tokenID", tToken, "showWarn", 0, "templateType", "Fiendish" ) ]
[ tout = "<i><font color='red'>Fiendish</font></i> " ]
};
case 3: {
[MACRO( "applyResoluteEntropicTemplate@this" ): json.set( "{}", "tokenID", tToken, "showWarn", 0, "templateType", "Resolute" ) ]
[ tout = "<i><font color='green'>Resolute</font></i> " ]
};
case 4: {
[MACRO( "applyResoluteEntropicTemplate@this" ): json.set( "{}", "tokenID", tToken, "showWarn", 0, "templateType", "Entropic" ) ]
[ tout = "<i><font color='purple'>Entropic</font></i> " ]
};
default: { }
]
[H, IF( augSummon ), CODE: {
[MACRO( "subModToggle@Lib:libDnD35Pathfinder" ): json.set( "{}", "tokenID", tToken, "setID", "Augmented Summoning", "setType", 0 ) ]
[ tout = tout + macro.return ]
};{}]
[H: setProperty( "HP", eval( "" + HPmax ) ) ]
[R, S, G: " HP=" + HPmax + "</td><td> </td><td>" + tout ]
[H, MACRO( "subUpdateHPStatesBars@Lib:libDnD35Pathfinder" ): "Token=" + tToken ]
[H: setOwner( ownerName ) ]
[H, IF(isGM()): setNPC(tToken); setPC(tToken) ]
}]
[R, S, G: "</td></tr></table>" ]
[IF( makeTimer ), CODE: {
[MACRO("LibTimerSetup@Lib:libDnD35Pathfinder"): ""]
};{}]