I got a game idea where people will be able to create places in their inventory.
There’ll be scripts that’ll require my (copylocked) ModuleScripts so the game actually works.
The only problem, however, is that the “owner” of a game, can use the Dev Console Command Bar to script.
While I don’t find that’s a big issue, that should be fixed anyways.
But an idea I got from that, was something what I call “Startup Module”.
Whenever you use CreatePlaceAsync() or CreatePlaceInPlayerInventoryAsync(), you give it the ID of a template place.
That place copies the SavePlace-property of the template place, and its content is also copied.
Basicly, there would be another property “Startup Module” where you would set the assetId of a MainModule.
That way, whenever a place that used that place as template runs, that ModuleScript is required (as in, it gets ran).
That would allow us to (safely) create places in other players their inventory, while making sure
that our code never gets deleted, while still being able to “copylock” the code (as with ModuleScripts is standard).