"Tools." Plugin

image

“Tools.” is a roblox utility plugin designed to do all utility tasks the average developer might find themselves needing. This post aims to give an overview of the plugin, and provide some documentation on how the plugin can be utilized properly!

If any bugs occur, or you simply have a suggestion, feel free to message me or reply here, I’m always glad to hear feedback.

As of release, “Tools.” has 16 features with the goal of making development easier and more efficient. I do intend on adding more tools once I have an idea in mind that I determine to be useful! Each feature is a utility myself, or friends, find ourselves needing from time to time during development. Some of which I haven’t seen in a plugin format before developing my own. With a simple home page, including a search bar, I designed this plugin to sit within your Roblox Studio widgets, allowing quick access to tools, without being too distracting. To view this plugin on the creator store, click here.

Screenshot of plugin widget

The plugin widget in use below the explorer.

Feature Documentation:

Backup Selected

Backup Selected is a tool that allows you to backup any instances you are working on.

Within scripting, sometimes you are trying to resolve an issue within your script, however you have something that works, maybe just not exactly how you want it to. Simply click “Backup selected”, and your script will be duplicated, disabled, and “_Backup” will be added to the end of the name. Now, if you end up finding a solution, you can get rid of the backup. However, if you find yourself unable to write a better alternative, you still have your backup script keeping your working version saved.

For a building example, you have a building you finished working on, but want to make some tweaks. You can back the model up, and keep making your changes. If you decide you are unhappy with the changes, simply use the backup you made instead. I find this to be a better alternative to repeatedly pressing the undo button until you find the version you want.

Convert Image ID

Convert Image ID is a tool that converts a decal ID, into a usable image string, which can then be used within scripts, or similar.

When on the page for the tool, you can enter your decal ID into the text box. Once entered, you have the option to convert the decal into a usable image string, or, save it directly to your image library. However, you are not required to convert the ID before saving it, as the button will automatically convert the ID before adding it to the library.

Create Leaderstats

The Create Leaderstats tool is a very simple way of quickly adding a saving currency to your game.

While in the page for creating leaderstats, you enter the name of your currency into the text box. Once your desired currency is entered, for example “cash”, you can click on either of two buttons to create your leaderstat script.

The “Create Leaderstats [Single]”, will create a simple leaderstats script that will save the currency to a datastore.

The “Create Leaderstats [Table]”, will create a more modular leaderstats script, that instead of a simple saving system, will utilize tables to save more player data within the same datastore, and will include your entered currency by default, but can easily have more added.

GUI Tools

GUI Tools makes it easier, and quicker to develop your games GUI, with quick methods of making changes.

The “Aspect Ratio” button will create a “UIAspectRatioConstraint” within all GUI objects you currently have selected.

The “Center Element” button will center any GUI objects you have selected, setting their anchor point to 0.5, as well as their position.

The “Full Screen Element” button will set all selected GUI objects size to be 1 in scale, making them take up the entire screen.

The “Reclass GUI” button opens up the page to a technically separate tool. The Reclass GUI page allows you to reclass any GUI objects you have selected to a new class, while keeping their properties and children.

The “Replicate Cosmetic” button will copy all cosmetic properties (Background color, background transparency, text, font, etc.) of the first GUI object you have selected, to the rest of your selected objects.

The “Replicate Positioning” button will copy the anchor point, position, and size of the first GUI object you have selected, to the rest of your selected objects.

The “Replicate UI Elements” button will copy any UI styling objects (UiGradent, UiCorner, etc.) from the first GUI object you have selected, to the rest of your selected objects.

The “Roundify Element” button will simply create a UICorner within all selected GUI objects.

GUI Reclass

The Reclass GUI tool allows you to change the class of a GUI object, while maintaining its properties, and children. Select what GUI object(s) you want to change the classes of, and from the buttons, click on the new class you wish for them to be. This tool can also be accessed from the “GUI Tools” page.

Image Library

The Image Library allows you to save image assets you find yourself using often, and quickly apply them.

To add new images to the image library, enter their entire image string into the top text box, and click save. Alternatively, if you just have the ID, use the “Convert Image ID” tool, and save the image directly from the tool.

Within your image library, you can click on a saved image to apply it to all relative objects you have selected, such as an image label, decal, or similar.

To remove an image from your image library, double click the trash can icon in the corner of the image. After one click, the trash icon turns red. If you click the trash icon again before it turns back to a normal color, the image will be removed from your library. If you ever accidentally remove an image from your library, its image string can be found in the output, allowing you to quickly add it back.

Insert Rigs

The insert rigs tool allows you to quickly insert either a blank rig (dummy), or the avatar of a specific user.

To insert a blank dummy, leave the text box empty and click on “Insert Rig”, with the relative humanoid rig type you want.

To insert a users character, type either their username or User ID into the text box, then click on “Insert Rig”, with the relative humanoid rig type you want.

Instance Search

The Instance search tool allows you to quickly locate instances in the workspace that match certain properties.

Each text box is a different property filter that can be added. You only have to fill in the text boxes that are relevant in your search. Anything left blank wont be included in your search terms. Once you enter the relative in formation for what you are looking for, click on “Search”. Once clicked, any instances in the workspace, matching your filters, will be selected.

Notes

The Notes tool is a super simple text box for writing things down that need to be remembered. Any time you want to save what is written, utilize the save icon in the top right of the plugin. When clicked, any text in the text box will be saved, meaning it will load back into the notepad upon restarting studio.

Part To Terrain

The Part To Terrain tool is used to convert all parts you have selected with a terrain of your choice.

To use it, select the part(s) that you want to be replaced with terrain. Once selected, click on the relative material you want the terrain to be. Your part will then be deleted, and replaced with the terrain you chose.

Plugin Settings

Although not necessarily a tool, the Plugin Settings offers some useful options for the user.

If you ever want to clear saved data in the plugin, you can use the relative buttons to do so.

“Clear Place Specific Data”, will clear all data related to the place you are actively working in.
“Clear ALL Place Specific Data” will clear all data that is specific to any and all places you have previously saved data in.
“Clear ALL Plugin Data” clears all data from within your plugin. This includes non place specific saves, such as what’s written in your notepad.

The Enabled Features section allows you to toggle the buttons to certain tools on the home screen. Every button on the home screen can be found here, except for the plugin settings itself of course, to prevent locking yourself out of your settings. From here, you can uncheck any plugin feature, and the respective button for it will be hidden on your home page, and search results.

Recolor Parts

The Recolor Parts tool is meant to help in recoloring large models.

For example, if you built a tycoon for red team, but now want to make the same for a blue team, you can duplicate your red tycoon, then while you have the new model selected (not parts, the main model), you can enter the color you wish to replace in the “Enter old color…” box, in this example, red. Then, enter the new color, in this example, blue, into the “Enter replacing color…” box. When you click “Recolor”, the plugin will search through the model you have selected, and replace the color of old color parts with the new color. This leaves all other parts of different colors untouched.

Remove Datastores

The “Remove Datastores” tool aims to solve a problem I often find myself dealing with. If you have a game that gets even a concurrent player count of 10, you will often find yourself getting “Right to erasure” requests in your inbox. I found it very difficult to go through and clear all users data individually. To combat this, I made this tool.

While on the page, you can enter the datastore keys your game uses. For example, if you were to be using this datastore:
local ds = game:GetService("DataStoreService"):GetDataStore("Cash")
And you save their data like so:
ds:SetAsync(player.UserId, cash.Value)
You would enter the following into the “Enter datastore keys…”:
Cash:USERID
You enter the datastore name, then a :, and then the key used for a player. USERID will automatically be replaced by users IDs you are trying to remove, so enter it in place of where a user ID would go. If you save data like so: ds:SetAsync(player.UserId .. "Currency", cash.Value), you can still use this tool, and would enter it like so: Cash:USERIDCurrency. If you use more than one datastore for each player, you can enter a comma and space, then enter another datastore key in the same way: Cash:USERID, TimePlayed:USERIDtime

Once all of your DataStores are properly entered into the tool, you can now list off user IDs who’s data you would like to remove. In the “Enter User IDs…” text box, you can enter user IDs separated by comma and space, like so: 123, 321, 213, 231. Replacing the random 3 digit numbers with real user IDs you need to remove. You can have one user ID, or as many as you wish.

Once all of your DataStore and UserId information is provided, you can click “Remove Data”. When you click this, it will loop through all UserIds entered, and clear their data. While working through clearing it all, you can see what the plugin is doing in the output. Avoid closing Roblox Studio while this process is active. Once “Finished removing datastores” can be seen in the output, you can tell the task has completed successfully.

When you have all of the correct information provided in this page, you can utilize the save button in the top right to save all DataStore keys you entered. Note this will not save UserIds, as it is expected their data is wiped and won’t need to be wiped again. This will only save it for the place you are currently in, so you all of your saves are separate between places, due to places often having different keys.

Scripting Tools

The Scripting Tools page is used for some simple help with scripting.

You have quick access to the “Backup Script” button, which has identical functionality to the “Backup Selected” tool. However, it is expected in this context you use it on scripts.

“Convert to Local Script”, will create a local script with the same code as the script you have selected.

“Convert to Server Script”, will create a script with the same code as the local script you have selected.

“Script Library”, will open the script library tool.

Script Library

Script Library is a tool that allows you to save scripts you write, and find yourself needing often.

To save a script to your script library, select it. You can only save Scripts, LocalScripts, and ModuleScripts. Once you select the script you want to save, open the tool, and enter the name for your script into the text box. Then click “Save”. Assuming you only had one script selected, your script is now saved in your script library. To insert your newly saved script, simply click on it within your script library.

To remove a script from your script library, double click the trash can icon in the corner of the button. After one click, the trash icon turns red. If you click the trash icon again before it turns back to a normal color, the script will be removed from your library.

Sound Groups

The Sound Groups tool is intended to help with using sound groups. It makes it easier to ensure you have a sound group assigned to every sound, which in turn makes it easier to have a mute option in settings or similar.

“Check Missing” does not utilize the input provided in the text box, and simply searches your game for sounds missing a sound group. It prints the location of all sounds it finds.

“Assign Missing” requires a path in the text box. If you had a sound group in SoundService named “Sound Effects”, you would enter the path as so: game.SoundService.Sound Effects. In real scripting, spaces would not work, however in this situation the plugin uses spaces. Once your valid path is entered, the button will go through searching for sounds exactly like the “Check Missing” button. The difference, is that instead of printing what it finds, it instead assigns the entered sound group to the sound.

Texture Fighting

The Texture Fighting tool is used to fix texture fighting between parts.

When you have texture fighting, you select the relative button to the axis the texture fighting is occurring on. If your texture fighting is occurring on the Y axis (the most common), you would click the “Fix texture fighting on Y axis”, and the plugin would go through all parts you have selected and resolve texture fighting.

Toggle Camera Light

The Camera Light is a tool that allows you to create a light that follows your camera. This can be useful if you are building models in dark spaces, and don’t want the constantly change the lighting back and forth for building and play testing.

When clicked, the “Toggle Camera Light” button will create a new light if you don’t have one. If you already have a camera light, the button will destroy it.

The camera light part can be found in game.Workspace.Terrain.TCameraLight. You can modify the light properties from here if you really wish to do so. However, do not modify any names or other crucial properties.

Weld Parts

The Weld Parts tool allows you to either create, or remove welds from the parts you have selected. This tool can be especially useful when creating tools, as you can quickly weld all parts of the tool together so they stick together without being anchored.

To weld some parts together, select the parts you want to be attached. The first part you selected will be where the welds are parented. So if you are welding a tool, I recommend you select the handle first, then other parts. Once the parts you want welded are selected, click the “Weld Selected Together” button.

To remove all welds from parts/models, select what you want to search through to delete all “Weld” and “WeldConstraint” classes. Once the parts/model is selected, you can click on “Remove Welds From Selected”. Once clicked, the plugin will search through what you have selected, and delete any welds.

How is it fixing texture fight on different parts, is it slightly scaling the Y on the part selected ?

Does part to terrain do all the terain types, and foes it support mesh to terrain ?

It sets the scale of the parts by small increments, but you can configure the increment if you want a different amount. Part to terrain can convert parts to all terrain types, but no it does not have mesh to terrain as of right now. I was considering adding it but nothing I can promise as of right now.

Edit: It lets you choose the axis the texture fighting is occurring on as well, so if its on the Y axis, you would select that option.