--- title: State of Vertosona Framework Changes description: Tracker for source code changes. --- # Vertosona Pre-Alpha Changes (v3) This exists to keep track of the changes I make to the game's framework. Most of this will not make sense, but I am still providing it as it is a good way to show my daily progress and will pressure me to get things done. Anything italicized and written in quotes is the exact text written inside the respective script's change log. Order of changes for each day is top down. Time of completion takes priority in change order. Even if "Script A" is worked on first, if the changes to "Script B" are completed before "Script A" then it will come before it. Join our discord server [here](https://discord.gg/nAVcjk3s4y)! You can also find my studio's server [here](https://discord.gg/tmjpJMWrEc). The v2 archive can be found [here](https://hackmd.io/b2vAqBUlR5SCoVWiOtcwrw?view). <!-- Formatting stuff: → - *"Rewritten for VSF v3."* --- # (//) ### : v.. - *""* ---> --- # May 30th (05/30/2025) ### Proxy: v1.4.0 - *"Added new index predicates." ### SoundEngine: v3.1.0 - *"Added server-client remote control." --- # May 26th (05/26/2025) ### Filter: v1.1.0 - *"Added CollisionGroup filtering." --- # May 3rd (05/03/2025) ### Filter: v1.1.0 - *"Added CollisionGroup filtering." ### TriggerZones: v1.0.0 - *"Finished."* ### SoundEngine: v1.0.0 - *"Finished."* --- # May 1st (05/01/2025) ### TriggerZones: v1.0.0 - Continued. --- # April 30th (04/30/2025) ### Proxy: v1.3.0 - *"Added the ability to specify enum types in writeables."* ### Filter: v1.0.0 - *"Creates a filter object. Used in custom raycasting and wherever a filter may be needed."* ### RayKit: v5.1.0 - *"Moved the RayFilter classes to it's own, customizable, Filter library."* ### TriggerZones: v1.0.0 - *"Custom regions that provide easy detection for objects entering and leaving."* **(UNFINISHED)** ### SoundEngine: v3.0.0 - *"Continued..."* --- # April 26th (04/26/2025) ### Proxy: v1.2.0 - *"Added the "Default" writeable callback. Called when attempting to write a property with no associated callback on an object with a valid "Default" callback."* ### SoundEngine: v3.0.0 - *"Continued..."* --- # April 23rd (04/23/2025) ### SoundEngine: v3.0.0 - *"Continued..."* --- # April 18th (04/18/2025) ### Proxy: v2.0.0 - *"Added the ability use writeables without creating a proxy."* ### Utilities: - Added the following functions: - "LinearInterpolation"* - "Average" ### SoundEngine: v3.0.0 - *"Continued..."* --- # April 6th (04/06/2025) ### [SoundManager → SoundEngine]: v2.0.0 - *"Rewritten for VSF v3."* **(UNFINISHED)** ### [DamageHandler → HitService]: v2.0.0 - *"Rewritten for VSF v3."* **(UNFINISHED)** ### Firearm: v3.0.0 - *"Continued..."* --- # April 5th (04/05/2025) ### InteractionController: v8.0.1 - *"Upgraded to the new RayKit library."* ### ItemHandler: v2.0.1 - *"Upgraded to the new RayKit library."* ### Firearm: v3.0.0 - *"Continued..."* --- # March 31th (03/31/2025) ### Gizmos: v1.0.0 - Finished ### RayKit: v5.0.0 - Finished --- # March 30th (03/30/2025) ### Utilities: - Added the following functions: - "CalculateDirectionalVector3" - "FindMaxVectorAxis" - "FindMinVectorAxis" - "TransformVector" - "UnpackVector" ### Gizmos: v1.0.0 - Continued ### RayKit: v5.0.0 - Continued --- # March 29th (03/29/2025) ### Gizmos: v1.0.0 - *"A major rewrite of the "gizmo" library made by "Brad Sharp"."* (UNFINISHED) ### [Raycast → RayKit]: v5.0.0 - *"Rewritten. A custom ground-up RayCasting library, with greatly expanded features."* (UNFINISHED) --- # March 26th (03/26/2025) ### GlobalTypes: - Added the "MouseInfo" and character related types. ### [Health → CharacterHandler]: v2.0.0 - *"Added "Tool Grip" motor and "GrabAttachment" creation." ### Utilities: - Added the "FindInHierarchy" function. ### Firearm: v3.0.0 - *"Rewritten for VSF v3.* --- # February 4th (02/04/2025) ### TaskScheduler: v1.0.0 - *"Restarted."* (UNFINISHED) <!--*"Restarted. Swapping Linked Listed tasks with ordered tasks. Removes the onus of being able to find the first, last, next, or previous tasks from a task class, but I don't see much of a use for this anyway.*--> --- # February 2nd (02/02/2025) ### TaskScheduler: v1.0.0 - *"Continued...* --- # January 31st (01/31/2025) ### Proxy: v1.0.1 - *"Added recursive writeable callbacks and typechecking."* ### TaskScheduler: v1.0.0 - *"A rewritten version of Suphi's "SynchronousTaskManager".* (UNFINISHED) --- # January 25th (01/25/2025) ### DataHandler: v1.0.0 - *"A custom implementation of Suphi's Datastore Module (SDM)"* (UNFINISHED) ### ItemsDH: - *"Handles the conversion of tools to and from savable data."* --- # January 7th (01/07/2025) ### Utilities: - Added the following functions: - SortAlphabetically - QuickConnect ### StoreController: v3.0.0 - *"Rewritten for VSF v3."* --- # January 3rd (01/03/2025) ### [StoreUI → StoreController]: v3.0.0 - *"Rewritten for VSF v3."* (UNFINISHED) --- # January 2nd (01/02/2025) ### IHHelper: v1.0.0 - *"Provides utilities for item handlers."* ### ItemHandler: v2.0.0 - *"Rewritten for VSF v3."* ### Inventory: v6.0.0 - *"Rewritten for VSF v3."* ### Hotbar: v6.0.0 - *"Rewritten for VSF v3."* --- # January 1st (01/01/2025) 🎉🎇 ### Inventory: v6.0.0 - *"Rewritten for VSF v3."* (UNFINISHED) --- # December 31st (12/31/2024) ### InventoryService: v1.0.0 - *"Provides shared handling for inventories."* ### Inventory: v6.0.0 - *"Rewritten for VSF v3."* (UNFINISEHD) --- # December 18th (12/18/2024) ### Utilities: - Added the [AddNumberCommas] → [LocalizeNumber] function. Now supporting custom delimiters and cashSymbols. ### PUIHandler: v1.0.0 - *"Continued..."* ### PUIHelper: v1.0.0 - *"Provides utilities for the Primary UI's components."* --- # December 17th (12/17/2024) ### Utilities: - Added the following functions: - CountDecimalPlaces - TruncateDecimals - Modified the "RoundNumber" to mitigate floating-point errors. - [AddLeadingZeros] → [AddPaddingZeros]: Zeros can now be added to a number on the left (default: "009"), on the right ("900"), or on both sides ("00900"). ### Health: v1.0.0 - *"A rewritten implementation of Roblox's regeneration script. Handles various health tasks."* ### PUIHandler: v1.0.0 - *"Continued..."* --- # December 15th (12/15/2024) ### Utilities: - Added the following functions: - CardinalDirectionFromCFrame ([CFrame] -> "[Direction]", [Heading]) - CardinalDirectionFromHeading ([Heading] -> "[Direction]") ### PUIHandler: v1.0.0 - *"Continued..."* --- # December 12th (12/12/2024) ### TimeLog: v1.0.0 - *"Provides various time lated functions." --- # December 10th (12/10/2024) ### TimeLog: v1.0.0 - *"Provides various time lated functions." (UNFINISHED) ### PUIHandler: v1.0.0 - *"Handles the primary UI."* (UNFINISHED) - This combines simple primary UI components (ex: compass, clock, etc) into one module. It also bootstraps larger components (ex: hotbar, inventory, etc). - **Combined & Depecrated Modules:** - PlayerStats - WorldStats --- # December 3rd (12/03/2024) ### InteractionController: v8.0.0 - *"Continued..."* ### Raycast: v4.0.1 - *"Fixed debug gizmos."* --- # December 2nd (12/02/2024) ### [CustomBindingService → ContextBindingService]: v5.0.0 - *"Rewritten for VSF v3."* ### InteractionController: v8.0.0 - *"Continued..."* --- # December 1st (12/01/2024) ❄ ### InteractionController: v8.0.0 - *"Continued..."* --- # November 27th (11/27/2024) ### PLHandler: v4.0.1 - *"Reimplemented host's team display."* --- # November 26th (11/26/2024) ### Fade: v1.0.0 - *"Provides an individual object fade function and a fade object constructor."* ### LSHandler: v3.0.1 - *"Finished effects."* --- # November 24th (11/24/2024) ### LSHandler: v3.0.0 - *"Rewritten for VSF v3."* --- # November 20th (11/20/2024) ### Progress: v2.0.0 - *"Rewritten for VSF v3. Moved to the VortexUI library."* --- # November 19th (11/19/2024) ### CoreModifier: v1.0.0 - *"Removes the default loading screen & modifies the core GUI."* ### [Loading → LSHandler]: v3.0.0 - *"Rewritten for VSF v3. (UNFINISHED)"* - Seperated from the ClientRoot and PrimaryUI. The module is now bootstrapped from the root in it's own UI. ### GlobalTypes: v1.0.0 - *"A collection of types that can be used globally."* ### VortexUI: v1.0.0 - *"A dynamic, obect-oriented, UI library."* ### [MiscUtils → Utilities]: - Rewritten for VSF v3. Implementing functions as I need them. I'm also going to split the functons into categorized modules as the module was getting too large. ### Progress: v2.0.0 - *"Rewritten for VSF v3. Moved to the VortexUI library."* (UNFINISHED) --- # November 18th (11/18/2024): ### IntReciever: - Rewritten for VSF v3. ### TeamChanger: v2.0.0 (SERVER) - *"Rewritten for VSF v3."* ### PLHandler: v4.0.1 - *"Added Trove."* ### Raycast: v4.0.0 - *"Rewritten for VSF v3."* ### InteractionController: v8.0.0 - *"Continued..."* --- # November 17th (11/17/2024): ### Switch: v1.0.0 - *"A custom, simple, Luau switch statement implementation."* ### IntHelper: v1.0.0 - *"Provides utilities for interaction components."* --- # November 15th (11/15/2024): ### [PlayerList → PLHandler]: v4.0.0 - *"Rewritten for VSF v3."* - Seperated from the ClientRoot and PrimaryUI. The module is now bootstrapped from the root in it's own UI. --- # The Journey Begins Again. As you may have seen in the development channel of the Vertosona Discord server, I've made the decision to rewrite the game (again... again). While this is not the preferable outcome, I've decided it is what must be done. I recently took on some commissions and realized how different my workflow was from when I first started v2, let alone the prototype. On top of this, a lot of tech debt has been accrued, making development very difficult. All is not lost though! With the knowledge of the past and having the old codebase to reference I expect v3 to be finished much faster. And in a much better state to boot. Vertosona lives on! ### November 11th (11/11/2024) ### SignalService: v1.1.0 - *"Added the "Connections" property and "ListenForConnectionsChanged" method."* --- # Pre-Rewrite Prototyping Before officially rewriting the entire game, I did some prototyping on a new system for performant node searching for the interaction system. I had stumbled across a video on Octrees and determined it would work perfect for my application. --- # November 10th (11/10/2024) ### LinkedList: v1.0.0 - *"An implementation of the "Linked List" data structure."* ### IdleThreadPool: v1.0.0 - *"IdleThreadPool creates a single reusable thread with coroutines. This thread can be used to handle sequential event functions efficiently. By only creating threads when the main thread is unavailable, this lightweight library's aproach minimizes resource consumption. Stripped and rewritten from Slietnick's signal module."* ### SignalService: 1.0.0 - *"Finished rewrite."* ### InteractionController: v8.0.0 - *"Continued..."* --- # November 7th (11/07/2024) ### Debug: v3.0.0 - *"Rewritten for VSF v3.* ### SignalService: v1.0.0 - *"A rewritten implemenation of Slietnick's signal module."* (UNFINISHED) ### InteractionController: v8.0.0 - *"Continued..."* --- # November 5th (11/05/2024) ### OctreeCacher: v1.0.0 - *"Constructs & caches octrees.* *As the client is handled from the character for \*reasons\*, the client recompiles every time the player respawns. This would mean reconstructing an octree, or multiple every time Making their computational benifit less significant."* ### PolarityClient: v1.0.0 - *"Setups up shared constants & passes them along to the client root."* ### ClientRoot: v3.0.0 - *"Rewritten for VSF v3."* ### [InteractionHandler → InteractionController]: v8.0.0 - *"WELCOME TO THE 3RD COMPLETE REWRITE OF VSF WOOOOOOOO!!! 😭"* (UNFINISHED) --- # October 4th (11/04/2024): ### Octree: v1.0.0 - *"An implementation of the Octree data structure.* *Rewritten from Sleitnick's "OctoTree" module.* *While the original was strictly-typed, I believe it can be cleaned up and specialized."*