All notable changes to "Loader" will be documented in this file.
Check Keep a Changelog for recommendations on how to structure this file.
- Official Roblox TS typings support
A significantly large change that passes all of selene's lints! This change contains a large change in the API as well as new API and the removal of it as well.
⚠ USING THIS VERSION OF LOADER MAY ERASE ANY CURRENT DATA AS THE INDEX HAS CHANGED. USE PRIOR VERSIONS IF YOU DEPEND ON THE INDEX. ⚠
Changes:
- Component system in Interface. I've decided against combining MCS into Interface in favor of declarative UI with Roact, which has official support and backing by Roblox.
- "FPS" parameter in
Manager.Loop
- DataSync index value has changed from adding a prefix of "Player_" or "Data_"
- New API for the
Interface.Keybind
object! The following API was updated:Keybind:Mobile
- this can now takefalse
as a second parameter to disable a displayed icon in favor of textKeybind:Bind
- this is a superior method toKeybind:Hook
, which fires at Began/Changed/Ended and provides the UserInputState as its first parameter in the function, and the object follows as second.Keybind:Disconnect
- this now disconnects both:Bind
and:Hook
functions from the Keybind, allowing you to still access the button without a functionKeybind:Destroy
- now COMPLETELY destroys the button, this frees up the unique identifier you used prior.
- Manager API has been updated to remove all
:Method
-like calls on Manager itself in favor of callback functions (.Function()
). This change will completely change the functionality of Manager API such as:Manager:Connect
->Manager.Connect
Manager:Disconnect
->Manager.Disconnect
Manager:ConnectKey
->Manager.ConnectKey
Manager:DisconnectKey
->Manager.DisconnectKey
Manager:FireKey
->Manager.FireKey
Manager:Task
->Manager.Task
Numerous bug fixes
Changes:
- Removed race conditions in DataSync
DataSync:GetFile
handles errors with ease
Removal of the compression algorithm from Manager and DataSync.
⚠ USING THIS VERSION OF LOADER MAY ERASE ANY CURRENT DATA AS THE COMPRESSION ALGORITHM NO LONGER EXISTS. USE PRIOR VERSIONS IF YOU DEPEND ON THE COMPRESSION ALGORITHM. ⚠
Changes:
- Compression algorithm removed
- DataSync updated to support backwards compatibility
- JSON Encode/Decode DataSync to minimize the saved data & allow to error if saving un-saveable data (userdatas)
With this update comes numerous bug fixes including DataSync not syncing data by default. This resolves all issues w/Manager as well.
Changes:
- DataSync auto-subscribes data to download
- DataSync is now lighter on the networking
- Manager bugs resolved
Optimization update v1.2.0! 🥳
With this update comes a large number of changes (even to the API) and you may have to reformat your games API if you used any version beneath this one.
Awesome Changes:
- Subscriptions on DataSync stores are unique & objects so they can be independently called
- Subscriptions are now faster in providing updates to any function
- Manager API is now 100% PascalCase, this was to make the Loader API consistent
- Network API now uses periods (
.
) instead of colons (:
), to maintain consistency with the codebase - Formatting! Loader & modules are now formatted with StyLua
- Minor optimizations - there were a flurry of changes made, but all in good taste!
- Bug fixes - resolved bugs reported
Edits:
- Resolved infinite yield issues
- Micro-optimized the subscriptions.. again
- New DataSync methods
:Ready()
and:Loaded()
, ready provides the DataFIle being able to be used, and Loaded provides if the data loaded OR if it didn't and its using default, unsaveable data.
Fixed replicating DataSync data & removed some useless prints I left in from debugging.
Changes:
- Minor code cleanup
- Reliable DataSync changes
- Fixed player data replication
- Fixed yielding issue that occurred under certain scenarios
Pretty significant move, but I've decided to drop import + Option from Loader & follow the conventional require route. This update no longer allows you to indice Loader for a service, or use Loader.import.
New changes:
- Recommended to set Loader as require
- ie.
local require = require(game:GetService('ReplicatedStorage'):WaitForChild('Loader'))
- ie.
- DataSync got a ton of minor bugs fixed + smoother DataStore usage. Tests passed!
- Cleaned up Manager & Roblox a bit, and added _Name properties
- Network got some fresh changes, now "super-compatible" with making Real Games.
- There's a bunch more minor changes, but this was a general move so it doesn't qualify as a minor update but rather a patch.
A quick patch to update DataSync to include a new DataSync store method! You can now filter a set of keys from filtering, but they can still sync, useful for live inventories etc.
store:FilterKeys({'list','of','keys'}, boolean: true to whitelist, false to blacklist)
Updates include:
- Manager functions got fixed
- Smarter DataSync, can now handle requests better
- Networking changes, just minor improvements
A minor update with some new features & now with typed luau annotations!
Updates include:
- Loader & libraries are now in typed luau - the use of --!strict is not recommended since it's unstable release
- Manager now has a couple more functions - one includes Manager.debounce() which makes debouncing easy
- Big Interface refactor - Refactored functions to be more reliable
- New Modular Component System built into Interface - create component based UI without Roact.
- Loader initial release!
- Loader v1.0.0 includes 5 built-in libraries, such as Manager, DataSync, Interface, Network, Roblox.