Pathbuilder to Profile?


Advice

Radiant Oath

1 person marked this as a favorite.
Pathfinder Adventure Path, Lost Omens, Rulebook, Starfinder Adventure Path, Starfinder Roleplaying Game, Starfinder Society Subscriber

Is there a way to convert a saved Pathbuilder setup into text that can be copy-pasted into a Profile if you're doing play-by-post, like there is in HeroLab?

Liberty's Edge

On the app, after loading a character, you can click on the top left menu to use the Export character button.

It opens a window with a few possibilities. Maybe Export stat block will give you what you need ?

Radiant Oath

Pathfinder Adventure Path, Lost Omens, Rulebook, Starfinder Adventure Path, Starfinder Roleplaying Game, Starfinder Society Subscriber

What if it's the web browser version?


I got about half way through writing a ETL script that would take the exported json file and convert it into Paizo variant BB code.

It is harder than it sounds like it should be in order to get it to work correctly. The basics aren't terribly difficult, but some of the more unique character options are a bit of a challenge. And I didn't bother to look into handling equipment.


In case anyone feels like taking and running with it, here is what I have started.

It is fairly old (a year or so), so I don't know what it is going to do with the Remaster changes. Probably blow up spectacularly. Or at least output some really wonky numbers for attribute bonuses since those are 0-based bonus values instead of 10-based score values.

It is a raw python script, so run accordingly.

Quote:

import sys

import json
import math

filename = sys.argv[1]
filedata = open(filename)
data = json.load(filedata)

def proficiencyValue(rankValue, abilitymod, level):
if (rankValue == 0):
return abilitymod
return abilitymod + rankValue + level

def proficiencyRankText(rankValue):
return {0: '', 2: 'T', 4: 'E', 6 : 'M', 8: 'L'}[rankValue]

builddata = data['build']
level = builddata['level']

print(builddata['ancestry'])
print(builddata['heritage'])
print(builddata['background'])
print(builddata['class'])
print('level:', level)

print('')
print('

Ability Bonuses:
')
strs = math.floor( (builddata['abilities']['str'] - 10) / 2)
dex = math.floor( (builddata['abilities']['dex'] - 10) / 2)
con = math.floor( (builddata['abilities']['con'] - 10) / 2)
ints = math.floor( (builddata['abilities']['int'] - 10) / 2)
wis = math.floor( (builddata['abilities']['wis'] - 10) / 2)
cha = math.floor( (builddata['abilities']['cha'] - 10) / 2)

print('STR:', strs)
print('DEX:', dex)
print('CON:', con)
print('INT:', ints)
print('WIS:', wis)
print('CHA:', cha)
print('

')

print('')
print('

Feats:
')
for featdata in builddata['feats']:
print(featdata[0])
print('
')

print('')
proficiencydata = builddata['proficiencies']
print('perception:', proficiencyValue(proficiencydata['perception'], wis, level), proficiencyRankText(proficiencydata['perception']))
print('')
print('fortitude:', proficiencyValue(proficiencydata['fortitude'], con, level), proficiencyRankText(proficiencydata['fortitude']))
print('reflex:', proficiencyValue(proficiencydata['reflex'], dex, level), proficiencyRankText(proficiencydata['reflex']))
print('will:', proficiencyValue(proficiencydata['will'], wis, level), proficiencyRankText(proficiencydata['will']))
print('')

print('

Skills:
')
print('acrobatics:', proficiencyValue(proficiencydata['acrobatics'], dex, level), proficiencyRankText(proficiencydata['acrobatics']))
print('arcana:', proficiencyValue(proficiencydata['arcana'], ints, level), proficiencyRankText(proficiencydata['arcana']))
print('athletics:', proficiencyValue(proficiencydata['athletics'], strs, level), proficiencyRankText(proficiencydata['athletics']))
print('crafting:', proficiencyValue(proficiencydata['crafting'], ints, level), proficiencyRankText(proficiencydata['crafting']))
print('deception:', proficiencyValue(proficiencydata['deception'], cha, level), proficiencyRankText(proficiencydata['deception']))
print('diplomacy:', proficiencyValue(proficiencydata['diplomacy'], cha, level), proficiencyRankText(proficiencydata['diplomacy']))
print('intimidation:', proficiencyValue(proficiencydata['intimidation'], cha, level), proficiencyRankText(proficiencydata['intimidation']))
print('medicine:', proficiencyValue(proficiencydata['medicine'], wis, level), proficiencyRankText(proficiencydata['medicine']))
print('nature:', proficiencyValue(proficiencydata['nature'], wis, level), proficiencyRankText(proficiencydata['nature']))
print('occultism:', proficiencyValue(proficiencydata['occultism'], ints, level), proficiencyRankText(proficiencydata['occultism']))
print('performance:', proficiencyValue(proficiencydata['performance'], cha, level), proficiencyRankText(proficiencydata['performance']))
print('religion:', proficiencyValue(proficiencydata['religion'], wis, level), proficiencyRankText(proficiencydata['religion']))
print('society:', proficiencyValue(proficiencydata['society'], ints, level), proficiencyRankText(proficiencydata['society']))
print('stealth:', proficiencyValue(proficiencydata['stealth'], dex, level), proficiencyRankText(proficiencydata['stealth']))
print('survival:', proficiencyValue(proficiencydata['survival'], wis, level), proficiencyRankText(proficiencydata['survival']))
print('thievery:', proficiencyValue(proficiencydata['thievery'], dex, level), proficiencyRankText(proficiencydata['thievery']))

print('')
for loredata in builddata['lores']:
print(loredata[0], proficiencyValue(loredata[1], ints, level), proficiencyRankText(loredata[1]))
print('

')

print('')
print('')

#print (list(builddata))

Edit: Aaaaand of course, it tries to interpret the embedded BB code string literals when I post it here.

Womp womp womp.

Radiant Oath

Pathfinder Adventure Path, Lost Omens, Rulebook, Starfinder Adventure Path, Starfinder Roleplaying Game, Starfinder Society Subscriber

Is there some sort of "Profile Template" around the Forums people doing 2e Play-By-Posts use I can just copypaste my Pathbuilder stats into?


I have seen several common themes. There isn't an enforced standard template.

You can check out mine. Or plenty of others for inspiration. Like, literally. Finoan is one of my PbP characters and still has his profile filled out.

For a copy/paste/edit, you probably want one that uses less spoilers... You could ask at a PbP PFS lodge to see if any of them have a template that they recommend.

Radiant Oath

Pathfinder Adventure Path, Lost Omens, Rulebook, Starfinder Adventure Path, Starfinder Roleplaying Game, Starfinder Society Subscriber

Thank you!

Community / Forums / Pathfinder / Pathfinder Second Edition / Advice / Pathbuilder to Profile? All Messageboards

Want to post a reply? Sign in.