And by "improves lighting time", he means from 1 hour to 15 seconds.
KCTools is a collection of tools for working with NewDark fan missions (1.27 and 1.28 tested). Currently there are two tools, a lightmapping tool, and a .BIN model export tool.
Downloads:
KCTools Full v1.1.3 (Windows)
KCTools Full v1.1.3 (Linux)
KCTools DromEd v1.1.3
Additionally you can find the source code here, and all previous versions and changelogs here.
The DromEd release is intended for NewDark 1.28 and above. Full release includes an additional lighting GUI app which is unneeded on 1.28 due to DromEd integration.
Lighting:
- Replicates all existing DromEd lighting functionality
- Massively improves lighting times
- Better light culling, improving performance in large-scale city maps and eliminating object lighting errors
- Provides additional warnings to mappers highlighting mis-configured light settings
- Generally produces more accurate shadows
- Direct integration with DromEd in 1.28 and above
The lighting tool is intended to replace DromEd's lighting step (especially in later stages of mission development where lighting becomes very slow). DromEd's built-in lighting is single-threaded, has a number of minor bugs and scales extremely poorly with lightmap scale and complex large open spaces (e.g. modern city missions). KCTools lightmapper takes advantage of modern CPUs with a multi-threaded approach and improves lighting times, reduces lighting artifacts, and has the potential to improve in-game performance in some complex scenes.
The primary way to use the lighting tool is with NewDark 1.28 and the DromEd version of KCTools. NewDark 1.28 adds the ability to disable the lighting stage when portalising, and to run external tools, allowing KCTools light to be ran from within DromEd and replace DromEd's lighting stage. Assuming the DromEd basic toolkit is being used (and files haven't been moved around too much), simply extract the contents of the DromEd release into the root of your Thief/SS2 installation.
If you're still using NewDark 1.27 DromEd, or don't want direct dromed integration, use the Full release. Lighting can be ran either via command line (run "kctools.exe light --help" in the command line for instructions) or via the GUI executable.
Model Export:
- Export specific models, or every model as a binary glTF
- Embeds and correctly palettises required model textures
- Respects object hierarchy for easy use in custom animations
Available on the command line, run "kctools.exe model export --help" for instructions. Currently this is a pretty simple tool, but is likely to be expanded in the future.
Contact:
I don't use TTLG much, so I'll probably be slow to any responses. If you need help or something seems broken the best place to contact me is the DromEd discord server, my username there is Jayrude.
Last edited by HavvicGames; 4th Jun 2025 at 15:55. Reason: Update version
And by "improves lighting time", he means from 1 hour to 15 seconds.
Congrats! Amazing job and important milestone for the community!
So, any plans to make an SS2 compatible version of this?
I don't have a ShockEd setup to test with, but it may already work. If you try it/have already tried it and encounter issues could you share them?
If it's incompatible then there's three areas where I could imagine the incompatibility existing:
1. Configs. SS2 might be using some config stuff I don't know about and the game resources get loaded incorrectly
2. Properties. I know SS2 has some differing object properties, but I haven't looked into whether any of them would affect lighting
3. File formats. If there's any major differences to the parts of the various file formats I read/modify then parsing them will fail
Depending on how much work resolving the problems is (assuming it is incompatible) I can look into adding SS2 support soon.
I tried it, but it complained that it couldn't find thief.exe.
As for the other considerations, I'd imagine that NewDark unified lighting between the two engines quite a bit.
As a total newbie, I'd really benefit from a small tutorial video on how to use. I tried it when it was first released but I shamelessly failed to use it properly the few times I tried.
New version (v1.1.0) and a rename due to adding another tool
Changes:
- Added GUI lighting frontend
- Added ".bin" model export command
- Modified light command to have more unified arguments with model export and give space for future tools
- Added "--quiet" flag for all commands
- Added lighting "--inspect" mode/flag to quickly preview lighting configuration issues without actually performing lighting
- Added experimental support for System Shock 2 (executes fine, but I don't have a good SS2 setup to actually check the result)
- Added DromEd 1.28 support scripts to help setup running directly through DromEd
There are unfortunately issues with the dromed integration scripts. They work on linux via WINE (after fixing some filenames), but on windows they're a no-go. Working on some alternatives that will hopefully be ready soon.
New version v1.1.2 (v1.1.1 didn't get posted here).
Changes since v1.1.0:
- Hopefully fixed the integrations with DromEd!
- Added pre-modified version of "Optimize.cmd" to save user effort
- Fixed "DoLight.cmd" issue with saving when the FM directory has a "." in it's name
- Added "--auto-campaign" flag to KCTools to determine campaign/FM from "DromEd.log"
- Improved camera restoration method when reloading the mission in "DoLight.cmd" (rotation is now restored, and some issues with deleting the incorrect brush should be fixed)
- Added better logging when "install.cfg" doesn't contain any valid "resname_base" paths
- Added additional logging around resource path gathering and automatic campaign direction timings
- Fixed a crash when "--install-path" is invalid
- Fixed incorrectly applying zeroed out transforms to some model sub-objects
- Fixed applying rotation to translating model joints, they now slide as expected.
Update: Quick hotfix
- Fixed incorrect auto-campaign when using "return to FM selector"
Last edited by HavvicGames; 4th Jun 2025 at 15:56. Reason: hotfix
Incredible doesn't even begin to do this tool justice. I've been toying with a mission that took about a dozen hours to light with 4x lightmaps. This puppy here took the compile time to about 30 seconds. Yes, it's ludicrous, and it looks just as good. With 1.28 the DromEd integration is seamless, too. Just install this in your DromEd directly and boom, that's it.