• The VOIDRUNNER'S CODEX is coming! Explore new worlds, fight oppressive empires, fend off fearsome aliens, and wield deadly psionics with this comprehensive boxed set expansion for 5E and A5E!

SRD Spells Database 3.5

spacemonkey

Official ENworld Space Monkey
It's beginning to look like we've got a pretty decent model here... have we missed anything?

Yes it is. I'm going to try and find a little time to update my testDB with the changes we have discussed. I always find it much easier to find holes in a design if I can fire a few test queries at it ;) I'll post any concerns I see here.
 

log in or register to remove this ad

Nifoyg

First Post
Looks like the activity on the thread here is old. Any chance anyone completed a database with any of the complete books?

I have a 3.0 db that has players, characters, spellbooks... etc. I want to upgrade the spells to 3.5. I'm willing to recreate the player/character tables and reports. Just need the spell data if its been entered.

-z
 

Thonatos

First Post
Yea.. Ohh yea

How about completing one with 16 books ?

Let's see some email here :)

I have one that I am considering going 'wide open' with. A friend of mine dumped 16 books of data into access, I then imported into mysql ( soon to be postgres ).. and a cgi front end.

Would it be nice to select spells by level, class, domain, prest class, school ? How about then marking them by Indicators ? classes or schools ? even marking for Cure or Inflict type spells ? I should say it is nice :cool:

Seriously, I am breaking some stones here but I do have such a front end. Our gaming group has been using it for about 6 months now. I've rebuilt it a few times and learned some programing along the way as well.

I recently emailed russ( website administrator ??) I dunno, to see if he wants to link it here. A couple of friends did reference this site as a good spot to let it rip into the wide open.

What did I use ?
-- Perl, Cgi, Apache2, Mysql and some serious data entry hours(I owe to someone else entirely)

Where is the link ?? What's the catch..??
Money.. I want money -> just kidding <-
My website is not exactly setup to let in 50 users tomorrow to 'freely' go poke around at my family gallery, munin graphs(harmless sure), forums.. bla bla bla.. I need to do some work... Vacation July 9 - 17th as well.

If I let this thing loose.. and I want too.. I'll need some support from the gaming community. Updates, new data, some volunteers to test my data..

Again -> we have been using this religiously for months now. It rocks...*insert testimonials here*.. The front end is not exactly 'pretty'.. it is however functional =P.

God I wish I could attach a file here.. Ahh there it is.. here is a copy of my '' Speed list " and my "full book" output.. ready ? stop drooling man !!!

Notice the markers on the speedlist. Fullbook is a basic data dump.. no marking there.

I made a nice sorcerer/wizard with some marking for Enchantment school spells ( he has spell focus and wants to remember his DC bonus after all.. right ?? right.. )

Keep in mind... these are 'interactive' builds... not stored anywhere as one of my charectors.. I am hitting a url, picking what I want to filter by.. picking my markers (note the cleric list.. C for cure spells.. and the marker for Enchantment spells on the wizard list).. then proceeding to output.. bang ! pdf...

I welcome some comments.. I am continuously in development.. some weeks I can dump 20 hours in.. some weeks about 1/2 hour... wife.. 3 kids you know the routine.

Send some mail...reply here.. I'll be poking around over the next few days. Again -> off on vacation starting the 9th.

I might start a mailman list on this topic off my site.. I dunno how I am going to 'release'this to everyone quite yet.

-- Trev
 

Attachments

  • 1120615506.pdf
    12.1 KB · Views: 189
  • 1120615666.pdf
    21.5 KB · Views: 92
  • 1120615735.pdf
    73.5 KB · Views: 110


kingpaul

First Post
Thonatos said:
If I let this thing loose.. and I want too.. I'll need some support from the gaming community. Updates, new data, some volunteers to test my data..
The output looks nice, don't get me wrong. However, from looking at your examples, you are using closed content books. Do you have permission from WotC to be distributing spell information from these books (this question is related to 'letting it loose', not with your gaming group using it)?
 

Thonatos

First Post
kingpaul said:
The output looks nice, don't get me wrong. However, from looking at your examples, you are using closed content books. Do you have permission from WotC to be distributing spell information from these books (this question is related to 'letting it loose', not with your gaming group using it)?

Yea, I was concerned about that as well. I'm not charging, and the data is incomplete. I don't take credit... /shrug.
 

schporto

First Post
I have a slightly silly suggestion. Has anybody seen/used exist? It is an xml database. Andargor has already done a bunch of work to put the spells into XML. Just break them into their individual spells as files and add them to this and you would end up with a nice searchable database that you can easily expand to include other bits of info.
http://exist.sourceforge.net/
Yeah it'll be slower then an SQL database, but that's not to say it would be slow especially for the dataset sizes we're talking here.
-cpd
 

Thonatos

First Post
schporto said:
I have a slightly silly suggestion. Has anybody seen/used exist? It is an xml database. Andargor has already done a bunch of work to put the spells into XML. Just break them into their individual spells as files and add them to this and you would end up with a nice searchable database that you can easily expand to include other bits of info.
http://exist.sourceforge.net/
Yeah it'll be slower then an SQL database, but that's not to say it would be slow especially for the dataset sizes we're talking here.
-cpd

Nothing at all about that is silly.
We all have our own needs for spell information.. I have seen threads like this on many boards.. some folks put together lists in one way.. others in another. XML is great.

I chose mysql.. because I know it a little bit.. and the data I was receiving was csv output. I had actually considered outputting my data into xml then deciding what I wanted from that point.. I did not do that of course....
 

IMarvinTPA

First Post
It's IMarv!

Here's how I've structured my database.

--All the spells:

CREATE TABLE `spell` (
`Name` varchar(50) default NULL,
`Id` int(11) NOT NULL default '0',
`School` varchar(20) default NULL,
`Subschool` varchar(20) default NULL,
`descriptor` varchar(255) default NULL,
`levels` varchar(255) default NULL,
`Components` varchar(255) default NULL,
`CastingTime` varchar(50) default NULL,
`Range` varchar(50) default NULL,
`EffectType` varchar(100) default NULL,
`Effect` varchar(255) default NULL,
`Duration` varchar(100) default NULL,
`SavingThrow` varchar(100) default NULL,
`Resistance` varchar(50) default NULL,
`ShortDescription` varchar(255) default NULL,
`LongDescription` text,
`Sources` varchar(255) default NULL,
`Materials` varchar(255) default NULL,
`Focus` varchar(255) default NULL,
`Somatic_Comp` tinyint(4) default NULL,
`Verbal_Comp` tinyint(4) default NULL,
`Material_Comp` tinyint(4) default NULL,
`Focus_Comp` tinyint(4) default NULL,
`DivineFocus_Comp` tinyint(4) default NULL,
`XP_Comp` tinyint(4) default NULL,
`XP_Cost` varchar(255) default NULL,
`Expensive_Focus` tinyint(4) default '0',
`Expensive_Material` tinyint(4) default '0',
`Recharge` varchar(50) default NULL,
`Corrupt_Flag` tinyint(4) default NULL,
`Demon_Flag` tinyint(4) default NULL,
`Devil_Flag` tinyint(4) default NULL,
`Disease_Flag` tinyint(4) default NULL,
`Drug_Flag` tinyint(4) default NULL,
`Fiend_Flag` tinyint(4) default NULL,
`Location_Flag` tinyint(4) default NULL,
`Soul_Flag` tinyint(4) default NULL,
`Undead_Flag` tinyint(4) default NULL,
`Abstinence_Flag` tinyint(4) default NULL,
`Archon_Flag` tinyint(4) default NULL,
`Celestial_Flag` tinyint(4) default NULL,
`Eladrin_Flag` tinyint(4) default NULL,
`Guardinal_Flag` tinyint(4) default NULL,
`Sacrifice_Flag` tinyint(4) default NULL,
`MediumDescription` varchar(255) default NULL,
`Added` datetime default NULL,
`Breath_Flag` tinyint(4) default NULL,
`Grayhawk_Cat` varchar(50) default NULL,
`last_upd_dt` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
`Coldfire_flag` int(1) default NULL,
`Frostfell_flag` int(1) default '0',
`sortname` varchar(50) default NULL,
PRIMARY KEY (`Id`),
UNIQUE KEY `UK_Name` (`Name`),
KEY `RPGASpell` (`Grayhawk_Cat`),
KEY `SourceBookSpell` (`Sources`),
KEY `spell_sortname` (`sortname`)
)</pre>
--The sources field in the spell table is refers to the version being used.

--If I did it again, I would make Frostfell_Flag just be a type of
Location_Flag, and Coldfire_Flag is just a special expensive component.



--The complete list of sources:

<pre>CREATE TABLE `sourcebook` (
`SourceName` varchar(50) NOT NULL default '',
`Open_Flag` tinyint(4) default NULL,
`Permission_Flag` tinyint(4) default NULL,
`CopyDescription` text,
`LicenseLine` text,
`LongSourceName` varchar(50) default NULL,
`SourcePref` int(11) default '0',
`Release_Dt` date default NULL,
PRIMARY KEY (`SourceName`)
)

--The list of sources for a spell:

CREATE TABLE `spell_source` (
`ID` int(11) NOT NULL default '0',
`SourceName` varchar(50) NOT NULL default '',
`Page_No` int(11) default NULL,
PRIMARY KEY (`ID`,`SourceName`)
)

--A table for the types of components a spell may have:
CREATE TABLE `component` (
`Component_Abbr` varchar(10) NOT NULL default '',
`Component` varchar(50) default NULL,
`MyOrder` int(11) default '0',
`Source` varchar(50) default NULL,
`GroupOrder` int(11) default '0',
PRIMARY KEY (`Component_Abbr`)
)

--The tweener table for spells and components.
CREATE TABLE `spell_component` (
`Id` int(11) default NULL,
`Comp_Abbr` varchar(255) default NULL,
KEY `ComponentSpell_Component` (`Comp_Abbr`),
KEY `SpellSpell_Component` (`Id`)
)

--I use the flags in the spell table when I'm looking for spells "that have all of these" while I use this table for those that I'm looking for "has any of these".

--Spell level families (Sor/Wiz, Cleric, Domains, etc, no levels.)
--This is used to search for a class's spell list.
CREATE TABLE `level_family` (
`SingleLevel` varchar(255) default NULL,
`Family_Name` varchar(50) default NULL,
`LF_ID` int(11) NOT NULL auto_increment,
PRIMARY KEY (`LF_ID`),
KEY `FamilyLevel_Family` (`Family_Name`),
KEY `ID` (`LF_ID`),
KEY `LevelsLevel_Family` (`SingleLevel`)
)
--The actual levels themselves, not placed on any spells yet.
CREATE TABLE `levels` (
`SingleLevel` varchar(255) NOT NULL default '',
`LevelValue` int(11) default '0',
`LongLevel` varchar(50) default NULL,
PRIMARY KEY (`SingleLevel`)
)

--Which spells are for which level:
CREATE TABLE `spell_level` (
`SingleLevel` varchar(255) NOT NULL default '',
`Id` int(11) NOT NULL default '0',
PRIMARY KEY (`SingleLevel`,`Id`),
KEY `LevelsSpell_Level` (`SingleLevel`),
KEY `SpellSpell_Level` (`Id`)
)

--I never broke the descriptors into a proper many-to-many relationship, but I probably should. Extensive use of like queries gets around it though.
--There is a descriptors values list, but I just distinct select the schools and subschools.

I am looking for help to continue maintaining the database, if you wish to help, e-mail me.

It is very easy to add spells, you just have to OCR the spell, spell check it, then copy and paste the "spell splat" into a form that will then pull out the various parts of a spell and you can review it before you commit it to the database. If the spell already exists, it will bring up the existing one.

FYI, I have the full spell descriptions for all the spells in 47 sources. About 5 of those are not WOTC things, but mine or friends of mine. (And the spells on Sean K Reynold's site.) Also, I have one of Monte's PDF books in there.

http://www.imarvintpa.com/dndlive/index.asp

IMarv
 
Last edited:

TheYeti1775

Adventurer
Caveman Yeti from the Mainframe....

Don't know what the status is on all of your stuff.
But I know in the Mainframe Databases I work, this would be easy.

Set the Spell Name as a Unique descriptor.
Have the following fields as MU fields (Multi Values)
Spell List
Level
Schools
Type (Fire / etc.) - any subtypes for the school could be put here as well.
Components - V;VM; VS; VSM; S; M; etc. If there is something special (i.e. Truename) have a X represent that in the field for see text.

Single Value fields
Target
Effect
Casting Time
Range
Duration
Saving Throw
Spell Resistance
Description

This would allow for all your queries to be built off of it.
 

Remove ads

Top