Ruleset - Overview

Overview

Rulesets within Fantasy Grounds are the game system frameworks that define how the FG tabletop displays and works within a given campaign. The ruleset defines the graphical user interface displayed to the GM and players, as well as defining the way that any module data is interpreted and any automation of the game system mechanics. The ruleset typically does not contain any data relative to the game system, and the data is packaged separately as modules. Some common game systems are: D&D (5E, 4E, 3.5E), Pathfinder (PFRPG), Savage Worlds, ...

Also, the ruleset interfaces also define the campaign database format that is saved to disk when a campaign is closed, and loaded when the campaign is opened. The database typically holds multiple instances of each data record type. The details of the database file structure can be found in the Campaign and Module Data File Overview topic.

When a player client connects to a GM host, the GM's version of any ruleset, extension or module files takes precedence over the players' versions.

At a technical level, rulesets are a collection of XML files, Lua script files, graphic assets (images/fonts) and tokens that define the user interface within an FG campaign. Rulesets do allow layering of functionality, so that a ruleset can inherit all the functionality of another ruleset to make things easier. The CoreRPG ruleset is provided as a basic framework for RPGs that can be used as a base layer for building RPG rulesets.

Easiest Way

The easiest way to create a ruleset for Fantasy Grounds is to copy an existing ruleset, give it a new folder/file name, and begin modifying the interface in small ways. This allows you to get used to how FG allows you to define the user interface and game mechanics. As you become more comfortable with making changes, you can take on bigger changes, and eventually learn to create your own full-fledged ruleset.

Another easy way to create a ruleset is to define a very bare bones ruleset that uses the CoreRPG ruleset as the base layer. By inheriting from CoreRPG, you already have a standard set of RPG interfaces and graphic assets to start from. Then, you can begin to override specific interfaces to enhance your ruleset in small ways, and then in bigger ways. Below is a very barebones ruleset base.xml definition example to use for layering. Make sure to put this base.xml file in a new folder under the rulesets folder in the FG data directory.

<?xml version="1.0" encoding="iso-8859-1"?> <root version="3.0" release="1" logo="logo.png"> <announcement text="TestSystem ruleset v3.3.2 for Fantasy Grounds" font="emotefont" icon="rulesetlogo_CoreRPG" /> <description> <text>TestSystem</text> <author>Me</author> </description> <importruleset source="CoreRPG" /> </root>