Nexus Plugin Framework - Simplified Development of Feature-Rich Plugins

Nexus Plugin Framework is a major project I have been working on for several months with the goal to internally implement common features (like theme support and common objects like checkboxes) without having the developer manually implement them for every plugin. The syntax is similar to using Instance.new with regular instances as shown by this section of a code example

--Load Nexus Plugin Framework as a ModuleScript contained in the script.
local NexusPluginFramework = require(script:WaitForChild("NexusPluginFramework"))

--The the window.
local WidgetInfo = DockWidgetPluginGuiInfo.new(
    Enum.InitialDockState.Float,
    true,
    false,
    200,
    200
)
local Window = NexusPluginFramework.new("PluginGui","Test Window",WidgetInfo)

--Create a scrolling frame.
local Background = NexusPluginFramework.new("ScrollingFrame","Qt5")
Background.Size = UDim2.new(1,0,1,0)
Background.CanvasSize = UDim2.new(2,0,2,0)
Background.Parent = Window

...

I already have this deployed in two plugins, my To Do List plugin:


And Nexus Git:
image

Some major features included:

  • Color3 properties can be set as strings to the color in a Studio theme, like "ScrollBarBackground"
  • ScrollingFrames can have Qt5-style scroll bars to blend into Roblox mode
  • Collapsable lists are first-party objects and are easy to make
  • Checkboxes are an included object

The next release will include the following changes:

  • Change colors being strings to color objects and moving the theme change tracking to them instead of the frames.
  • Add dropdown menus
  • Add context menus as objects using NexusPluginFramework.new(...)
  • Add built-in confirmation and message windows

Feature requests are accepted for future releases. The next release is planned, but will not be soon since I have other projects to focus on first.

14 Likes

I can’t wait to use this. Thank you so much for sharing!

2 Likes

This is amazing, I don’t know if I’ll use it, but this will certainly be helpful if I ever release a wide-spread plugin. I’ll make sure to credit you even though you didn’t request it.

Have fun plugin devs, this will probably be a major help for you guys.

1 Like

I’ll be using this for the Devable plugin, 100%.

Great work!