Macro Manager Redux - Plugin

Hello developers!

If you’ve been around for a while, you might remember this awesome macro manager plugin by @Defaultio from 2018. It provided a great way to manage and run macros in your Studio projects, but I felt it was missing some key features, and some general aesthetic changes.

So, for the past almost 9 months, I’ve been working on a sort of redux version with more powerful functionality and a modern UI.

New Features

  • Revamped GUI: A cleaner, more intuitive interface for managing macros.
    image

  • Advanced Script Editor: Enhanced autocomplete to make writing macros faster and easier.
    RobloxStudioBeta_KttcvMMin8

  • 11 New Macro Item Types: Expanded functionality to give you more control over automation.

  • Rojo Compatibility: Enable macro writing with third-party software using Rojo.

  • Refresh Button in Toolbar: Easily refresh your macros without having to navigate to the ‘CheckMeToRefreshMacros’ BoolValue in the Explorer.
    479_541137b3-3deb-489f-b165-51423a05d49f_RobloxStudioBeta

This plugin is meant for people who have used Defaultio’s version before, so there isn’t much documentation beyond the autocomplete.

Macros made with Defaultio’s plugin should work with this version.

Plugin: Macro Manager Redux
Github: Repository

Let me know your thoughts! Feedback and suggestions are always welcome.

5 Likes

Can you release this on GitHub?

I’ve updated the post to include a link to a GitHub repository of the plugin.

This is awesome! I have been using the old macro manager for the past 4 years now and im always looking for alternatives but still the same as the old one and with more features!

Documentation needs to be implemented since there are new macro items. I had to sift through the codebase to know what these items can do.

One suggestion:
Put the Refresh macro button on the plugin window directly together with the Create Macro so we don’t need to open the plugin tab to refresh. The window is always open anyway when using the macros. But still keep the button on the plugin tab so we can bind shortcut keys.

Overall awesome plugin!

1 Like

Thank you for the feedback! I might update the plugin sometime to include some documentation (sometimes even I forget how to use certain macro items :sweat_smile:), and I do like the idea of having the refresh button be in the plugin widget. I’m also considering switching away from Roact to Fusion and adding support for custom item types like in Defaultio’s version.

1 Like

Hello everyone!

Today I’d like to announce that I’ve made some rather large changes and improvements to this plugin after roughly 4 months worth of working on and off this passion project of mine!

This plugin can be found here, as well as the GitHub repository here.

Once again I’d like to credit @Defaultio for creating the original plugin.


Now onto the changes…

The first major change I’ve made to this plugin is moving away from Roact and to start using Fusion* as Roact was rather confusing and difficult to use which made implementing certain features slow and tedius. Fusion on the other hand was quite simple and greatly accelerated the speed at which I could add features. I would definitely give Fusion a try if you haven’t yet!

* more specifically my own fork of Fusion called ConFusion

Another major change is the overall appearance of the plugin. I’ve tried to keep it similar to how it was when I first released it, but kind of got carried away with Fusion…

Some of the smaller changes/additions I’ve made:

  • A search/filter bar! Useful for when you have lots of macros in a project, but just can’t seem to find that one specific macro…
    2042_6a98d0dd-87f8-41fc-a487-dc3e3a02377f_RobloxStudioBeta
  • Custom MacroItem classes! I know this was in the original version by Defaultio, but I just couldn’t figure out how to get this to work cleanly with Roact, but it’s here now!

    Jorm Army pictured (2025, Colorized)
  • Builtin color picker for Color3 types!
    2047_0a087757-ab47-48be-8829-d323dbd4524d_RobloxStudioBeta

:warning: important and breaking changes!!! :warning:

There have been some major API changes for the macros as I went for better backwards compatibility with Defaultio’s version, so expect there to be a lot of errors!

I also didn’t exactly get around to porting all of the old MacroItem classes (most notably Viewport and Instance), but it should be relatively easy to recreate these with the new custom MacroItem classes!

Another thing I’d like to note is that the folder structure has changed, again… Yes I know I’m sorry!! but in accordance with my previous statement on better backwards compatibility with Defaultio’s version, I’ve opted to use his folder structure. I didn’t feel like making it automatically convert the old folder structure to the new one, so you will have to do it manually!!!

also I know there’s still no documentation… I’m sorry!!! I promise I’ll get around to it eventually!!

edit:
I forgot to mention that the autocompletion has been removed as I just don’t think it’s possible to incorporate custom MacroItem classes without some programming magicry. Sorry!


Plugin: https://create.roblox.com/store/asset/17234439838/Macro-Manager-Redux
GitHub Repository: GitHub - HappySunChild/macro-manager-redux-plugin: A remake of Defaultio's macro manager plugin from 2018.

If you have any suggestions, please share them! I am always looking for ways to improve this plugin!

Thank you for reading and have a wonderful day and/or night!

1 Like

Amazing update! looking to try on the color macro item!

1 Like

Hey!
I’m glad you liked the update! Again I’d like to apologize for any macros that may have broken when updating… I made a lot of changes that weren’t compatible with the original release. Sorry!!! I promise that I won’t make any more huge breaking changes like that again…

I always enjoy getting feedback for my projects, so if you are having any problems or have any suggestions please let me know! (in case you didn’t notice I added the refresh button into the widget like you suggested!)

also sorry I got to your message a little late… better late than never I suppose.

1 Like

Missing Instance class? Can’t seem to find it I swear there’s one that work likes an ObjectValue where you can select instances as target.
image

I removed the Instance class in the last major update (mostly out of laziness).

My excuse was that users could implement it themselves with the new custom classes, but I realize now that not everyone wants or knows how to do that. If I ever get around to actually releasing another update, I’ll include an Instance macro item class (and maybe Viewport).

I should probably also edit the main post to reflect the plugin as it is now so it doesn’t confuse anyone.

Ahh I see, Can you show me where I can look to start writing a custom macroItem class?

Creating a custom class is relatively simple (I should probably also create a tutorial on this sometime, but I’ll just write a brief explanation here)

You have to create a module script inside the MACRO_PLUGIN.MacroItemClasses with the name of the class.
image

Then inside of that module you want to return a function that will render the class, here’s a pretty simple example:

local function MyClass(cleanup, macro_item): GuiBase2d
	local example_label = Instance.new("TextLabel")
	example_label.Text = "MyClass MacroItem class example!"
	example_label.Size = UDim2.new(1, 0, 0, 24)
	
	table.insert(cleanup, example_label)
	
	return example_label
end

return MyClass

Note the cleanup and macro_item arguments.

The cleanup argument is a table that you should put any created Instances/connections into so that your class doesn’t cause a memory leak. Another thing I’d like to note about the cleanup table is that it’s essentially just a Fusion scope, so if you’re familiar with Fusion you can use it like this as well:

local function MyClass(cleanup, macro_item): GuiBase2d
	return cleanup:New "TextLabel" {
		Text = "MyClass MacroItem class example!",
		Size = UDim2.new(1, 0, 0, 24)
	}
end

return MyClass

The macro_item argument is the actual object of the item that the user defined (i.e. local item = { Type = "MyClass" }). This is the main way you add/read methods/properties from the user. Here’s an example of adding a “UpdateText” method to the MyClass MacroItem class and using it:

-- MacroItemClasses/MyClass
local function MyClass(cleanup, macro_item): GuiBase2d
	local example_label = Instance.new("TextLabel")
	example_label.Text = "MyClass MacroItem class example!"
	example_label.Size = UDim2.new(1, 0, 0, 24)

	table.insert(cleanup, example_label)
	
	function macro_item:UpdateText(new_text: string)
		example_label.Text = new_text
	end

	return example_label
end

return MyClass
-- Macros/MyMacro
local example_item = { Type = "MyClass" }

local MyMacro = {
	Items = { example_item },
	Init = function()
		example_item:UpdateText("hi :)")
	end,
}

return MyMacro

image

For this to work your macro item has to be mutable, so make sure you aren’t freezing it beforehand!

I think that’s all there is to it, but if you have any further questions don’t be afraid to ask! :wink:

1 Like

Awsome! one more thing though, Whats the version of the Fusion this plugin is using? is it 0.2 or 0.3?

The plugin uses my own fork of Fusion that’s based on 0.3, scopes were only added in 0.3 as well, I believe.

1 Like