On August 11, 2011, ROBLOX introduced plugins, along with the time slider, a plugin provided by default which was later removed. These allow user-generated scripts to add functionality to the studio. In January 2014, the plugin asset type was added on the main website, along with a way to browse plugins created by users and a way for users to upload plugins to the website the rbxm file extension.

In December 11, 2019, the ability to sell plugins for Robux was added, though plugins can still be distributed for free.

Technical details

  • If you put a rbxm file in the plugins folder it will be loaded like script plugins.
  • The model will be searched for script objects which are enabled (their disabled property must not be set to true).
  • Local scripts objects will not be run.
  • If a script is added at runtime to the plugin, or if a script becomes enabled it will not be run as part of the plugin. Only scripts that are present and enabled at load time will be run.
  • The plugin global variable (like script in scripts) will be added to plugins using the new file format. You should only use this ExplorerImageIndex 0Plugin object, and should no longer user PluginManager():CreatePlugin() if you are using the new model file format.
    • Note: the model will not be saved between runs. Use the new plugin persistence API to store data between sessions.
  • The website allows uploading plugins just like any other model. To do this from studio
    • Select the contents of your plugin.
    • right-click
    • Select “Publish as Plugin…”
  • If you navigate to a plugin's asset page in the studio browser, you will be able to install plugins directly. This page will also support upgrading to newer versions of the plugin. This page is available at and must be accessed from the studio.
  • There is a plugin management page accessible from studio to allow you to temporarily disable installed plugins, or to delete them.
  • New function: Plugin:SetSetting(string key, luaValue value)
    • Stores the value for later use under the key
    • This value will persist even if studio is closed
    • Instances and Lua functions will not be stored correctly.
    • Please use simpler types (like tables, strings, numbers, etc.). Key only needs to be unique per plugin, with the caveat that all local rbxm files in the plugins folder will share one settings namespace; once you publish your plugin through the website, it will have private storage.
  • New function: Plugin:GetSetting(string key) retrieves a previously stored value, or nil if no key is found.
  • When calling Toolbar:CreateButton, you can use an image asset URL for the button icon
  • New function: Plugin:GetStudioUserId() returns studio user's userID if they are logged in, otherwise returns 0.
Community content is available under CC-BY-SA unless otherwise noted.