Modding tools to Neptunia games
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
u3shit e8c74b6ffb libshit update 2 years ago
doc/formats doc: add endian info 7 years ago
libshit@c8612533e8 libshit update 2 years ago
src libshit update 2 years ago
test Revert "use std::string_view" 4 years ago
tools no committed old fixes 3 years ago
.clang-tidy add .clang-tidy, fix/NOLINT problems 8 years ago
.dir-locals.el neptools reindent; pt2 7 years ago
.gitignore libshit+llvm update, ci: use sysroot with clang 6 years ago
.gitmodules libshit refactor: move to external repo 7 years ago
COPYING add a readme 9 years ago
COPYING.THIRD_PARTY libshit refactor: move to external repo 7 years ago
README.md update libshit: plain lua, better bundled lib handling, win bugfix, ... 7 years ago
VERSION bump version to 0.4.0 3 years ago
gen_binding.rb gen_binding: refactor 2 years ago
waf waf update 6 years ago
wscript vita ci 3 years ago
wscript_user_sample.py switch to clang from clang-cl on windows 6 years ago

README.md

NepTools

This is a collection tools to mod in Hyperdimension Neptunia Re;Birth 3: V Century (and probably RB 1 and 2 too) and Megadimension Neptunia VII and some rudimentary support for Hyperdevotion Noire: Goddess Black Heart .bin files (only stuff under Main). It contains a .cl3 extractor/importer, a text editor for .cl3/.gstr/.gbin/.bin, and a tool to use these files in the game without repacking the .pac files in case of the Re;Births/VII (like KitServer).

stcm-editor/cl3-tool

This tool allows you to edit dialogues and some other text files. The file format is compatible with nr2_strool/nr3_strtool's.

Note: if you've used strtool before, you should delete the modified .cl3 files and reimport the .txts using the original, unmodified .cl3 files. Strtool sometimes damages the .cl3 files in a way that this tool can't handle.

Usage

The main functionality of this program is to dump out the text script inside the .cl3 files, and then reimport modifications. You should be able to do that by just dragging the .cl3 file onto the executable to extract the .txt files, and drop the .txt files to import back. You can also mass-convert directories by dropping them. By default it will export every .cl3 which doesn't have a corresponding .txt, and import where .txt exist. You can override it with the --mode export-strtool and --mode import-strtool options to only import or export.

You can also unpack and repack .cl3 files. The easiest way to do this is to copy/rename stcm-editor.exe to cl3-tool.exe (simply cl3-tool on Linux), and drop the .cl3 file onto the executable. It'll extract into a .cl3.out directory, drop the directory onto the executable to repack. Alternatively you can use --mode auto-cl3, --mode unpack-cl3 and --mode pack-cl3 options to achieve this functionality without changing the filename.

Advanced usage

The tool also has an advanced mode, where you have more control over what happens.

First you have to open a file with --open <filename>. Afterwards you can inspect/modify them. Every operation is done on this file, until you open a new one (or create an empty cl3 file with --create-cl3). Changes are not automatically saved, you'll have to --save <filename> them. Run stcm-editor --help to list all available operations. Some examples:

# list all files in a .cl3 file
stcm-editor --open foo.cl3 --list-files
# extract a .cl3 file
stcm-editor --open foo.cl3 --extract-files output_directory
# replace a file in .cl3
stcm-editor --open foo.cl3 --replace-file name_in_cl3 file_name --save out.cl3
# export txt
stcm-editor --open foo.cl3 --export-txt foo.txt
# chain operations together: export a file, and a txt:
stcm-editor --open foo.cl3 --extract-file bar.tid orig.tid --export-txt foo.txt
# chain operations: replace file and txt, extract a second cl3
stcm-editor --open foo.cl3 --replace-file bar.tid new.tid --import-txt foo.txt --open bar.cl3 --export-files dir
# and so on...

Server

This is like KitServer, except it's open source and modifies some internal game functions instead of creating virtual files that look like the original .pac files. The main differences between KitServer and NepTools' server:

  • It also supports a launcher-less method, see usage below.
  • No tid_tool integration (for now). You have to convert your pngs to tid if you want to use them.
  • Integrated stcm-editor: just drop the .cl3.txt (and .gbin.txt and .gstr.txt) files into the corresponding directory, it'll import them on the fly. Note: if there's an import error it'll silently fall back to the builtin file. Get the debug version if you want to see the error message or try running stcm-editor on the file.
  • Use neptools instead of KitFolder, remove the last 5 digits from folder names inside data.
  • Also has some kind of debug console, download a debug release and see usage notes below.
  • Very early release version: anything may change at any time, nothing is guaranteed to work...

Usage

There are two ways to use it. The first one mirrors the original KitServer: extract launcher.exe and neptools-server.dll into the game directory. In this case you'll have to use launcher.exe to launch the game, if you simply launch NeptuniaReBirth[123].exe/NeptuniaVII.exe, Neptools won't be loaded, and you'll run an unmodded game.

The second way is to extract only neptools-server.dll and rename it to dinput8.dll. In this case there's no launcher, simply start the original executable. In case of RB3, it may not work this way. The problem is that the directory name steam chooses (Hyperdimension Neptunia Re;Birth3) confuses the Windows DLL loader, and will treat ; as a path separator. If you do not want to rename the directory (which would upset steam), you'll have to place dinput8.dll into a subdirectory named Birth3 (so it should end up in steamapps\common\Hyperdimension Neptunia Re;Birth3\Birth3\dinput8.dll). (If you're an Arfoire/Magiquone supporter and installed RB1/2 into somethin like whatever\Neptunia Re;Birth2, you'll have to put it into Birth2. Basically create a directory named whatever after the semicolon is.)

Note for Linux/Wine users: wine by default gives priority to it's builtin version of dinput8.dll, ignoring this custom version. To fix it run winecfg, select Libraries tab, write dinput8 under New override for library, click Add, make sure it says (native, builtin). Also you'll probably need MSVC2013 runtimes, if you didn't already install it for the game (winetricks vcrun2013).

To temporarily disable modding in this case, you'll either have to temporarly delete/rename dinput8.dll or start NeptuniaReBirth?.exe with the --disable parameter (this is not exactly same as removing the dll as Neptools will be still loaded, but it will try to minimize changes made to the game...)

In either case, you'll have to create a directory named neptools, and place files to be replaced inside it. If you want to replace (for example) database/stitem.gbin inside data/SYSTEM00000, place it into neptools/data/SYSTEM/database/stitem.gbin (that five zeros you normally get is actually an artifact of the current .cpk/.pac extractor doesn't handle the format correctly, I will rant more about it someday...)

It also has some command line flags, use launcher.exe --help or NeptuniaReBirth?.exe --help to get a list. If you have a debug build, you can use --console -lcpk=2 (or --log-to-file=filename -lcpk=2 to save it to a file) to list all files opened by the game (it'll cause significant slowdown though, especially with the console method).

Compilation

See libshit/COMPILE.md if you checked out from git. Otherwise refer to http://github.com/u3shit/neptools.

License

This program is free software. It comes without any warranty, to the extent permitted by applicable law. You can redistribute it and/or modify it under the terms of the Do What The Fuck You Want To Public License, Version 2, as published by Sam Hocevar. See http://www.wtfpl.net/ for more details.

Third-party software in libshit/ext directory are licensed under different licenses. See COPYING.THIRD_PARTY for licenses of software that end up in binaries.