Skip to content

Releases: NFSTools/Attribulator

v2.0.0

09 Dec 16:09
Compare
Choose a tag to compare

A completely overhauled version of Attribulator (previously YAMLDatabase) has arrived! Version 2.0.0 comes with the following fixes and improvements:

General:

  • Replaced old -m ... -i ... -o ... command line format with new "verb" format; for example, pack rather than -m Pack
  • (NEW) Added backup generation option to pack command (-b or --backup)
  • (NEW) Added profile for the PS2 version of Need for Speed Carbon (CARBON_PS2)
  • Implemented new plugin system to allow new functionality to be added to the application, such as new commands, storage formats and profiles. YAML support, ModScript support, and the Need for Speed profiles have all been moved to separate plugins.
  • Replaced old console messages with new logging system + colored messages.
  • Added new build cache system to the pack command to improve workflow when making minor changes.
  • Added basic error handling to deserialization of unpacked-to-disk databases. If a file cannot be loaded, Attribulator will now tell you what that file is, and what's wrong with it.

YAML Support:

  • Improved performance when loading large databases.
  • Improved error detection (array too large / array capacity too small)

ModScript:

  • (NEW) You can now apply multiple scripts at a time with the apply-script command.
  • (NEW) Added move_node command (move_node class collection [destination])
  • (NEW) Added apply-script-bin command to apply ModScript to compiled binary files.
  • (NEW) Added overwrite_node command (deletes collection if it exists, and then creates a new one)
  • (NEW) Added copy_overwrite command (copies source collection to destination, deleting destination if it already exists)
  • (NEW) Added update_collection and resize_collection commands for compatibility with NFS-VltEd scripts
  • (NEW) Command parsing/execution errors are now shown with the offending line number and command.
  • Renamed overwrite_node command to add_overwrite
  • Improved parsing of update_field commands to better support arrays
  • Improved performance of ModScript parser and executor
  • add_field and delete_field commands no longer throw errors if the field is already added or already gone
  • Optimized internal collection and field lookup
  • Optimized internal value cloning code
  • Updated error behavior of change_vault command
  • Fixed an error that occurred when copying a collection that was renamed by a previous command.
  • Fixed an issue with updating fields in collections that were renamed by a previous command.

This release has been months in the making. The ModScript engine received several massive improvements, as shown above, and can now execute over 100,000 commands per second on a low-end Intel Core i7.

Thanks, in no particular order, to the following users who helped test the many builds that led up to this release:

v2.0.0 Release Candidate #1

07 Dec 14:38
Compare
Choose a tag to compare
Pre-release

Version 2.0.0 (release candidate 1) of Attribulator comes with the following fixes and improvements:

General:

  • (NEW) Added profile for the PS2 version of Need for Speed Carbon (CARBON_PS2)
  • Added basic error handling to deserialization of unpacked-to-disk databases. If a file cannot be loaded, Attribulator will now tell you what that file is, and what's wrong.

ModScript:

  • Fixed an error that occurred when copying a collection that was renamed by a previous command.
  • Fixed an issue with updating fields in collections that were renamed by a previous command.

v2.0.0 Beta 4

17 Jul 23:41
Compare
Choose a tag to compare
v2.0.0 Beta 4 Pre-release
Pre-release

Version 2.0.0 (beta 4) of Attribulator comes with the following fixes and improvements:

General:

  • (NEW) Added backup generation option to pack command (-b or --backup)

ModScript:

  • (NEW) Added copy_overwrite command (copies source collection to destination, deleting destination if it already exists)
  • (NEW) Implemented update_collection and resize_collection commands for backwards compatibility with NFS-VltEd scripts
  • (NEW) Command parse errors are now shown with the offending line number and command.
  • Renamed overwrite_node command to add_overwrite
  • Improved parsing of update_field commands to better support arrays

v2.0.0 Beta 3

11 Jul 03:46
Compare
Choose a tag to compare
v2.0.0 Beta 3 Pre-release
Pre-release

Version 2.0.0 (beta 3) of Attribulator comes with the following fixes and improvements:

General:

  • Restored old value conversion code due to unforeseen issues caused by the optimized version
  • unpack CLI command now logs messages to the console
  • Renamed project from YAMLDatabase to Attribulator

ModScript:

  • (NEW) Added overwrite_node command (deletes collection if it exists, and then creates a new one)
  • Optimized internal collection and field lookup
  • Updated error behavior of change_vault command
  • Optimized internal cloning code
  • Fixed total execution timer in apply-script CLI command

As of this release, the ModScript system is capable of executing hundreds of thousands of commands per second. Further optimizations may be made where necessary and possible.

v2.0.0 Beta 2

08 Jul 18:47
Compare
Choose a tag to compare
v2.0.0 Beta 2 Pre-release
Pre-release

Version 2.0.0 (beta 2) of YAMLDatabase comes with the following fixes and improvements:

General:

  • Optimized internal data conversion routines
  • pack command quits early if no files need to be saved, and shows a new message if that is the case.
  • Removed Aaron Lewis
  • Added Herobrine

YAML Support:

  • Removed parallel loading due to random errors caused by it.
  • Fixed build cache hash computation for empty directories.

ModScript:

  • (NEW) Command errors now include the line number of the command in the script file.
  • Updated commands-per-second calculator to properly handle script execution taking less than one millisecond.

Experimental:

  • A plugin providing support for Burnout Paradise and Burnout Paradise Remastered is being developed. It is currently not included in the distributed YAMLDatabase builds.

v2.0.0 Beta 1

05 Jul 18:48
Compare
Choose a tag to compare
v2.0.0 Beta 1 Pre-release
Pre-release

Version 2.0.0 (beta 1) of YAMLDatabase comes with the following fixes and improvements:

General:

  • Implemented new plugin system to allow new functionality to be added to the application, such as new commands, storage formats and profiles.
  • Replaced old console messages with new logging system + colored messages.
  • Replaced old -m ... -i ... -o ... command line format with new "verb" format; for example, pack rather than -m Pack
  • Added new build cache system to the pack command to improve workflow when making minor changes.
  • Added commands to list the loaded plugins (plugins), storage formats (formats) and profiles (profiles).
  • Moved YAML support, ModScript support and Need for Speed support to individual plugins.
  • Removed Linux build from release.
  • Added Aaron Lewis
  • Removed Herobrine

YAML Support:

  • YML files are loaded in parallel when possible.
  • Improved performance when loading large databases.
  • Removed hardcoded "primary vault" check and replaced with a new YML configuration entry (PrimaryVaultName).
  • Improved error detection (array too large / array capacity too small)

ModScript:

  • (NEW) Added move_node command (move_node class collection [destination])
  • (NEW) Added support for custom ModScript commands in plugins
  • (NEW) apply-script command now accepts multiple script paths that will be executed in succession
  • (NEW) Added apply-script-bin command to apply ModScript to compiled binary files.
  • Improved performance of ModScript parser and executor
  • add_field and delete_field commands no longer throw errors if the field is already added or already gone

v1.0.9

29 Mar 21:54
Compare
Choose a tag to compare

Version 1.0.9 of YAMLDatabase comes with the following fixes and improvements:

ModScript:

  • (FIX) rename_node command updates CollectionName field if it exists
  • (FIX) update_field command no longer automatically resizes arrays
  • (NEW) update_field command now does bounds checking
  • (FIX) update_field command will no longer throw the "out of order update" error with arrays
  • (NEW) Added append_array command (append_array class collection field [value])
  • (NEW) resize_field command will automatically add placeholder items if array is made bigger
  • (NEW) update_field command now allows the usage of ^ in place of an index for array updates; this is primarily to allow append_array to be effectively utilized with complex objects
  • (FIX) add_node command initializes base arrays (thanks to @MaxHwoy for making a script that revealed the issue)
  • (FIX) delete_node command works properly with collections that are the child of another collection
  • (NEW) Number of commands + commands/second are now shown after a ModScript has been executed

General:

  • hashes.txt is loaded from the directory in which YAMLDatabase is stored.
  • Packing process will now warn about vaults that cannot be located in the YML source folder
  • Added Herobrine

v1.0.8

21 Mar 21:22
Compare
Choose a tag to compare

Version 1.0.8 of YAMLDatabase comes with the following changes:

  • Improved performance of ModScript processor. A 2000+ line script with all major commands (update/delete/copy/add/rename) executes in an average of 50 milliseconds.
  • Added more timing info to save/load processes

v1.0.7

15 Mar 19:34
Compare
Choose a tag to compare

Version 1.0.7 of YAMLDatabase comes with the following changes:

  • Resolved issue where loading/saving YML database would load collections in the wrong order, leading to every YML file being completely rewritten and messing up version control.
  • Collections from YML vaults are loaded with dependencies in mind - this primarily affects gameplay vaults, due to their inherent dependency on gpcore, which was previously loaded after its dependent vaults.
  • Added Aaron Lewis

v1.0.6

02 Mar 01:06
Compare
Choose a tag to compare

Version 1.0.6 of YAMLDatabase comes with the following changes:

  • Improved output format of data types such as StringKey.
  • Improved ModScript processor's handling of update_field commands operating on StringKey, GCollectionKey and similar 1-value types.
  • Removed Herobrine