SpellGen 2.0




SpellGen 2.0 is available for download.  It contains many new features requested by users over the past year.  To install it click the link it will run the setup application directly over the web which will install SpellGen and all required software.

The following are the prerequisites for SpellGen 2.0:

  • .NET Framework 2.0
  • MDAC 2.8 for .NET 2.0
  • Crystal Reports for .NET 2.0

This version of SpellGen is a complete rewrite from the ground up to rearchitect the software in a way that will (I hope at least) allow for easier changes going forward.  There are no longer two applications, all editing for all file formats is done in the main application.

SpellGen now supports 3 different document types.  SpellGen 2.0 files are not compatible with SpellGen 1.x. SpellGen 2.0 will read 1.x files, but any file saved from 2.0 will not be able to be read into 1.x. (For references the change is minor and could be hand edited; character files have a totally different format and are in no way, shape, or form backward compatible.)

  • Characters: As in 1.x, character data is stored here and a spellbook can be generated.  The file extension is unchanged; however
  • Reference: As in 1.x, stores the data for a particular rulebook, houserules, etc.
  • Campaign: New for 2.0, this document type stores all of the rules that SpellGen uses.  Some of this data was previously in the rules.xml file, some was previously hard coded.

 New Features

 Here is a list of the new features, I am sure there are some things that I will miss:

  • General – Settings support: SpellGen 2.0 saves various settings on a per user basis.  The final settings list is TBD but they are all available via the Edit | Settings menu pick.
  • General – Error logging support.  SpellGen can generate error logging (via a configuration file setting); if enabled this error log is viewable from the about box.  This should help with diagnosing problems in the field. (The current level of logging is not as good as it should be but this will get added to as time goes on).
  • General – Diagnostics.  SpellGen 2.0 is a substantially more complicated application than 1.x, because of this there is a lot more that can go wrong in the load process.  To help with this there is some simple diagnostics available in the about box to check to make sure that all services and plugins loaded correctly.
  • General – Database support.  All of the reference and campaign data files are loaded into a database (Firebird for those that are curious) when the application starts.  This means that all of the editors have the entire data set of all of the files available to them while they run.  This allows for much better data validation (many combo boxes will show you every value in the database as choices for example).  Unfortunately it also means that startup takes substantially longer. L
  • General – Spell selection.  In all places where you can select a spell (and there are a lot more of them) you now have access to a detailed spell search facility.  This will let you do things like search for all Evocation [Fire] spells in the Players Handbook and Spell Compendium.
  • General – The software update mechanism has changed.  SpellGen now has 3 modes of operation for software updates.  The first is automatic, this works like SpellGen 1.x, updates are checked for at startup and automatically downloaded.  The second is semi-automatic, updates are checked for at startup and a list of out of date files is shown allowing you to choose which (if any) you wish to update.  The third is manual, the software never checks for updates unless you run them yourself by clicking “Check for Updates…” in the Edit menu.


  • Campaign Document: Allows for all of the particular rules of a campaign to be specified; how stats should be used, whether spell points are used, base set of references for the campaign, game statistics, etc.


  • Character – Campaign Support: Characters now belong to a campaign, and operate under the rules of the campaign.  A character can be moved from one campaign to another after it is created, but this may be a lossy operation as campaigns can have different references, statistics, etc.
  • Character – Reference Selection: References selected in a campaign are automatically selected for a character, and disabled so they may not be deselected in the character editor.
  • Character – Variable Statistics: The list of statistics is no longer hard coded; it is defined as part of the campaign.  This allows for custom statistics (such as Taint) to be added to SpellGen and used in spell expressions.
  • Character – Fixed school/subschool support.  School/subschools now work correctly in 2.0.  In 1.x subschools were listed separately from schools, meaning if you banned all Summoning spells you banned them all regardless of the parent school, which is not correct behavior.  Now school/subschool is linked as a pair of data as they should be.
  • Character – Caster level / save DC modifiers on a per spell basis.  Each spell can have its own caster level and save DC modifiers, allowing these values to be tweaked on a spell by spell basis.
  • Character – Addition of spells directly to a character’s spell list: You can now add spells directly to the spell list of a particular class of a character.  This handles classes like the Recaster, which allow for extra spells to be added to the spell list as a class feature.  In SpellGen 1.x you would have had to create a custom class and spell list for the character to handle this.
  • Character – Spell selection editor.  Spells that have overrides applied to them are shown in red making them easy to spot in the spell list.  For classes with spells known, a spell may be taken in a spell slot of a higher level than the spell.
  • Character – Spell selection for classes that know all spells like clerics.  If a class knows all spells like a cleric, you will still be able to select spells for it.  The checked spells will NOT be shown in the output.  This provides a way to cut the chaffe out of the printout for those classes if desired. (If you include a lot of references the cleric spell list gets pretty huge.)
  • Character – Spell like abilities: Characters now have spell like ability support.
  • Character – Backup of 1.x files.  When a SpellGen 1.x file is saved and upgraded to the 2.0 xml schema, the old file is copied as a backup under the name “filename.1x.sbc”.
  • Character – The ability to highlight spells with a background color in the spellbook based on school, school/subschool, descriptor, alignment, or property.


  • Reference – Reference Groups: References now have reference groups.  These are unsupported in the character editor (mainly because I have no free control available to me to allow for elegant use of them in the UI) but they can be selected as part of a campaign.  When a group is selected the character gets all references in the group.
  • Reference – Editor.  The reference editor has been tightened up a lot, it should (in theory) be impossible to save bad data to disk.  Many error cases are validated and errors displayed.
  • Reference – Spell Editor: The spell editor now compiles all expressions as they are entered, flagging any errors.  This means you will not be able to save a reference with expressions that do not compile correctly.  To assist with 1.x reference files there is an edit menu pick “Validate All Spells” that will compile every expression in the reference, flagging all those that fail to compile.
  • Reference – Spell properties.  A new attribute has been added to spells called properties.  This acts like a descriptor but is a separate class of property, it is intended as a catch all for things like Shugenja elements which cannot be expressed in the standard school, subschool, descriptor, alignment provided to spells.
  • Reference – Spell Combo box lists are modifiable.  The list of values shown in a combo box is now a setting, so the end user can add additional values to the combo boxes in the spell editor.  This will make adding things like Psionics easier.  In addition to the preferences, the school, subschool, alignment, descriptor, component, and property controls will show every value from every spell in the database.  This should minimize typing errors as all choices are always available.
  • Reference – Spell tool.  The spell editor now has a tool window called the Spell Tool.  This window shows the expressions in the spell as they would be evaluated for a character, and allows for the parameters (CasterLevel, SaveDC, etc.) to be set to arbitrary values to see how the expression behaves for different inputs.  It will allow you to debug expressions in the reference editor without having to load a character to test them.
  • Reference – New expression variables.  In addition to the 1.x expression variables (CasterLevel, CastingStat, CastingMod, SaveDC, SpellLevel), new variables have been added to allow access to all statistics and statistic modifiers.  The names are xxxStat and xxxStatMod where xxx is the name of the statistic, for example StrStat or DexStatMod.
  • Reference – Spell Replacements.  References now support spell replacements.  This allows for a spell in one book to replace spells in other book(s).  The replaced spells will be made invisible in SpellGen and the replacement spell will be used in its place. (See State of SpellGen for the state of this feature).
  • Reference – Class editor.  The reference editor now has a fully functional class editor.  Classes now have the ability to force spell points on regardless of whether they are on or off for the campaign. (This was required for Psionics which uses ‘spell points’ regardless of what the magic system in the campaign does.)
  • Reference – Multiple schools.  Spells now support multiple schools; you can enter as many as you want in the editor but SpellGen only uses the first 5 for spell calculations.  The schools will properly print in the spellbooks.


  • Generation – Override references.  Override references now correctly show the book containing the spell not the book containing the override as the reference.


Last modified: 07/03/05