Top

Sims Hash Assistant to the Modder (SHAM)

A multi-purpose tool to assist in modding, combining the capabilities of my previous tools: Auto Hash, Auto STBL, and Auto Tuning Ref. Along with a new XML Editor, STBL Editor/Viewer, and Hash Generator.

Screenshot of Hash Tuning tab in program, having just hashed a flie. Screenshot of Hash Text tab in program, with an example of Full File Aspiration name and Append Text. Screenshot of STBL Table tab in program, with Become a Sorcerer english STBL file open.

Latest: v1.2, hotfix: Fixed issue with Find and Replace Dialog where replace all button greedily took focus from enter key.

Download Source Code (Simfileshare) | Download Source Code (Patreon)

SimData PSA

Some of the templates I include come from what S4S extracts (SimData translated into XML) and some are in binary form (.data), which can be read by velocitygrass's tool.

I recommend using S4S's SimData as XML and adding it into a package through there for it to be translated back to binary. Velocitygrass's tool is outdated in subtle ways and despite my stubborn desire to keep using it born out of a habitual workflow, I keep running into edge cases where having a binary SimData file up to date means it won't load in velocitygrass's tool, which defeats the point of editing it through that tool.

Maybe someday in the list of a million and one other things, I'll see if I can do some kind of SimData translation through SHAM. Until then, I recommend sticking to S4S's support for it (which probably means setting File Format Preference to Sims 4 Studio and using it as your package editor, unless you want to switch back and forth between package editors just for SimData).

Updating

If you've used the previous version, you may have settings (e.g. preferences.ini) or things in folders you want to keep (ex: edited additionalClasses.txt file). I recommend simply copying them over to where you've put the new version. I don't have an installer (partly cause I didn't anticipate making many changes) but I might consider one in the future.

Patch Notes

Features

Version History

FEATURES

Introduction

Sims Hash Assistant to the Modder (SHAM) is sort of like if Sims 4 Auto Hash and Sims 4 Auto STBL had their arms melted into each other and then also had a baby. Probably one of the weirdest analogies I've ever come up with, but the point is that it's both of those programs and more.

If you're already familiar with the GUI version of Sims 4 Auto Hash and Sims 4 Auto STBL, the general idea of how they work is still the same. But I have made a number of changes, additions, and improvements, in part geared toward making some of the features from my previous tools a little more intuitive or having tooltips, instead of you having to pore over documentation to understand.

As of v1.1, it now has an XML Editor, too (the tab is called "XML Tuning"). This was specially designed for those who are used to creating and editing Sims 4 XML Tuning files in a plaintext editor like Notepad++, to make modding easier.

Overview of Changes

  • The core parts of the program are split into tabs: Hash Tuning (Sims 4 Auto Hash), Hash Text (NEW), Hash STBL (Sims 4 Auto STBL), STBL Table (NEW), and Tuning Ref (Sims 4 Auto Tuning Ref).
  • Hash Tuning: Added "Scared" to the buff DataTemplates.
  • Hash Tuning: Custom or missing classes can be recognized by adding to the additionalClasses.txt file.
  • Hash Tuning: Personality traits will be given a 32 High Bit hash instead of 64 High Bit, given their issues with the UI as 64 High Bit.
  • Hash STBL: Choose "Language of New Strings" for better duplicate checking, i.e. English if strings you're adding are in English.
  • Hash STBL: Add and remove folder locations to a saved dropdown list. The current chosen location is where it will look for existing STBL files to edit, allowing you to switch between projects easily.
  • NEW Hash Text: Works similar to S4S's Hash Generator. You put in text and it gives you a hash value of various types.
  • NEW Hash Text: Tries to suggest the right hash for the job. Ex: If you check Full File and pick Aspiration, it will underline 32 High Bit. In most cases, it will recommend 64 High Bit since that's the typical for tuning files.
  • NEW Hash Text: Optionally append the text you put in and/or full file name to get something you can use as a filename right away, or close to it. Ex: If you check Full File and pick SuperInteraction, it might give you something like this: S4_E882D22F_00000000_A8322168125B1E3A
  • NEW STBL Table: Easily switch between two modes: STBL Editor (for editing and saving changes) and STBL Viewer (for safe viewing, free of any concern of accidentally making or saving changes).
  • Set "Creator Name" under Preferences. This currently has limited use; it's used in folder naming if generating STBLs using the "New STBL File (Default)" option as part of Hash STBL tab. It will get immediately saved with Preferences when set, to ensure you only need to set it once.
  • Tuning file location can now be: copy/pasted in (Ex: shift-click, "Copy as Path" in Windows, or right-click the file itself and copy it); dragged and dropped in; or you can click the dropdown, choose Find Files, and select files from a file dialog.
  • A number of things have been given tooltips or placeholder text, to hopefully make it clearer at a glance how stuff works without needing to pore over detailed documentation.
  • Debug info now takes up most of the space in the Hash Tuning and Hash STBL UI and has been overhauled to focus on clearer and more succinct info, to communicate to you what's happening as files are processed.
  • Your cursor "focus" starts in the input box on startup and when switching tabs, to save you a click (if there is an input box).
  • Error checking more distinctly validates your input as an actual file path and sternly tells it to go home if it's not.
  • Preferences are now sorted under categories (ex: Hash Tuning, Hash Text, Hash STBL).
  • Added support for unicode characters. If you run into any issues with this, let me know. I tested it some, but English is my native language, so I'm not likely to catch issues with it outside of limited testing.
  • Use a custom theme I designed, or disable in Preferences if you prefer to use your platform's native theme. (I understand some people generally prefer their native theme for various reasons). Note that the icons in the top toolbar are going to be custom either way, but I gave the ones for the native theme what I think is a fairly neutral look.

Hash Tuning

Example How To

In the box with the "put location of tuning files here" placeholder text, you put in a file path, and it will do a number of operations on the file: generate a hash for it, insert the hash as its internal file hash in decimal and then apply the hash to its external filename as hexadecimal.

So the simplest usage should look something like the following:

  • Pick a name for your XML file internally and save it with that name. For example: n="Triplis:Interaction_DoThings" — This is the name that will be used for generating the hash. Make sure the external filename is in one of two formats: Scumbumbo's XML Extractor or Sims 4 Studio, and that it's the file type XML. If you are unsure what those formats are, I'm referring to the default format when you extract XML files using Scumbumbo's tool or the Sims 4 Studio tool.
  • Copy the file path. You can do this by doing shift + right-click while looking at the file in windows explorer. Notepad++ and Atom text editors both have an option to copy file path as well. You can also drag and drop it in, copy/paste the file itself in (it'll be interpreted as the path location), or hit the arrow and select <Find Files...> to choose it from a file dialog window.
  • Paste the file path into the program. If Preferences > Hash Tuning > Auto Process Filenames is checked, the file will start being processed as soon as the input box detects a filename. If it's not checked, you'll have to click the little Process Input gear icon above the box.
  • You're done!

When you're finished, you can exit it out, leave it open for using it more, up to you. You can also click the little save icon or hit CTRL+S to save the contents of the debug log to a file, which should have some stuff in it after hashing.

Multiple Files

You can do more than one file at a time. To do this in windows, select more than one file in windows explorer, use shift + right-click to copy path, and then paste into the program.

What Gets Appended as Name

When choosing an internal filename, consider the example n="Triplis:Interaction_DoThings"

Note the colon, ":" operator in there. That's optional. If included, it will cause the program to ignore anything before ":" when appending the internal filename to the end of the external filename. For example, if you want your external filename to be S4_3C1D8799_00000000_D3613ABC297B23B7_MyZoneModifier even though the internal filename is Triplis:MyZoneModifier, you would include the ":" operator. This is purely a preference thing; it has nothing to do with the hash generation itself. I put it in because I like to use S4PE and S4PE will build a key list for assets that have a name appended to the end of them, making it easier to navigate your projects when looking at them in S4PE, but if my hash generation appended the entire filename, it could get rather long! You might know that your project is only by you and so there is no need to append your modder name to the external name of the file.

Keep in mind, of course, that using a unique modder name does matter for hash generation when it comes to what you choose for the internal filename! You want to make sure the chances of someone using the same hash is as low as possible. MyZoneModifier is not likely to be unique, but TheLastKnightOfBardledom:MyZoneModifier or TheLastKnightOfBardledom_MyZoneModifier probably will be.

Data Template Files

The program comes with a set of template data files. Meaning, existing data files that will be copied for some file types when a hash is generated. This is to speed up the process of hunting down data file types every time you want to make a new tuning file that requires one. Not all data template files have been added yet.

Some, however, have more than one template and you can choose which one will get copied by naming your XML file in the right way.

For example, if you have a buff XML file and you want to generate a data file for the mood Confident, include, somewhere in your internal filename, "BuffConfident." This might look something like: n="Triplis:Buff_StrutAround_BuffConfident"

You can look at the template folder (it comes with the program) and see what the syntax looks like for these template variations. Right now, most of the variation revolves around different types for buffs and different types for traits. Note that you will still need to edit the data file somehow for modifying things like strings.

Additional Classes

In the past, the auto hash tool has ignored classes that aren't in its compiled list, so you could make a custom snippet class called BoopOnTheNoseSnippet and the program would just tell you it can't do anything with it.

Now it will default to snippet as the type if the class doesn't exist in its list, assuming it to be a custom snippet class, which is the most common kind of custom class.

Or if that doesn't cover you, you can add to the additionalClasses.txt file. The program comes with an example in there, so you have an idea of what to do. The "NONE" part will always be "NONE" unless you were going to connect a simdata file to it that is supported by the program, such as in the case of a custom buff class maybe. If you do need to use it, just use the simdata group type (it must be one that shows up in the DataTemplates folder). Note: If you need to set the hash type to something other than 64 high bit, the supported types are: BIT_64, BIT_64_HIGH, BIT_32, BIT_32_HIGH

Hash Text

Hash Text tab is a hash generating tool, similar to the Hash Generator tool you can find in Sims 4 Studio. You put in some text and it gives you different types of hashes that you can copy/paste for use in custom mod files.

It provides:

  • 64 and 32 bit / high bit results.
  • Is String toggle to produce a hash formatted for use in a Sims 4 string.
  • Append Text toggle to append the text you're hashing to the end of the hex hash (useful if you're using the hash in an external filename).
  • Full File toggle with a classes list to turn the hex hash into a full, usable filename with the right instance type hash (ex: S4_E882D22F_00000000_D1E6F29284C618FF for SuperInteraction).
  • Recommended hash highlighting: underlines the recommended hash for the job. Usually this will be 64 High Bit, as that is the standard for mod files. Exceptions to this are hard-coded in and may require updating, depending on the most up-to-date knowledge of modding different types of files.

Hash STBL

Example How To

In the box with the "put location of tuning files here" placeholder text, you put in a file path to an XML tuning file. Then you select a target set of STBL files with "Add New Strings To...", or leave it as New STBL File (Default) to create new STBL files intead.

The following is an example to explain how it works.

You have a custom interaction file and you want a unique string name for your interaction that'll show up in-game. Somewhere in the file is a line like the following:

<T n="display_name">0x588ECF04<!--String: "Enchant to Kneel"--></T>

Note that the comment describing what the string should be is important. The formatting the program looks for is precise and is based on strings being commented in the way that standard tools do (like Scumbumbo's XML Extractor—I'm not sure if S4S extraction does the same).

Now let's get the tool to recognize our string. It was Enchant to Kneel, but we're going to change it to Bungalow Banjos. So we do this:

<T n="display_name">0x588ECF04<!--StringCustom: "Bungalow Banjos"--></T>

If we run the program on this XML file, it will find the commented string with the "StringCustom" identifier and create a unique hash for the string in quotes, our "Bungalow Banjos." Note that this hash is created from a combination of the string itself and the internal name of the file (the "n=" value), so for best practice to avoid hash collisions, make sure you've given the file a unique name first!

This also means that you could theoretically put "Bungalow Banjos" in two different files and generate the same string for both, but with a different hash value, which is not ideal. To prevent this, make sure to set Language of New Strings to the language of the strings you're adding. This will have it check against the related file when adding to existing STBL files (e.g. 00 Locale Code STBL file for English), to ensure duplicate strings are ignored.

Next, the program will insert the new hash into the XML file for you. So your line of code might end looking something like this:

<T n="display_name">0xA706DD72<!--StringCustom: "Bungalow Banjos"--></T>

Now all that's left is the string table itself. The target string table (STBL) works as follows:

  • If the dropdown option is the default "New STBL File (Default)", the new strings will be added to a new set of STBL files (one for each language) and these will be placed in the folder where the program is located "NewSTBLs" > CreatorName_SomeHashFromNewStrings (ex: Triplis_E714D8AB2D9F8FE1). The CreatorName part comes from what is set under Preferences > Creator Name.
  • If the dropdown option is a selected folder of your choosing, it will add the new strings to every STBL file in the chosen folder. If no STBL files are in the chosen folder, it will create a new set in the chosen folder.
  • New STBL files created will be in either Scumbumbo's XML Extractor format, aka: Sims 4 Package Editor format, or in Sims 4 Studio format, depending on which format the XML file is in that you pasted into the box

The goal of the dropdown design is to make it easier to manage multiple sets of STBL files from different projects and in general, have finer control over where STBL files are targeted for string addition.

And that's it! You can add the STBL files from your chosen folder to a package file, add in your interaction, and you're ready to see your string in-game.

STBL Table

STBL Table is both an STBL Editor and STBL Viewer, depending on how you wish to use it. You can switch it back and forth from one to the other as desired, to, for example, safeguard against making accidental changes if you just want to view a file.

It also includes a Find box with Find Next and Find Previous switching to search for particular strings in the table by name

How it works should be fairly self-evident, but I'll provide some details below just in case.

One thing I want to mention is it works like a text editor in that you can make and save changes easily and quickly with saving and shortcut for it (CTRL+S). This means you could also muck up your STBL file pretty easily if you aren't careful and don't know what you're doing. For this reason, I recommend working with backups/copies of files when making edits. This is good practice for software in general, but it's especially important here.

I will note, however, it's creating a new STBL file each time you save; meaning, it's rebuilding it from scratch with whatever entries are in the STBL Table tab's table. So if you muck something up in a way that your STBL file no longer works, it shouldn't be too hard to fix it. The worst you can probably do is delete something you didn't mean to delete, or save an entry with a placeholder Hash like 0x00000000.

Some details on how to use it:

  • Add New Entry adds a new entry to the table. This entry will be made with some default, placeholder stuff (0x00000000 for Hash and MyNewString for Text). It's expected that you fill these out with real values before saving.
  • Remove Selected Entry removes the currently selected entry from the table. There is no undo on this other than closing/exiting the file without saving changes, so use carefully.
  • The buttons in the toolbar at the top from left to right are: Open File, Save, Save As, and Close File. It should warn you if you're trying to Open or Close without saving current changes.
  • Edit Mode: Click one of the two buttons to switch between STBL Editor and STBL Viewer. STBL Viewer is made with safe viewing in mind, for if you just want to look at the entries in an STBL file, without concern for accidentally hitting buttons like Remove Selected Entry.
  • Find Entry: Type in text and move through entries that match it with the enter key. This can match Hash or Text entries, depending on what you want to find. Find Previous will search backwards through the found entries, instead of forward.

XML Tuning

XML Tuning is a standard plaintext editor, but designed to be specialized in ways that are more convenient for working with Sims 4 Tuning Files.

If you are like me and are used to modding XML tuning files by hand in an editor like Notepad++, that is the kind of person I had in mind. I knew I couldn't match the years of detail Notepad++ has, but I tried to bring it up to speed with some of the most essential features for convenient text editing. Things like syntax highlighting, for example.

But I knew that would not be enough. I thought about it from the standpoint of what would convince me to mod with it instead of doing the bulk of my work in Notepad++. So I came up with features like Insert Template and Save As Hash, which together, are designed to make it painless to find an example of a type of tuning and give it a unique hash, without having to hunt it down, copy it, etc. These are based on an open tuningTemplates folder that you can modify yourself to update tuning syntax changes or add templates of your own. There is really no limit on what snippet of xml you can make a template be. You can, for example, use it for entire tuning examples, as it's done in the templates that come with the program, or add short snippets of xml.

There is also notably a Link Tuning feature, which allows you to right-click on a line where a tuning gets referenced, select its location from a file dialog or copy it in, and it'll insert into the correct position with hash and commented name. Making it easier to tie tunings together without having to squint at a bunch of stuff to make sure you've entered it correctly.

Unlike Notepad++, it doesn't allow you to open multiple files at once, but it does provide an optional Project View to the left of the XML Editor, which can be set to a specific folder ("project") location. It'll then provide a filesystem view into that folder sort of like windows explorer does. You can double-click a file in there to open it and right-click to copy its path.

You can also click an open file's displayed title to instantly copy its path. You could then navigate over to the Hash Tuning tab and hash the file from there. So there are multiple ways to go about hashing your files.

Some other details about what it can do:

  • Save As Hash uses the same logic as Hash Tuning with regards to data files, so it'll generate a companion data file where relevant/possible, if that option is checked in Hash Tuning.
  • Auto completion popup for tuning names, as of whenever I put the feature together (may not include new tunings since then).
  • Syntax highlighting can be changed and saved for both the native theme and the custom theme with a live color editor (live meaning it shows your color changes on a sample XML tuning as you make them). Yeah, I really put hours into a live color editor that has nothing to do with modding. You can't ever say I'm not into customization.
  • The Project View can be shown or hidden entirely, if you don't like it taking up part of the screen, and you can customize how much of the screen is taken up by the Project View compared to the XML Editor.
  • The Project View can show/hide internal Tuning Name. This is shown by default with arrow buttons to allow you to more quickly scroll to file name (Name) or internal tuning name (Tuning Name). The goal of this is to make it easier to see what files you're working with at a glance, since the file names themselves may be long and unwieldy with all that S4_E882D22F_00000000_A8322168125B1E3A type mumbo jumbo.
  • XML Tuning is integrated with the Hash Tuning and Hash STBL tab, such that if you attempt to hash the file that's open in XML Tuning in one of those tabs, it'll prompt you if there are unsaved changes and will reload the file after it's processed.
  • It'll try to warn you with a red underline if you have a space before or after a tuned value inbetween tags. This is probably not a problem for most XML, but I put it in there because I've seen do_command values fail to parse as intended because of an extra space.
  • Pasting in text or using Insert Template will try to match the indent level of the text to that of the current line and give it indentation if necessary. This is designed to handle Sims 4 XML Tuning files specifically; there may be kinds of XML it would fail on beyond S4. If you have issues with it, you can turn it off in preferences: "Insert: Match Indent to Current Line" | If you think there's an edge case in Sims 4 Tuning structure I've missed, you can let me know in my discord with sample XML that is indenting strangely.
  • Selecting a bool value in the XML ("True" or "False") will bring up a popup with a checkbox, that allows you to change it from False to True, or True to False, without being concerned about typos. This popup appears below the XML Editor while a bool is selected and can be ignored easily if you prefer to just type out the change.

Tuning Ref

The usefulness of this tool may not be immediately apparent. Unlike some of the other tools in this program, it doesn't hash or name things for you and it doesn't edit the files you input at all. Its purpose is instead to produce tuning-ready XML with references to other tuning files in it, that can be copy/pasted into XML files as you desire.

If, for example, you have a lot of traits you want to be removed through a loot file: Normally, you'd have to open up each trait file, copy the hash, and then paste it into a trait_remove tuning one after another in your loot file at bare minimum. If you mod like me, you've got to paste the name of the file too, into a comment, so you know what's what at a glance. Extremely tedious with a lot of files, lots of dead time to question your life choices.

With this tool, you can simply navigate to the folder where your traits are, choose trait_remove, process the files, and you'll have some text you can copy/paste into your loot file with all the traits and their IDs in trait_remove procedures, put together for you.

Example How To

You have a bunch of interactions you want to reference in an AffordanceList, but getting all of their IDs to reference them in the file is tedious, not to mention blindingly boring, and error prone. So you:

  • Choose the location of the interactions with the dropdown and file dialog, or paste them in.
  • Choose "AffordanceList value" from the dropdown on the left, below the tuning file dropdown.
  • The dropdown on the right will be left blank, since our affordance list references don't use an enum.
  • Click the "Process Input" gear icon.

This will add some XML to the Big Blue Box (BBB). Or Big White Box (BWB) maybe, if you're using the native theme.

From here, you have a number of options to work with the XML. You can hit the Copy Output icon and then paste it into your AffordanceList tuning file. You can select it and copy it more manually. You can hit the Save As icon to save it to a file and then copy/paste it or add to it from there. Whatever works for you.

Advanced Use

I wanted the program to be as simple and flexible as possible, so you can to some extent add your own XML files to the tunables folder that comes with the program and it will recognize them.

Currently, keywords recognized by the program are: TUNING_REFERENCE_GOES_HERE, TUNING_REFERENCE_LIST_GOES_HERE, and ENUM_GOES_HERE

  • TUNING_REFERENCE_GOES_HERE: The program will expect to put a single tuning reference here.
  • TUNING_REFERENCE_LIST_GOES_HERE: The program will expect to put multiple tuning references here (e.g. in the case of a list, like in blacklist_traits).
  • ENUM_GOES_HERE: The program will expect to put an enum here, such as ParticipantType's Actor, TargetSim, etc.

You may notice some files have a comment like this: <!--Instance Restriction: statistic--> or this: <!--Class Restriction: Trait-->

This is completely optional and is just a "minimize user error" kind of thing. If you give something a restriction, then it will be ignored in processing if the types don't match. For example, if trait_remove has a class restriction of Trait and somebody tries to process a Buff file as a tuning to be placed in trait_remove.

You can also add stuff to the enums folder, but I'm not sure how useful it is as a functionality beyond ParticipantType. At least for the way the program is set up.

If you add a set of enums, make sure to specify it with an <!--Enum Type: ParticipantType--> kind of comment in tunables that should use it, where ParticipantType is the kind of enum that should be used. Otherwise, it'll be a possible enum, but won't be linked to any specific tunables file.

Custom Theme

This deserves its own section not because there is a custom theme I made that you can enable or disable if you want, but because you can also create your own theme if you wish.

In the files for the program, you'll find a folder called Tutorials > Custom Theme Example. The README file in there explains the gist of how you can create a custom theme with a complete example.

You can set one Override theme at a time and Use Custom Theme must be enabled in Preferences > Appearance for it to be applied.

I added support for this basically because I could. It was fairly easy to do and this is a modding tool, after all. Customization is a mindset at home here.

I don't expect anyone to go to the trouble to make a custom theme, but hey, if you do and you'd like to share it, you can let me know on my discord and I'll add a link to it on this page so it has more visibility.

Open Source

The source code for SHAM is shared freely both to ensure it's possible for the program to be maintained if I disappear and also so that others can learn from the source code.

I encourage others to use the source code to help them make their own tools or improve existing tools where possible. Wholesale copying of SHAM would be frowned upon, partly just because it wouldn't make any sense (why not just use SHAM then?).

But in general, my attitude is one of freely sharing information. I believe that the more is shared and built on freely, the more we can be capable of doing.

In the less literal meaning of open source, as in, "an open source project that others can contribute to," I've considered it for SHAM and am opening to considering it further if there is any interest in it. It's not something I'm currently jumping to do because I don't want to take on the responsibility of managing a public-facing project with all the clerical work of approving commits and deciding what does and doesn't make sense to add to the program.

Can I use this on a Mac?

Short answer: No, but I will update this note if that changes.

Longer answer: You may have seen me give some contradicting or confusing information on cross platform about my programs in the past. At the time, I had little idea what the deal was.

What the deal is, as far as I can tell, is this: Qt is largely built to be a cross-platform library and this program uses it heavily, along with C++. But, to actually be able to use a Qt program cross-platform, you still need to have that platform to compile it on, to get an executable that will work on that platform.

I don't have a Mac, so I can't compile the program for a Mac and test it to make sure it'll all work on a Mac. If you have a Mac and would like to compile it for a Mac and test it to make sure it'll all work on a Mac, you're welcome to do so (the source code is freely available for download). You can even share the result and I'll share a link here.

I can't create a Mac version myself though, or offer support for such a version, since I don't have a Mac or Mac environment of any kind and am unlikely to have one any time soon.

VERSION HISTORY

Version 1.1

  • 1.1: NEW XML Tuning tab: Offers a plaintext XML Editor, with some standard text editing features and some specialized features specifically to make it easier to do modding with sims 4 xml tuning files. This is an unfairly concise summary of it: I suggest reading what it can do in detail.
  • 1.1: Added some basic support for opening XML and STBL from outside the program. Currently, this has to be chosen manually under "Open With", to register it as a possible program for the file type. Doing so will open the file in a new instance of the program.
  • 1.1: STBL Table: You can now right-click the open file icon and select a language. This will give you a file dialog that filters out all but STBL files with the selected language locale code in their name.
  • 1.1: Hash Text: For convenience, clicking a hash value will copy it to the clipboard. This can be turned on or off in preferences.
  • 1.1: Hash Tuning: Fixed an issue with DataTemplates file selection. It should now be more accurate in the relevant template it looks for.