Home

Awesome

romdb

This is a collection of tools and scripts to import, convert and present the Runes of Magic data files. Everything is licensed using the GNU Affero Generic Public License version 3 - make sure you understand it before using this work.

Screenshots

ROMDB screenshot 1

ROMDB screenshot 2

ROMDB screenshot 3

Required software

Create the database

This must be a PostgreSQL database and must include the citext extension.

# su - postgres
$ psql
# create user romdb password 'romdb';
# create database romdb owner=romdb;
# \c romdb
# create extension citext;

Import database view

$ cd sql
$ psql -h 127.0.0.1 -U romdb
> \i views.sql

Update configuration files

These need to contain the database information and correct paths

$ cp scripts/lib/config.sample.py scripts/lib/config.py
$ $EDITOR scripts/lib/config.py
$ cp www/config.inc.sample.php www/config.inc.php
$ $EDITOR www/config.inc.php

On a stock Debian installation, using PostgreSQL connection string dbname=romdb user=romdb password=romdb host=127.0.0.1 works correctly.

Extract game data

You need to extract data.fdb. This can be done using the fdbtool in the tools directory (note that this is C++ so you will need a compiler)

$ cd tools/fdbtool
$ make
$ cd ../..
$ tools/fdbtool/fdbtool (path to data.fdb)

Alternatively, using FDB_Extractor2 will work as well to extract the data, look for it at https://github.com/McBen/FDB_Extractor2/

Import all data

$ cd scripts
$ ./refresh.sh

This will take a while and should end up filling the database.

Images

Converting the images requires ImageMagick. They can be created by extracting the interface.fdb file and using the convert/convert-image-png.py script to create the large PNG's. Those large images can be converted to small ones. The whole process is among the lines of:

$ cd /tmp 
$ .../tools/fdbtool/fdbtool (path to interface.fdb)
$ mkdir large
$ cd .../scripts/convert
$ ./convert-image-png.py
$ cd /tmp/large
$ for i in *.png; do convert -resize 40x40 $i ../small/$i; done

Open ends

This work isn't finished (mainly because I lost interest as I stopped playing the game); and this is my first serious attempt at Python and AJAX-like behaviour so some things may be messy. I've decided to release this work in an attempt to help out others study this game, create such an item database etc. I do hope it is useful.

Note that the entire process of calculating drop-chances is pure guesswork; I believe it shouldn't be too far from the truth, however...

Finally, I would like to extend my sincerest gratitude to McBen for his work on Runes of Magic; this has saved me a lot of time for which I am very grateful.

Rink Springer rink@rink.nu