PDA

View Full Version : Setting up a Cheese Grinder ruleset for Hero Lab


Mathias
June 16th, 2010, 02:21 PM
I apologize that I haven't had the time before now to lay out how to modify Hero Lab for the Cheese Grinder rules.

(Here's the ruleset, for anyone else who's reading this: http://www.thecheesegrinder.com/index.php?option=com_content&view=article&id=6&Itemid=2)

On the mechanics tab, create a new mechanic, and use the "Sources" button to assign this to a new "Cheese Grinder" source.

Now, press the "Eval Script" button at the top right, and "click to add another eval script".

The first thing we'll handle is that you want a 40-point attribute point buy.

herofield[tGen].value stores the number of attribute points the user the user has chosen on the Configure Hero form (herofield[tGen].value = 0 means the "Pick/roll ability scores" method. So, we'll add a script to override that.

Normally, these are values that the user would set. Hero Lab's been told that they're user fields, and normally, the compiler would give errors if a user field was modified. So, beginning the script with "trustme" turns off that error report from that point to the end of the script.

Timing: First/5000

trustme
herofield[tGen].value = 40


The same script can be used for starting level and cash, too.


trustme
herofield[tGen].value = 40

herofield[tStartLev].value = 11

herofield[tStartPP].value = 0
herofield[tStartGP].value = 100000
herofield[tStartSP].value = 0
herofield[tStartCP].value = 0


An important note about Mechanics:
Once a mechanic has been added to a character (namely, the testing character), you can no longer use "Test Now!" to apply an incremental change in that Mechanic. Instead, switch windows to the main Hero Lab window, and on the Develop menu, select "Quick Reload Data Files" (keyboard shortcut ctrl-r). That will apply the changes you've made to your mechanic.

Mathias
June 16th, 2010, 02:25 PM
Next, you want to add +1 feat and +1 trait allowed, correct?

2nd Eval Script:

Timing: PreLevel/10000

#resmax[resFeat].value += 1
#resmax[resTrait].value += 1

Mathias
June 16th, 2010, 02:41 PM
You want to make sure that the user does select some of the options on the configure hero form and doesn't check others.

Set up a test character with all the sources you want and none of the others.

Now, in the "Develop" menu, make sure that "Enable Data File Debugging" (at the top) is enabled, then at the bottom, choose "Floating Info Windows" and then "Show Hero Tags". In the list that pops up, you'll see a large block of tags listed as "Source Volume". Write down the tag Ids listed for those.

Now, go back to the Mechanics tab, and press the "Expr-Reqs" button on the top left.

Here's an Expr-req that requires the "Max HPs at New Level" option to be selected:


tagis[source.OptHPs] <> 0


You'll need an Expr-Req for each requirement. You'll note that many of the sources, like "Advancement Speed" or "Pathfinder Adventure Paths", are actually the section headers, so you can skip adding requirements for those.

Now, for requirements you want to prevent. Configure a test character with sources you don't want to allow, so that you can look up their tags. For example, "source.Society" is the category header for the two Pathfinder Society sources - you probably don't want your users selecting that, so here's the Expr-req to prevent that:


tagis[source.Society] = 0


In this case, you can take advantage of category headers to reduce the number of requirements you have to add.

Mathias
June 16th, 2010, 03:00 PM
Non-standard Race rules

The level adjustments you want to use for monsters and templates are the same as the level adjustments that existed in the SRD (they aren't used in the Pathfinder rules, but there was no reason to remove them from HL when the d20 files were turned into the Pathfinder files).

The level adjustment is stored in field[cLevelAdj].value

It's not really practical for you to duplicate every monster and template out there in order to add the correct level adjustment to each, so the next best thing is to change those adjustments from within your Mechanic.

In a new eval script on the mechanic:

Timing: First/500


hero.childfound[tmHlCelest].field[cLevelAdj].value += 4


That's for the Half-Celestial template, giving it a level adjustment of +4 (none of them have level adjustments, so they're all at 0, and you just need to add in the new value).

You'll need a separate line for each race and template.

I'd recommend copying the first line a few dozen times, then select the Id (tmHlCelest in this example), then press the "Find Thing" button that's on the top-right of the Eval script. At the top of that, restrict the list to Templates or Races, and find the template/race you're interested in. Select it, and HL will replace the text you had selected with the Id of the thing you selected.

Mathias
June 16th, 2010, 03:13 PM
Other Rules

Achievement feats aren't allowed:

Expr-req:


tagis[fCategory.Achieve] = 0


No single item may cost more than 49000:

Pre-req:


~start out valid
@valid = 1

~search all our things with a cost
foreach pick in hero from Buyable
~if we find one with a cost greater than 49000, set us to invalid
if (eachpick.field[gCost].value > 49000) then
@valid = 0
endif
nexteach


Ring of Blinking is banned:

Use the Pick-reqs button. At the top, check the "Preclude Selection if Present?" option, then use the "Choose" button at the bottom, specify that you want to choose from rings, and select the ring of blinking.

If you want more control over the error message for the ring of blinking, use the following as an expr-req:


childlives[irBlinking] = 0

ogexam
June 17th, 2010, 04:26 AM
Thanks a ton!

Now if I can get all this done in time for Origins, if not I will at least have this setup on our user laptop for DragonCon.

Once I get all these setup is it possible to "save" it somehow so I can put like a single file or something on the website so that people can 'import' the configuration?

ShadowChemosh
June 17th, 2010, 05:50 AM
Totally. When you do the above you will be creating a new Data file(ie .user) file that will have the above changes. So all you have to do is share that .user file with others and they will have those changes also. It just needs to be installed into their hero lab\data\pathfinder folder.

You may also wish to look at This Thread (http://forums.wolflair.com/showthread.php?p=36847#post36847) as it goes over using the secondary update URL. So you could have it just setup to have HL download and install your .user file(s) just like other updates. This is what I have working for my players and they love the simple one click install of new updates I do.

Hope that helps.

Mathias
June 17th, 2010, 02:51 PM
You could also create a blank character with all the settings correct, but I'm afraid it may not be long before someone forgets "Save As", rather than "Save" and overwrites it, so that may not be useful.

The HLExport program that was installed along with Hero Lab (it'll be in the same folder in the directory and the same folder in the start menu) is for packaging up files - It can take the .user file that contains the mechanic, and/or portfolios (if, perhaps, you wanted to enter your pre-gens), and the files it creates are recognized as belonging to Hero Lab by Windows.