With Rthro being introduced, every package has been converted to a bundle. I need to know how to insert these bundles into studio using InsertService. I created the plugin Custom NPC Maker and it uses InsertService to import a package based on the developers input of it’s ID from the website. I have noticed with the bundles update, the IDs are new and under the asset type of “Bundle”, but there is no Bundle asset type in the API.
This renders my plugin unusable for the most part if developers can no longer access package IDs. Does anyone know a way around this? Along with adding support for Rthro to be imported, it would be great to know how I can import these bundles into studio.
How the importing works:
I extract the base model of either the R6 or R15 rig from Roblox’s inventory. I then get the AssetIds of the package from AssetService, and import them using InsertService. I then have logic that applies these body parts to the base model, then parent the model to workspace.
Hi, to build on this, I use an the AssetIds of Accessories, Gear, Packages, etc. to generate thumbnails to show in peoples’ inventories. The catalog used to send you to the assetId link and then redirect to the “bundle” link, so I could just right click and get the AssetId that way. This seems to have been eliminated from the website as well in a recent update. Is there any other way to get the actual AssetId of a package or are they no longer stored this way? (and if they’re not, how can I fetch a package’s thumbnail?)
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.
Thanks. I actually didn’t see your reply to my post until after I figured it out, but I saw your plugin on another devforum post and downloaded it and used your code to fix my problem.
I think humanoid description is the best way right now.
AS stand for assets service
PL stand for Players
function LoadBundle(ID)
local Bundle = AS:GetBundleDetailsAsync(ID)
local OutfitID
for i, v in pairs(Bundle.Items) do
if not string.match(v.Name, "Head") and v.Type == "UserOutfit" then
OutfitID = v.Id
end
end
local Description = PL:GetHumanoidDescriptionFromOutfitId(OutfitID)
local Rig = PL:CreateHumanoidModelFromDescription(Description)
Rig.Parent = workspace
return Rig
end