Plugin: Module Tracker - Roblox
(Bad quality logo )
Module Tracker plugin is a plugin that can change ModuleScript’s source to return a dictionary of ModuleScripts. You can think of it as converting instances to a table but only for folders and ModuleScripts.
Suppose this is your explorer:
There is a lot of scripts to require, so you might create a “Module Loader” which requires all modules and put them in a table. Like so:
local ModuleLoader = {}
local ModuleFolder = •••
for _, moduleScript in ModuleFolder:GetDescendants() do
ModuleLoader[moduleScript.Name] = require(moduleScript)
end
return ModuleLoader
This works, however, the problem with this method is that intellisence or auto-complete does not work.
One way of getting around this problem is to manually type out a dictionary for all ModuleScripts. This can take a very long time, this is where the plugin comes in and do this for you:
return {
["Server"] = {
["Spells"] = {
["FireSpell"] = require(script.Parent:FindFirstChild("Server"):FindFirstChild("Spells"):FindFirstChild("FireSpell"));
["WateSpell"] = require(script.Parent:FindFirstChild("Server"):FindFirstChild("Spells"):FindFirstChild("WateSpell"));
};
};
["Shared"] = {
["TableUtility"] = {
["Copy"] = {
["SimpleCopy"] = require(script.Parent.Parent:FindFirstChild("ReplicatedStorage"):FindFirstChild("Shared"):FindFirstChild("TableUtility"):FindFirstChild("Copy"):FindFirstChild("SimpleCopy"));
["DeepCopy"] = require(script.Parent.Parent:FindFirstChild("ReplicatedStorage"):FindFirstChild("Shared"):FindFirstChild("TableUtility"):FindFirstChild("Copy"):FindFirstChild("DeepCopy"));
};
};
};
};
Here, “Server” and “Shared” are Directories
.
This is the plugin’s UI:
-
First, select the ModuleScript that you want to track other modules:
-
Then click
Add Selection
, this will add all the ModuleScripts that you have selected to the list. You will not be able to add ModuleScripts that you had already added to the tracking list.
-
You can add only add folders for directories.
Then you will be able to add it to the tracking list by clicking the highlighted button below:
-
You ModuleScript’s code will be changed into a dictionary like so:
return {
["Shared"] = {
["TableUtility"] = {
["Copy"] = {
["SimpleCopy"] = require(script.Parent.Parent:FindFirstChild("ReplicatedStorage"):FindFirstChild("Shared"):FindFirstChild("TableUtility"):FindFirstChild("Copy"):FindFirstChild("SimpleCopy"));
["DeepCopy"] = require(script.Parent.Parent:FindFirstChild("ReplicatedStorage"):FindFirstChild("Shared"):FindFirstChild("TableUtility"):FindFirstChild("Copy"):FindFirstChild("DeepCopy"));
};
};
};
["Server"] = {
["Spells"] = {
["FireSpell"] = require(script.Parent:FindFirstChild("Server"):FindFirstChild("Spells"):FindFirstChild("FireSpell"));
["WateSpell"] = require(script.Parent:FindFirstChild("Server"):FindFirstChild("Spells"):FindFirstChild("WateSpell"));
};
};
};
Simply click this button to update the tracking modules:
If you want remove tracks or edit them you can go to the “Track List” tab:
By clicking the pencil icon, you can edit the directories:
You can get the plugin here: Module Tracker - Roblox
Limitations and Warnings:
• Will only check ModuleScripts under folders. ModuleScripts under any other instances including other ModuleScripts will be ignored.
• You cannot undo tracks.
• You cannot use two folders or modules having the same name properly, it will only work on one.