Logo

Kliko's mod updater

Automatic Mod Updates

This tool automatically updates your mods to the latest Roblox version.
Designed for mod developers but easy enough for anyone to use.

Logo

How does it work?

The process of updating your mod is divided into 7 phases.

Phase 1: Getting the version GUIDs and git hashes
When you start the program, you will be asked to select your mod folder. This folder should follow the same structure as the Roblox version folder. It should also include a file named `info.json` with the following data (case sensitive):
{"clientVersionUpload":"version-xxxxxxx"}

Remember to replace "version-xxxxxxx" with the Roblox version that your mod was made for.

After getting the version GUID of both the mod and the latest Roblox version listed here, It loops over the deploy history API to get the git hashes of these versions (these are needed in phase 2).

Finally, it downloads and extracts the extracontent-luapackages.zip files for both versions, and saves these for later.

Phase 2: Matching Roblox Player with Roblox Studio versions
The program will look at the deploy history again, this time it loops over the Roblox Studio entries (starting with the most latest release). It takes the version GUID and git hash and checks if they are the same as either the latest Roblox release or the version of Roblox that the mod was made/updated for.

This step is required because the file that contains the data for each icon (`GetImageSetData.lua`) is only deployed with Roblox Studio.

Again, it downloads and extracts the extracontent-luapackages.zip files for both versions, and saves these for later.

Phase 3: Getting the icon data
The `GetImageSetData.lua` file is a script deployed with Roblox Studio versions, it contains the data for every icon in the image atlas:


I decided that using regex would be the best way to extract the data that I need, but since I don't know anything about regex patterns, I used ChatGPT to write a function that parses this data into the right format. This data gets extracted for both the modded and latest Roblox version.

Phase 4: Getting the modded icons
To figure out which icons are modded, the program uses the extracted data from phase 3 to get the name, position and size of each icon. It then loop over these icons and check if this icon is the same for both the mod and the Roblox version that the mod was made for. If they are different, the name of the icon gets stored in a list which will get used in phase 5.

Phase 5: Generating new ImageSets
Instead of generating the ImageSets from scratch, this program first copies these files from the latest Roblox version and only pastes in the modded icons. After the updated ImageSets are generated, it deletes the ones that don't include modded icons. This is done to prevent adding unnecessary files to your mods.

Phase 6: Updating the mod
When the new ImageSets are generated, the mod gets copied and the `info.json` file gets updated to show the right version. Finally, it replaces the old ImageSets with the new ones.

Phase 7: Removing temporary files
Temperory files get removed to save storage space.

Preview

Requirements