So in my house campaign, we have a few house rules dealing with initial character creation. First, we have a Social Standing rule, where depending on which of the six social classes you were raised in, you will gain a +1 on a particular ability score.
We also have a bonus feat that you get based on where you grew up. This is a choice of one of three available feats for that region.
I feel the best place to implement these items would be in the Factions category. The initial problem I came up against was how to limit to just one selection of each type of faction (one Social Standing faction, and one Region faction). Here is how I implemented it:
First, I had to tag each faction with what type it was. This was done with a simple user tag (Custom.SocStand, and Custom.Region).
Second, I had to make sure it wouldn't allow two of the same type to be selected. I implemented this with the following Pre-reqs script:
the Pre-req script is run in two different conditions. It can be run on a pick (an already selected faction) to validate exiting picks, or it can be run on a thing, to build the list of valid choices when adding a faction. I want it to return a pick as valid if there is only one pick on the hero of that classification (having the Custom.SocStand tag). I also only want it to list a faction as an option to add if there are 0 factions of that classification currently picked.
I then run a similar Pre-req script for the Region factions.
There may be a better way to do this, but this was the way I did it. I really like these types of settings as factions, because it means they stay on the Backgound tab, where they belong.
Code:
Standing Ability Bonus
-------- -----------------
Serf +1 Strength
Outlaw +1 Dexterity
Noble +1 Constitution
Middle Class +1 Intelligence
Freeholder +1 Wisdom
Royal +1 Charisma
Code:
Region Feat Choices
------ -----------------
Barrier Mountains Endurance, Great Fortitude, Iron Will
Black Empire Athletic, Endurance, Great Fortitude
Cold Forest Improved Initiative, Point-Blank Shot, Stealthy
etc......
First, I had to tag each faction with what type it was. This was done with a simple user tag (Custom.SocStand, and Custom.Region).
Second, I had to make sure it wouldn't allow two of the same type to be selected. I implemented this with the following Pre-reqs script:
Code:
var soccount as number
soccount = 0
foreach pick in hero where "Custom.SocStand"
soccount += 1
nexteach
if (@ispick <> 0) then
validif (soccount <= 1)
else
validif (soccount <= 0)
endif
I then run a similar Pre-req script for the Region factions.
Code:
var regcount as number
regcount = 0
foreach pick in hero where "Custom.Region"
regcount += 1
nexteach
if (@ispick <> 0) then
validif (regcount <= 1)
else
validif (regcount <= 0)
endif
There may be a better way to do this, but this was the way I did it. I really like these types of settings as factions, because it means they stay on the Backgound tab, where they belong.