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,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
andresize_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 toadd_overwrite
- Improved parsing of
update_field
commands to better support arrays - Improved performance of ModScript parser and executor
add_field
anddelete_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:
- 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
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
andresize_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 toadd_overwrite
- Improved parsing of
update_field
commands 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
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
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
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
anddelete_field
commands 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_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
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_field
commands operating onStringKey
,GCollectionKey
and similar 1-value types. - Removed Herobrine