Changelog
This is the public-facing release log. Each entry covers what users can see, feel, or do differently, no internal refactor noise.
1.1.0, Argument types and lifecycle (2026-05-08)
Added
colorarg type: aColor3value with a smart-input textbox (accepts hex, RGB triples, or BrickColor names) and a clickable swatch that opens an HSV picker popup. Picker has a saturation/value square, hue slider, hex input, and preset palette. Built withUIGradient, no image assets. See argument types.sliderarg type: draggable thumb on a horizontal track for picking a numeric value within a range. SupportsMin/Max/Step(defaults to integer snapping). Click anywhere on the track to jump + start a drag. See argument types.propertyPickerarg type: likeinstance, but captures the value of a named property off the selected Instance instead of the Instance itself. Supports primitive,Color3,Vector3,UDim2,BrickColor, and other attribute-storable types directly;Instance-typed properties via the same__InstanceArg_<argId>ObjectValue side-channelinstanceuses. See argument types.attributePickerarg type: same idea aspropertyPickerbut reads:GetAttribute(name)instead of a property. See argument types.colorPickerarg type: specialized picker that captures aColor3-valued property (orBrickColor.Color) from the selected Instance. Card shows a swatch reflecting the captured color. See argument types.- Create Argument popup now has type-specific field forms for each new argument type, including smart-input
Defaultparsing forcolorandProperty/Attributename fields for the picker types. - Clear / Clear Output: right-click an
outputarg card to get a top-of-menu Clear Output item that wipes the panel. Right-click aninstance,propertyPicker,attributePicker, orcolorPickerarg card to get a Clear item that resets the captured value. - Sidebar refreshes from external script changes: the sidebar now picks up scripts added or removed directly from
ServerStorage.CommandRunnerScriptsorReplicatedStorage.CommandRunnerRuntimewhile the widget is open (e.g. dragging aModuleScriptin via Explorer). Previously this required a widget toggle when the containers started empty. - Settings popup: a gear icon in the TopBar opens a per-user preference panel. Toggles for live regen while typing, auto-open script editor on Add, follow-active-script, default
AutoRecordChangesfor new commands, hover tooltips, and sidebar tag chips. See settings. - Editable default command template: from Settings, click Edit on the Default command template row to materialize
ServerStorage.CommandRunnerTemplate.Default(aModuleScript+ siblingTypes). Edit it however you like, every new command becomes a:Clone()ofDefault, including any extra child Instances you parent under it (utility modules, additional Types, etc.). Reset deletes the template and falls back to the built-in seed.
Changed
Runsignature is now(props, arguments)—argumentsis a typed second positional parameter (Types.ArgumentResult), replacing the olderTypes.Props<Types.ArgumentResult>generic pattern. Existing commands continue to work becauseprops.Argumentsis still populated, but typed access for new commands now goes througharguments.<key>directly. ThePropstype is no longer generic. See auto-generated types.- New lifecycle hooks: commands can now declare
Validate(props),OnError(props, args, err),OnSelected(props), andOnDeselected(props)alongside the existingOnExecuted. See lifecycle hooks. - Auto-generated
Typesmodules now map the new arg types to Luau types:color→Color3,slider→number,propertyPicker/attributePicker→any,colorPicker→Color3. See auto-generated types.
Fixed
- Modal click-through: the
DarkFilterbackdrop and all modal popup roots now haveActive = true, so clicks on a popup or its dim no longer fall through to elements behind (sidebar entries, action buttons, arg cards). Affects Rename, Manage Tags, Library, Create Argument, and the new Color Picker. - Switch and boolean cards now reflect external attribute changes. Loading an argument preset that flips a
switchorbooleanvalue used to write the new value to the attribute but leave the card's visual state stale. Both card types now subscribe toscript:GetAttributeChangedSignaland re-render (with the switch's slide animation) when the value changes for any reason. - No more console warning when toggling shortcuts off then on in the same session. The internal action registry no longer drops its cache on toggle-off, so toggling back on reuses the same
PluginActioninstead of trying to recreate it (which Roblox rejects mid-session).
1.0.0, Initial release (2026-05-07)
The first public release. Headline features:
- Command authoring loop: create a command, edit a ModuleScript, press Execute. Auto-generated form UI from an
Argumentsschema. - Argument types:
string,paragraph,number,boolean,switch,button,label,dropdown,instance. - Per-command argument presets: save and reload named snapshots of the current arguments.
- Tags + sidebar filtering: tag commands, render chips, filter the sidebar with
#tagsyntax. - Runtime delivery: tag a command
@clientand the plugin ships it toReplicatedStorage.CommandRunnerRuntimeforrequire-time use from a LocalScript. - Cross-place personal library: save commands once and load them in any place.
- Bundled Global commands: a curated set of ready-to-load utilities that ship with the plugin.
- Auto-generated Luau types: each command's sibling
Typesmodule gets anArgumentResulttype regenerated on save. AnnotateRun = function(props: Types.Props, arguments: Types.ArgumentResult)for full IntelliSense onarguments.<key>. - One-undo execution: every command runs inside a single
ChangeHistoryServicerecording. - Notifications, tooltips, hover descriptions: all derived from the
Descriptionfields you write.
Format note
Future entries should follow this shape:
## X.Y.Z, Short title (YYYY-MM-DD)
### Added
- …
### Changed
- …
### Fixed
- …
### Deprecated / Removed
- …