PDA

View Full Version : Combine Core Rules Into Single Module?



jwfitt
November 12th, 2017, 19:44
Curious if there is a way to combine and merge all core game rules (from all official books) into a single module?

Presently, there are little things like Feats and Spells from official adventures (Magic Stone spell and Svirfneblin Magic feat in Elemental Evil). There are also several entries for every Race and Class with every official module activated.

Example Image:
21456

My goal would be to have a single module with all the official material merged into a single entry (ie, one Barbarian with info from Sword Coast, PHB, Xanather, etc). The hope would be less modules needing to be activated, less memory and less confusion for players who can pick and choose from multiple entries of the same thing.

Is this something that can be done, even if it requires a good bit of manual labor?

If you load all 5e modules in a brand new campaign with no players connected and nothing shared it clocks in at 1.2 GB of RAM usage. Even on powerful machines this becomes an issue once you start playing with map shares and players due to the program limitations (seems to hit issues when it gets close to 2GB I believe?).

Example Image:
21457


Cheers!

Zacchaeus
November 12th, 2017, 22:48
Issues will become apparent at closer to 3.2 Gb. But this is shared material; usually the issues are on the players side rather than on the DMs side.

The only way that you could do what you want is to manually enter everything into FG in one big module. You won't obviously be able to add in any artwork (which probably takes up a lot of the memory).

LordEntrails
November 12th, 2017, 23:42
As Mr. Z says, you could do this by inputting everything manually. Either through the UI or using one of the parse tools to at least enter parts of it.

I'm lazy, it wouldn't be worth it to me, but it might be for you.

jwfitt
November 12th, 2017, 23:46
Thanks for the confirmations. I have all the official modules, but my OCD has me wanting to merge it all into a nice, clean singular thing which would merge all of the core rules, classes, races, monsters, etc. from all sources. Likely, will leave adventures modules separate and turn those on as needed in the campaigns... ((@__@))

jwfitt
November 15th, 2017, 06:23
So I've been hacking away at building my own module from all the source books. Mostly a good, but tedious experience.

Unfortunately, I'm running into an issue with the 5e character sheet and skill links, both within the Skills tab of the sheet and the links you get when dragging a Class onto your sheet where it prompts you to pick Skills. In both cases trying to click the link for the skill info gives the error:

"Unable to open window using wildcard link, because no module containing that link is open. Check your active Library modules."

I have tried loading the module I've made from this into a new 5e game and the error still persists. I'm guessing it is something related to how the 5e character sheet is coded? Is it possible to hack the 5e.pak files and edit some xml or lua to make this work? I have exact duplicates of all the official 5e skills in the Skills listing within the campaign.

Example:
21471

Edit: Other links from added classes work fine (like those on the Abilities tab).

Zacchaeus
November 15th, 2017, 10:47
Need more information. Where are you dragging the class from? Is it from your own created module? If so have you recreated the skills in your own module? If not do you have the PHB open when dragging in the class?

jwfitt
November 15th, 2017, 14:34
Sorry for the confusion.

I have duplicated every thing from the PHB (and other core books) into my own module (Classes, Skills, etc.). I am dragging the class from the my list of Classes within this module. There are no other modules loaded.

I have tried this in two scenarios:
1) In my working/creating campaign where there are no module loaded at all - everything exists within the campaign locally.
2) After exporting that working campaign into a module and going into my Actual Play Campaign and creating a new PC there.

In both cases, the error persists.

All other links from classes work fine on the Player Character sheets except the links to skills.

Here's an example from Scenario #2 where I've loaded my module "D&D 5E - Player's Handbook" and tried to create a new PC:
21475

Cheers!

Trenloe
November 15th, 2017, 15:48
Unfortunately, I'm running into an issue with the 5e character sheet and skill links, both within the Skills tab of the sheet and the links you get when dragging a Class onto your sheet where it prompts you to pick Skills. In both cases trying to click the link for the skill info gives the error:

"Unable to open window using wildcard link, because no module containing that link is open. Check your active Library modules."
These links are looking for a FG database path of reference.skilldata.<skillname>@* So the skills information in your modules must use the same path - reference.skilldata.<skillname without spaces>.

See the data paths here: https://www.fantasygrounds.com/wiki/index.php/Data_Structure_Overview_and_Best_Practices

EDIT: Exporting skills data from the FG interface will just store the info in the skills database path at the root of the FG database. You will need to manually edit the XML to copy this data into a reference.skilldata DB section.

jwfitt
November 15th, 2017, 22:25
Thanks Trenloe! I have been trying to dig into it, but I am wondering if you can elaborate a bit if you get time?

I exported a very simple module as a test-case, with just 2 Skills created in the Campaign level.

Attached here is the db.xml file from that exported .mod file (it's not very long).
21478

There appear to be three sections where references to skills are listed. I'm a bit confused on the structure and where to edit the reference.skilldata DB entry into the file that you mention?

If possible, could you provide an example?

Trenloe
November 15th, 2017, 22:44
I haven't tested this, but you'll need something like this added to the db.xml file between the <root> tags:


<reference>
<skilldata>
<acrobatics>
<locked type="number">1</locked>
<name type="string">Acrobatics</name>
<recordname>
</recordname>
<stat type="string">Dexterity</stat>
<text type="formattedtext">
<p>Your Dexterity (Acrobatics) check covers your attempt to stay on your feet in a tricky situation, such as when you're trying to run across a sheet of ice, balance on a tightrope, or stay upright on a rocking ship's deck. The DM might also call for a Dexterity (Acrobatics) check to see if you can perform acrobatic stunts, including dives, rolls, somersaults, and flips.</p>
</text>
</acrobatics>
<animalhandling>
<locked type="number">1</locked>
<name type="string">Animal Handling</name>
<stat type="string">Wisdom</stat>
<text type="formattedtext">
<p>When there is any question whether you can calm down a domesticated animal, keep a mount from getting spooked, or intuit an animal's intentions, the DM might call for a Wisdom (Animal Handling) check. You also make a Wisdom (Animal Handling) check to control your mount when you attempt a risky maneuver.</p>
</text>
</animalhandling>
</skilldata>
</reference>

Note how the data has been added between <reference> and <skilldata> - this is the FG DB notation reference.skilldata Then the numerical ID's have been changed to the lowercase skill name, with no spaces. So, Acrobatics is actually at the reference.skilldata.acrobatics FG DB database node.

jwfitt
November 16th, 2017, 01:26
That worked! Thanks so much for all the help!

One additional question... I am able to strip it all the way down to just:



<?xml version="1.0" encoding="iso-8859-1"?>
<root version="3.3" release="8|CoreRPG:3">
<reference>
<skilldata>
<acrobatics>
<locked type="number">1</locked>
<name type="string">Acrobatics</name>
<stat type="string">Dexterity</stat>
<text type="formattedtext">
<p>Your Dexterity (Acrobatics) check covers your attempt to stay on your feet in a tricky situation, such as when you're trying to run across a sheet of ice, balance on a tightrope, or stay upright on a rocking ship's deck. The DM might also call for a Dexterity (Acrobatics) check to see if you can perform acrobatic stunts, including dives, rolls, somersaults, and flips.</p>
</text>
</acrobatics>
<animalhandling>
<locked type="number">1</locked>
<name type="string">Animal Handling</name>
<stat type="string">Wisdom</stat>
<text type="formattedtext">
<p>When there is any question whether you can calm down a domesticated animal, keep a mount from getting spooked, or intuit an animal's intentions, the DM might call for a Wisdom (Animal Handling) check. You also make a Wisdom (Animal Handling) check to control your mount when you attempt a risky maneuver.</p>
</text>
</animalhandling>
</skilldata>
</reference>
</root>


Which works great for the character sheet being able to link to it, and the skills showing up in the Fantasy Grounds main "Skills" button for 5E. However, without leaving the duplicated entries from the campaign, under the:


<skill>
<category name="" baseicon="0" decalicon="0">
<id-00001>
...

There are no entries in the actual Loaded module list

Just wondering if there's a more elegant way to reference these type of entries in the module that were all ready created or if the simple answer is just duplicate and rename them (which is fine).

Thanks again for all the assistance!

Trenloe
November 16th, 2017, 01:55
That worked! Thanks so much for all the help!

Which works great for the character sheet being able to link to it, and the skills showing up in the Fantasy Grounds main "Skills" button for 5E. However, without leaving the duplicated entries from the campaign, under the:


<skill>
<category name="" baseicon="0" decalicon="0">
<id-00001>
...

There are no entries in the actual Loaded module list

Just wondering if there's a more elegant way to reference these type of entries in the module that were all ready created or if the simple answer is just duplicate and rename them (which is fine).
As you are finding out, the reference skill data and the campaign data (from the button on the right hand side of the desktop) use two different data sources: reference.skilldata and skill respectively. You basically need to have the two sets of data duplicated if you want to see them appear in the two different places.

From the "Best Practices" section here: https://www.fantasygrounds.com/wiki/index.php/Data_Structure_Overview_and_Best_Practices

"Adventure vs. Rulebook = When creating modules, make sure to place adventure data in the campaign data path, and any rulebook data (such as bestiary, lookup tables, etc.) in the reference data path."

The campaign data path is "skill" and the reference data path is "reference.skilldata". It is up to you if you want both - the reference skills will be available in the Skills list in the Library window for the module, so you can access the data that way if you don't want the two different entries. But if you want searchable skills in the campaign data then you will need to duplicate the data.

For skill data I'd say you could probably get away with just using the reference entry as it's not something you're going to search through a big long list.

I also forgot to mention - the "Read Only" check box in the Module Export screen determines if the data is exported to the reference data path (checked) or the campaign data path (unchecked). So you can generate your reference.skilldata data from there - but you will need to change the <id-xxxxx> entries to the skill name without spaces string.

Hope that helps and I haven't muddied the waters?