D&D 4E Power Macro API

Framework(s) for D&D 4e, including Veggiesama's.

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

Post Reply
User avatar
TK
Giant
Posts: 162
Joined: Fri Jun 27, 2008 12:02 am

D&D 4E Power Macro API

Post by TK »

So due to the many changes in MapTools, most of the below no longer applies, but I will keep it around for posterity's sake.

My new goal is to create a set of Macro tokens that other people making 4th ed character handlers (such as PyroMancer2K, DevientNull, and Veggiesama) can link to such that no one has to do data entry for powers.

My goal is to define objects which describe attack rolls and damage rolls (and eventually other things such as healing and applied bonuses) and allow character handlers to pull those objects for use with their macros.

Also of note: The data for these macros came from the Universal Card Set Group
http://toosigma.com/wiki/index.php/Universal_Card_Set
They have taken on the monumental task of entering every power into a card set (Magic Set Editor), so I do not claim credit for supplying the data.
What I did was created a (mostly) automated process for converting their card set into something usable in MapTools.

Now on to the Tokens!

Text Token
This token contains a macro for every power in the Set, referenced by the name of the power. The text returned is HTML formatted to make a pretty power block in the chat window.
http://dl-client.getdropbox.com/u/36446 ... Text.rptok

Link Token
This token is similar to the above token, however each attack and damage roll in the power is encapsulated by a link which will (eventually... full functionality is still pending) allow a character handler to pull the relevant attack/damage object for player use.
http://dl-client.getdropbox.com/u/36446 ... Link.rptok

Old project below
******************************************************************
As several of you already have seen, I have spent the past several days creating a program that automatically generates macros for powers. The purpose of this thread is:
To give these macros to you the community
To explain how to use them
To list the properties referenced in the macros
To define what each property means
To discuss how the information in this thread can be improved

To Do:
Fix Skill Checks
Add If/Else for crits
Add property for weapon name
Fix Rangers


The first step is easy, the macros are all contained in the file this link points to
http://dl.getdropbox.com/u/36446/Cormam ... Macros.xls

(How the powers look when HTMLized)
http://dl.getdropbox.com/u/36446/Cormam ... owers.html

As for how to use them:
Columns A-AI contain data in tabular form to describe the feat, you can sort/filter based on these columns to find the macros you want.
Columns AK-AV are the macros that I have generated, and there are 4 types of macros. The first is the full block, which has the name, description, attack rolls, damage rolls, all that good stuff (format mostly stolen from kat2cute). These are labeled Item 1, Item 2, and Item 3. The different numbers refer to which weapon or implement your character is using with this power, but more on that later. The second set have just the attack rolls. The third set have just the damage rolls. The fourth set have the damage rolls, but for critical hits.
With the release of B35, you can also just drag the macros from the tokens I created into your character's token. Below are the links to each class's power token. Further below is an explanation of the macro naming conventions.

Core

Racial

Artificer
Bard
Cleric
Druid
Fighter
Paladin
Ranger
Rogue
Warlock
Warlord
Wizard


Properties I've defined (Mostly stolen from Dramorez)
This is the set that can be copy/pasted into your campaign properties. After will be a definition of each one.

-------------------|CORE|-------------------
Level
ClassHP
MaxHP
TempHP
MiscHP
*HP
Bloodied
SurgeValue
SurgePerDay
*SurgeRemaining
*AP
TempAC
*AC
*Fortitude
*Reflex
*Will
*Speed
*Elevation
*Notes
MiscSaveBonus
MiscAttBonus
MiscDamBonus
Description
----------------|EQUIPMENT|-----------------
ArmorCheckPenalty (ACP)
Weapon1Bonus (WB1)
Weapon2Bonus (WB2)
Weapon3Bonus (WB3)
Weapon1Damage (WD1)
Weapon2Damage (WD2)
Weapon3Damage (WD3)
Weapon1DamBonus
Weapon2DamBonus
Weapon3DamBonus
Weapon1MaxDamage
Weapon2MaxDamage
Weapon3MaxDamage
Weapon1Crit
Weapon2Crit
Weapon3Crit
Implement1Bonus
Implement2Bonus
Implement3Bonus
Implement1DamBonus
Implement2DamBonus
Implement3DamBonus
Implement1Crit
Implement2Crit
Implement3Crit
WeaponCBonus (WBC)
WeaponCDamage (WD1)
WeaponCDamBonus
WeaponCMaxDamage
WeaponCCrit
ImplementCBonus
ImplementCDamBonus
ImplementCCrit
----------------|ATTRIBUTES|----------------
Strength (Str)
Constitution (Con)
Dexterity (Dex)
Intelligence (Int)
Wisdom (Wis)
Charisma (Cha)
------------------|SKILLS|------------------
Acrobatics
Arcana
Athletics
Bluff
Diplomacy
Dungeoneering
Endurance
Heal
History
Insight
Intimidate
Nature
Perception
Religion
Stealth
Streetwise
Thievery
------------------|BONUS|-------------------
StrBonus
ConBonus
DexBonus
IntBonus
WisBonus
ChaBonus
LevelBonus
InitBonus


Property definitions. This section will explain what each property should hold.

-------------------|CORE|-------------------
Level: Character's level (should be integer 1-30)
ClassHP: The number of HP your character gets for being in the class chosen (positive integer)
MaxHP: Total number of HPs your character has, how many the character has after an extended rest (positive integer)
TempHP: The number of temporary hitpoints your character currently has, if any (positive integer)
MiscHP: HP your character has from a source other than class HP or CON score HP (such as the toughness feat) (Integer. Arguably a positive integer, but I'm not going to force that just in case some set down the road changes this)
*HP: The current number of HP your character has, max HP minus and damage taken (integer, can be negative, but hopefully it never will be)
Bloodied: The number of HP at which your character is considered bloodied, half your max HP (positive integer)
SurgeValue: The amount of HP recovered when a healing surge is spent, one quarter of your max HP (positive integer)
SurgePerDay: The total number of healing surges your character can spend between each extended rest (positive integer)
*SurgeRemaining: The number of healing surges your character may still take (positive integer)
*AP: Number of action points your character currently has (positive integer)
TempAC: Your AC after any temporary modifiers are applied (This was on the original list, but I have yet to find a use for it, does anyone know an occasion that it would be used?) (poitive integer)
*AC: Your character's Armor Class defense value (positive integer)
*Fortitude: Your character's Armor Class fortitude value (positive integer)
*Reflex: Your character's Armor Class reflex value (positive integer)
*Will: Your character's Armor Class will value (positive integer)
*Speed: Your characters current speed, modified if you are wearing heavy armor or the like (positive integer)
*Elevation: Height in squares your character is from the ground (origin 0) (integer)
*Notes: Misc info that you would like to appear for your character (string)
MiscSaveBonus: Will be applied to saving throws, fill in or leave blank to have a prompt ask you for the value each time (integer)
MiscAttBonus: Will be applied to all attack rolls, fill in or leave blank to have a prompt ask you for the value each time (integer)
MiscDamBonus: Will be applied to all damage rolls, fill in or leave blank to have a prompt ask you for the value each time (integer)
Description: What your character looks like (string)
----------------|EQUIPMENT|-----------------
ArmorCheckPenalty (ACP): Your characters total armor check penalty, if any (non-positive integer)
Weapon1Bonus (WB1): This includes any bonuses that you always have when using this weapon. This includes (but is not limited to) proficiency bonuses, enhancement bonuses, and feat bonuses. This will not include temporary bonuses, such as Combat Advantage. (integer)
Weapon2Bonus (WB2): See above
Weapon3Bonus (WB3): See above
Weapon1Damage (WD1): The damage dice for your weapon (and only the damage dice for your weapon) (dice string)
Weapon2Damage (WD2): See above
Weapon3Damage (WD3): See above
Weapon1DamBonus: This includes any bonuses you always have when using this weapon. This includes (but is not limited to) enhancement bonuses and feat bonuses. This will not include temporary bonuses, such as sneak attack damage (integer)
Weapon2DamBonus: See above
Weapon3DamBonus: See above
Weapon1MaxDamage: The maximum damage that can be rolled on your weapon dice (max possible result of Weapon1Damage) (positive integer)
Weapon2MaxDamage: See above
Weapon3MaxDamage: See above
Weapon1Crit: Any extra damage that is always applied to critical hits, such as the extra damage from magic weapons (string of dice and or modifiers)
Weapon2Crit: See above
Weapon3Crit: See above
Implement1Bonus: This includes any bonuses that you always have when using this implement. This includes (but is not limited to) enhancement bonuses and feat bonuses. This will not include temporary bonuses, such as Combat Advantage. (integer)
Implement2Bonus: See above
Implement3Bonus: See above
Implement1DamBonus: This includes any bonuses you always have when using this implement. This includes (but is not limited to) enhancement bonuses and feat bonuses. This will not include temporary bonuses, such as sneak attack damage (integer)
Implement2DamBonus: See above
Implement3DamBonus: See above
Implement1Crit: Any extra damage that is always applied to critical hits, such as the extra damage from magic implements (string of dice and or modifiers)
Implement2Crit: See above
Implement3Crit: See above
WeaponCBonus (WBC): Current weapon stats, set by a macro, don't modify
WeaponCDamage (WD1): See above
WeaponCDamBonus: See above
WeaponCMaxDamage: See above
WeaponCCrit: See above
ImplementCBonus: See above
ImplementCDamBonus: See above
ImplementCCrit: See above
----------------|ATTRIBUTES|----------------
Strength (Str): Your strength score
Constitution (Con): Your constitution score
Dexterity (Dex): Your dexterity score
Intelligence (Int): Your intelligence score
Wisdom (Wis): Your wisdom score
Charisma (Cha): Your charisma score
------------------|SKILLS|------------------
(skills will hold bonuses from training, feat bonuses, and racial modifiers, basically any mod that isn't from level, ability, or armor check penalty)
Acrobatics
Arcana
Athletics
Bluff
Diplomacy
Dungeoneering
Endurance
Heal
History
Insight
Intimidate
Nature
Perception
Religion
Stealth
Streetwise
Thievery
------------------|BONUS|-------------------
StrBonus: Ability modifier for your strength score (floor(ability/2-5)) (integer)
ConBonus: Ability modifier for your constitution score (floor(ability/2-5)) (integer)
DexBonus: Ability modifier for your dexterity score (floor(ability/2-5)) (integer)
IntBonus: Ability modifier for your intelligence score (floor(ability/2-5)) (integer)
WisBonus: Ability modifier for your wisdom score (floor(ability/2-5)) (integer)
ChaBonus: Ability modifier for your charisma score (floor(ability/2-5)) (integer)
LevelBonus: half your level
InitBonus: bonuses to your initiative that aren't from Dex and your level (integer)

Macro Naming Conventions:
Purpose: with the ability to alter token properties by using macros, I suspect that the number of macros on a token may soon grow to be unmanageable. To prevent this, I think a naming convention for macros consisting of a few characters at the beginning of a macros will make it easier to find the macro one is looking for.

The first character is used to denote the main type of macro. I have defined the following main types:
P: A Power macro
S: A Skill macro
C: A Combat macro
A: An Automated property/state modification macro


Name Subtypes
Power macro subtypes
A: an At-Will power
E: an Encounter power
D: a Daily power

Combat macro subtypes
0: Takes place at the beginning of the encounter
1: Takes place at the beginning of the turn
2: Takes place during the turn
3: Takes place at end of turn

Types and subtypes will be separated by an underscore, such as the sample below.
P_A_Magic Missile

Update 6-Jul-08: Added Definitions and fixed Dex/Con bug in powers
Update 10-Jul-08: Added definitions to fix crit powers
Update 15-Jul-08: Updated powers with right implement numbers
Update 16-Jul-08: Added Class power tokens
Update 28-Jul-08: Added Core Token
Update 29-Jul-08: Updated Core token, added weapon switching, better looking power format
Update 30-Jul-08: Fixed Core Token and Basic Attacks
*******
Update 13-Mar-09: Project restarted as Macro API. Added Text Token and Prototype Link Token
Last edited by TK on Fri Mar 13, 2009 11:36 am, edited 18 times in total.

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Post by MacPharlan »

absolutely wonderful sir, thanx.

User avatar
UntoldGlory
Great Wyrm
Posts: 1649
Joined: Sun Mar 16, 2008 8:12 pm

Post by UntoldGlory »

Good presentation. I fear your excellent contribution may have been lost to some folk in the mountain that is the other threads dealing with this.

User avatar
Mortani
Giant
Posts: 131
Joined: Tue Oct 03, 2006 11:00 am

Post by Mortani »

Thank you very much! Any chance you were considering changing the format to follow Dramorez post http://forums.rptools.net/viewtopic.php ... c&start=45

So it looks more like this?

Image

User avatar
TK
Giant
Posts: 162
Joined: Fri Jun 27, 2008 12:02 am

Post by TK »

I did more than consider it, and I believe it is now in that format. Is there something in the list you disagree with?

User avatar
Mortani
Giant
Posts: 131
Joined: Tue Oct 03, 2006 11:00 am

Post by Mortani »

I mean the table and color formating.

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Crit Problem

Post by MacPharlan »

TK, I think we have an issue on the crit macro.

We are lumping together 'max' weapon damage + crit into the Weapon#Crit.

So a 1d8 high crit or magic weapon would be:

8 + 1d8 (high crit)


If I understand the rules, high-crit and magic crit bonus are rolled AFTER the max damage. They should not be included for each [w]

User avatar
TK
Giant
Posts: 162
Joined: Fri Jun 27, 2008 12:02 am

Post by TK »

You are right, I guess we'll need another property set added. I'm out of the state this weekend, but soon I'll make that update.

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Post by MacPharlan »

TK wrote:You are right, I guess we'll need another property set added. I'm out of the state this weekend, but soon I'll make that update.
np, I am using
weapon1critextra
weapon2critextra
weapon3critextra

Not sure if those are the best, or if it should be something like this to make it more clear:
Weapon1CritDice

Whatever you decide.

User avatar
jfrazierjr
Deity
Posts: 5176
Joined: Tue Sep 11, 2007 7:31 pm

Post by jfrazierjr »

MacPharlan wrote:
TK wrote:You are right, I guess we'll need another property set added. I'm out of the state this weekend, but soon I'll make that update.
np, I am using
weapon1critextra
weapon2critextra
weapon3critextra

Not sure if those are the best, or if it should be something like this to make it more clear:
Weapon1CritDice

Whatever you decide.
Eh? Sorry, but what are these for again? Could you give an example?
Joe
I save all my Campaign Files to DropBox. Not only can I access a campaign file from pretty much any OS that will run Maptool(Win,OSX, linux), but each file is versioned, so if something goes crazy wild, I can always roll back to a previous version of the same file.

Get your Dropbox 2GB via my referral link, and as a bonus, I get an extra 250 MB of space. Even if you don't don't use my link, I still enthusiastically recommend Dropbox..

User avatar
TK
Giant
Posts: 162
Joined: Fri Jun 27, 2008 12:02 am

Post by TK »

Since Implement1Crit is defined as the extra damage added to a crit, I think it makes sense to also define Weapon1Crit that way. So I think the new property set should be Weapon1MaxDamage which will be what goes in in place of Weapon1Damage for criticals.

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Post by MacPharlan »

jfrazierjr wrote:
MacPharlan wrote:
TK wrote:You are right, I guess we'll need another property set added. I'm out of the state this weekend, but soon I'll make that update.
np, I am using
weapon1critextra
weapon2critextra
weapon3critextra

Not sure if those are the best, or if it should be something like this to make it more clear:
Weapon1CritDice

Whatever you decide.
Eh? Sorry, but what are these for again? Could you give an example?
Joe
The problem is with 'extra' crit dice from high crit or magic weapons. These are added 'once' after the other damage is maxed.

example: 2[w] + Str
= Weapon1Crit + Weapon1Crit + Str

On a high crit or magic weapon (say 1d8) you would first max the 2[w] + Str, then add the 1d8.

The way we are setup we are using one variable (Weapon1Crit) to house the 'max' damage from the [w] AND the extra crit dice. The macro subs out Weapon1Damge with Weapon1Crit and does it each time, multiplying the crit dice.

So instead we need (for a 1d8 weapon with a high-crit or magic crit of 1d8)
Weapon1MaxDamage = 8
Weapon1Crit = 1d8

Then the macro for 2[w] + Str
Weapon1MaxDamage + Weapon1MaxDamage + Str + Weapon1Crit

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Post by MacPharlan »

TK wrote:Since Implement1Crit is defined as the extra damage added to a crit, I think it makes sense to also define Weapon1Crit that way. So I think the new property set should be Weapon1MaxDamage which will be what goes in in place of Weapon1Damage for criticals.
Perfect, sounds good

MacPharlan
Giant
Posts: 172
Joined: Sat Jun 14, 2008 10:44 pm

Sly Florish

Post by MacPharlan »

Just noticed Sly Flourish (rogue) is wrong, it is using Con VS AC instead of Dex VS AC

User avatar
TK
Giant
Posts: 162
Joined: Fri Jun 27, 2008 12:02 am

Re: Sly Florish

Post by TK »

MacPharlan wrote:Just noticed Sly Flourish (rogue) is wrong, it is using Con VS AC instead of Dex VS AC
Actually I accidentally reversed Con and Dex on all attacks (where it was spelled out as opposed to abbreviated), will fix that shortly.

Edit: And fixed. Also added a bunch of definitions.
Now, I think we need to discuss macro naming conventions which will help for once we can import macros.

Post Reply

Return to “D&D 4e Frameworks”