mollermethod API docs
util table
The util table is passed to your plugin with varargs.
local util = ...
The util table has the following functions:
util.notify(options: { Text: string // RichText is on btw Icon?: string // Defaults to "rbxassetid://7554747376" Duration?: number // In seconds, defaults to 5 App?: string // Defaults to "mollermethod" }) -> void- Display a notification with the given text.
util.GUI: LayerCollector
- A container to put your GUIs in
util.colors: { ACCENT: Color3, BLACK: Color3, WHITE: Color3, GRAY: Color3[], RED: Color3[], GREEN: Color3[], BLUE: Color3[], YELLOW: Color3[], ORANGE: Color3[], PURPLE: Color3[], }- A table of colors
util.Snapdragon: import('@rbxts/snapdragon')- The Snapdragon dragging module
Plugin interface
You return a plugin interface. Here's the TypeScript type since I'm lazy
// Actions display in both Mollybdos and Bracket.
interface Action {
display?: string // Displayed in Mollybdos. Defaults to the key, with the first letter uppercase.
enabled?: () => boolean // Defaults to () => true
description: string // Displayed in Bracket autocomplete
execute(this: void, player: Player): Promise<unknown> | unknown
}
// Commands display only in Bracket.
interface Command {
description: string // Displayed in Bracket autocomplete
execute(this: void, args: string[]): void | Promise<unknown>
}
interface Plugin {
// (will be) displayed in mollermethod settings
readonly Name: string
readonly Author: string
// Runs when the user selects a player in Mollybdos. Call `tag` to add a tag to the player. You can call this multiple times to give the tag a "score."
readonly Tags?: (player: Player, add: (tag: string) => unknown) => unknown
readonly Actions?: Record<string, Action> // The key will be used as the Bracket command name
readonly Commands?: Record<string, Command></string>
}
Plugin example
Here's an example plugin. It's a simple example, but it's a good starting point.
local util = ...
return {
Name = "mollermethod+",
Description = "mollermethod, but better.",
Author = "SunRaysEffect", -- maybe use a Discord ID instead?
-- Runs on every player
Tags = function(Player, tag)
if Player.Name == "SunRaysEffect" or Player.Name == "UIPadding" then
tag"Roblox Instance"
end
end,
-- actions are like commands but are used on a player and display in bracket and mollybdos at the same time
Actions = {
-- key = command name
shatter = {
description = "star glitcher funny!",
-- display = 'Shatter!' -- display is what it would say on Mollybdos, defaults to the command name but with the first letter uppercase
-- enabled = function () return math.random() > 0.5 end, -- if this returns false then it doesnt display in mollybdos and is grayed out in bracket, defaults to always true
execute = function(player)
print("get shattered", player)
end,
},
},
-- maybe custom commands?
}