[Abandoned] Modding Tool

18 posts / 0 new
Last post
#1
[Abandoned] Modding Tool

I was looking into modding for NS and feel that a tool to parse the XML data of neogame into easily usable information would be really great. I'd be done for making it but I'm not 100% sure what I should do with the parsed data. I want to create a program to help people make mods easier and faster. The biggest thing for me is taking all the id numbers and representing them as there item name so that I can easily find items or anything else.

What features do you think this tool should have. Right now I was thinking taking the neogame.xml data and organizing it so you can quickly look through the different tables. I think it would also be nice to have a mod creation tool that exports a neogame.xml file with the mod information you give it.

I don't know a whole lot about the mod system in NS yet so I'm not sure how to layout the information from neogame.xml. Any suggestions are much appreciated.

If you want to help that would be great. I've planned on making the tool using Java and the framework LibGDX because I know how to use it really well.

Edit:
Version 0.1.2 has been released and you can download it here - Neo Scavenger Mod Manager.
As of right now you can only view neogame.xml information and can't save or create anything. Conditions and Item Properties are listed with their ids and names to make for easier understanding and viewing. If you want to help I've put all the code on git hub HERE. All the information for setting up the project is included in the read me.

I hope to add a lot more features to this and hope it will be a useful tool for people.

These are just some of the features I hope to add...
-Add explanations for all tables and columns
-Create graphical editor for encounters
-Add mod saving support
-Add mod xml export
-Show images where needed
-Generate getmod.php and getimage.php files
-Improve UI

------------------------------------
Neo Scavenger Mod Manager - NSMM

Could be an idea to post a screenshot of how it looks at the moment? Maybe a list of features you want, or have been given / planned.

As you are a Java guy, you most likely wouldn't of heard of this tool but I use a tool called Snoop, which is a .xaml viewer for Windows Presentation Foundation (WPF) which basically is a UI language that is stored as .xml for .NET apps and looks pretty much the same.

Anyway below is a screenshot of the application. Now you select to load the file, and then it displays the data in the tree view to the side listing each object, and those that are nested within. You can then select these to display its fields etc. At the top next to the refresh icon it has a drop down list which you can actually type in to find the object by name you are looking for.

IMAGE(http://i147.photobucket.com/albums/r299/Br1stow/snoop-1.png)

That could give you some idea of how you could maybe implement a UI for the application...

That's very cool! I'll admit that the XML file can be pretty daunting. There's a ton of data in it, and all the IDs can make it hard to keep track of stuff.

The approach you're taking seems like a great start, though. Simply converting IDs in-place, so users can see that this "torch" item applies the "carrying torch" condition will make a big difference.

When doing development, I've run into similar situations where I want to edit more quickly than typing IDs. In such cases, I've written some quick and dirty PHP webpages which parse the relevant data from the database, present it in a web form (with IDs translated to string names), then hook the submit button up to PHP code to write it back to the database.

As you can probably infer from the above, I keep the XML data in a MySQL database during development, since it can be handy for sorting/searching. The XML file is just an SQL dump in XML format, so one could conceivably rebuild the database by importing the XML, if they wanted.

Getting back to UI, I think even a straight property-editor (like the image matsy links) can be pretty powerful if it substitutes user-friendly names in place of game IDs, then writes it back to XML.

The main thing in the game that might need more advanced UI would be encounters. As you can see from the encounter editor screenshots (second spoiler tag here), mapping outcomes to each encounter benefits from a bit more graphical treatment. However, even this editor is just a glorified property editor. The only difference is that there is more than one set of fields on the screen at once, and they can be moved around and connected to each other via arrows.

Anyway, I just wanted to say that I think this sort of a tool would be very popular if you could get it working. Lots of folks want to tinker with the game, but are afraid of that XML!

Dan Fedor - Founder, Blue Bottle Games

Thanks for all the ideas. I did have one question about the mods. How does the game handle two different mods with the same id number. Say I have a mod that creates an item and uses it in an encounter. If I have another mod where someone else created a new item with the same id number what happens?

I was thinking it might be good if this tool I'm making could look at all the new mods and fix any conflicts like this.

------------------------------------
Neo Scavenger Mod Manager - NSMM

That was actually a major problem in v0.987b and earlier. New mods would overwrite each other (as would new game versions).

However, in v0.988b and later, the game will auto-resolve any conflicts as the mods are loaded. I thought I had explained this somewhere, but I wasn't able to find it. So I've added a new entry on this documentation thread:

http://bluebottlegames.com/main/node/3066

The first spoiler explains how IDs work, and how mods can cross-reference IDs in other mods or the base data. If you're writing a tool for editing data, it'd probably be best to use that same ID format:

AA:BB.CC

Note: The ".CC" only applies to items, which have both a group and subgroup (BB.CC). The rest of the data would all look like:

AA:BB

So as long as your tool knew the prefix (AA:), you'd know which data the user meant, even if the IDs were redundant.

Dan Fedor - Founder, Blue Bottle Games

oh dcfedor, I had just written an essay on this from what I grasped from your blogs! Glad I remembered it correctly thouggh.

@cxsquared
If the tool could load multiple mods, it could warn the moder that mod 'x' is going to modify "0:13.0", which mod 'y' also plans on moding "0:13.0" too. Making the first change redundant from mod 'x' as it will be overridden by mod 'y'. (I assume as you are just over writing it as the second mod is processed?).

Oh, oops! I'm glad to hear that the info was out there somewhere. Thought I was losing my mind!

Regarding the "0:13.0" situation you mention, it seems like this would occur in the override system. Basically, if you name a mod "0", the game will assume any data in there should override base game data. This is necessary if the mod wants to add something to the game, since the base data (treasure tables or similar) need to be tweaked to include the new stuff.

The trick with overrides is that they are order-dependent. So the getmods.php file specifies the order in which those mods are loaded, including override mods. And whichever one is loaded last, "wins."

So if you wanted an editor to handle that, the editor would probably need to parse the getmods.php file to see what other mods are being included, what order they load, and what their data IDs are.

Dan Fedor - Founder, Blue Bottle Games

I figured the Mod tool will also allow people to adjust mod order and organize the mods they want in the game similar to want Nexus Mod manager does. The tool will generate the getmods.php file with the mods in the correct order and possibly help order the mods the best way.

I've got the program dynamically parsing all the data from the neogame.xml file so future Neo Scavenger updates shouldn't break the tool.

Here are some screen shots of what I have so far. I'm not sure how I want to organize the data from the different tables yet.

http://imgur.com/Q6zoBBb http://imgur.com/eDN60de

And once I get some basic stuff built I'll post the source code on Github.

------------------------------------
Neo Scavenger Mod Manager - NSMM

Nice! I bet a lot of folks would appreciate that. I see a lot of requests for tutorials on how to install and create mods, so if this makes the process easier, I'm all for it!

Dan Fedor - Founder, Blue Bottle Games

I've released version 0.1.0 which serves as a tool to view neogame.xml files better but still doesn't have any save/export features.

You can download it here - Neo Scavenger Mod Manager
You can view and contribute to the source code here - GitHub

Screen shots

Spoiler: Highlight to view
IMAGE(http://i.imgur.com/YesGPdr.png) IMAGE(http://i.imgur.com/MGfFiai.png) IMAGE(http://i.imgur.com/YFukqW3.png)

------------------------------------
Neo Scavenger Mod Manager - NSMM

Word of warning - after performing a scan of the nsmm file, AVG detects it as a possible trojan. Malwarebytes does not however. Could someone confirm on something else that it is only the AVG overreacting?

Also, next time please try hiding such big images in spoiler hider thingy :D


<--Mighty (mini)Mod of Doom-->
DeviantArt Gallery of MoD Sprites

Hmm I have no idea why avg thinks it's a trojan. Do you know any steps I can take to make it not think that?

And images have been hidden sorry lol.

------------------------------------
Neo Scavenger Mod Manager - NSMM

Sorry mate, but I cannot help you with that. What I know is that AVG has a rather "broad" spectrum of what it is considering a threat - quite often, more "amateurish" (from the lack of the better term) programing, such as cracks, hacks and other such home-made stuff gets false-detected. But why, I don't really know - maybe some line of programing is similar to dangerous code in it's data base... Guess you just need to find the answer somewhere in the internet :D

And thanks for hiding those screenshots!


<--Mighty (mini)Mod of Doom-->
DeviantArt Gallery of MoD Sprites

I found out AVG doesn't like a frame work I was using but I've completely gotten rid of that. I scanned the new jar with AVG and it didn't find any threats so the file should be good now.

------------------------------------
Neo Scavenger Mod Manager - NSMM

I've fixed a few bugs I found today and set the program to save the file location of any mod neogame.xml files you load. I also fixed a problem where AVG thought the program was a trojan. The download link above now links to the latest version.

------------------------------------
Neo Scavenger Mod Manager - NSMM

so I guess you stopped working on this? i'm wondering what I should use to write the xml files. what software that is

OverHaul Mod
DevKit is an upgraded BBC mod.
Improve your mods.

Ya sadly I haven't been able to continue work on this. Though this is open source and the repo is at https://github.com/cxsquared/NeoScavengerModManager. I haven't been involved with the mod community for a while now and I'm not sure what is used to modify the xml. To my knowledge people just do it with a text editor such as notepad++. I don't remember the status of my manager but I think you should be able to at least look through the master xml more easily with my program.

------------------------------------
Neo Scavenger Mod Manager - NSMM

I noticed my program crashed on launch and hopefully I fixed that here https://www.dropbox.com/s/ccra5x6ja9n5wc3/NeoScavengerModManager.jar?dl=0

------------------------------------
Neo Scavenger Mod Manager - NSMM