Firey's Context Menu Plugin: A flexible & modifiable plugin designed for ease-of-use features & mass-updating instances & more

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:
Screenshot 2024-06-12 214924
The top 4 categories are for general usage, and also have more sub-menus with more features at your disposal:
Screenshot 2024-06-12 215021

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.

FCM_Custom_Actions Folder

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:
Code Example
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...

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.

Shortcut Menu
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.

1 Like