Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

ROM DB Editor

Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
I`m developing the Runes Of Magic DataBase Editor. Obviously, it will help you to edit things in data.fdb.

This tool allows you to explore/edit many kind of entities in RoM.

Here you can download it (Requires .NET 4.5):
(v 0.4.6) (reupload)
[STRIKE] [/STRIKE]
Old versions:
[STRIKE](v 0.3.0) [/STRIKE]
[STRIKE](v 0.3.1) [/STRIKE]
[STRIKE](v 0.3.2) [/STRIKE]
[STRIKE](v 0.3.3) [/STRIKE]
[STRIKE](v 0.3.4) [/STRIKE]
[STRIKE](v 0.4.1) [/STRIKE]
[STRIKE](v 0.4.5) [/STRIKE]

Sources: (also you may use issue tracker there)

If you want to save things, make sure you press SAVE button where it exists.
And also, don`t forget to go File->Save All (Ctrl+S in main window) when you want to fix your changes to your hard drive. To make things work, you need to save everything to C:\Runewaker\Client\data, then copy everything from there to C:\Runewaker\Resources\data.

Planned features:

  • [v0.4.7] Recipes, titles
  • [v0.5+] Image objects (?)
  • [v0.6+] Quest support
  • [???] ? SQL In-game shop editor in admin panel
  • [???] Patches (save only changed data to apply to different fdb versions)
  • [unlikely] C# 6.0 Support for scripts
  • [unlikely] C# IntelliSence for scripts

In case you have found bugs, or if you want to ask for some feature or whatever - feel free to post it here or privately.

PS: Если вы владеете русским, лучше использовать его (в привате).:):

Big thanks to McBen, Turmalin, and other guys, helped me in that or other way.

==== Usage ===================================
First time usage [optional, but higly recommended to avoid problems]:
  1. Launch the tool
  2. It should show you Setting dialog, if you have no romdb.ini (you should not at the first time)
    • Set all 3 paths (first one is directory, that should contain data.fdb, the second one will contain *.db files , third should be a path to any of your Global.ini files)
    • If you want to work with server files (6.0.7): setup path to your server like c:\runewaker\resource\fdb and c:\runewaker\resource\data.
    • Otherwise, for client: c:\runewaker\client\fdb and c:\runewaker\client\data.
    • You may select either variant, it`s just for convenience if you got your server running on a different machine from your client`s one.
    • If you don`t have that data folders - simply create them manualy.
  3. Press save button there.
  4. ... (Normal usage)
After all that, you may use tool as you used it before. Now the program will ask you on load and save wether to use default paths or to select different. If you select default way, it will save/load things as they should be without asking you any more questions (except localization loading).

If tool cannot find some file, launch log_romdb.bat (or just 'romdb_editor.exe /v'), load data.fdb and close program. Then send me your log file with your problem description privately, and I will see what I can do.

Note: To make admin panel work - specify Global.ini path in settings!!! Ensure Global.ini has correct SQL value set up

==== About Stats & Treasures =====================
If you want to make an item with one random stat for example, you have to use treasures for that. Just create a treasure with stats you need, or use existing. Then set item`s one of the stats field so, that it`s id == tresure guid and rate == 100% (100000). If you want 1 of n random stats, simply pushing them to stats of an item with rates like 1/n won`t give you desired result. Allso be carefull not to mix up RuneObjects and Stats, while using treasures. I haven`t tested setting rune as a stat, I suppose that nothing neither interesting nor usefull would happen.

Also, to make TreasureObject have more/less slots for items:
1. Set desired count.
2. Re-find this treasure
3. Re-open this treasure.

Note: max count is 100.

=== SCRIPTS About (RoM DB Editor v0.3.2+) ==========
You now can run scripts within editor.
These are for searching or editing things in database and showing any kind of information in HTML (4) format.
Scripts should be written using C# language (.NET v4.0 - 4.5). (C# 6 is not yet supported)
Any of your script would be actualy just a body for a method in a following code:
Code:
using System;
using System.Linq;
using System.Collections.Generic;
using RunesDataBase.TableObjects;
using RunesDataBase.SubScript;
using Runes.Net.Shared;
public class Main
{
    public static void Run(RunesDataBase.SubScript.RunesDataBase db)
    {
    // YOUR CODE HERE
    }
}
Anyway, if you`d like to use scripts, please take a look on script.cs inside the archive first!
To get info about fields/types/methods/... just use Microsoft`s VisualStudio (I`d suggest you to use VS2013 or newer + ReSharper)
Create a C# DLL project, add references to "romdb_editor.exe", "Runes.Net.Shared.dll" and "Runes.Net.Db.dll".
Then paste code written above in Class1.cs and now you can write code.
Note you are only writing a body for that method.
However, you can also hack it using code like following:
Code:
// SOME CODE - Run method`s body
}
static void RETURN_TYPE FUNC_NAME(ARGS){//other method`s body
}
and so on.
Please, do not use things that can cause any kind of unhandled exception too easily. Debuging could be not simple at all.
If you hadn`t got it yet - you shouldn`t compile anything, just copy method`s body to editor and click Run.
 
Last edited:
Newbie Spellweaver
Joined
Jan 19, 2015
Messages
90
Reaction score
17
Hey MunkyCS,
thank you very much for this release. I download it an load a FDB File and can search for locas and npcs....save thimgs i will test!!!

THX
 
Newbie Spellweaver
Joined
Jan 19, 2015
Messages
90
Reaction score
17
Thanks you so much MunkyCS but for me don't work :(

View attachment 152108

I'm using 6.3 data.fdb.

Thanks for your share, best regards,
Elssair.

Write something into the Search field and click on search.....

MunkyCS - ROM DB Editor - RaGEZONE Forums
 
Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
click on search.....
It`s also possible just to press Enter.

I will release a bit upgraded version (v 0.1.1) in a few moments.

Changes:
+ Clone items button (it is not supposed to be used for anything else but NPC`s, cause everything else is not supported by now)
+ New editable fields for NPC (Str, Dex, Sta, ..., Spell list, Brave(?),...)
+ GUID field for all objects (readonly)
* Races are now enum, (however, I haven`t found anything except Undead and None mentioned in client sources)
* Added gnome classes to classes enum

As for clone button - it will generate ids like 109999, 109998, ... while they`re free. 109xxx is instead of 102xxx or 103xxx is for compatibility with futher releases of data.fdb (it`s not yet enough, you will also need some merge tool). Clone button may look like it does not work, but pay attention to your Guid field, it should change its value. To name new object - search for this new guid, you should see then new Sysnames for it and for every language you have loaded. So you can edit some (or all) of them. Note that search results (in all tabs) will not update until you search again, however save button works immediately, so that you can save all as soon as pressed save.
 
Junior Spellweaver
Joined
Jul 9, 2014
Messages
168
Reaction score
53
Also, remember, that those *.db can be updated in future, so you would lose all your changes. So, it would be good idea to save change list somewhere with editable guid, so you would can use it on future patches. Got some troubles on prev. versions of editor. That's why I had stop on code-only editor, where editable logic would be saved.
 
Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
Released v 0.2.0
+ Spells support (magiccollectobject.db)
+ Adding new string feature (with an arbitary key in the main menu, or _title/_shortnote at object tab)
(+) Zone zupport (just for fun, there`s no point to use until I`ll know how to add new zones from A to z)
 
Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
v 0.2.1 Released
(Buf support is delayed until 0.2.2)
* fixed zones (thx Turmalin) (You can only change max players + zone .wdb file as well as cloning them. Minimaps and other things will be avaliable later)
* Optimized loading - faster load from FDB
* Optimized search by string
* Default language selection
* Searching in a separate thread.
* Some new fields have been added for spell objects

===================== Zone cloning mini-tutorial =========
To clone existing zones (particulary dungeons):
- Clone template in the editor, save all (zoneobject.db)
- (Clone file to make it present both on client(Client\data\) and server(Resource\data\))
- Add new .ini for your zone at (\Server\Realm_01_Zone\) : like Zone_999.ini, where 999 - your zone`s guid (without 750xxx)
As for it contents - take any similar ini for any dungeon there as an example.
- Add string to your server controller setiings ini file (just clone one there and change zone id`s) (make sure not to copy "disabled" option :D)
- [Restart server controller]

Note that teleporting to a dungeon zone with a gm command ? zone will make you unable to leave zone with a party break. However it`s seams the only correct way to enter zone for adding/modifying objects there. If you enter zone normally (you should add triggers first) - your new objects will not be saved after you leave zone, even if you reform your party and even if you check checkbox "Save" with a Gm Tool.
 
Last edited:
Junior Spellweaver
Joined
Jul 9, 2014
Messages
168
Reaction score
53
For more details: when you create NPC via ? createobj, it would be created in current room(party instance(dungeon) instance XDD). Also, it wouldn't be created in some locations, not sure, which.
But you can create script via createobj + addtopartition functions, which would add your NPC to all rooms at time(addtopartition 0 or -1, not sure, didn't check it for a while).
 
Junior Spellweaver
Joined
Jun 28, 2014
Messages
133
Reaction score
8
Great Tool, thanks for that.
Can you please make a short tutorial how to edit spells for example?
When I open my data.fdb I can only select Strings. How can I open the magiccollectobject.db?

Thanks
 
Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
Great Tool, thanks for that.
Can you please make a short tutorial how to edit spells for example?
When I open my data.fdb I can only select Strings. How can I open the magiccollectobject.db?

Thanks
Most of other *.db are opened automaticly after you select which localizations to load. There`re no need to choose other .db files, this program works with all of them at once. So that you can find anything by it`s ID (or almost anything), however you will see much info about them only for supported classes of objects.
Just search for any spell by it`s name or GUID. For example, you can search for so it has 491150 guid. You can either filter thing using Flame keyword or just enter 491150.
Then double click one you want to edit. You are able to change any supported field unless it`s in System category.
As for fields - they have description. Most of them.
To make AOE from a normal spell just set it`s range, change target type to BadCircle, increase the target count value.
Also you can make spell to cast series of impacts instead of one. Spell count is number of impacts, Next spell time - is a delay between them.


As for room number -
I think that should be 0, because -1 is seams to be used for automatic room selection. Also when ? zone XXX is used without anything else I suppose that should mean that your room == 0. When you enter zone via trigger (via lua script) - the script have room == -1
============ UPD ==============
I have found a bug that it is generating a bit wrong guid for spells (50xxxx instead of 49xxxx or 49xxxxx). I`m not sure is it critical but .... I`ve fixed that and uploaded (version has not changed). Please, redownload [v 0.2.1]. Thx
 
Last edited:
Junior Spellweaver
Joined
Jul 9, 2014
Messages
168
Reaction score
53
Seems 0 is first zone, not for all, but just for first entry.
 
Junior Spellweaver
Joined
Jun 28, 2014
Messages
133
Reaction score
8
Most of other *.db are opened automaticly after you select which localizations to load. There`re no need to choose other .db files, this program works with all of them at once. So that you can find anything by it`s ID (or almost anything), however you will see much info about them only for supported classes of objects.
Just search for any spell by it`s name or GUID. For example, you can search for so it has 491150 guid. You can either filter thing using Flame keyword or just enter 491150.
Then double click one you want to edit. You are able to change any supported field unless it`s in System category.
As for fields - they have description. Most of them.
To make AOE from a normal spell just set it`s range, change target type to BadCircle, increase the target count value.
Also you can make spell to cast series of impacts instead of one. Spell count is number of impacts, Next spell time - is a delay between them.


As for room number -
I think that should be 0, because -1 is seams to be used for automatic room selection. Also when ? zone XXX is used without anything else I suppose that should mean that your room == 0. When you enter zone via trigger (via lua script) - the script have room == -1
============ UPD ==============
I have found a bug that it is generating a bit wrong guid for spells (50xxxx instead of 49xxxx or 49xxxxx). I`m not sure is it critical but .... I`ve fixed that and uploaded (version has not changed). Please, redownload [v 0.2.1]. Thx

thank you so much...
I thought only strings would open.
in your fix version there is no fields.csv can we use the one from older release?

so if I edit a value for example flame cast time from 3 to 1 do I just need to "save all" and copy my data.fdb back to client and ressorces?
no need to extract or repack or anything like this?
thats awsome man! ;-)
 
Newbie Spellweaver
Joined
Jul 29, 2014
Messages
58
Reaction score
61
there is no fields.csv can we use the one from older release?
-oops... yeah, you can use an old one, I haven`t changed it, and, likely, I woud not change it at all. It`s just the same file from fdb extractor (2)

so if I edit a value for example flame cast time from 3 to 1 do I just need to "save all" and copy my data.fdb back to client and ressorces?
- well not exactly. Do not copy .fdb cause it`s not changed. Instead, you should copy *.db files you have saved when you pressed SaveAll. Also, there`s no need to save them anywhere except data folders on client and server unless you making backups. And if your client is launched - you have to restart it (may be there`s some command to do this, but I have no info). Same thing about the server - I`m not sure, but I think restarting DataCenter should be enough.
 
Junior Spellweaver
Joined
Jun 28, 2014
Messages
133
Reaction score
8
-oops... yeah, you can use an old one, I haven`t changed it, and, likely, I woud not change it at all. It`s just the same file from fdb extractor (2)

- well not exactly. Do not copy .fdb cause it`s not changed. Instead, you should copy *.db files you have saved when you pressed SaveAll. Also, there`s no need to save them anywhere except data folders on client and server unless you making backups. And if your client is launched - you have to restart it (may be there`s some command to do this, but I have no info). Same thing about the server - I`m not sure, but I think restarting DataCenter should be enough.

Ok thanks will try that.
But when I copy my edited magiccollectobject.db in client and ressource folder, isn't there any error?
Because the original data.fdb also includes a magiccollectobject.db. How do Server and Client know, which DB to choose first?

And second question, can I edit my DB changes or load them? Or must I always open the data.fdb and make all changes again?
 
Back
Top