Releases: NFSTools/Attribulator
v2.0.0
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,packrather than-m Pack - (NEW) Added backup generation option to
packcommand (-bor--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
packcommand 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-scriptcommand. - (NEW) Added move_node command (
move_node class collection [destination]) - (NEW) Added
apply-script-bincommand to apply ModScript to compiled binary files. - (NEW) Added
overwrite_nodecommand (deletes collection if it exists, and then creates a new one) - (NEW) Added
copy_overwritecommand (copies source collection to destination, deleting destination if it already exists) - (NEW) Added
update_collectionandresize_collectioncommands for compatibility with NFS-VltEd scripts - (NEW) Command parsing/execution errors are now shown with the offending line number and command.
- Renamed
overwrite_nodecommand toadd_overwrite - Improved parsing of
update_fieldcommands to better support arrays - Improved performance of ModScript parser and executor
add_fieldanddelete_fieldcommands 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_vaultcommand - 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:
- rx (@rxyyy)
- RaTT
- MrAdam
- @RandomDriver08
- @redbluescreen
- @MaxHwoy
- Hypercycle (@VladManyanov)
- @fedpol1
- Corrin
and anyone else I may have forgotten.
v2.0.0 Release Candidate #1
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
Version 2.0.0 (beta 4) of Attribulator comes with the following fixes and improvements:
General:
- (NEW) Added backup generation option to
packcommand (-bor--backup)
ModScript:
- (NEW) Added
copy_overwritecommand (copies source collection to destination, deleting destination if it already exists) - (NEW) Implemented
update_collectionandresize_collectioncommands for backwards compatibility with NFS-VltEd scripts - (NEW) Command parse errors are now shown with the offending line number and command.
- Renamed
overwrite_nodecommand toadd_overwrite - Improved parsing of
update_fieldcommands to better support arrays
v2.0.0 Beta 3
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
unpackCLI command now logs messages to the console- Renamed project from YAMLDatabase to Attribulator
ModScript:
- (NEW) Added
overwrite_nodecommand (deletes collection if it exists, and then creates a new one) - Optimized internal collection and field lookup
- Updated error behavior of
change_vaultcommand - Optimized internal cloning code
- Fixed total execution timer in
apply-scriptCLI 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
Version 2.0.0 (beta 2) of YAMLDatabase comes with the following fixes and improvements:
General:
- Optimized internal data conversion routines
packcommand 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
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,packrather than-m Pack - Added new build cache system to the
packcommand 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-scriptcommand now accepts multiple script paths that will be executed in succession - (NEW) Added
apply-script-bincommand to apply ModScript to compiled binary files. - Improved performance of ModScript parser and executor
add_fieldanddelete_fieldcommands no longer throw errors if the field is already added or already gone
v1.0.9
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 allowappend_arrayto 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
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
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
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_fieldcommands operating onStringKey,GCollectionKeyand similar 1-value types. - Removed Herobrine