Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Lord Nyriox

Pages: [1] 2
Lord Nyriox's Playground / [TOOL] TLDatLexer for NPP x64
« on: February 02, 2019, 12:59:48 am »
VS2017 Version for modern Notepad++

I rebuilt @Jarcho's TLDatLexer plugin using VS2017, with Notepad++ 7.6.x as a base.

While I was at it, I added an x64 build for 64-bit Notepad++ users.

Project Repository:

Lord Nyriox's Playground / [CLASS] Emberdrake V2
« on: January 24, 2019, 05:49:59 pm »
Emberdrake Class:  Version 2

This project is my second attempt to make a more or less lore-friendly dragon class for TL2. 

This time around, I am building the class on top of @Chthon's "Lesser Dragons" mod.  I figure that elementally-enhanced dragon skills should be a good starting point for an Ember-infused dragon.

Lore-wise, I have rewritten the class concept for better consistency with other lore sources (thanks @Kva3imoda!).  It is a little more vague this time around; I may flesh it out more later.

New Lore

Scholars tell us that dragons are all but gone from the world.  That long ago, after the dwarves died out, a cult of Estherian zealots found enchained dragons—which the dwarves had once used as a source of magic—and in a twisted sort of worship, fed them tainted Ember, turning the dragons mad with corruption.  When these maddened dragons inevitably became too dangerous to keep, the Estherians slaughtered them, leaving only the revenants now known as Spectral Dragons.

Until the turmoil in the town of Torchlight, most would indeed call the dragons endangered, if not outright extinct.  Certainly until that point, no one had seen a living dragon for years—or at least no one who lived to tell the tale.

Since the fall of Ordrak however, more than one Vanquisher has reported strange, twisted dragons lurking in the Morgrunn Mountains and Estherian Range.

When attacked, these dragons would defend themselves with both martial skill and powerful magic, before slipping from combat though enchanted portals.  When spoken to, these dragons would respond briefly in the common tongue, then leave abruptly to unknown business.

Given the region and timing of these creatures' appearance, some scholars have suggested that these dragons may be searching for Ordrak's remains—though to what purpose most hesitate to guess.

Given the evident similarity between these dragons' abilities and the power of alchemy, Vanquisher reports have come to call these dragons "Emberdrakes"—and at present, Empire authority considers them a neutral, rather than hostile, force.  Whether they manage to prove otherwise, only time will tell.

     – On Emberdrakes, unknown author

Download Links:
  • TBA

Lord Nyriox's Playground / [TL2] Ultra Respec
« on: January 07, 2019, 06:59:19 pm »
Announcing…Ultra Respec!

"Ultra Respec" is an expansion project for "Ultimate Respec Lite", with an emphasis on feature enhancements (that may or may not actually be lightweight).

When it is ready, the mod will add Stat-point Elixirs (like @Lightfuzion's "Stat Potion" mod or @greasymok's "Elixirs of Power" mod) to the General Merchant inventory, in +1 (~10,000g), +10 (~100,000g), and +100 (~1,000,000g) levels of quality.  I took the icons and text-color from "Elixirs of Power", but the item coding is a hybrid of my own design.

In addition, I have begun work on expanding the "Ultimate Respec" UI, to cover additional features that I would like to see added.  As far as that goes, I am adding a "Reset All Stats" button to the main UI (which should simulate pressing all the negative Re-stat buttons), and possibly even the stat-rollovers from the vanilla Stats page.

Download Links:

I will post some screenshots once the UI design is more or less finalized.

Lord Nyriox's Playground / [QUESTION] Changing the Type of a DAT Tag
« on: August 29, 2018, 11:07:48 pm »
Esoteric Question:

Can Torchlight DAT tags have their base types changed, while retaining the same in-game functionality?

For an example, changing a tag normally marked as a float, like "<FLOAT>SCALE:2", to be marked as an integer, like "<INT>SCALE:2" in the DAT file of a Unit. 

For another example, changing a "string" tag containing only numbers, like
Code: [Select]
to be a 64-bit "integer" instead, like so…
Code: [Select]

If any of these turn out to be possible, this may very well become a way to "optimize" mods for efficiency and consistency—so I would be very interested in hearing your experiences.

P.S.  Before you ask about the second example, GUIDs for non-Units are always of type "INTEGER64", but for some reason vanilla Units use the "STRING" type, instead.

Lord Nyriox's Playground / [CONCEPT] "Candied Ember" Mod
« on: August 28, 2018, 07:29:31 pm »
"Candied Ember" Mod Concept

Inspired by a recent look at my prior crock of idiocy, I posted this concept on a whim earlier, but felt that it deserved its own forum topic.

One of the most irritating things in Torchlight, for me, is how useless gems actually are in-game.  Ember is supposedly the most coveted power source for everything from fancy Alchemy to complicated Engineering—yet in-game, the only thing you can do with dropped Ember is shove it into an item socket. 

My proposal, is to expand the range of practical applications for in-game Ember—by adding a whole lot of Transmutation recipes that use it as an ingredient.

  • Candied Ember:  A set of Potions that look like gems ("Right-click to eat Ember"), these are magical hard candies that function like Elixirs—which is to say, they each add a permanent bonus to a particular Stat.  These are made by mixing 3 Ember with a Rejuvenation Potion.
  • Alchemical Potions:  A set of more conventional Potions, these have a wide range of temporary Effects—from changes in character-size, to Stat changes, to UnitThemes, etc.  Not all Effects will be positive.  These are made by mixing various Potions with various Ember.
  • Enhanced Equipment:  Ember can be used to change Equipment in various ways.  This process is initiated by combining 1-3 Ember with 1 Equipment Item.

  • Idea #3 is very much pie-in-the-sky right now, because I do not yet know of a reliable way of adding Affixes to existing equipment.  I suppose I could make something that bumps up item quality, however ([Common]–>[Enchanted]–>[Rare]).

What transmutation recipes can you think of, for Ember?  I would love to hear any ideas! 

Lord Nyriox's Playground / [TL2] Modding Guide Comments
« on: July 23, 2018, 12:11:49 am »
Modding Guide Project:
Comments Thread

This is the comments thread for my Modding Guide Project

Any notes, ideas, or suggestions you want to make regarding that project should go here. 

Thank you for your interest.  :} 

Lord Nyriox's Playground / [TL2] Modding Guide Project
« on: July 23, 2018, 12:03:17 am »
Modding Guide Project

In this thread I will post information on various aspects of TL2 modding. 

Each post will expand on a particular element, and will be updated as new information or corrections come in.  I make no guarantees on the accuracy of the information contained herein. 

Once the content of each post is fully written, proofread, and verified, it will eventually be copied to the Torchmodders Wiki.  The post will then be updated with a link to the appropriate Wiki article.

Please do not post comments, ideas, or suggestions on this thread.  There is a separate topic for those. 

Lord Nyriox's Playground / [TL2] Ultimate Respec Lite
« on: June 22, 2018, 02:22:45 am »
Ultimate Respec Lite

"Ultimate Respec", an extension of the "FreeSpec" mod by @Chthon, is currently the most popular TL2 respec mod on the Steam Workshop.  Adding positive stat-allocation buttons—in addition to the negative ones provided by FreeSpec—it addresses the significant issue of "hundred-click syndrome" brought on by large numbers of unused stat-points.  As far as Stat-respec mods go, it is, indeed, the "ultimate". 

Problems and Solutions
That being said, "Ultimate Respec" suffers from the same problem that plagued "FreeSpec"—namely its lack of support for custom classes.  This is because both "FreeSpec" and "Ultimate Respec" set the minimum value for each Stat to the starting values for the player's current class—a process which requires a complicated static registry to implement. 

However, this restriction is oriented more towards immersive consistency than mechanical necessity.  Potion based respec mods like "Respec/Restat Potions" work just fine without checking whether a player is below his or her "starting stats"—which indicates to me that starting Stats are more or less arbitrary. 

And so I decided to remove that unecessary code.  Following the class-adding instructions provided in the official FreeSpec thread, I created a set of class-triggers linked to the generic "Player" unit-type (which both vanilla and modded classes inherit).  For these triggers, I set all Stats to a minimum value of 5 (instead of 10 or 15).  Then I removed all class-specific files and triggers from the mod—leaving only the "generic" Stat respec triggers in place. 

After a quick test with both a vanilla Embermage character, and my own custom "Emberdrake" class, I can confirm that this simplified version of the "Ultimate Respec" mod correctly works on both modded and vanilla classes. 

Try it out at the link below! 

Download link (RGF):

Download link (Steam Workshop): 

Source repository (Github):

Lord Nyriox's Playground / [WIP] Lazarus Pack
« on: June 13, 2018, 02:19:17 am »
"Lazarus Pack" Project

I originally drafted the "Rapid Starting Equipment" method, to assist in implementing a new mod-pack I am creating, called the "Lazarus Pack". 

The theme of this mod-pack is, of course, resurrection.

The "Lazarus Pack" will be made of nothing but updated versions of small but unmaintained mods (many of them from TL1).  Amulet of Survival, IHateFishing, and the Portal/Identify Stones are all part of this mod-pack, along with several less popular mods. 

Until its feature-set is better defined (and its codebase is cleaned up), this pack will remain unreleased.

Lord Nyriox's Playground / [SPAWNCLASS] Rapid Starting Equipment
« on: June 12, 2018, 10:58:41 pm »
Rapid Starting Equipment

Several weeks ago, dissatisfied with the design of "Adventurers Starting Gear", I started looking for alternative methods to make equipment available at the beginning of the game. 

My initial search turned up did the dozens of other searches I made on the topic.  Eventually, disgusted, I went on to other projects--which a few days ago, turned up the "Warglaives of Azzinoth" mod, which, as it turns out, injects an additional "hidden" quest (with a spawnclass), that completes on accepting the Destroyers "Warn the Town" quest in Act 1. 

Inspired by this method, I studied the game files, and quickly discovered that there is already a semi-hidden vanilla "start of game" quest, which also gets completed by talking to the Destroyer.  And so, with a tiny amount of work, I was able to reduce the impact of the "Warglaives" starting gear method to only 2 files, rather than 3. 

After a couple of quick checks, I can now confirm that this new method works perfectly to provide starting items to the player.  It is a perfect 1-click alternative to "Adventurer's Starting Gear", and can be easily extended for use in other mods.  And it only modifies 1 (semi-hidden) quest to do it! 

A sample starting-gear spawnclass (which I developed for @Kevin Boyle to use with his Titan class) is included as an example. 

Download link (MEGA folder):!zBMVDR4J!aCK83G2q6DAC2MByYwUV1g

Lord Nyriox's Playground / [SCRIPT] Automatic Modding Cleanup
« on: June 02, 2018, 10:52:26 pm »
Windows Scripts:
Automatic Modding Cleanup

As I mentioned on the Torchmodders Discord server, one of the first things I ended up doing when I set up my TL1 (and later, TL2) modding environment, was create a script to fully automate the cleanup process for compiled Mod-data (BINDAT, BINLAYOUT, etc.), and therefore force TL1 (or GUTS) to regenerate all binaries on launch. 

Like my Mesh-scripts, this does require some initial set-up, but once that is finished, it should be more or less easy to run automatically.

Steps to Use:
  • Copy the "Torchclean2.cmd" script to the main GUTS working directory.  In my case, that would be "GOG Games/Torchlight 2/Mods/".
  • Replace "<username>" in the last lines of the script with the name of your own User directory.
  • Run the script from within the Mods directory, immediately before and after every time you launch GUTS.

Script Removes:
  • GUTS-compiled DAT files (*.BINDAT).
  • GUTS-compiled LAYOUT files (*.BINLAYOUT).
  • GUTS-generated RAW files (*.RAW).
  • TL1-compiled DAT files (*.ADM).
  • TL1-compiled LAYOUT files (*.CMP).
  • Generic backup files (*.BAK).  These are generated by WinMerge when I use it for editing.
  • TL2 MOD files (*.MOD).  GUTS leaves two copies of every MOD file it builds—one in the user Documents folder and one in the GUTS working directory.  This only removes the packaged MOD files from the working directory.
  • Torchlight 2 log files (LOGS/*.TXT) (OGRE.LOG).  TL2 does not seem to have any sort of existing cleanup system for these, so removing them here is advisable.
  • TL2 backup save data (SAVE/*.TMP) (SAVE/*.RESTORE) (MODSAVE/*.TMP) (MODSAVE/*.RESTORE).
  • "EDITORMOD.MOD".  GUTS generates two copies of this file every launch—one in the user Documents folder and one in the GUTS working directory.  This script ensures this redundant file is removed from both locations, rather than being left in the way.
  • "EDITORSETTINGS.DAT".  Stores last-opened and window-positioning data for GUTS.  Safe to remove.


~Lord Nyriox

Lord Nyriox's Playground / [SCRIPT] Automatic Mesh Rebuilding
« on: May 29, 2018, 10:22:05 pm »
Windows Scripts:
Automatic Mesh Rebuilding

As I mentioned during the discussion on my "Emberdrake" class project, when @Anarch16sync suggested converting meshes to XML (to fix bugs in a previous project of mine), I ended up creating a small suite of recursive Windows command scripts to fully automate that process (using the official OGRE command-line tools). 

They do require some initial set-up, but once that is finished, they should be more or less easy to run automatically.

Steps to Use: 
  • Extract the OGRE command-line tools for version 1.7.x into a directory.  Make sure that OgreXMLConverter.exe, OgreMeshMagick.exe, and OgreMain.dll are all in that directory.
  • Modify the paths in the Mesh-scripts to point to whatever directory you have the OGRE tools stored in.
  • Copy the scripts into the directory of the model you want to edit.
  • Run the scripts from within the model directory.

Included Scripts: 
  • MESH2ROTATE rebuilds all MESH and SKELETON files, then rotates all skeletons within its directory (and sub-directories) to 90 degrees counterclockwise.  It was created to help fix bad rotations in animations exported via "PinkVertex".
  • MESH2XML converts all Mesh and Skeleton files within its directory (and sub-directories) into Mesh.xml and Skeleton.xml files, then deletes the original Mesh and Skeleton files after conversion.
  • XML2MESH converts all Mesh.xml and Skeleton.xml files within its directory (and sub-directories) back into Mesh and Skeleton files, then deletes all Mesh.xml and Skeleton.xml files in the directory after conversion.
  • MESH2CLEAN uses the optimize function of OgreMeshMagick on all Mesh and Skeleton files within its directory (and sub-directories).  See the MeshMagick page for more details.
  • Simply combines 3 other scripts in this list (MESH2XML, XML2MESH, and MESH2CLEAN, respectively) to automatically decompile, recompile, then optimize all Mesh and Skeleton files within its directory.  I developed this script as a more robust alternative to OgreMeshUpgrader.  (By decompiling and then recompiling the models using tools whose OGRE version matches Torchlight's, I can ensure the meshes are not way out of date.)
  • MESH2SCALE scales all meshes and skeletons within its directory (and sub-directories) to 2.0 times their original size.  It was created as a proof-of-concept script demonstrating how one can use this scripting method to automate other MeshMagick commands.
  • MESH2UPGRADE runs "OgreMeshUpgrader" on all Mesh and Skeleton files within its directory (and sub-directories).  It throws an error at any Skeleton files, but does not seem to damage them.
  • MESH2UPGRADE_V8 is a modified version of "MESH2UPGRADE", which uses the version-targeting feature from OGRE version 1.8+, for downgrading models from later OGRE versions (back to the version used by Torchlight 2).

  • All scripts make use of the "FOR /R" command to ensure all relevant files are recursively converted. 
  • XML2MESH, MESH2REBUILD, and MESH2UPGRADE use the "-e" (disable generation of Edge Lists) option when converting XML files to Mesh and Skeleton files, which reduces file-sizes dramatically (compared to OgreXMLConverter defaults).  The in-game behavior of the resulting models does not seem to be impacted. 
  • The MESH2CLEAN and MESH2SCALE scripts can be easily adapted to perform other operations using MeshMagick.  See the MeshMagick wiki page or the "Open Dungeons" OgreMeshMagick guide for other examples on what you can do using it. 

Lord Nyriox's Playground / [CLASS] Emberdrake
« on: May 15, 2018, 09:33:58 am »
Emberdrake Class

This project is an attempt to make a more or less lore-friendly monster class for TL2—in this case based on Vilderanese dragons.

The Emberdrake class blends alchemical magic, Firedrake combat ability, and Blight-powered mutations—shredding, blasting, and irradiating the battlefield around him or her. 

Eventually, the lore I wrote for this class may be used as the basis for a separate side-campaign.  That project, I am tentatively calling "the Dragon Trials".  Final name/content TBD. 

Class Lore

Scholars tell us that long ago, after the dwarves died out, a cult of Estherian zealots found enchained dragons—which the dwarves had once used as a source of magic—and in a twisted sort of worship, fed them tainted Ember, turning the dragons mad with corruption. When these maddened dragons inevitably became too dangerous to keep, the Estherians slaughtered them, leaving only the revenants now known as Spectral Dragons. 

Yet history has forgotten the few maddened dragons who escaped the ghostly fate of their brothers and sisters.  The handful of dragons that had found consolation in mortal logic, and learned to control the Blight consuming their bodies. 

These dragons went on to live isolated lives, meeting together only as necessity or nature demanded.  Over time, these dragons learned the art of Alchemy, and taught this same art to their young, who they fed Ember to as a rite of passage.  The few mortals who have witnessed these strange, reclusive dragons called them "Emberdrakes", in reference to their eerie aura of magical potency.  But as it has been many centuries since one has been seen, most consider such dragons simply legend, a tale told by firelight or hearth. 

But now, several generations later, the spread of the Ember Blight has brought the Emberdrakes out of hiding, hunting down the bearer of a heart that might once have been their own. 

Project Repository (Github):

Old OP
When answering these questions, please bear in mind that I do almost all of my modding by editing the DAT/LAYOUT files directly (i.e. plain old text editing), so examples consistent with that method are preferred over ones that rely on GUTS. 

Technical Questions:
  • Can I add an armor wardrobe based simply on skins?  As in, can I use the character's existing base-model as the wardrobe armor model, using different partial textures for the model as an "overlay" on top of the original base texture?  (Yes, I know it would look ugly, but could it work?) Thanks, @Phanjam!
  • Can a partial wardrobe be implemented?  As in, a wardrobe containing only faces and armor, but no hair or beard? Thanks, @Phanjam!
  • What is the best method to convert an existing monster skill to use 15-point scaling (like a regular class skill)? Thanks, @Phanjam!
  • Given only a set of appropriate animations, what would be the simplest method to implement a "fly to cursor" skill?  As in: you activate the skill; your character lifts up into the air; within the air, your character flies over the terrain to your mouse-cursor; then finally, your character lands back on the ground, safe and sound. Thank you for clarifying how difficult this would be, @Phanjam.
  • What is the simplest method to add tier-bonuses to existing skills (both active and passive)? Thanks, @Phanjam!
  • What kind of changes do I want to make or avoid if I want my class to be fully compatible with both vanilla and Synergies? Thanks, @Phanjam!
  • What would I need to do to port an entire boss monster (including all its original skills, particles, and other dependencies) from TL1 to TL2? And how do I verify whether I got them all? (Truthfully, I would settle for just Ordrak's skills and their respective dependencies, since that is all that I actually need in this case.) The fact that the only vanilla TL1 skills that are not also in vanilla TL2, belong to Ordrak, is rather telling.  I will probably skip over these for now.
  • How the heck am I supposed to fix broken skill-frames within the Skill-Tree UI (broken as in empty, but still visible)? Never mind; it turned out to be some weird GUTS error regarding some of the skills themselves.  (But thank you anyway, @Viz.)
  • What is the minimum I need to do to make my class able to use weapons?  Is it as simple as defining a model animation (under the ".animation" file) for each weapon?  (As in, clone one of the animations the monster model uses and rename the clones to what the human model names its own weapon animations?) Thanks, @Kva3imoda!

Modding Questions / [TL2] WTFH is the Charge Bar?
« on: May 13, 2018, 10:23:26 pm »
OK, so I've spent the last day and a half screwing around with an old "boss monster" custom class I found on the Workshop, and while working on cleaning-up the mod for better design and stability, I read a half-dozen different web-pages discussing something called the "charge bar" (which the class in question does not have). 

So of course, I tried to look-up what this new mechanic is and how it works--and got a whole lot of technobabble with almost no context whatsoever.  Anything even remotely understandable (like fails to clarify the actual nature of the mechanic itself. :\ 

Can someone explain to me what this "charge bar" is, exactly how it works, and what is the simplest way to add a new one to a custom class--in a way I can understand?  Preferably covering the overview as well as the specifics? 

EDIT: I am aware that the charge bar functions as a "secondary resource", similar to what is used by many classes in World of Warcraft.  I am also aware that TL2 uses Affixes to track its states.  What I do not quite understand is what this article is talking about, or this one, for that matter. 

Lord Nyriox's Playground / [TL1] Backporting Skills from TL2
« on: March 22, 2017, 12:05:08 am »
EDIT:  For now, this project is going on the backburner.  I really am not feeling up to hunting down every resource used for these skills—not to mention my Asus has the "black screen of death" again. 

Hi Guys!  Another newbie question from Lord Nyriox… 

I am trying to backport vanilla monster skills from TL2 to TL1, and I have run into a little roadblock.

In particular, I have no idea how to identify all the resources used by any particular skill.  I need to copy all resources (Particles, Units, Sounds, Affixes, etc.) used by all the skills of this particular monster—and I am completely at sea trying to figure out where they all are.

Does anyone know of some easy-to-use "dependency checker" for TL mods? 

For full disclosure, see my prior discussion with @Phanjam

What will alert you to look into further are all those lines that have <STRING>DESCRIPTOR:. These are things the .LAYOUT will need to execute properly.  Descriptors can be...

<STRING>DESCRIPTOR:Layout Link Particle
(I think that's it, but there may be others)

The Particles should be easy to find since they are referenced explicitly by their .layout filename with a full path to boot.

Sounds are a little tricky because they are referenced by their GUID. You will have to find that GUID in one of the several .DAT files in the MEDIA\SOUNDS folder (player.dat, skills.dat, etc.) to find out which actual sound files are being used.

I forgot to mention in addition to the Particles and Sounds, the Unit Spawner is important too because it spawns any units (duh) that the skill wants to call.

Within a <STRING>DESCRIPTOR:Unit Spawner "block", the unit referenced is the one in the line <STRING>Resource:.

EDIT:  For the sake of clarity, the problem I am having is that backported attack skills, when triggered, render their associated monster animations but do not render any particle effects or deal any kind of damage. 

Thanks again,
~ Lord Nyriox,
Necromancer of Torchlight

Pages: [1] 2