BoomerET said: You may also want to look at HoneyBadger's creators. I've used his work, and now you're able to fill in character sheets. For example: I created a plugin for Hero Lab to create Castles & Crusades PC's Then I created the Roll20 Character sheets (though the dev's have yet to merge my pull requests) Next I adapted HoneyBadgers script to populate the character sheet from my Hero Lab XML output. Hope this give you a small push to accomplish what you're trying to do. I'm not really using the newer sheets yet.. though I have been considering it. My only issue with it is that I am currently running Alex's 4e combat script to speed up combat a bit. I'm not sure how the macro creation would work to save time and have them fit with how the script reads information. Michael P. said: Brian's script doesn't do anything with the Bio as it is. When you type !journal Michael, it will create a character and add 8 attributes to the attributes panel. Now you said it was modified, so really, to be of any help we will need to see the modification. Here's the current script: /** * Permit all players to create new characters. Created characters will be * visible in all journals and controllable by the player who created it. * * Syntax: !journal Character Name * `Character Name' has no limitations, and will be used for the character's * name in the journal. The attributes LVL, STR, CON, DEX, INT, WIS, CHA, ARM * PEN will be created, and LVL will be set to 1/30. */ on('chat:message', function(msg) { if(msg.type == 'api' && msg.content.indexOf('!journal ') != -1) { var name = msg.content.substring(9); var character = createObj('character', { name: name, bio: '', gmnotes: '', archived: false, inplayerjournals: '', controlledby: msg.playerid }); createObj('attribute', { name: 'Current Level', _characterid: character.id }); createObj('attribute', { name: '1/2 Lvl', _characterid: character.id }); createObj('attribute', { name: 'HP', _characterid: character.id }); createObj('attribute', { name: 'Temp HP', _characterid: character.id }); createObj('attribute', { name: 'AC', _characterid: character.id }); createObj('attribute', { name: 'Fort', _characterid: character.id }); createObj('attribute', { name: 'Reflex', _characterid: character.id }); createObj('attribute', { name: 'Will', _characterid: character.id }); createObj('attribute', { name: 'STR_MOD', _characterid: character.id }); createObj('attribute', { name: 'CON_MOD', _characterid: character.id }); createObj('attribute', { name: 'DEX_MOD', _characterid: character.id }); createObj('attribute', { name: 'INT_MOD', _characterid: character.id }); createObj('attribute', { name: 'WIZ_MOD', _characterid: character.id }); createObj('attribute', { name: 'CHA_MOD', _characterid: character.id }); createObj('attribute', { name: 'Weapon_Enhancement', _characterid: character.id }); createObj('attribute', { name: 'surges', _characterid: character.id }); createObj('attribute', { name: 'surgevalue', _characterid: character.id }); createObj('attribute', { name: 'Init', _characterid: character.id }); createObj('attribute', { name: 'Thievery', _characterid: character.id }); createObj('attribute', { name: 'Perception', _characterid: character.id }); createObj('attribute', { name: 'fire_resist', _characterid: character.id }); createObj('attribute', { name: 'cold_resist', _characterid: character.id }); createObj('attribute', { name: 'acid_resist', _characterid: character.id }); createObj('attribute', { name: 'force_resist', _characterid: character.id }); createObj('attribute', { name: 'lightning_resist', _characterid: character.id }); createObj('attribute', { name: 'necrotic_resist', _characterid: character.id }); createObj('attribute', { name: 'poison_resist', _characterid: character.id }); createObj('attribute', { name: 'psychic_resist', _characterid: character.id }); createObj('attribute', { name: 'radiant_resist', _characterid: character.id }); createObj('attribute', { name: 'thunder_resist', _characterid: character.id }); createObj('attribute', { name: 'all_resist', _characterid: character.id }); createObj('attribute', { name: 'Fate Points', _characterid: character.id }); createObj('ability', { name: 'Roll Init', action: '/gmroll 1d20+@{Init} &{tracker}', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'Skill Check', action: '[[1d20+?{Skill bonus|0}]] ?{What skill?|save vs evil GM}', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'At Will', action: '!power @{selected|token_id} "Power Name" -t @{target|token_id} -a [[1d20+X+?{bonus to attack|0}]] -v Defense -d [[XdY+X+?{damage bonus|0}]] -T damage type -D [[crit damage]] -y crit damage type -C crit range -h "This happens on a hit" -H hit-status -m "This happens on a miss" -M miss-status -e "this happens no matter what" -E "effect status" -c [[heal amount]] -b [[Temp HPs amount]] -l (half damage on miss if present) -u "At-Will" -A "Standard Action" -r "Melee or Ranged weapon" -S "one creature" -k "Arcane, Weapon" -R "Trigger" -s "Special text"', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'At Will', action: '!power @{selected|token_id} "Power Name" -t @{target|token_id} -a [[1d20+X+?{bonus to attack|0}]] -v Defense -d [[XdY+X+?{damage bonus|0}]] -T damage type -D [[crit damage]] -y crit damage type -C crit range -h "This happens on a hit" -H hit-status -m "This happens on a miss" -M miss-status -e "this happens no matter what" -E "effect status" -c [[heal amount]] -b [[Temp HPs amount]] -l (half damage on miss if present) -u "At-Will" -A "Standard Action" -r "Melee or Ranged weapon" -S "one creature" -k "Arcane, Weapon" -R "Trigger" -s "Special text"', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'Encounter', action: '!power @{selected|token_id} "Power Name" -t @{target|token_id} -a [[1d20+X+?{bonus to attack|0}]] -v Defense -d [[XdY+X+?{damage bonus|0}]] -T damage type -D [[crit damage]] -y crit damage type -C crit range -h "This happens on a hit" -H hit-status -m "This happens on a miss" -M miss-status -e "this happens no matter what" -E "effect status" -c [[heal amount]] -b [[Temp HPs amount]] -l (half damage on miss if present) -u "Encounter" -A "Standard Action" -r "Melee or Ranged weapon" -S "one creature" -k "Arcane, Weapon" -R "Trigger" -s "Special text"', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'Daily', action: '!power @{selected|token_id} "Power Name" -t @{target|token_id} -a [[1d20+X+?{bonus to attack|0}]] -v Defense -d [[XdY+X+?{damage bonus|0}]] -T damage type -D [[crit damage]] -y crit damage type -C crit range -h "This happens on a hit" -H hit-status -m "This happens on a miss" -M miss-status -e "this happens no matter what" -E "effect status" -c [[heal amount]] -b [[Temp HPs amount]] -l (half damage on miss if present) -u "Daily" -A "Standard Action" -r "Melee or Ranged weapon" -S "one creature" -k "Arcane, Weapon" -R "Trigger" -s "Special text"', istokenaction: true, _characterid: character.id }); createObj('ability', { name: 'Magic Item', action: '!power @{selected|token_id} "Power Name" -t @{target|token_id} -a [[1d20+X+?{bonus to attack|0}]] -v Defense -d [[XdY+X+?{damage bonus|0}]] -T damage type -D [[crit damage]] -y crit damage type -C crit range -h "This happens on a hit" -H hit-status -m "This happens on a miss" -M miss-status -e "this happens no matter what" -E "effect status" -c [[heal amount]] -b [[Temp HPs amount]] -l (half damage on miss if present) -u "Item" -A "Standard Action" -r "Melee or Ranged weapon" -S "one creature" -k "Arcane, Weapon" -R "Trigger" -s "Special text"', istokenaction: true, _characterid: character.id }); }; });