FANDOM


  • One thing that's missing is a general page for stats relating to individual enemies.  We have one for the bosses, but not the mooks.

    I happen to be very good at coverting plain text files into databases and outputting those databases into ginormous pages of HTML, and I thought it would be nice to use that skill to make an omnibus enemies page.

    The problem is that I can't get past step 1.  I can extract the Data/Enemies.rvdata2, but it's gibberish other than enemy names and some numeric variables.  (Or more likely, I think, whatever the standard encoding for plain text in Japanese text files is, but that remains effectively Greek to me.)

    It looks I need the editing software for RPG Maker VX Ace, and, unfortunately, that's out of my budget for the next few weeks even with the current Humble Store discount Fluid Decanter has linked.  Even then, I don't know the settings for the editor make generating an english language plain ascii file with all the enemy data is possible, as it might entail cutting and pasting from dozens of individual editor eindows.

    So if it is possible to get a dump of enemy stat information into a single ascii file relatively easily, and someone would like to do that for me, I'll use the data to throw together a tabular wiki page with that enemy information as a new page.

      Loading editor
    • As far as I know, no one's ever made a tool to do that for games made in VX Ace. Shaz, the person who made the event dump script, was supposedly planning to but never did. It's possible someone could examine the workings of the game in the editor and make such a tool, but I don't have the time right now.

        Loading editor
    • While it would be nice for some of the more annoying enemies, wouldn't such a page be too unwieldy? I mean there are /a lot/ of enemies in this game, just having a list of all their names would be huge, a list with their names and stats would take ages to both create and format to fit with the forums style.

      If you really want to do it, more power to you, but it's a really big task nonetheless. 

        Loading editor
    • That's why he's planning to automate it, or at least that was my understanding.

        Loading editor
    • Depends on the availability of a well formed text file with all of the enemies in an ordered list.

      If that can be done, it's a very simple process.  I fire a series of regular expression search and replaces in something like a perl script to reduce the source file to ascii tab delimited table files suitable for import into a cookie cutter SQL database (I use Access for ease of reporting), design an HTML template for one enemy that looks good in wikia, then use that template to make a report outputting each enemy table record as an instance of that HTML template in a plain text output.  

      If you're going through and compiling a list of all the enemies by hand, that is indeed a big task.

      If what Fluid-decanter says is correct, however, it probably isn't practical.

        Loading editor
    • I don't think such a list would be worth the work involved, even if it could be automated. Most non-boss battles in the game are routine, tips for dealing with the non-routine ones are already included in the walkthrough and the other guides. Monster stats would be mostly pointless without understanding how the different skills and attacks calculate their damage, which opens up another can of worms. And in the end, you'll just end up reproducing a large part of RPG Makers' guts on the wiki. :)

      I don't think the data files contain any Japanese - they are just binary files created with whatever serialization method is used in Ruby (or custom-created for RPG Maker).

        Loading editor
    • ...a bit surprised, stumbling upon this topic

      Anyway, wrt. Enemies.rvdata2:

      Some of of the things said before are kind of right, other are plain wrong.

      As all rvdata2 files, this one is a result of Marshal.dump, but the trick is the other direction.

      To properly load them, you need to provide class descriptions; fortunately, those are easy to find.

      Enemy names are indeed utf-8 encoded strings, that are visible even with a plain binary viewer.

      Basic stats (HP/MP and 6 stats) are an array in each enemy entry, but those are easily accessible.

      The problem lies with any special effects. If you're lucky, those will be enemy skills, that you can later just find by id in Skills.rvdata2. Usually though those will be defined as RPG:BaseItem::Feature and those are quite a bit more tricky to retrive.

        Loading editor
    • I recently did something similar with another game's binary data files, although in the other direction.

      I think I actually will take a crack at it when I'm budgeted for RPG Maker.

        Loading editor
    • TBH, at least as far as the basic stats go, RPG Maker won't make things easier (AFAIU, it doesn't have any "export to CSV file" or similar option; after all, why should it ?).

      On the other hand, a quite simple ruby script, about a 60 lines long (not counting class descriptions; though most of those lines are short ones) can retrieve those stats.

      There are some scripts floating around for the features too, but those are a bit more complicated and depend on the author not being too creative with redefining stuff.

        Loading editor
    • Might be helpful to link those scripts then. While there is a lot of custom scripting under the hood, most of it does not redefine stock behaviors.

      As for RPG Maker VX Ace, it's currently on sale on Steam, though not at its all-time lowest price. It may be helpful to check that what you're seeing is accurate... and to test/run the Ruby script...

        Loading editor
    • I've got a basic campaign plan that is as follows:

      1.) Purchase RPG Maker VX Ace

      2.) Get the TLS source files and poke around with them in the editor.

      3.) Start methodically changing every variable in TLS in the editor and comparing the resultant binary files in a hex editor, work out the pattern in the files.

      4.) Write a script to parse the source files into a cheap relational database of the lists of objects to be generated (enemies and skills, certainly, maybe character classes and maps as well).

      5.) Use the database and another script to generate HTML structured text with the desired attributes in a wikia compatible format.

      6.) Change the unfavorable balance of disposable income and free time in my life.

        Loading editor
    • DukeLeto7 wrote: 3.) Start methodically changing every variable in TLS in the editor and comparing the resultant binary files in a hex editor, work out the pattern in the files.

      This step may be partly or wholly unnecessary. Much of the stock engine behavior is in readable and modifiable Ruby files, so you may be able to find the parts that read the database and see what they're doing, rather than having to treat it all as a black box.

        Loading editor
    • I already took a look at the rvdata2 file and it wasn't in clear text, but that may be a result of the program I used to open the rgss3a file.

        Loading editor
    • Dammit...

      As I (and likely Fluid-decanter too) are trying to point out, you're trying to reinvent the wheel here.


      See for example https://ruby-doc.org/core-2.2.2/doc/marshal_rdoc.html. (Ace is actually 1.9, but the format hasn't changed yet - at least not wrt. the classes used here)

      https://gist.github.com/aoitaku/7822424 in rgss.rb has a more than sufficient class description wrt. Enemies (except for features) - just don't trust those dumper scripts there (while they might work for Enemies, chances are they won't for (for example) saves)


      Also, this gives you means to skip the yaml step and get most of the data directly.

        Loading editor
    • If and when I actually get the RPG Maker software, my immense natural laziness will likely channel my energy away from expending the excess effort you are helpfully trying to dissuade me from.

        Loading editor
    • roll:

      Meh, not like I really care.

      The (nearly trivial) script I've been using for awhile with other RPG Maker titles would likely work (with minimal adjustments) here too (by "work" I mean "get the basic stuff (HP/MP/6 stats/exp/gold/drop items)"), but if you want to learn about RPG Maker VX Ace (and its design limitations), have fun.

      Well, it would work, unless authors of this game got somewhat creative and did something like add steal lists or job experience into the mix. Then more significant changes would be required.

      Just note the line from RPG Maker MV ad: "One of the missed functions from RPG Maker 2003, The Event Search function is back!", think what's its converse and know, that it wasn't imposed by any limitation of ruby, just by limitation of RPG Maker VX Ace upstream.

        Loading editor
    • 89.228.61.47 wrote: The (nearly trivial) script I've been using for awhile with other RPG Maker titles would likely work (with minimal adjustments) here too (by "work" I mean "get the basic stuff (HP/MP/6 stats/exp/gold/drop items)"), but if you want to learn about RPG Maker VX Ace (and its design limitations), have fun.

      To be clear, are these scripts you linked upthread? If not, where can those be found?

      Well, it would work, unless authors of this game got somewhat creative and did something like add steal lists or job experience into the mix. Then more significant changes would be required.

      I don't think there's a lot of that. So long as whatever output script grabs the Notes fields it should be okay to add that stuff manually.

        Loading editor
    • @Fluid-decanter: no, not really...and that's because they don't need to.

      I actually know very little of ruby, but script getting the data mentioned above (note field is actually among the trivials, as it's just a string too) pretty much writes itself via reading ruby syntax guide and trivial cargo culting (as long as you've already got class descriptions). It's pretty much "class descriptions, l_a=Marshal.load('Enemies.rvdata2'), l_b,l_c,l_d (Armors,Items,Weapons - for standard drop item list (if there's something like a steal lists, it's most likely using those too)), then for each member of l_a get the values you want".

      Actually, this little discussion inspired me to try to see how difficult would it be to import some of the data directly into an sqlite db and it was pretty simple. That opens up so many simple but interesting options...

        Loading editor
    • ...minor clarification: note string is easy to retrieve, but procesing it might not be, as to make use of it programmatically, you need to transform it to the numeric values first - not that hard, but potentially tedious and always game specific.

        Loading editor
    • A FANDOM user
        Loading editor
Give Kudos to this message
You've given this message Kudos!
See who gave Kudos to this message

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.