GetAssetIdsForPackage() for bundles?

Packages are showing up as bundles for me. Bundles have their own ID now and it is giving me a 400 error when I try to use GetAssetIdsForPackage() on the ID. Is there a different way to do this now?

5 Likes

Confirms it gives me a HTTP 400 Error upon requesting the ‘package’ ID.
This is an error that should be addressed.

1 Like

Not sure if it will change, but packages/bundles do still have the old ids if you look at the mouse over text/url on the featured page or search for a package. Are you needing easy access to the old ids for a plugin or for users to input?

Still having this problem myself – I have to manually import each part of the package individually. Any updates on this?

You could write a Engine Feature Request to have this changed or updated.

1 Like

Looks like it’s on the way

4 Likes

I was just using an incognito tab to get the old IDs since my account has beta access. A couple days ago they completely switched over to bundles. It kind of ruined my plans for my one game because I need A LOT of packages and I was in no mood to manually gather all of the IDs.

Hopefully this is released soon. I’m a little annoyed that they switched over so soon when they don’t have everything for it completed…

1 Like

It took a while for the API to be released but it’s here now!

local bundleDetails = game:GetService('AssetService'):GetBundleDetailsAsync(id)

I made a plugin that can be used to import a bundle’s assets, and apply them to a character. Feel free to use the plugin, or take a peek at the code to see how I use the GetBundleDetailsAsync API.

15 Likes

Thank you for making awesome tools for the community!

This is amazing!


Would be nice if it’s open source so people can modify the script and use it in games

The sources of all public plugins are available, and need to be for security reasons. You wouldn’t want code running in your studio session when you don’t have any idea what the plugin may be doing. Getting the source of a plugin is simple once you learn about the existence of GetObjects.

local pluginId = 0
local plugins = game:GetObjects("rbxassetid://"..pluginId)
plugins[1].Parent = game:GetService("Selection"):Get()[1] or game:GetService("ServerStorage")
game:GetService("Selection"):Set(plugins)
2 Likes

There’s also a folder if you go to the Plugins tab on the left side there should be a Open Plugin Folder button. Currently you need to backtrace a page but then go to InstalledPlugins and there’s all your plugins, with the source code in it.

1 Like

Some plugins obfuscate their code. Two methods I’ve seen are via private modules and inserting a blank object (one plugin I tried inserting the source code of instead inserted a blank value object). This isn’t entirely a reliable method, but more often than not source code can be fetched by going through the InstalledPlugins folder, yes. That applies to plugins that don’t bother hiding their code.

I don’t understand why people obfuscate their Plugin’s code, the idea behind it is that other people use a tool that you created. If they didn’t want other people using it, they can just make it a local plugin.There’s no point obfuscating it because it makes it harder for you to develop your own plugin, and there’s always a way to get the source code.

I always check the source code of a plugin I installed, just to make sure there’s no backdoors and it’s fully secure.

1 Like

Ask the people who debated for several hours and days about the removal of private modules. The circumstances are no different, simply that one is centered around modules as a business model/releasing tools without the code included (subjectively stupid - don’t want to explain as it is not on-topic) and the other is around plugins.