@Xorand and I have spent the past few days trying all kinds of whacky things just to get our ability to edit the group game in a normal state. While we managed to find a way around several frustrating issues, we’ve finally met our match with asset uploading.
The Problem
@Crykee and I own a group called Bitsquid Games where we put our projects, and until recently there has only been one large-scale project operating at a time under the group. Now, we are trying to produce two games concurrently with different people on each team. One game, Hexaria, has a group of several wonderful people pushing it forward while Crykee and I are shifting focus to a new game. Theoretically, each team should be able to access what they need to on their respective game, but there isn’t reason to give anyone this nuclear edit permission:
Sub-problems
Last week I first flipped this permission off for Hexaria developers and thought nothing would change if we used the new unified game permissions. Wrong! We’ve managed to creatively defeat all the issues that sprung up (until now). The problem is made more complex by the fact that Hexaria is a multi-place game, which presents issues with LinkedScripts and packages that are beyond the scope of this post. Here is a list of things that we encountered and how we worked around them:
- Opening a specific place in Roblox Studio. This was previously done by navigating to the place on the website’s Create page, but we realized that people without the nuclear edit permission cannot view group games or places on the create page. Work-around: Open the game in Roblox Studio, open the game explorer, expand places list, navigate to desired place, right-click or double click to edit desired place. Not fun, but we can live with it.
- Shutting down the servers of a specific place in the game. This was previously done in a similar way to the problem above; navigate to the place on the website’s Create page and click gear to shutdown servers for that specific place. No longer possible, because the developers cannot see group places on the Create page. Work-around: Create a custom shutdown script using MessagingService that allows a developer to issue a chat command in order to shut down the servers (by kicking every player, not ideal) of a specific place. The developer must play the game and issue the chat command with the correct place ID in order to do this.
- Shutting down the servers of every place in the game at once. While we knew that the old way was no longer possible for shutting down specific places, we thought that it would still be possible for developers without the nuclear edit permission to shut down the entire game from the game details page. Nope! Apparently this only shut down servers in the start place of the game. Work around: Use the same MessagingService chat command system to issue a chat command that shuts down every server in every place in the game by kicking all players.
- Uploading and updating group models. Hexaria places run a LinkedScript that loads a group model via InsertService. Developers without the nuclear edit permission cannot edit group models (or any kind of asset besides shirts and pants, but more on that next). We thought that packages would be the solution, but they were not (at least, not in the way that you would think). Mass updates on packages still require the developers to open and publish every single place in the game for game servers to load the updated package, and Hexaria has over 20 different game places. Not ideal! Work-around: Create a package owned by the Bitsquid Games group and grant edit permissions to the Hexaria developers, and then use InsertService to import the package into game servers instead of the old model. However, the developers could not:
- Create new packages owned by the group. The only people that are allowed to create new packages owned by a group are those with the nuclear edit permission. Work-around: I create a handful of packages and added the Hexaria developers as collaborators so that they can change the contents of the packages. Not a big deal, but every time they need to create another package, they’ll have to call me up so that I can do it. Unlucky!
- [EDIT]: Create and edit developer products. A few days after making this post (before I flipped back on the nuclear edit permission for Hexaria developers in the group) they told me that they were unable to create new developer products for the game, or to configure existing developer products. Work-around: None. Must give them nuclear edit permission.
And finally, what appears to be the nail in the coffin.
Uploading assets of any type (audio, animations, models) to a group is impossible unless you have the nuclear edit permission. We thought we had the cheat code by doing our crazy InsertService + package combo, but we had to laugh when we realized that we didn’t consider uploading new audio or animations. The Hexaria developers cannot upload new assets that are critical for game development.
So, what are our options?
- Move Hexaria to a new group. This is not a realistic option at all, but it deserves to be included to emphasize just how big of a problem we have. People have logged thousands of hours (and robux) playing this game, and in order to make a real transition to a new group we would have to perform an offsite data transfer that requires a lot of technological overhead and seems risky.
- Move the new game to a new group. This is a realistic option, but still a pain. We did not realize the scope of this issue until many weeks into development, so we would need to re-upload all of those assets to the new group, and we would have to restart our visits and ratings from zero, and we would have to redirect people who have favorited and followed the old game to the new game, and we lose the ability to maintain a single hub for all of our projects.
- Give everyone that needs to edit any game the ability to edit every game. This is clearly not desirable, and although I trust the people in our group, this does not scale. The more hands start touching these projects, the greater the chances of something being stolen or broken by someone who had no business being there.
In summary, I don’t believe that it is realistic to operate two games with different teams under a single Roblox group. Perhaps this is by design and I have misunderstood the intention of groups. If so, then I’m happy to learn a better way of doing things. And if any of these issues have trivial solutions, I’m all ears!