Creating a Fighting Fantasy Adventure, Step by Step part 3

Part 3: Standard Operations

There are a a lot of operations that happen frequently in a Fighting Fantasy adventure, this section details how to handle the most common basic ones.


Gaining Skill, Stamina & Luck

Throughout an adventure a hero commonly gains points in these attributes, but we have Fighting Fantasy’s initial rules, meaning that current values may not go over their initial values.  So if we wanted to give a hero a bonus of 3 Luck points we cannot simply say:

<event event=”$luck=$luck+3″>You gain 3 Luck</event>

Since this may push a heros Luck over its initial value.  The FFLib we included in Step 1 has a function that allows us to not worry about this, &gain_stat, and we use it like so:

<event event=”&gain_stat(‘luck’,3);”>You gain 3 Luck</event>

Simply change ‘luck’ for ‘skill’ or ‘stamina’ as appropriate and obviously the number 3 for however many points you wish to grant the hero.  Remember this is not restricted to use in <event> tags but is most commonly useful in them (option tags are also often appropriate).

Note that losing Skill or Luck can be safely and simply achieved by saying:

<event event=”$luck=$luck-3″>You lose 3 Luck</event>

… since there are no rules for hitting 0 or below for these statistics, or for losing them generally. Stamina does have to be handled differently however…


Injuring the Hero

Since Stamina being reduced to 0 means that the Hero has died and the adventure is over we cannot simply lose Stamina by saying:

A rock hits your head <event event=”$stamina=$stamina-4″>lose 4 Stamina</event>

Since this would allow a dead hero (one with less than 1 Stamina) to continue.  To prevent this say:

A rock hits your head <event event=”&damage(4);”>lose 4 Stamina</event>

The damage function will generate a <bookend adventure=”failed” enforce> tag if the Stamina lost drops current Stamina below 1, forcing an end to the adventure.


Testing Luck (and Skill, Stamina)

Like so:

Test your luck.  <if condition=”&testluck();”>If you are lucky <tt ref=”123″>turn to 123</tt></if><else>If you are unlucky <tt ref=”456″>turn to 456</tt></else>

Hopefully that is straightforward enough.  Testing Luck is simply rolling 2 dice and if the roll is less than or equal to Luck the Hero is deemed to be Lucky, Unlucky otherwise, and 1 Luck point is lost every time a Luck test is made.

You can also Test Skill with &testskill(); (this is 2 dice rolled which must be less than or equal to Skill but no Skill is lost) or even Test Stamina with &teststamina(); (4 dice rolled which must be <= Stamina, no Stamina lost).


In the next Step I will show how to simply make a combat in your Adventure.

Leave a Reply

An online project to bring the worlds of Fighting Fantasy, Lone Wolf, Choose Your Own Adventure and other Gamebooks to life

Skip to toolbar