Stat Block Reader
Stat Block Reader
Can I make a request for some sort of configurable Stat Block reader?
I know this is going to be incredibly hard to do judging from discussions on other forums about this but it would save so much time when porting published modules to InitTool if you could just paste stat blocks of NPCs into a field and the program could go off and digest it and generate a new NPC.
On a similar line something to read monster race descriptions, like those in the SRD, but customisable...?
Blakey
I know this is going to be incredibly hard to do judging from discussions on other forums about this but it would save so much time when porting published modules to InitTool if you could just paste stat blocks of NPCs into a field and the program could go off and digest it and generate a new NPC.
On a similar line something to read monster race descriptions, like those in the SRD, but customisable...?
Blakey
The guy in the green hat.
You have a data entry field (like one where you post on the forums) and into that you copy a stat block from a PDF or wherever. You then press the "Go" button.Pfhreak wrote:I'm not sure what this tool might be, could you explain it a little more?
The program then looks at the stat block and intelligently reads it and converts it to InitTool format (XML or whatever) and saves it as a valid NPC or monster.
Simple concept, but the difficulty lies in parsing the stat block in an intelligent manner...
Cheers
Blakey
The guy in the green hat.
Was just thinking. Anyone could make this tool as a standalone tool. All we need is something which you shove a stat block into one end and it grabs it, parses it and can split the result up into the correct fields. This tool can then export the resulting fields in say XML format which we can copy and paste straight into the database for InitTool.
NPC/Monster sausage machine anyone?
Blakey
NPC/Monster sausage machine anyone?
Blakey
The guy in the green hat.
That is exactly the problem this suffers from - there are so many different standards in modules to be able to handle. You will need to come up with some very clever parsing scheme to parse all different options.Pfhreak wrote:That wouldn't be that hard to do, but is there a standard format for these? I mean, I know I've seen them around, but do they all follow the same patterns?
WotC have now come up with a new format which is published in the DMG2 and on their web page - but loads of modules use old formats or their own format.
Jamie's NPC generator is well worth working with as it's frequently used. But for those of us who want to port modules we need something very clever.
Perhaps we could start a thread where people post example stat blocks and when we have a program to play with there will be a load of examples to test it on.
Cheers
Blakey
The guy in the green hat.
DMGenie uses the same Stat Block format that Jamis Buck's NPC creator uses. I haven't delved into it, but I thought there was a standard for D&D 3.0, 3.5, etc.Blakey wrote:That is exactly the problem this suffers from - there are so many different standards in modules to be able to handle. You will need to come up with some very clever parsing scheme to parse all different options.Pfhreak wrote:That wouldn't be that hard to do, but is there a standard format for these? I mean, I know I've seen them around, but do they all follow the same patterns?
WotC have now come up with a new format which is published in the DMG2 and on their web page - but loads of modules use old formats or their own format.
Jamie's NPC generator is well worth working with as it's frequently used. But for those of us who want to port modules we need something very clever.
Perhaps we could start a thread where people post example stat blocks and when we have a program to play with there will be a load of examples to test it on.
Cheers
Blakey
Yes, I use Jamis Buck's all the time with DMGENIE. While they are slightly different formats, DMGENIE has a pretty intelligent converter that will convert it into DMGENIE as a character.Steel Rat wrote: DMGenie uses the same Stat Block format that Jamis Buck's NPC creator uses. I haven't delved into it, but I thought there was a standard for D&D 3.0, 3.5, etc.
Not too long ago WOTC changed their stat blocks completely from what we have been using for years. There are mixed opinions one which is better. The new stat block does not work with many converters including DMGENIES'
If we were to create a converter of some sort, I would love for it to work with both (or any) stat blocks available out there -- if it is even possible
Ok, I'm making major headway into Jamis' stat blocks. So far I can turn this:
Into this:
All I have left to hook from the stat block are the following:
Some of those aren't present in the block, as you can see.
If I don't get it done today, I'll have it online for you tomorrow morning.
Code: Select all
Joey, male halfling Rog11: CR 11; Size S (2 ft., 11 in. tall); HD 11d6; hp 41; Init +9 (+5 Dex, +4 Improved Initiative); Spd 20 ft.; AC 16 (+5 Dex, +1 Size); Attack +8/+3 (+8 Base, -1 Str, +1 Size) melee, or +14/+9 (+8 Base, +5 Dex, +1 Size) ranged; SV Fort +4 (+3 Base, +1 Racial), Ref +13 (+7 Base, +5 Dex, +1 Racial), Will +7 (+3 Base, +3 Wis, +1 Racial); AL NE; Str 9 (-1), Dex 20 (+5), Con 11 (+0), Int 14 (+2), Wis 16 (+3), Cha 10 (+0).
Languages Spoken: Common, Dwarven, Halfling, Orc.
Skill points: Rog 140
Skills and feats: Appraise +14 (+12 Rank, +2 Int), Bluff +9 (+9 Rank), Climb +1 (-1 Str, +2 Racial), Disable Device +9 (+7 Rank, +2 Int), Disguise +14 (+12 Rank, +2 Deceitful), Escape Artist +19 (+14 Rank, +5 Dex), Forgery +18 (+14 Rank, +2 Int, +2 Deceitful), Hide +9 (+5 Dex, +4 Size), Jump +8 (+7 Rank, -1 Str, +2 Racial), Knowledge (Local) +13 (+11 Rank, +2 Int), Listen +5 (+3 Wis, +2 Racial), Move Silently +7 (+5 Dex, +2 Racial), Open Lock +11 (+6 Rank, +5 Dex), Search +13 (+11 Rank, +2 Int), Sense Motive +17 (+14 Rank, +3 Wis), Spot +12 (+9 Rank, +3 Wis), Tumble +19 (+14 Rank, +5 Dex); Blind-Fight, Deceitful, Dodge, [Evasion], Improved Initiative.
Possessions: 21,000 gp in gear.
Code: Select all
<family>halfling</family>
<name>Joey</name>
<size>Size S (2 ft., 11 in. tall)</size>
<type>Humanoid</type>
<descriptor>halfling, male, Rog11</descriptor>
<hitDice>HD 11d6 (hp 41)</hitDice>
<initiative>Init +9 (+5 Dex, +4 Improved Initiative)</initiative>
<itInitiativeModifier>9</itInitiativeModifier>
<speed>Spd 20 ft.</speed>
<armorClass>AC 16 (+5 Dex, +1 Size)</armorClass>
<ac>16</ac>
<attack>+8 Melee, or +14 Ranged</attack>
<fullAttack>+8/+3 (+8 Base, -1 Str, +1 Size) melee, or +14/+9 (+8 Base, +5 Dex, +1 Size) ranged</fullAttack>
<space>5 ft.</space>
<reach>5 ft.</reach>
<skills>Total Skill Points: Rog 140
Appraise +14 (+12 Rank, +2 Int), Bluff +9 (+9 Rank), Climb +1 (-1 Str, +2 Racial), Disable Device +9 (+7 Rank, +2 Int), Disguise +14 (+12 Rank, +2 Deceitful), Escape Artist +19 (+14 Rank, +5 Dex), Forgery +18 (+14 Rank, +2 Int, +2 Deceitful), Hide +9 (+5 Dex, +4 Size), Jump +8 (+7 Rank, -1 Str, +2 Racial), Knowledge (Local) +13 (+11 Rank, +2 Int), Listen +5 (+3 Wis, +2 Racial), Move Silently +7 (+5 Dex, +2 Racial), Open Lock +11 (+6 Rank, +5 Dex), Search +13 (+11 Rank, +2 Int), Sense Motive +17 (+14 Rank, +3 Wis), Spot +12 (+9 Rank, +3 Wis), Tumble +19 (+14 Rank, +5 Dex)</skills>
<saves>Fort +4 (+3 Base, +1 Racial), Ref +13 (+7 Base, +5 Dex, +1 Racial), Will +7 (+3 Base, +3 Wis, +1 Racial)</saves>
<fortSave>+4</fortSave>
<reflexSave>+13</reflexSave>
<willSave>+7</willSave>
<abilities>Str 9 (-1), Dex 20 (+5), Con 11 (+0), Int 14 (+2), Wis 16 (+3), Cha 10 (+0)</abilities>
<challengeRating>11</challengeRating>
<alignment>AL NE</alignment>
Code: Select all
In the Block:
$treasure;
$specialAbilities; (Spells Known goes here?)
$specialAttacks; (Or maybe here?)
$specialQualities; (or possibly here?)
$feats;
Sometimes in the block:
$baseAttack; (This one can be turned on and off in the options for the block. I am currently leaving it out, until I finish the generic block reader, then I can add a check for it.)
Always the same:
$advancement; (As Character)
$itCategory; (NPC?)
Not In the Block:
$epicFeats; (Char gen only goes to 20)
$environment; (Tabletop? :lol:)
$organization;
$touchAc; (This could be calculated, but because I figured you'd be putting armor on the character anyways, I'd let you fill it in)
$flatFootedAc; (This could be calculated, but because I figured you'd be putting armor on the character anyways, I'd let you fill it in)
$grapple;
If I don't get it done today, I'll have it online for you tomorrow morning.
Impressive!
What happens if you stick <possessions> in there? Does it break the loader like I think it does?
I have expanded the default data to add <spellsKnown> and <possessions> to all mine as they are very useful for NPCs in general. I feel these could be 'standard' custom tabs for D&D NPCs. <spellsKnown> I'm using to represent spells learnt today and also any spell like abilities the NPCs have.
When you've got this up and running I'd like to throw a few other format stat blocks at you and see if you can deal with them if that's okay?
One thing I have realised in our favour in this case is we don't need to know how to parse details of each section. When we looked at this for DMGenie it tried to figure out classes, levels, attacks and everything from the stat block. In this case it just needs to stick text into XML fields - much easier.
e.g. "Elbeneth, female drow Clr12 (Lolth): CR 11...." should parse as easily as "Elbeneth, female drow Cleric 12th (Lolth): CR 11....". Likewise "HD 11d6; hp 41" works as well as "HD 11d6 (41 hp)" in the text field - I can understand both equally.
I'm rambling now...
Blakey
What happens if you stick <possessions> in there? Does it break the loader like I think it does?
I have expanded the default data to add <spellsKnown> and <possessions> to all mine as they are very useful for NPCs in general. I feel these could be 'standard' custom tabs for D&D NPCs. <spellsKnown> I'm using to represent spells learnt today and also any spell like abilities the NPCs have.
When you've got this up and running I'd like to throw a few other format stat blocks at you and see if you can deal with them if that's okay?
One thing I have realised in our favour in this case is we don't need to know how to parse details of each section. When we looked at this for DMGenie it tried to figure out classes, levels, attacks and everything from the stat block. In this case it just needs to stick text into XML fields - much easier.
e.g. "Elbeneth, female drow Clr12 (Lolth): CR 11...." should parse as easily as "Elbeneth, female drow Cleric 12th (Lolth): CR 11....". Likewise "HD 11d6; hp 41" works as well as "HD 11d6 (41 hp)" in the text field - I can understand both equally.
I'm rambling now...
Blakey
The guy in the green hat.