Insert Cloud Module (An Insert Service Alternative)

I have created an open sourced alternative to Insert Service. This version allows you to insert any roblox asset, including models you do not own as long as they are uncopylocked. Using this, I also made my own Insert Wars game, called Insert Wars Remade.

Open Sourced Github Repo:

Lua Module:

You will need to set up the web server for this to work.

As you may know, Insert Service does not allow loading assets the owner does not own. However, I bypassed this issue by setting up a web server that downloads the RBXM file of the model and parses that into JSON. The JSON is then compiled into a roblox model by the lua module.

It has one additional step to loading an asset, which is the CompileAsset function. This function makes the model “complete” unlike InsertService. CompileAsset ungroups the model, and enables the scripts. The function also returns the instances in the inserted model. After using LoadAsset, you should use CompileAsset.

local InsertCloud = require(2988483384) -- Loads the library in
Key = 'APIKEY' -- API Key for your web server. 
URL = 'https://appname.herokuapp.com/assets/' -- The URL to the application, should include /assets/

local Model = InsertCloud:LoadAsset(URL, Key, 110954786) -- Loads the model in
local NewModel = InsertCloud:CompileAsset(Model, workspace) -- Adds "finishing touches" to the model by ungrouping the model and enabling the scripts.

The module comes with sandboxing built in. It will sandbox the scripts the model inserts, which helps ensure safety when inserting anonymous models, and can help block out malicious code.

If you would like to disable sandboxing or change a few settings, you can edit the _Settings variable in the MainModule.

An example of the usages for Insert Cloud, on Insert Wars Remade:

4 Likes

This topic was automatically closed after 1 minute. New replies are no longer allowed.

Just a side note: the limitation on InsertService is there so that games can’t insert non-trusted models during run-time, it protects someone against their own stupidity. It’s probably a bad idea to work around this security-wise because you now let the game load content without any restriction at all no matter who uploaded it. Use at your own risk and only when you know what you are doing.

6 Likes

I don’t know why no one has mentioned how awesome this module is. It fits my needs perfectly. I needed a way of inserting models as a way for others to mod my game, a bit like GMod. I was disappointed by the limitations of InsertService, since if anybody wanted to mod a part of the game they would need to always be in the server for others to play it, or I would need to get their model. Thanks for this!

3 Likes

Are we liable if somebody manages to insert something inappropriate?

Unfortunately, it appears this way. I received a 1 day ban before for users disabling the ChatFilter in my game and I had no idea it was done beyond being banned. I think it’s a bit insane, but what can you do?

My advice would be to create a group holder account just in case, host a group on it, and then ensure trusted people have the ability to monitor what’s going on to reverse changes before things get bad if you don’t want to limit creative freedom. Otherwise, a sandbox is always a choice.

1 Like

Yep, developer is responsible for all content in their game. If it turns into a crap storm it’s on the developer to fix it and/or receive moderation punishment.

In terms of age appropriate material, I don’t see how this is any different from InsertService. Both uses assets that are hosted on the ROBLOX website and are subject to moderation. If anybody manages to sneak something inappropriate into a game using this system, they would be able to do it with InsertService, too.

Looking at the wiki entries for GetAsset and InsertService, I see no indication that your account could receive disciplinary action based on assets people decide to insert at run-time.
https://developer.roblox.com/en-us/api-reference/class/InsertService

Of course I could be wrong about this. It would be nice if someone who knows about this stuff could clear this up, since it is a little vague.
edit: ninja’ed by buildthomas

1 Like
  • Models aren’t moderated by Roblox’s moderation team, only model thumbnails AFAIK. So someone could hide bad content in a model, but it will have a proper thumbnail, and unless you actually go and take that model you cannot insert it into your games through InsertService.
  • The InsertService restriction makes it harder for you to insert bad content because they assume you are going to check these models you are adding to your inventory. You’re still liable if you take a bad model in your inventory and insert that into your game. The restriction just makes it harder to break the content rules because servers can’t just load any asset on their own.

API documentation is not the place to put legal stuff. You need to look at the TOS for that. The datastore API pages also don’t say I shouldn’t store private information on users, for example, that’s what the TOS is for.

1 Like

Probably the best solution is building a massive database of approved assets and have them re require approval when they get updated.

Or maybe suggest a Roblox feature of submitting assets for moderation review and only displaying approved one. This is a niche genre though.

If this module can expand its scope to tackle this issue it would do justice for more sandboxy games.

1 Like