Firey’s Context Menu Plugin
Firey’s Context Menu Plugin is a plugin that is designed to allow access to ease-of-use features to help improve your development experience on Roblox.
Using Roblox’s Plugin Menu API, this plugin brings to you a flexible and modifiable context menu in which you, the developer, can create your own additions to the plugin without having to modify the source code of it.
Summary
Built right into the plugin, there exists the following sub-menus:
The top 4 categories are for general usage, and also have more sub-menus with more features at your disposal:
This isn’t all though…
It has been mentioned that this plugin has support for you to add your own menu actions, all of which are listed below:
- External Plugin Support
- Custom Addons to the menu [see more below]
- Custom Community-Made Library Addons [see more below]
Custom Addons & Libraries
Everything you need to know about Custom Addons & Libraries
Prerequisites
- An understanding of the explorer
- The ability to write and understand Luau code
…Back to the good stuff
Addons allow you to add your own custom actions to the context menu without having to modify the source code of the plugin. Located in ServerStorage
, after peforming the action sequence Custom > Add Custom Folder
, you should see a new folder called FCM_Custom_Actions
.
This folder contains the modules in which the plugin will execute to add actions to the context menu. To get started with creating your own custom actions, do the following action sequence: Custom > Add Custom Example
. You should now be selecting a module called Example
inside of the specified folder. Opening this script, it should look like this:
This script contains all of the basic information you may need to begin creating as complex of an action tree as you want.
Hey, what’s the deal with this FCM_Custom_Actions folder?
As you might have realized by now, this folder is planted directly into the place you are currently in. This means that if you are to go to a new place, you will have to re-insert all of your custom actions and/or libraries you may have inserted into another place. I have designed it this way intentionally, as I don’t want to expose certain places to actions it does not require.
What about Libraries?
The Libraries section in the Custom
sub-menu acts as a hub for actions that you may want to add into any place without having to fetch the source yourself. At the moment, you are not allowed to create your own custom libraries, as they are pre-determined assets that I hand pick.
Eventually, you may see some new additions to the plugin that allow you to have your own libraries.
External Plugin Support
Everything you need to know about External Plugin Support
I decided that custom actions was not enough, and I added methods to allow external plugins to add their own actions to the context menu. To get started, perform the action sequence Custom > Add Example Plugin
. Once done, you should be selecting a folder in ServerStorage
called ExamplePlugin
. Inside this folder is a script. This script contains code that adds custom actions the context menu. Near the bottom of the script, this is how detection is done:
local function TrySharedCheck()
local Call = shared.__FCMAddActionTree
if Call then
Call(PluginName,Tree())
end
end
CoreGui.ChildAdded:Connect(function(Item)
if Item.Name == "FCMAdded" then
TrySharedCheck()
end
end)
if CoreGui:FindFirstChild("FCMAdded") then
TrySharedCheck()
end
plugin.Unloading:Connect(function()
local Call = shared.__FCMRemoveActionTree
if Call then
Call(PluginName)
end
end)
The code above is checking for an Instance to get added to CoreGui
, which determines that the context menu plugin exists and is functional in the current instance of studio; after this, it calls the external functions to add its custom actions to the context menu.
External API
External API to access parts of this plugin
Internal API; used for hooking and unhooking actions for external plugins
shared.__FCMAddActionTree(Name, Tree, Icon) --This is self explanatory, it will add an action tree to the context menu
shared.__FCMRemoveActionTree(Name) --This will remove the given action tree from the context menu
Developer Recommended API
shared.__FCMPrompt(...) --This will bring up a prompt UI; the Custom Plugin Example shows how to use this API
shared.__FCMGetSetting(Name) --Will return a saved setting with the given name
shared.__FCMSetSetting(Name, Value) --Will save the given setting of [Name] to [Value]
As seen above, your custom actions/plugins can save/get settings in the context menu plugin. To see this API being used, the Watermark
library has an implementation of it.
Installation Guide
Once the plugin is installed, you will notice there is no button to activate this plugin. This is because the plugin is activated using a shortcut which you have to create yourself. To get started, go to File > Advanced > Customize Shortcuts...
This should open a new menu in the middle of your screen. Now, in the search bar for this menu, type out Fireys
, and you should see an action called Fireys Context Menu
. Bind this shortcut to whatever set of keys you want, as this is your preference.
Now, you can close out of this menu. Pressing the set of keys you inputted as your shortcut should now open the context menu.
Limitations
Roblox’s Plugin Menu API has a lot of limitations, so the plugin had to be built around them, which means most changes you make to your custom actions require you to build the custom menu again, via Custom > Build Custom Menu
. This action rebuilds the context menu
Conclusions
I can personally say that I use this plugin daily during development, as it really helps reduce the time it takes to do specific actions. Don’t just take my word for it! I’ve shared this amongst some of my friends, here’s a review from one of them:
Firey’s Context Menu Plugin has become a go-to tool in my daily development routine. It’s super easy to use and works great for both beginners and experienced developers. With its wide range of features and customizability, it’s perfect for productivity. If you’re looking for a versatile and reliable plugin, I highly recommend giving Firey’s Context Menu Plugin a try.
There are plans to continuously update this plugin when I come up with new features to implement. Soon, I may be implementing local custom library support, so you can insert YOUR custom libraries into any place you want with ease.