PDA

View Full Version : How do I customize Fantasy Grounds?



Giogoto
March 8th, 2006, 03:39
There appears to be quite a steep learning curve associated with the customization of Fantasy Grounds. I have to admit I'm disappointed, but I haven't given up hope (at least, not yet). I'd like to say, first and foremost, that simply having the option to customize is impressive! I recall a few years back when D&D 3.0 released "DM Tools," which was originally supposed to be a customizable rule set but later turned into a severely limited version of its promised glory. Being one of the many who delved into the software, I quickly found it less than what I'd hoped for. So congratulations, FG is flexible...

Sadly, I don't know what I'm doing. I've been pouring over many posts on this forum regarding "new rule sets" or "creating rule sets" and various other combinations/synonyms of "rule set" and "new." I have found copious examples of alerting D20 material (creating house rules, changing the look of character sheets, adding material from alternate D&D settings like "Ebberon" or "Forgotten Realms"), but next to nothing on creating an entirely new rule set.

What I have found has discouraged me: fragmented posts where new users (like me) are confused to wits end, asking questions from FG gurus, and receiving replies from said gurus along the lines of "it's easy, you just have to get into the code and figure it out."

Where do I begin? XML is quite interesting and I'm starting to learn it. I don't mind learning new languages (since part of my job is programming in python and/or HTML). I taught myself Java, Python, HTML, DTML, TALES, and simple C++ (I know, a contradiction of terms). The prospect of having to wrap my mind around FG's subroutines, pulling random puppet strings here and there and observing results--hoping to get it right after many trials--seems daunting.

I'm learning XML. But where do I start? I am copying XML files into a new folder in the ruleset folder as instructed in one thread, copying the base.xml file and such. My problem is the provided solutions are for D20 systems. The base.xml file contains references to all required medium/definitions... do I attempt to rewrite these files? I'm assuming I do, but where does one begin such a task? I was told to look at the character sheet XML file. I'm looking at it right now. What am I looking at? I know that FG uses this information in a particular way, but I suppose I fail to see the information architecture (i.e., why this is called that and what references it when this happens).

I wish I had a complete understanding of this amazing piece of software. Something like a "Creating Custom Rule Sets" manual which shows a new user how XML is being used (perhaps there is and I am so new to XML I haven't seen it yet) and how to manipulate the code to achieve a desired result.

I was sold by FGs ability to be adaptable. I believe it is as far as D20 systems are concerned. I look forward to using FG with some of my RPGs I'm running right now. But I continue to hope that someone somewhere will listen to posts like mine (there are others out there) and offer a more comprehensive beginner's tutorial. Everyone must start somewhere.

richvalle
March 8th, 2006, 04:25
Yes, I agree. Making major, or even minor, changes to FG does seem to be a non-trivial task.

I've seen screen shots of people that have done amazing things with FG... someone made a Star Wars rule set. Someone else made one for a Feudal Japan game they were playing. Elric made a 2nd Edition Ruleset and there is a free d20 Modern ruleset floating around out there and one from Digtial Adventures coming out soon.

If I was going to dive into this I'd grab one of the above and start to figure out what they did to change things around. If you've learned all those software packages, I have no doubt you can learn to mod FG!

Though thats coming from someone who has no idea how to do so. :(

I don't think you need to rewrite FG... just modify what is already there. Start with something 'simple' like the character sheet. From what I understand, you'll need some grapics program to help change the char sheet to look the way you want. See how others changed theirs and then try it youself.

Or start even simpler and add some monsters and spells.

I think you are on the right track with making a copy of the base d20 rule set. That should free you up to modify the files. From what I've seen posted here, the biggest issuse is with how the files interreact with each other. When you make a change to a file name there are several places you have to change the referance to that file.

Hopefully when 1.06 is out (and stable) Smiteworks can work on making some better documentation for this sort of thing.

Ummm, thats all I've got. Sorry its not more help. I hardly have time to play with the softare as it is, let alone trying to change it. :)

Good luck! If you keep asking specific questions, hopefully someone will come along and give you the exact answer.

rv

Giogoto
March 8th, 2006, 04:32
Thanks richvalle. I really needed those supportive words. I know I'm not the only one out there who's having problems. I wish I had the knowledge base necessary to make a ruleset, but like I said before I have to start somewhere. I'm hoping that by coping D20 rules and modifying them I can essentially "save" them as a different system. What I'd really like to do is make a Shadowrun 4th Edition ruleset. I've seen several posts regarding this idea and I think it has merit. We'll see.

Toadwart
March 8th, 2006, 06:20
Also:
a) Search these forums for Custom, Ruleset and similar keywords. There is a wealth of info here...you just have to hunt a bit to uncover the gems.

b) v1.06 is promising to have much more documentation which should make the task easier . It's also adding in a lot of features (including lua scripting)

c) Follow your nose. Find a bit of the existing ruleset that looks interesting then search all of the xml files till you find a bit of xml that looks like the stuff you are seeing on-screen, then search again for the names of the field/classes/attributes within that xml. Most functionality is spread across 3 or 4 files but searching for keywords wil lusually locate the various related components.

d) post queries here, FG users are a friendly bunch :)

Giogoto
March 8th, 2006, 06:25
Thanks Toadwart! I'll look into doing that. BTW: nice screen name. I love the Gummy Bears! :)

Veelivar
March 8th, 2006, 11:08
There is actually a fair bit of infor round these forums. I've only been trying to figuree this out a little while myself. If I can do it any one can :)

The best thing to do would be to have an idea in mnd of what you want to change it to and then sart on that rather than just lookign at different bit of it. It helps focus on what you need a bit.

When you have a specific question come heer and ask everyone seems happy to help.

Basically I think you need to start by copying what is already there, commenting stuff out and the adding it back in to see what happens. The charsheet.xml file I think is the main one that you will nee to look at. different sections referr to differernt sheets and how thay are linked together.

Just play :)

Dan.

mrannah
March 9th, 2006, 03:30
having done some 'minor' tinkering myself, i would say the first step is to use a txt editor like Text Pad. (Notebook doesn't seem to really accomodate this editing too well, to my experience so far.) Second, look for occurrences of the closest approximation to what you're wanting to do that's already in there, and copy it to use it as a template. Also, because of the inter-relatedness of a lot, look for every place that references to your edited text belong.

But it seems that there is very little that you can't do if you're patient and develop the skills to do it. I'm only going so far with the changes i'm making, but i'm very satisfied with the results.

And TEST YOURSELF over and over again, every step of the way to make sure it's working 'so far'. if it crashes, it's nice enough to tell you what line the problem is at, or relates to, so you can go there and get it straightened out fairly quickly.

Don't know if anything i'm saying really helps, but welcome to the club.

nezzir
March 9th, 2006, 04:50
I was able to "reverse engineer" Fantasy Grounds mods and make a complete conversion to Warhammer Fantasy Roleplay in 9 days with no knowledge of scripting, programming, spreadsheets, or Fantasy Grounds. This is a complete re-skin and completely restructured database tables.

First, copy the default rule set into a new directory.

Start with the basic ruleset and work your way down. Do you want to change a graphic? Find the graphic, then search the example xml files till you find the statement that displays it, then change it in your mod. Want to change a table? Find a similar table in the existing rule set and change it.

Remember, xml does nothing in and of itself. It is simply a way to define data.

Back up the entire directory very often, copy files as you work to temp places.

Start the program often and check your work.

Use Excel (or a similar spreadsheet) to convert large amounts of data to code.
Example:
I have a list of 100 things I need to put into a format usable in the FG databases. I need to put into this format:
<tr><td>Name of Item</td><td>Item Description</td></tr>
This is a simple table format

Copy the list of names into column 1
Copy the list of descriptions into column 2
Copy the tags <tr><td>, </td><td> and </td></tr> into a cell somewhere, say cell 1, 2, and 3
Then in column 3, type this:
=cell1&column1&cell2&column2&cell3 (replace the words cell and column with the proper cell and column numbers)
This will copy the contents of the cells, in the proper order, and create your statement.
Now just duplicate that formula in all the cells under it and it builds your data table.
Then you can just copy/paste it to your database. Sounds complicated, but it's not.

The hardest part was figuring out how linking and sub-windows work. Here's what I found out (working with the menus in the reference window, which is what you will do mostly):

Create the contents for your window. At the top there will be a "node name" - this is the variable that contains all the data in the xml database file you just made.

The windows are defined in reference.xml, look at the other windows created there for examples. The Referenceroot window class there opens the menus that appear in the main reference screen.

The xml file that contains your reference menu data opens the contents window.

Example:
I want to create a list in the main reference window (the one that opens when you click the reference icon in FG).
1. I create the menu (see samples and below)
2. I define the window in reference.xml
(Note: When examining a code snippet, it is important to look at 2 examples and see "what's changed")


<windowclass name="lreference">
<datasource name="lreference" />
<defaultsize width="250" height="450" />
<dynamic />
<frame name="referencebox" />
<minimize icon="minimized_reference" />
<sheetdata>
<formattedtextcontrol name="text">
<bounds rect="25,15,-30,-20" />
<font normal="chatfont" bold="narratorfont" italic="chatitalicfont" bolditalic="chatbolditalicfont" title="titlefont" />
<icon link="button_openwindow" emptylink="button_emptytarget" />
<linkicon link="button_openwindow" emptylink="button_emptytarget" />
<footer image="footer_wide" />
<selectioncolor value="#FFD296" />
<footer image="footer_wide" />
</formattedtextcontrol>
<scroller>
<bounds rect="-63,-45,45,27" />
<target name="text" />
<button normal="button_scroller" pressed="button_scroller_down" />
</scroller>
</sheetdata>
</windowclass>

<windowclass name="lreferencesmall">
<datasource name="lreference" />
<defaultsize width="250" height="27" />
<sheetdata>
<windowopencontrol name="open">
<icon normal="button_openwindow2" pressed="button_openwindow2down" />
<bounds rect="0,0,24,24" />
<class name="lreference" />
<description field="name" />
</windowopencontrol>
<stringcontrol name="name">
<bounds rect="30,2,150,20" />
<link handler="open" underlineoffset="-2" />
</stringcontrol>
</sheetdata>
</windowclass>

3: I have referenceroot open the window (reference root is defined in reference.xml)


<windowlist class="lreferencesmall">
<bounds rect="33,43,200,325" />
</windowlist>

4: I create the reference menu mentioned in the datasource (See other database files for complete examples):


<root>
<node name="lreference">
<node name="01introduction">
<stringvalue name="name" value="Introduction"/>
<formattedtext name="text">
<h>Copyright</h>
<p><b>Buy the books!</b></p>
</formattedtext>
</node>
</node>
</root>


Any data files you create must be pre-loaded in the base.xml file (open it for examples)

The above snippets create a menu item in the upper left corner of the reference screen, with one menu item called "Introduction". When you click it, it opens up a window with the copyright text in it.

It gets more complicated from there, but not overly so. Once you figure that out, everything else falls into place.

Hope this is not too confusing and it helps you.

Snikle
March 9th, 2006, 05:18
I am working with Doswelk on a d20 Modern Ruleset, he is doing the hard stuff, I am just changing the graphics, but in doing so I have dug around the xml and learned allot. I also found a great little free xml editor called Xined, available at:
https://sourceforge.net/projects/xined/ only complaint I have it that there is no way to close all nodes, only open them all. It is very nice for keeping your nodes in check and making sure tags are closed.
I have to say that I am not a programmer at heart (I hate code) and I am a noOb at xml, but it seems to me that the way FG's data is origanized is simply...insane. Things that , to me atleast, should be grouped together or in a particular order are hapazardly arranged. A frame will be defined in one file, then the behavoirs in another, then the boundries for data into the frame in another....

nezzir, good idea there with the excel, didn't think of that.

nezzir
March 9th, 2006, 13:17
I am working with Doswelk on a d20 Modern Ruleset, he is doing the hard stuff, I am just changing the graphics, but in doing so I have dug around the xml and learned allot. I also found a great little free xml editor called Xined, available at:
https://sourceforge.net/projects/xined/ only complaint I have it that there is no way to close all nodes, only open them all. It is very nice for keeping your nodes in check and making sure tags are closed.
I have to say that I am not a programmer at heart (I hate code) and I am a noOb at xml, but it seems to me that the way FG's data is origanized is simply...insane. Things that , to me atleast, should be grouped together or in a particular order are hapazardly arranged. A frame will be defined in one file, then the behavoirs in another, then the boundries for data into the frame in another....

nezzir, good idea there with the excel, didn't think of that.


There's already an excellent D20_Modern rule set out there somewhere. It's one of the rule sets I used as an example because it's a near complete conversion. Not sure where it's hosted, I picked it up when I connected to a game someone was running.

If you would like a copy of it, email me at nezzir[removethis]@comcast.net. If you do, I'd like updates on the ruleset ;) I'd also like to play - heh...

Snikle
March 9th, 2006, 13:58
You might be referring to the one we are working on. Doswelk started it and we recently joined up so we could make it the best one available. It is usable at it's current level of completetion, but Doswelk is going back and adding all the OGL data he can find (Urban Arcana, Future, etc). I have to say, the way he has organized the rules, all the links, this is one damned fine version of the modern SRD. Right now it is available only at his yahoo group (we might post a pre-release version on the FUM site soon), but once this reworking is complete, the monsters and Doswelk will release it officially at the FUM site.

If you want a sneak peek at where the transformation from fantasy to modern is at, you can see it here:
https://fouruglymonsters.com/fumcomm/viewtopic.php?p=2637#2637

nezzir
March 9th, 2006, 15:24
You might be referring to the one we are working on. Doswelk started it and we recently joined up so we could make it the best one available, and hell, it is FREE. Cannot beat that. It is usable at it's current level of completetion, but Doswelk is going back and adding all the OGL data he can find (Urban Arcana, Future, etc). I have to say, the way he has organized the rules, all the links, this is one damned fine version of the MSRD. Right now it is available only at his yahoo group (we might post a pre-release version on the FUM site soon), but once this reworking is complete, the monsters and Doswelk will release it officially at the FUM site.

If you want a sneak peek at where the transformation from fantasy to modern is at, you can see it here:
https://fouruglymonsters.com/fumcomm/viewtopic.php?p=2637#2637

LOL! Yes, that's it. Excellent work. It was a great inspiration to me in the creation of my own rule set. You can find my Warhammer conversion here:
https://uk.groups.yahoo.com/group/azureawfrp/join?

Veelivar
March 10th, 2006, 12:13
I too am creating a Warhammer ruleset and once you get into what's going on it is all quite simple. But then I am a programmer... having said that xml is just configuration data. If you having trouble figuring out how i all fits to gether drawinf little link box's on a peice of paper helps :) or lookint at it in a xml editor (although for actual editing I find jEdit fine)

The thing that is slowing me down is getting my images for the background to look right :) I'm spending ages fiddling pixels getting them to look just how I want them too and then changing my mind! :D The one of my players looks at it and goes "oh it would be cool if you changed it like this..." :eek: Still I'm getting there an it is fun there more I figure out about how it all fits together the more ambition my ruleset is getting (I was just going to leave it at a character sheet)

Dan.

Snikle
March 10th, 2006, 15:08
Yes, and I hate to say this, the FG gods might smite me, but the organization of the ruleset elements is not very intuitive to me. In one file the graphic is defined for XX, then in another file the boundries are set up, then in yet another file, it defines how the graphic is justed, etc. Just seems crazy to me, but hey, I am not a programer, maybe they just like stuff all over the place. ;-)

nezzir
March 10th, 2006, 19:23
I too am creating a Warhammer ruleset and once you get into what's going on it is all quite simple. But then I am a programmer... having said that xml is just configuration data. If you having trouble figuring out how i all fits to gether drawinf little link box's on a peice of paper helps :) or lookint at it in a xml editor (although for actual editing I find jEdit fine)

The thing that is slowing me down is getting my images for the background to look right :) I'm spending ages fiddling pixels getting them to look just how I want them too and then changing my mind! :D The one of my players looks at it and goes "oh it would be cool if you changed it like this..." :eek: Still I'm getting there an it is fun there more I figure out about how it all fits together the more ambition my ruleset is getting (I was just going to leave it at a character sheet)

Dan.

Dan, we're almost done. Not many things left to add, mostly just populating the database. Instead of working from scratch, why don't you just pitch in with us. You can tweak till your hearts content, add data, and help us wrap up. contact me at nezzir[remove me]@comcast.net