Plugin:SaveSelectedToRoblox(int assetId)

The Plugin class has a method called SaveSelectedToRoblox, which prompts the Publish Selection to Roblox window in Roblox Studio. The framework for my game Super Nostalgia Zone is uploaded as a model that I have setup to be extracted in a specific way for each place in my game, but I’m always kinda worried that I’ll select the wrong model to upload it to if I’m not careful. It would honestly be easier for me if I could just prompt it to be uploaded to a specific assetId, which would then just ask me to confirm that I want to upload it to the assetId specified.

So I’d like to propose that SaveSelectedToRoblox offers an assetId parameter, so that it would just prompt a confirmation from the user to upload to the specific model.

I know this seems to be a small-percentile usage case, but let’s examine a case where Roblox could potentially use this in, say… their animation plugin. What if this could be used in conjunction with PromptForExistingAssetId, so that the plugin could have an option to upload to the latest opened animation. Instead of the developer having to pick and choose the animation to upload to, he or she could just upload to the last animation they opened, whose AssetId was picked to be loaded for the developer prior.

7 Likes

I use a similar method for my game. This would be really nice…

2 Likes

The last two of my three projects also relies on this.
However I would rather something would be supported by roblox from the game explorer or something someday so there wouldnt be need for a custom plugin per place.

Yeah, that’s an even better idea. It’d be great if it was a really first-class feature. This might be a good stepping stone though. I’ll propose it internally and see what people think.

As long as our scripts won’t get randomly deleted from the Game Explorer anymore, I’m down with this.
While they’re at it, could they add subfolders to the Scripts category, so I can organize my scripts intro groups like Client, Server, Character, Shared, (etc)?

Ideally if a solution like this were implemented, it would actually work, yes.

Yeah, this’d be great!

I’m surprised that this hasn’t had any reception since 2017. I have experiences that use the same assets and I find it annoying that I have to update them individually. I later moved to a system in which I manually publish it as an asset and then load that asset in on game start, that way I only have to update it once.

However, it would be must easier to have a plugin that could load the asset, make whatever changes I want, and then publish the asset to the ID that I want (and clean up by removing the loaded asset that I no longer need).

Alternatively, I’d love to see a Shared Asset system for published experiences. That’s what I thought the Asset Manager window was for when I first saw it a long while back, but it seems to still only work as quick-access to published assets. I’m actually surprised that this isn’t already a thing. There are so many experiences that use databases or the same scripts between all of their places within the same experience universe.

It seems like Packages would fit your needs the best here. This is what Roblox has been investing in for some time to solve the problem you seem to be facing (shared/reused assets that stay in sync with latest version)

As far as I understand it, packages don’t automatically update in live servers. You’d have to open Studio and publish first, which defeats the whole purpose. Or am I misunderstanding how they work?

1 Like

As per the Documentation,

Automatic Updates

To make syncing easier, you can set a package copy to update automatically whenever a newer version is published. Auto-update of the package copies will take place when a place is opened in Studio.

“Automatic Updates” are actually a little misleadingly named. You must publish a Package update, then open every place that uses said Package and publish them, as Packages are only automatically resolved when Studio opens the place.

This seems like a specific preference thing, which I can’t do much about in terms of solutions.

From experience, I don’t think it’s a good idea to have something that’s always absolutely up-to-date like that. You should have to publish your changes once you’ve tested and made sure things are good.

If you’re at a scale where you have multiple places within an experience (and manually publishing DOES get very tedious), there are other more optimized workflows for that - usually relying upon external tooling.

Not to dismiss the feature request here, just sharing my perspective given the current state.

My issue is that I don’t want anything external. I can’t even simplify the process without being able to specify the asset to overwrite. DataStores are technically an option, but I’m not a fan of using them in this way, and it takes extra work to make it work with instances.

In reality, I think a Shared Asset Manager is a must-have for Roblox Studio and I have no idea why it doesn’t have one yet. I hope this is something they look into as a native feature.


But I would definitely also take the ability for plugins to specify an asset ID to attempt to publish and overwrite. That alone would completely solve my issue.