On August 11th, 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. Plugins created in this way use a format different from the format previously used for plugins, which used source code files put in a folder. New plugins instead use the same format as models: this format can be used both for plugins uploaded to the website (through the studio or directly on the develop page) and for plugins put in local folders (in which case the models must be files with the
rbxm file extension.
- If you put a
rbxmfile 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
- 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.
pluginglobal variable (like
scriptin scripts) will be added to plugins using the new file format. You should only use this plugin 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.
- 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 http://www.roblox.com/studio/plugins/manage 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
rbxmfiles 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
nilif 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.