What were private modules?
Private modules were a feature on Roblox that allowed developers to share their code with others on the Roblox platform in a closed-source manner. In essence, people could use someone else’s code in their experience without being able to read or edit the code, giving developers the ability to share their code with others without the possibility of it being pirated. This also gave developers a secure way to sell their code and services to other developers without the risks of leaking and/or piracy.
Why were private modules removed?
As illustrated by this thread, private modules were removed in February 2019 by Roblox citing security concerns. To paraphrase the official thread:
Private modules pose a serious risk because models can contain malicious code and developers have no way to audit the code. Additionally, the Roblox platform does not contain any sandboxing support so modules can do anything game scripts can do, such as writing to data stores or teleporting players to another game. Roblox has no protections in place for this.
Roblox removed private modules as they allowed for malicious code, such as backdoors, to run without the knowledge of the owner of the experience. In essence, the entire reason why private modules were removed is because they didn’t allow developers to have control over code they were potentially putting into their games. Whilst I can see how private modules caused issues when malicious ones were often hidden in items from the toolbox, I am still very critical of this reason to this day.
This is because I believe that if you are using third party assets, especially ones from the toolbox, it is of utmost importance and your own personal responsibility to check the code that you are using. If you were to see your experience as important and were to use a private module inside of its code, it would be your duty to check that it was from a verified and trustworthy source. Many people were able to check the code they used, and entire communities (as explained in the next section) relied on private modules to function. The idea of groups with thousands upon thousands of members essentially being punished for the negligence of a handful of people is undoubtedly unfair.
Why were private modules so important?
For many years, Roblox developers have sold their creations and services to other developers. These creators are arguably the backbone of the Roblox platform, as the majority of groups and experiences on Roblox are not run by professional developers that can whip up complete experiences worthy of winning a Roblox Innovation Award, or a Bloxy as it used to be called back in the day. This developer market on Roblox has allowed groups to flourish and create things such as roleplay experiences that otherwise would have never been possible. Platforms such as Clearly Development and this very forum allow these developers to market their services and creations in order to earn a living.
The majority of experiences on the Roblox platform are not run by experienced teams like those behind games such as Adopt Me or Dress To Impress; instead, the majority of experiences on the Roblox platform are run by enthusiasts who want to create a meaningful experience that they can enjoy with their community. Take the hotel roleplay community for example: at one point, this was one of the largest roleplay communities on Roblox. Hotel games would often make it onto the front page and would frequently have thousands of players at any given time. The vast majority of these hotels, including what were once the largest of them all, relied on something called CheckMeIn, a system used by group staff to check in regular players to their hotel rooms.
CheckMeIn was a paid system, meaning that groups that wanted to use it had to buy a licence to use it. The whitelist for the system relied on private modules, but once this feature was removed, the system’s whitelist was easily cracked and the system was pirated. Now, if you search the system up on the Toolbox, you will find a plethora of pirated copies, all with backdoors. This highlights another issue, theorised by ForeverHD in this thread all the way back in December 2018. In it, he states that:
Removing the ability for modules to act as proprietary software will greatly disincentivise individuals or teams from working on well-developed and reliable services. Instead, there’s a good chance we’ll see a rise in the proportion of knock-off models or poorly written services.
Forcing modules to be open-source will not stop malicious creators; they will simply target less-experienced users who don’t understand how to view or read the source code of these modules in the first place. This approach personally appears to damage a large number of legitimate services whilst doing little to creators with malicious intent.
ForeverHD ended up being correct. Now, networks like the Roblox hotel community are now basically dead, with groups with hundreds of thousands of users now inactive. A main reason why this is so is because developers have stopped producing assets for the use of other developers because the threat of leaking and piracy has become far too substantial. Communities that were once pillars of the Roblox platform are now either dead or rapidly in decline. If you search up CheckMeIn today on the Toolbox, you will find hundreds of pirated copies of it, all with backdoors. Not only does this violate the intellectual property rights of the original creator, but it also puts inexperienced and amateur developers wanting to start their own hotel group at risk. This is because the truth is that these developers often use assets from the Toolbox without possessing the scripting knowledge needed to check through their advanced code and know what everything means. Ever since private modules have been removed, we have actually seen the inverse of the intended effect.
Since private modules were removed by Roblox, we have seen more pirated copies with backdoors and malicious code pop up in the Toolbox than ever before: it is for this reason that Roblox was forced to add a feature that warns you when there is code in a model from the Toolbox. This problem isn’t just limited to CheckMeIn; in fact, the most prominent example of this has been the piracy of various admin systems such as HD Admin, which is used in games across the Roblox platform. There are hundreds of ripped-off copies of HD Admin on the Toolbox, all with backdoors. Nowadays, it is often hard to find the original. This highlights another issue which is that Roblox’s removal of private modules not only caused a rise in the abundance of piracy through the distribution of stolen assets and code plagued with backdoors on the Roblox platform, it also crippled developers’ intellectual property rights over their very own code and subsequent creations.
The removal of private modules made piracy so easy that it is impossible to control the spread of pirated code on the Roblox platform, especially when third-party platforms such as Discord and Guilded are used as hubs for leaking. This has disincentivised developers from creating assets and code to distribute on the Roblox platform because the threat of leaking outweighs profit and community benefit. This has not only caused the demise of certain Roblox communities, but it has also forced developers to use unconventional and often insecure methods in an attempt to protect their code.
The only somewhat feasible option Roblox developers have to combat the rise of piracy is obfuscation, but this has been easily cracked and is not at all a secure way of distributing code, especially with the rise of AI. Developers are often forced to pay for premium obfuscators, but even these are cracked on the regular. Moreover, Roblox essentially stabbed developers in the back by making obfuscation against Roblox ToS. This, paired with the impossibility of controlling the piracy of assets, makes developing community assets on the Roblox platform impossible, and highlights the need to protect control not just over things such as decals and meshes, but also over code. I should not be forced to open-source my intellectual property just because of the negligence of a few people to check their code, and the majority of the development community agrees: I have not seen one developer praise this removal, only lament the loss of private modules and the issues it has caused.
How do we bring back private modules in a secure and safe way for all parties involved?
Now that we have established why private modules were, and still are, such a crucial part of the Roblox platform, now let’s look at how we can bring them back whilst addressing and tackling Roblox’s security concerns head on. Bringing back private modules wouldn’t just stop piracy and the rise of more malicious backdoors, it would also restore intellectual property rights and give developers the opportunity and motivation to develop more assets for the community.
The main issue with private modules was that amateur developers who didn’t check third party code were unintentionally allowing malicious backdoors into their game. After speaking to Roblox staff about the issue, they said that private modules were “almost exclusively malicious content”, which I believe is a complete misrepresentation of private modules considering that they were used for things such as admin systems in virtually every Roblox game, but I digress.
To address the issues concerning private modules as outlined by Roblox, I propose a simple whitelist system, which eliminates the possibility for malicious backdoors from unknown third parties. In essence, for a private module to run in a specific experience, its ID would need to be whitelisted. This means that if you get a private module from a developer you trust, you can whitelist it and it will run, but if someone inserts a car with a sneaky private module from the toolbox made by hacker12345 and the private module isn’t whitelisted, unfortunately hacker12345 won’t be able to backdoor the experience.
This will not only bring back intellectual property rights to developers’ code, but it will also reduce the amount of backdoors in experiences; for example, if I wanted to use HD Admin, I would whitelist the private module from its trusted creator ForeverHD and not the private module from hacker12345. If I find that a private module does have malicious code, I would have the option to unauthorise it as well as report it. In terms of how this whitelist system would look, please see the Roblox Studio mock-up that I designed below for this explanation.
Conclusion
In conclusion, it is safe to say that private modules need to be brought back. Roblox has often emphasised that they value intellectual property rights, but the removal of private modules and their subsequent refusal for them to be brought back (I was told by Roblox that they “are enthusiastically never bringing it back”) gives us the impression that the opposite is true.
Whilst I understand the issue that Roblox wanted to fix, the removal of private modules was not like a cast to a broken leg; instead, it was more like a wet band aid found by a pool that fell off after a minute of being worn. The fix for the issue was rushed and not thought out well, and I hope that Roblox will review the situation for it is dire. The removal of private modules has caused a rise in piracy, the decline of intellectual property rights on the platform, a crash in the development of Roblox community assets, and an increase in backdoored scripts on the Toolbox: the direct inverse of what Roblox intended to do.
Whilst features such as AI-generated textures are cool, Roblox really needs to get back to basics when it comes to releasing (or in this case re-releasing) features for developers. Bringing back private modules, the framework for which already exists, would be a step in the right direction, and I’ve given them a way to do it that is secure and works well for all parties involved.
Feel free to leave your thoughts below and like this post. Apparently the feature requests category has been closed to new members, so I’ve had to put this here instead. Hopefully we can get Roblox to see it!

