Introduction
Pathfinder RPG skill point allocator. Factors in specific class and race requirements (such as Gnome obsession trait and Sorcerer bloodlines).
This application assumes you know the Pathfinder RPG rules.
Supported Classes
Main Window
Output Window
User Select Window
Skills
Custom Classes
Changes
Races Supported
Only races that actually modify skills in some form are present. For now, only a limited number of races are supported (way too many to hardcode in).
Races
Dwarf, Elf, Gnome, Half-Elf, Half-Orc, Halfling, Human, Generic Humanoid, Goblin, Half-Ogre, Hobgoblin, Kobold & Orog.
Creature types are also present in the Race popup menu. These are generic.
User defined races may be added in the future.
Supported Classes
Classes with bracketed text have user selectable options. See User Select Window below.
Core
Barbarian, Bard, Cleric (domains), Druid, Fighter. Monk, Paladin, Ranger, Rogue, Sorcerer (Bloodlines), Wizard (Enchantment school).
Adept, Aristocrat, Commoner, Expert (Selectable skills), Warrior.
Arcane Archer, Arcane Trickster, Assassin, Dragon Disciple, Duelist, Eldritch Knight, Loremaster, Mystic Theurge, Pathfinder Chronicler, Shadow Danver.
ACG
Arcanist, Bloodrager, Brawler, Hunter, Investigator, Shaman, Skald, Slayer, Swashbuckler, Warpriest.
APG
Alchemist, Cavalier (Orders), Inquisitor, Oracle (Mysteries), Summoner, Witch.
Battle Herald, Holy Vindicator, Horizon Walker, Master Chymist, Master Spy, Nature Warden, Rage Prophet, Stalwart Defender.
Occult
Kineticist (Focus), Medium, Mesmerist, Occultist, Psychic, Spiritualist.
Ultimate Combat
Gunslinger, Ninja, Samurai (Orders).
Ultimate Magic
Magus.
User defined classes may be added in the future.
Main Window
Primary window will have one of eleven background colours.
The purpose is so all associated windows (such as Feats & see User Select Windows below) can be easily identified.
You can have several characters open and if you select the right race/class combos, you can have up to thirteen associated windows open for one character.
There is currently no way to set or change the colours. The colours are cycled through each time a new character is loaded or created.
Not so obvious
Master Craftsman column grants a bonus if the skills ranks are 5 or higher.
Only Craft & Profession skills have the option to select as such.
Skill Focus column represents the Skill Focus feat. Better than listing Skill Focus(skill) for all skills in the Feat window.
Level Stepper
Level of class. Maximum is 40 or class maximum, whichever is lower.
Holding the option key will change the level by 5.
Race HD Stepper
HD of race.
Each race has a minimum and maximum and the stepper will restrict that.
Holding the option key will change the HD by 5.
Subtypes Button
List of subtypes that affect skill total.
Swim & Climb
Adds +8 bonus to applicable skill.
Size
Size category. Affects a few skills.
Fly Manueverability Class
Affects Fly skill.
Ability Scores
Minimum is 0, maximum is 255.
Flat Modifier
Absolute value added to total skill points.
Useful for favoured class skill allocation.
Reset Button
Zeroes all ranks. Does not affect anything else.
Output Button
Shows Output window. See below.
Associates the Output window with this character.
Rank Slider
Changes the ranks for the currently selected skill.
Maximum is the total character level/HD.
Output Window
Output skill ranks and totals. The windows background colour will match the character window it is associated with. If it has no associated character, its background will be light grey.
User Select Window
Some classes & races require users to select specific abilities, traits or skills. When a specific class or race is selected, an associated window will open and you can make the selection.
If the selection only allows one, then radios buttons will be present otherwise check boxes will be used.
- Cleric Domains
- Sorcerer Bloodlines
- Wizard (Enchantment school flag)
- Expert class skills
- Cavalier Order
- Oracle Mystery
- Kineticist Focus
- Samurai Order
- Gnome skill Obsession
- Aberration Knowledge
- Animal Type (not exactly as rules. But a fish will not have Fly as a class skill).
- Outsider additional skills (Select up to four. Default class skills will not be listed).
Skills
Base skills are hardcoded in and cannot be changed.
Craft, Knowledge, Profession & Perform skills are set and currently cannot be changed.
Custom Skills
Creating- Press 'New'
- Enter name. Duplicates are not allowed. Once the name is created, it cannot be changed.
- Set desired options.
- Category indicates the skill is a sub-skill of Craft, Knowledge, Profession or Perform.
- Size adjustment is a delta added to the skill total.
- Select what classes consider this a class skill.
- Custom classes will be listed only if they existed since last application startup
- Press Update to save changes.
Custom skills will be listed after the standard skills in the character skill list. Deleting a custom skill cannot be undone. New skills will not be recognised until next application relaunch.
Custom Classes
Creating- Press 'New'
- Enter class name. Duplicates are not allowed.
- Once created, the name cannot be changed.
- Set desired options.
- Select class skills.
- Press 'Update' to save changes.
Left List
List of all custom character classes.
Right List
If checked, it is a class skill.
Note: custom skills will be listed if they existed since last application startup.
New
Presents a sheet where you enter the new class name.
Cannot duplicate an existing class.
Once the name is set, it cannot be changed (other parts of the application require the name be unchanging).
Newly added classes are not picked up by any open character window.
A newly created or reloaded character will register that the new class exists and will be added to the class popup menus.
Delete
Deletes the selected class.
This is not reversible.
Code Update
This is a syntax checker.
If the text pane flashes red, it means there is an error of some form.
Most common errors are spelling mistakes, incorrect case, missing an 'end' keyword or an integer that is too big.
The modified code is not saved.
Update
Updates and saves the custom class.
Centre Text View
Custom code editor for the class.
VERY simple language which allows you to modify the total for a specific skill.
The language can do basic arithmetic and do simple if..then statements.
Below is an example.
ModifyTotal:Acrobatics[
A = l / 2
if A > 0 then
DeltaTotal(3)
end
]
ModifyTotal:Knowledge:Arcana[
B = l + 3
if IsClassSkill then
if IsRace("Human") then
SetTotal(B)
end
end
]
ModifyTotal:Perform:Sing[
DeltaTotal(22)
]
The above will do the following
- if class level is > 1, add 3 to Acrobatics.
- if Knowledge(Arcana) is a class skill & character's race is human, set Knowledge(Arcana) to class level + 3.
- Increase Perform(Sing) by 22.
Custom Code Language Details
ModifyTotal:Acrobatics
What skill you wish to modify the total.
ModifyTotal is case-sensitive. ModifyTotal ≠ modifytotal.
The opening '[' is optional.
The ending ']' is required.
Basic equation
A = l / 2
This one is assign to 'A' the class level divided by 2.
Basic format:
variable = LHS <op>RHS
LHS,RHS = variable or integer or built-in value.
variable is a single, capital letter from A to Z.
integer range is from -32678 to 32676, though large values can be ignored.
built-in constant is a set of character or string constants which represent attributes of the character.
operator is one of + - * / ÷ .
In the case of division, the values are always rounded towards zero.
String Constant | Character | Character Attribute |
---|---|---|
str | s | Str score |
str.mod | t | Str modifier |
dex | d | Dex score |
dex.mod | e | Dex modifier |
con | c | Con score |
con.mod | b | Con modifier |
int | i | Int score |
int.mod | j | Int modifier |
wis | w | Wis score |
wis.mod | x | Wis modifier |
cha | g | Cha score |
cha.mod | h | Cha modifier |
skill.name | o | Skill name |
skill.ranks | p | Skill ranks |
hd | z | Total HD |
classLevel | l | Class level |
race | r | Race name |
race.hd | u | Racial HD |
The string & character are case-sensitive. Except for classLevel, all are lowercase.
if…then
if IsClassSkill then
if IsRace("Human") then
SetTotal(B)
end
end
This is equivalent to "if Knowledge:Arcana is a class skill and the character race is human, set the ranks for this skill to what is stored in variable B". B in this case is class level + 3.
Basic format
if condition is true then
code
end
Condition is one of the following
IsClassSkill
The skill is a class skill.IsNotClassSkill
The skill is not a class skill.IsRace("race")
The character's race is "race".IsNotRace("race")
The character's race is not "race".LHS <comparator>RHS
See Basic Equation above for what LHS & RHS represent.
comparator is one of < ≤ <= = >= ≥ > != ≠
Code can be another equation, function or an if…then statement.
Important: Some editors will replace " " with “ & ” pairs. The parser will not recognise “ or ”. You must use " .
The code editor in this application will not automatically change " " to “ ” .
Other editors may do so.
This automatic functionality is called "Smart Quotes".
Functions
SetTotal & DeltaTotal
are what you use to change the current total.
SetTotal
sets the skill’s total modifier to the passed value.
This is not guaranteed to remain set if the character has multiple classes.
DeltaTotal
changes the skill’s total modifier by adding or subtracting the passed value.
The values must be an integer, built-in value or a variable.
Very large values can be ignored by the skill total calculation code.
MinOfOne(value)
is the same as if value < 1 then value = 1 end .
Just a simple shorthand.
Other details
Any line starting with a '#' is ignored.
Spaces are required between all variables, keywords, integers & functions.
Changes
- Added Custom Skill creation.
- Added Custom Class creation.
- Includes a very simple language for modifying skill totals.
- Changed how window colouring is used.
- Characters are guaranteed to have unique colours (unless more than 20 are open).
- Also added more colours.
- Change: newly created characters will not ask to be saved if no editing has been done.
- Added bold, underline & italic placeholders to Output window formatter.
- Bug fix where saved characters may not reload correctly.
- Generic Humanoid races has a maximum HD of 40.