This content is free for everyone to view and always will be. I appreciate you taking the time to read!

Gift a

Dismiss

This content is free for everyone to view and always will be. I appreciate you taking the time to read!

Gift a

Dismiss

This content is free for everyone to view and always will be. I appreciate you taking the time to read!

Gift a

Dismiss

THIS POST

0 min

The failure and need of Roblox Plugins

The failure and need of Roblox Plugins

The failure and need of Roblox Plugins

Thursday, October 24, 2024

I’ve had a pretty fair go at plugin development for Roblox Studio. Some of you may recognize the plugins I’ve created, such as SwiftScript and SwiftBar, with SwiftScript once hitting the top 3 pages of Roblox Plugins. Quite frankly, plugins are a meaningful feature of the Studio experience. However, as time has passed, more plugins have emerged that not only prove to be less optional but are almost deemed essential.

I can’t speak on behalf of the developers I know, as the plugins we use are tailored to our unique skill sets and requirements for our skill stack. However, most of these plugins can be found in various areas. Roblox has shown their attempt at improving features within Studio, including a UI re-design, updating of the Move and Size tool and other features (which are currently locked behind a beta toggle in studio settings). Their efforts are appreciated, but what they’re bringing to the table hasn’t been enough for the starving developers who need additional features (and tools) to complete their work effectively and efficiently.

Do what Studio can’t

For many, plugins provide access into features and tools which the Roblox Studio software is unable to provide. Some amazing examples of this consist of

  • Database management with data importing and exporting on Roblox DataStores

  • Converting class types of elements to a new type of class while maintaining specific properties

  • Viewing large scripts on a scaled-down map for ease of viewing and access

  • Assisting in the development of GUIs and SurfaceGUIs by providing tools to modify sizing and positioning without manually entering numbers, increasing efficiency

  • Creating a better animation system to save/load/play Rig and object animations compared to the built-in Roblox one

lot of developers rely on these plugins to effectively and efficiently work on Roblox without the processing becoming an absolute drag—While it’s good that developers are able to create amazing plugins for people to use, it also argues the question of whether or not Roblox has begun to borderline neglect the idea of assisting developers in newer features on Studio and on the Roblox engine.

As an example, it took Roblox a pretty long time to include notch support when the majority of phones began to release with notches/punch holes, nor was it to all users in the beginning, with some countries not receiving the update for much longer than others. (This also, unfortunately, involved issues with expanding older UIs, which hadn’t been updated to be used with the new system for notch support).

The beginning

Before Roblox decided to switch all Plugin pricing to USD, forcing all developer plugins to verify themselves using ID, you could purchase plugins with Robux. Unfortunately, it’s bittersweet, which you’d know if you were a plugin developer. Plugin developers were urging the inclusion of USD payments for plugins as an option, as making any profit from plugins wasn’t enough. While some developers were fine with Robux payments, then DevEx, other developers pushed Roblox and called for USD payments, borderline threatening to remove the plugins from the Marketplace as a result of Roblox not attending to their requests.

Roblox listened—but not in a way which benefits everyone.

If you haven’t realized by now, the average demographic of the Roblox user base consists of children to young adults, most of which are not willing to spend $ on a Studio Plugin. As Robux became increasingly more accessible, more people were willing to purchase plugins for Robux, even on the expensive side. When plugins made the switch, all that was on sale for a Robux price automatically went off sale. Bringing back your plugin to the developer marketplace either consisted of verifying it with a valid ID or selling it for free. Either way, both had issues, with no happy medium in place.

Cons than pros

Since the average demographic of Roblox users consists primarily of children and young adults, unfortunately, most of these users are unwilling to spend money on Studio Plugins. As Robux became increasingly more accessible, more people were willing to purchase plugins for Robux, even on the expensive side. When plugins made the switch, all that was on sale for a Robux price automatically went off sale. Bringing back your plugin to the developer marketplace either consisted of verifying it with a valid ID or selling it for free. Either way, both had issues, with no happy medium in place. Unfortunately, to play devil's advocate, Roblox reduced the fees and percentage cut from developer payouts (only plugins). Developers now take more profits from the sales of their Plugins compared to traditional methods of payment, even if they did have the chance to Devex.

While it sounds good on paper, here’s a cons list of what you can expect.

  • Less amount of sales

  • Higher prices for larger/popular plugins

    • E.g. Moon Animator 2 for $29.99

  • Less involvement within the plugin space

  • Stricter, scarce use of Plugins

  • Higher prices compared to other USD payments on Roblox

Alongside additional plugin issues such as

  • No protection against cracked/stolen/shared plugin files

  • Reduced security and privacy for plugin code

  • Disallowing obfuscated code within plugins (must be open code)

While my personal opinion on plugin pricing may differ from others, it’s important to recognize that everyone has the right to determine their own pricing strategy. It’s worth noting that approximately 98% of all plugin purchases directly benefit the developers, excluding processing fees and other expenses.

Term DevEx (Developer Exchange on Roblox: Robux to USD)

Pricing indifference

Roblox has recently begun to offer USD payments as an option for plugins and experience subscriptions. Experience subscriptions are recurring, while plugins are one-time. But the conversion between both is extremely different, involving separated tools and payout processing.

The minimum pay for a Plugin is

$4.99USD (Paid out to developer in full)

While the minimum pay for a subscription is

$2.99USD — Varying price due to iOS fees, cheaper off-platform (Paid out as 209 Robux firstly, and then 299 Robux for all times after)

The price is not too drastically different, but considering that all money earned through plugins is borderline 100% paid to the creator (excluding fees, etc), it displays the odd treatment of subscription payments. All payments made for subscriptions are returned back to the creator as a specified Robux amount. The first fee is usually higher than the other recurring fees while also warranting the same ID verification that plugin developers must do. So why the difference?

Quite frankly, we don’t know the reason behind this decision. The straightforward answer is for the developer to contribute back to the Roblox ecosystem, where they can utilise DevEx. However, considering that the subscription deducts Robux and incurs fees compared to the negligible plugin payouts, it’s reasonable to question why Roblox would opt for this approach instead of paying the developer directly. Unfortunately, it’s evident. Roblox generates more revenue from USD payments, which are converted into Robux. This is why purchasing Robux directly from Roblox is considered a markup, reflecting the value of Robux. It’s unfortunate, and it’s unrealistic, considering this feature (subscriptions) was painted as a way to provide USD payments for content found within experiences.

The minimum costs for these payments also include maximum costs as well.

The maximum pay for a plugin is

$249.99USD (Paid out to developer in full)

While the maximum pay for a subscription is

$14.99USD — Varying price due to iOS fees, cheaper off-platform (Paid out as 1,049 Robux firstly, and then 1,499 Robux for all times after)

While I’m doubtful anyone is selling a $250 plugin, creating something that may involve financial costs and other running costs can influence a higher price (like Moon). Unfortunately, Roblox has massive flaws in relation to plugins.

Security & Sharing

This area of plugin development is rarely ever considered, especially for developers who may be new to plugin development. Creating a plugin can take a really long time depending on the features and the potential use of additional services to power said features. You can distribute your plugin through 2 methods.

  1. Roblox Developer Marketplace

  2. External Marketplace (e.g. itch.io, etc)

Originally, external marketplaces were the only place you could sell a plugin for USD payments. Now that Roblox has introduced USD payments, more developers have been coming back to Roblox to host sales. Even on the official Roblox platforms, after a USD payment, plugins are not safe from usage by other developers who haven’t paid for the plugin. Selling plugins on an external marketplace would require the user to manually install the file and then load it onto the plugin folder within Studio. On the other hand, Roblox’s plugin manager is pretty much an automatic version of this, not anything different in regards to plugin safety/privacy.

Sensitive info & Obfuscation

Sensitive information such as API keys, etc, are unable to be within a plugin IF connecting to an external source of information/action, as there is no specific way of protecting against users viewing and modifying the code that holds this information. Roblox recently has experimented with the implementation of ‘secrets’ under an experience but hasn’t allowed for any form of encryption to exist with models/scripts or plugins. The majority of developers on Roblox are familiar with or at least aware of the process of code obfuscation and apply it within assets that they may sell to other users.

Obfuscation is possible, but only in assets that are not published to Roblox directly. Assets within games can contain obfuscated code, but any form of asset that hits the Roblox Developer Marketplace is automatically taken down, with some users receiving account warnings against this. Yes, obfuscated code that you are aware of can cause issues within your game, especially with backdoors and other exploits that you may not be aware of but are usually not harmful.

Obfuscation does not contain any additional features of what regular Luau can do. Game modifications are the only thing obfuscation can do, and the majority of use can be found running code that a developer might not want public (especially if the asset is for sale). 

So what can developers do to protect against this? Nothing.

Technically, there is a workaround for this, but it’s harder than what you’d hope. Some plugin developers have considered coding their own licensing system, which detects whether or not a user owns the plugin, which then loads the code. Unfortunately, this requires additional settings to be enabled, such as LoadString, which is a potentially harmful setting to toggle IF it was to be abused by an exploiter.

LoadString allows for the use of external code through links or by obfuscation (and written text) to be loaded and executed within a script as if the code exists. This is more commonly abused by exploiters to run ‘scripts’ that grant them admin/troll panels but can also be used for good, such as loading code files from GitHub for additional services and assets that have been sold (e.g. plugins).

‘Cracked’ usage

With the point above, the unobfuscation and reduced protection for sensitive information within this code conclude that ‘cracked’ forms of plugins can be maliciously created and shared against the plugin developer’s will. The Roblox Plugin manager within Studio, connected to the Developer Marketplace, does not manage any plugins that have been added into Studio manually, as they are unable to be moderated/modified by Studio itself.

In the case of a plugin being downloaded, modified and shared around, the majority of developers do not hold the power to issue a legal request of erasure due to copyright. Roblox has recently introduced the use of their own copyright system, in which users can register assets under Roblox to be their own, to where they can strike any games that involve said assets. Even with this, plugin sharing and cracking cannot be protected against past the point of downloading and use.

There is no record of any user on Roblox ever being banned for re-uploading a stolen plugin from the creator marketplace. Unless a developer manually searches for re-uploads of their plugins to then issue a DMCA request, users have free reign over plugin sharing (as long as it doesn’t involve harmful/malicious code). This is extremely harmful to the developer community, which contributes massive amounts of time, effort and sometimes money to provide paying users with tools that are a borderline requirement for their skillsets on Roblox.

For anyone wondering, “Why can’t you just require a module/script with external code to run it within the plugin so only verified owners can use it?” Roblox decided to make it impossible to require code that is within a private asset uploaded to the Creator Marketplace, which also falls under the same rules of no obfuscation. Meaning? Your code is not safe on the public Roblox platform.

As much as this may be shocking to some users, it comes as an addition of Roblox’s Terms of Service modification which states that creating content on the Roblox platform “allows Roblox to use, distribute, modify, and even monetize content created on the platform without compensating creators. The content is still owned by the creators, but Roblox has extensive rights to use it for its services, including promotional purposes, as long as it exists on the platform.”, from the TOS snippet of

"By submitting or providing User Content through the Services, you grant Roblox a non-exclusive, worldwide, royalty-free, fully paid, perpetual, irrevocable, sub-licensable, and transferable license to use, modify, reproduce, distribute, display, perform, and create derivative works of your User Content in connection with the operation and promotion of the Services." — Roblox TOS

Lack of documentation

Let’s say you’re fine with everything we’ve covered so far. great! And, of course, of those who are unknown in this area of development, Roblox provides the biggest documentation for any tech they provide so far. Jokes. This blog post is longer than their documentation. Roblox severely lacks documentation regarding Plugins. Some of the content mentioned within the documentation includes

  • Creating new plugins (Code block, not an explanation)

  • Saving a plugin file locally

  • Reloading and saving a plugin (Exactly 55 words long telling you what it is)

  • Adding a Toolbar Button (Screenshot of what it is, reference but no code)

  • Executing code on click (Telling. No code)

  • Checking user selection (Which can be extremely important based on plugin type (Telling. No code))

  • Supporting undo and redo (Telling with code example)

Which then finishes off with ways to monetize your plugin. Unfortunately, this area of Roblox development is seriously untapped due to the lack of recognition and support that developers have received (well, haven’t) for many years. Plugins are powerful and can bring an amazing source of income for developers who are willing to put the time and effort into coming up with, planning, developing and publishing such an asset.

Where to from here

The road for plugins is extremely bleak. Roblox has made an ounce of effort to extend their appreciation to plugin developer’s efforts by modifying the profits earned by plugins, but it still isn’t enough. There’s an increasing amount of plugins that are now considered a borderline requirement if a developer needs to complete a task that may take too much time or that is impossible together (e.g. DataStore editor). Serious changes must be made to bring more attention to plugins on the Roblox platform. Some of these include

  • Allowing for obfuscated/hidden code within plugins, with user purchase checking to ensure they hold ownership of the plugin

  • Support for Robux payments alongside USD payments—OR one or the other, bringing more audiences back to plugins

  • Preventing/killing the ability to download plugins directly off of the Creator Marketplace using extensions

  • Potentially modifying how plugins are run/loaded onto Studio, similar to how Figma runs their plugins securely

  • Updating documentation to better explain to developers who are unfamiliar with the skills and process of creating a plugin (as the majority of features and hidden abilities are not mentioned)

There is a potentially bright future for plugins—And I hope to see it happen, but I can’t see that future coming any time soon. But Roblox needs to do better, for the developers who use plugins, those who create the plugins, and those who use Studio as-is.

THIS POST

0 min

0:00/1:34

0:00/1:34

0:00/1:34