Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Poll

What is your favorite tool/the one you find the most useful in DF Diagnosipack?

DF Duplisearch
- 1 (50%)
DF Creatureclasser
- 1 (50%)
DF CVunpack
- 0 (0%)
DF Creaturescale
- 0 (0%)

Total Members Voted: 1


Pages: [1] 2

Author Topic: DF Diagnosipack 1.1.4 (a collection of modding tools)  (Read 8724 times)

voliol

  • Bay Watcher
    • View Profile
DF Diagnosipack 1.1.4 (a collection of modding tools)
« on: February 19, 2020, 05:23:52 pm »

DF Diagnosipack is a collection of modding tools for Dwarf Fortress, with a focus on diagnosing problems and getting statistics on what is found within the raws.

Tools included:
Spoiler: DF Duplisearch (click to show/hide)
Spoiler: DF Creatureclasser (click to show/hide)
Spoiler: DF CVunpack (click to show/hide)
Spoiler: DF Creaturescale (click to show/hide)

Spoiler: Screenshots (click to show/hide)

There's an .exe version, and a version for Python 3. Use whichever you like. The .exe version has no dependencies, while the Python version requires Python 3.
As the .exe version reads and writes (text) files, some malware detectors may mistake it for malware.

Download .exe version (DFFD)
Download Python version (DFFD)
The tools were made (and tested) with DF 0.47 in mind, but most if not all of them should work with older versions of DF as well.

There's also a github repo: https://github.com/voliol/DF-Diagnosipack


All these work for DF 0.44 and 0.47, and likely most earlier versions as well.

jecowa

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3 script)
« Reply #1 on: February 20, 2020, 12:00:57 pm »

I just tried it in Python 2.7.
Spoiler (click to show/hide)

I deleted the "encoding" part and tried again:
Spoiler (click to show/hide)

Is there anything bad about deleting the encoding="latin-1" bit?
Logged

voliol

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3 script)
« Reply #2 on: February 21, 2020, 04:57:39 am »

Is there anything bad about deleting the encoding="latin-1" bit?

No there isn't. I originally wrote this script in Python 2.7, and then ported it to 3. I'm surprised as little has to be done to make it Python 2-compatible.

Python 2.7 actually supposes all read .txt files are in latin-1. This works for DF raws, but can cause corruption in other cases, so they changed it in Python 3. The "encoding='latin-1'" is telling it to use latin-1, despite being in Python 3.

voliol

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3+2.7 script)
« Reply #3 on: March 14, 2020, 10:05:08 am »

Posted the Python 2.7 version as well, because why not? I should be able to make a binary version as well but I dunno about the timeframe on that.

jecowa

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3+2.7 script)
« Reply #4 on: March 16, 2020, 01:55:58 pm »

Thanks. Just used this to problem solve some Duplicate Object errors.
Logged

voliol

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3+2.7 script)
« Reply #5 on: March 16, 2020, 03:26:10 pm »

Np. Here's the first binary version. I'm not too used to compiling my python tbh so hopefully it works more often than not.

Enemy post

  • Bay Watcher
  • Modder/GM
    • View Profile
Re: Duplicated raws checker (a Python 3+2.7 script)(now as an .exe)
« Reply #6 on: March 31, 2020, 10:44:18 pm »

Thanks for doing this, I've been wanting something like this for a long time. This should make modding much more efficient.
Logged
My mods and forum games.
Enemy post has claimed the title of Dragonsong the Harmonic of Melodious Exaltion!

voliol

  • Bay Watcher
    • View Profile
Re: Duplicated raws checker (a Python 3+2.7 script)(now as an .exe)
« Reply #7 on: April 01, 2020, 02:10:38 am »

I’m glad you like it ^^

I just hope this doesn’t lessen the use of prefixes/subfixes, because those are really a more longterm solution and ultimately better than this. That might be my hybris talking though :p

voliol

  • Bay Watcher
    • View Profile
Re: DF duplisearch (a Python 3+2.7 script, or an .exe)
« Reply #8 on: April 19, 2020, 12:20:03 pm »

Now it states which .txt files has the duplicated raws in them, whenever any are found.
Also, it now has a proper name!

voliol

  • Bay Watcher
    • View Profile
Re: DF duplisearch (a Python 3+2.7 script, or an .exe)
« Reply #9 on: July 03, 2020, 03:48:02 pm »

A new version is up. Added another feature inspired by overlapping mods, but that doesn't strictly have to do with duplication errors.

"name_mode" can be toggled on/off depending if you want to show "duplicated names". These are the in-game names (e.g "tiger:tigers:tiger" from "CREATURE:TIGER"), and so they don't cause duplication errors, but can still be confusing to the player. Note that some vanilla objects are recognized as "duplicated", i.e. skirt, short skirt, long skirt.

voliol

  • Bay Watcher
    • View Profile
Re: DF Diagnosipack 1.0 (a collection of modding tools)
« Reply #10 on: July 15, 2021, 01:51:44 pm »

I'm reusing this thread for the spiritual successor of this tool, which I've been working on the last few weeks.
DF Diagnosipack is a collection of modding tools for Dwarf Fortress, with a focus on diagnosing problems and getting statistics on what is found within the raws. In other words, it's DF Duplisearch + DF Creatureclasser + two more tools, and a more proper base that not only should make developing more tools easier, but allows the "old" tools to handle creature variations. Oh, and a snazzy UI.

Hetsin

  • Bay Watcher
    • View Profile
Re: DF Diagnosipack 1.0 (a collection of modding tools)
« Reply #11 on: July 19, 2021, 03:54:51 am »

Hi, I just downloaded the .exe version. I'm getting a "double_print() missing 1 required positional argument: 'use_output_file'" error, when running some of the utilities.

Spoiler (click to show/hide)

Is there something I overlooked when / before running the tools?
Logged

voliol

  • Bay Watcher
    • View Profile
Re: DF Diagnosipack 1.0 (a collection of modding tools)
« Reply #12 on: July 19, 2021, 04:28:05 am »

Nope, that was a mistake on my part. Thanks for telling me.

It’s related to an ”warning message” I put there to warn about an untested feature.
So: what mods are you using? What you encountered was the ”warning message” choking up, and that has already been fixed (and that version is now up), but the the untested feature is still untested, because vanilla didn’t use it, and I knew of no mods that did. Now is as good an opportunity as any to fix that, though, if you name the mods that could’ve caused it :)

Hetsin

  • Bay Watcher
    • View Profile
Re: DF Diagnosipack 1.0 (a collection of modding tools)
« Reply #13 on: July 19, 2021, 12:39:45 pm »

Funny story about that. I've been working on a sprawling custom mod and while it runs on 32 bit DF, it does not run on 64 bit DF. I highly suspect it's the vast amount of CVs used (and specifically the dll function that does memory copies), so I was hoping that I could use the utility to 'flatten' the raws to verify that it's the case.

If you would like me to upload the current state of the mod, let me know. Thanks.  :)
Logged

voliol

  • Bay Watcher
    • View Profile
Re: DF Diagnosipack 1.0 (a collection of modding tools)
« Reply #14 on: July 19, 2021, 12:52:00 pm »

The creature variant handling is what still needs work, so if you could send me the cvs and the creatures that use them, then I’d be very pleased :)
Pages: [1] 2