[v1.3.Stable] Roblox Luau Global Variable Fetcher

v.1.1.Stable Released.

Changes:

  • Fixed faulty RegEx pattern.
  • Console now asks you to select the Roblox Studio executable (As I completely forgot every version folder contains a separate RobloxStudioBeta.exe file.).
  • Updated README.md file to be a lot more clear on instructions for the entire process with images, ect.

Link:

1 Like

Sorry for bothering people here again today. This will be the latest release for some while.

v.1.2.Stable Released

Changes:

  • Renamed Luau files in Luau-Files folder.
  • RobloxLuauGlobalVariableFetcher.server.lua now creates a ModuleScript with global list laid out as a table instead of outputting the entire table to studio output window.
  • Improved console outputs by showing more information.
  • Rewrote some parts of the README.md file.
  • Switched code to use Dictionary<TKey, TValue> instead of Hashtable.
  • Restructured Program.cs file.

Link:

Hello, creator of the program here. Currently I’m working on v1.3 version of the program and I want to make a poll on how the program should work functionally. There are currently 2 options on table.

Option A) Keeping the current behaviour with some optimizations:

To whose who don’t know, let me explain what the current behaviour is like when you start up the program in order:

  • Program asks you for the directory of the Roblox Studio Executable file with a OpenFileDialog.
  • Program checks the file for alphanumeric character patterns in Roblox Studio Executable file and creates a list as a Luau table as a string.
  • Program asks you to specify the directory of the save file in a SaveFileDialog.
  • Program exist when you press ANY key on the keyboard.

Of course, while this has fewer potential point of failure, it also has a glaring downside and that being is that this process is not automated when it comes to actual Luau global environment check which leaves user to do some of the work manually.

Option B) Rewriting the program from scratch with new features:

This updated version of program will behave as below when you start up the program in order:

  • Program asks you for directories of Roblox folder, Roblox Studio Executable file and save file location at the start-up in provided order by showing FolderBrowserDialog, OpenFileDialog and SaveFileDialog dialogs respectively.
  • Program gets directories from local plugins folder and local plugin settings file from provided Roblox folder directory.
  • Program checks the file for alphanumeric character patterns and creates a list as a Luau table as a string.
  • Program creates a FileSystemWatcher for local plugin settings file and saves the current data in it.
  • Program creates a temporary XML Roblox place file and a temporary local plugin file and runs Roblox Studio Executable file with special provided arguments passed on it.
  • Program yields execution until necessary fields are created in local plugin settings file by using previously created FileSystemWatcher.
  • Program kills Roblox Studio process and saves the saved plugin setting and changes data in the local plugin settings file to previous value afterwards.
  • Program deletes temporary files and saves the global list to provided save file directory.
  • Program exist when you press ANY key on the keyboard.

Compared to Option A, this behaviour will have significantly more potential point of failures but it will automate the entire process, thus removing the manual work that is present on Option A.

Any other improvement suggestions are also welcome.

Poll:

Which behaviour should v.1.3 include?
  • Option A
  • Option B

0 voters

Hello, creator of the program here again. I have to make another poll about the Option B provided on the previous post.

So before, I need to explain a bit on how the program gets data from the settings.json file:

Program normally uses native System.Text.Json library to deserialize settings.json file to a Dictionary<string, JsonElement>, which then program checks if 2 specific values in that Dictionary<string, JsonElement> exist before exiting the Roblox Studio Process. No problems here on the code side of the things.

Things start to get a bit messy when it comes to building the executable file. Currently, program uses .NET Framework 4.6.1, which usually exist on many computers. The problem is that System.Text.Json doesn’t exist natively on that version of the framework and that causes the build command to create a lot of dll files with the executable file as program depends on those files to run properly.

Normally, you can get around this problem by building those dll files inside the executable and publish the executable as a single file application. The problem is that, that option only exist for .NET 5.0 and later versions of .NET, and those versions does not exist on windows computers normally and you will have to download the runtime for it from .NET website. And we can’t add all native dlls made for .NET 5.0-6.0 built inside the the executable either as doing so increases executable file size from ~192 kilobytes (~0.1875 megabytes) to a whopping ~148k kilobytes (~144.5 megabytes).

So we have 2 options here:

  • Option A: We stay on .NET Framework 4.6.1 and make users download the other dlls alongside with the executable file.
  • Option B: We update the project to .NET 6.0 and make people download runtime files from the .NET website before running the program.

Poll:

Which version of .NET should v.1.3 use?
  • .NET Framework 4.6.1
  • .NET 6.0

0 voters

Notice:

Program now requires .NET 6 runtime to run properly on your computer. To download the runtime, go to this link: Download .NET 6.0 Runtime

v1.3.Beta Released

Changes:

  • Switched project to use .NET 6.1 instead of .NET Framework 4.6.1.
  • Program now utilizes FileDialog.ClientGuid and FolderBrowserDialog.ClientGuid properties to restore the old state of the Dialog to make navigating easier after opening the program.
  • Program now checks the Roblox Studio Luau global environment automatically.
  • Non-Main methods are now stored in a separate namespace named RLGVF.Methods.
  • Added documentation to RLGVF.Methods.
  • Program now uses using statements to dispose objects properly that implements IDisposeable interface.
  • Settings are now stored in a different C# file dedicated to it.
  • Rewrote the README.md file.

Link:

1 Like

Notice:

Program requires .NET 6 runtime to run properly on your computer. To download the runtime, go to this link:

v1.3.Stable Released

Changes since v1.2.Stable:

  • Switched project to use .NET 6.1 instead of .NET Framework 4.6.1.
  • Program now utilizes FileDialog.ClientGuid and FolderBrowserDialog.ClientGuid properties to restore the old state of the Dialog to make navigating easier after opening the program.
  • Program now checks the Roblox Studio Luau global environment automatically.
  • Non-Main methods are now stored in a separate namespace named RLGVF.Methods.
  • Added documentation to RLGVF.Methods.
  • Program now uses using statements to dispose objects properly that implements IDisposeable interface.
  • Settings are now stored in a different C# file dedicated to it.
  • Rewrote the README.md file.
  • Program now uses less memory when reading the settings.json file (Added after the initial beta release.).

Link:

1 Like

Hey? If it were to do that, it would say so IN THE SOURCE CODE

2 Likes