5e D&D Framework

Framework(s) for D&D 5e.

Moderators: dorpond, trevor, Azhrei, giliath, Gamerdude, jay, Mr.Ice

User avatar
Damien Granz
Kobold
Posts: 22
Joined: Sun Jun 23, 2013 4:04 pm

Re: 5e D&D Framework

Post by Damien Granz »

My group's never used the 'auras' feature but the minute I told them I changed some of the visions they were all up on that, so I have to add more auras, so they're not all blue (because then they overlap and you can't see them).

It actually did, very minorly break some things: everybody's default vision went to blind. Fun times in the land of seeing nothing were had for the players about 2 minutes there before I figured out what went wrong.

paulstrait
Dragon
Posts: 304
Joined: Mon Mar 23, 2009 4:48 pm

Re: 5e D&D Framework

Post by paulstrait »

Damien Granz wrote:What would it take to make a macro that just subtracted a spell per day once hit?

In the older framework each spell level was a separate line in the character sheet so you could make something that was basically like 'first=first-1' or 'first=first+1' but I'm not sure how you'd do so in the more condensed framework as the spells per day seem to be just one line with a lot of variables.

I'd also like to try to make a macro that brings up a text box to add ammo back.

Sorry if this is super obvious. I have no real idea what I'm doing. :D Thanks in advance.
Okay, I wrote a macro that modifies the spell slot:
Modify Spell Slot.mtmacro
(1.1 KiB) Downloaded 131 times
I'm sure it could be written more efficiently but it does the job. You can just import it, or create it yourself with the following text:

Code: Select all

[h:status = input(
"SlotLevel|1,2,3,4,5,6,7,8,9|Slot level?|LIST|SELECT=0",
"PlusOrMinus|Spend a slot, Gain a slot|Are you spending or gaining a spell?|LIST|SELECT=0"
)]
[h:abort(status)]


[if(SlotLevel == 0 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"1")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"1",Slot)]
};{}]

[if(SlotLevel == 1 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"2")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"2",Slot)]
};{}]

[if(SlotLevel == 2 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"3")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"3",Slot)]
};{}]

[if(SlotLevel == 3 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"4")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"4",Slot)]
};{}]

[if(SlotLevel == 4 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"5")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"5",Slot)]
};{}]

[if(SlotLevel == 5 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"6")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"6",Slot)]
};{}]

[if(SlotLevel == 6 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"7")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"7",Slot)]
};{}]

[if(SlotLevel == 7 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"8")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"8",Slot)]
};{}]

[if(SlotLevel == 8 && PlusOrMinus == 0),CODE:
{
[h:Slot=json.get(SpellSlots,"9")]
[h:Slot=if(Slot>0,Slot-1,0)]
[h:SpellSlots=json.set(SpellSlots,"9",Slot)]
};{}]


[if(SlotLevel == 0 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"1")]
[h:MaxSlot=json.get(MaxSpellSlots,"1")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"1",Slot)]
};{}]

[if(SlotLevel == 1 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"2")]
[h:MaxSlot=json.get(MaxSpellSlots,"2")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"2",Slot)]
};{}]

[if(SlotLevel == 2 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"3")]
[h:MaxSlot=json.get(MaxSpellSlots,"3")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"3",Slot)]
};{}]

[if(SlotLevel == 3 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"4")]
[h:MaxSlot=json.get(MaxSpellSlots,"4")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"4",Slot)]
};{}]

[if(SlotLevel == 4 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"5")]
[h:MaxSlot=json.get(MaxSpellSlots,"5")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"5",Slot)]
};{}]

[if(SlotLevel == 5 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"6")]
[h:MaxSlot=json.get(MaxSpellSlots,"6")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"6",Slot)]
};{}]

[if(SlotLevel == 6 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"7")]
[h:MaxSlot=json.get(MaxSpellSlots,"7")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"7",Slot)]
};{}]

[if(SlotLevel == 7 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"8")]
[h:MaxSlot=json.get(MaxSpellSlots,"8")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"8",Slot)]
};{}]

[if(SlotLevel == 8 && PlusOrMinus == 1),CODE:
{
[h:Slot=json.get(SpellSlots,"9")]
[h:MaxSlot=json.get(MaxSpellSlots,"9")]
[h:Slot=if(Slot<MaxSlot,Slot+1,MaxSlot)]
[h:SpellSlots=json.set(SpellSlots,"9",Slot)]
};{}]
Ammo should be much more straightforward since it isn't a json variable.

User avatar
Damien Granz
Kobold
Posts: 22
Joined: Sun Jun 23, 2013 4:04 pm

Re: 5e D&D Framework

Post by Damien Granz »

Awesome, thanks. That really helps w/ people who took one of the feats that gave an off class spell. The default spell macro got pouty I think because he's not a cleric and the spell is normally cleric only.

paulstrait
Dragon
Posts: 304
Joined: Mon Mar 23, 2009 4:48 pm

Re: 5e D&D Framework

Post by paulstrait »

Damien Granz wrote:Awesome, thanks. That really helps w/ people who took one of the feats that gave an off class spell. The default spell macro got pouty I think because he's not a cleric and the spell is normally cleric only.
Hmm, which feat did they take? I thought we had those working properly.

User avatar
Damien Granz
Kobold
Posts: 22
Joined: Sun Jun 23, 2013 4:04 pm

Re: 5e D&D Framework

Post by Damien Granz »

paulstrait wrote:
Damien Granz wrote:Awesome, thanks. That really helps w/ people who took one of the feats that gave an off class spell. The default spell macro got pouty I think because he's not a cleric and the spell is normally cleric only.
Hmm, which feat did they take? I thought we had those working properly.
Sorry for the very late reply, it was in an UA article. Theologian, I believe.

JasonAlanTerry
Kobold
Posts: 3
Joined: Sat Oct 07, 2017 10:46 pm

Re: 5e D&D Framework

Post by JasonAlanTerry »

This is amazing and all, but is there not a more bare-bones 5e solution?

User avatar
Full Bleed
Demigod
Posts: 4736
Joined: Sun Feb 25, 2007 11:53 am
Location: FL

Re: 5e D&D Framework

Post by Full Bleed »

JasonAlanTerry wrote:This is amazing and all, but is there not a more bare-bones 5e solution?
Not sure what you mean by "bare bones"... one person's "bare bones" is another persons "useless". I suspect this was more "bare-bones" when it came out in 2014 though.

There is a promising character sheet framework in development that should be released soon that is being previewed here: http://forums.rptools.net/viewtopic.php?f=8&t=27296

If I was going to be playing 5e on MT I think I'd start there.
Maptool is the Millennium Falcon of VTT's -- "She may not look like much, but she's got it where it counts."

User avatar
tooley1chris
Cave Troll
Posts: 26
Joined: Fri Mar 01, 2013 5:35 pm

Re: 5e D&D Framework

Post by tooley1chris »

So I download the latest Nerps Maptools and it still installs version 1.4.1.8...which of course isn't compatible. I'm a bit of a noob so any help would rock!
BRP. The last RPG system you'll ever need. http://basicroleplaying.org/

User avatar
Sereptus
Giant
Posts: 123
Joined: Tue Jun 07, 2011 12:08 pm
Location: Canada

Re: 5e D&D Framework

Post by Sereptus »

tooley1chris wrote:So I download the latest Nerps Maptools and it still installs version 1.4.1.8...which of course isn't compatible. I'm a bit of a noob so any help would rock!
I downloaded it recently and it is version 1.4.3.20, don't know whether you downloaded the full installer but my guess is you just didn't create a NEW desktop icon to the link for the newer version.
OOOHH RegEx....YOU BITTER-SWEET BEAST!!!

User avatar
tooley1chris
Cave Troll
Posts: 26
Joined: Fri Mar 01, 2013 5:35 pm

Re: 5e D&D Framework

Post by tooley1chris »

OK. I am downloading the MapTool-windows64-1.4.3.20.exe file.
map1.JPG
map1.JPG (15.77 KiB) Viewed 12266 times
When I launch it pulls up
map2.JPG
map2.JPG (28.31 KiB) Viewed 12266 times
which launches
map3.JPG
map3.JPG (75.62 KiB) Viewed 12266 times
It doesnt appear to install anything....?
BRP. The last RPG system you'll ever need. http://basicroleplaying.org/

User avatar
aliasmask
RPTools Team
Posts: 9023
Joined: Tue Nov 10, 2009 6:11 pm
Location: Bay Area

Re: 5e D&D Framework

Post by aliasmask »

I think you have to get rid of the 1.4.1.8 files first. The path is listed at the bottom of your last post.

User avatar
tooley1chris
Cave Troll
Posts: 26
Joined: Fri Mar 01, 2013 5:35 pm

Re: 5e D&D Framework

Post by tooley1chris »

Aliasmask is my hero! That did the trick. Much thanks kind person! :D
BRP. The last RPG system you'll ever need. http://basicroleplaying.org/

CainFortea
Kobold
Posts: 3
Joined: Mon Jul 07, 2014 6:26 pm

Re: 5e D&D Framework

Post by CainFortea »

Where can you get that 1.4.3.20 version of Maptools? I got the most recent version 1.4.1.8 but things like limiting movement aren't working.

And there's lots of Maximum recurse limit reached messages with the basic macros.

User avatar
Sereptus
Giant
Posts: 123
Joined: Tue Jun 07, 2011 12:08 pm
Location: Canada

Re: 5e D&D Framework

Post by Sereptus »

CainFortea wrote:Where can you get that 1.4.3.20 version of Maptools?
This isn't really a framework question but what you're probably referring to is the Maptool Fork version JamztheMan created.
The latest version can be found here: http://maptool.nerps.net/
CainFortea wrote: I got the most recent version 1.4.1.8 but things like limiting movement aren't working.
As far as I know the Limit movement is contained in Wolph42's Bag of Tricks (there is other code, in other frameworks out there that limit movement). He has an awesome new version which can be found here:
http://forums.rptools.net/viewtopic.php?p=170978

Be sure to follow the simple instruction.
OOOHH RegEx....YOU BITTER-SWEET BEAST!!!

Robethma
Kobold
Posts: 2
Joined: Sun Mar 11, 2018 8:27 am

Re: 5e D&D Framework

Post by Robethma »

This is amazing! Thank you so much. I am a little overwhelmed by all the information, but i am working my way through. I am having a problem with using some of the macros. I have Maptools installed on a flash drive that i use on different computers. On one machine the macros work perfectly, but on another machine it is spitting out the whole code and not just the results. This is what it puts out when i hit the attack macro for Lyle Tealeaf.

an arrow flies out from the darkness!
Attack: « roll1+Proficiency+PrimeStat+MiscAtkBonus+MagicBonus = 1 + 2 + 3 + 0 + 0 = 6 » (Adv: « Max(roll1,roll2)+Proficiency+PrimeStat+MiscAtkBonus+MagicBonus = Max(1, 12) + 2 + 3 + 0 + 0 = 17 » / Dis: « Min(roll1,roll2)+Proficiency+PrimeStat+MiscAtkBonus+MagicBonus = Min(1, 12) + 2 + 3 + 0 + 0 = 6 ») Damage: « dmg1+PrimeStat+MiscDmgBonus+MagicBonus = 1 + 3 + 0 + 0 = 4 » « If(Max(roll1,roll2)>=MinCrit, dmg1+dmg2+PrimeStat+MiscDmgBonus+MagicBonus,'') =  » Ammunition (range 80/320), 2-handed

I am using maptool32 1.4.1.7 on the computer where the attack macro outputs correctly.
I am using maptool64 1.4.1.7 on the computer where the attack macro does not output correctly.

Does anyone have any idea what my problem is? I tracked down the macro to Lib:Malek, but i dont want to change it since it works on one computer, but not the other.

Post Reply

Return to “D&D 5e Frameworks”