I’m pretty sure decals can be inserted regardless if they are free or not. A decal being free just indicates you can take it and use it from Roblox’s toolbox. It can still be loaded from the InsertService either way.
game.InsertService:LoadAsset(896320268).Parent = workspace
HTTP 403 (HTTP/1.1 403 Asset is not trusted for this place)
It’s not a For Sale, and I don’t own it.
–
Asset I own (I uploaded this and it seems like doesn’t matter if it’s in my Inventory or not It never works)
From my experience you can only Insert Assets that You and Roblox owns (and maybe Assets that are For Sale) but NOT Assets that aren’t for sale.
but right now it seems like you can only Insert Assets that are ONLY Owned by Roblox, idk what’s up but it better get fixed soon.
Right then, my apologies.
I didn’t recall correctly how I did this in Super Nostalgia Zone.
It turns out that I was using Roblox’s thumbnail endpoint for rendering decals as images, which suited my needs appropriately.
I think my assertion is correct for T-Shirts and other clothing items though, whoops.
Are you able to load in Decals through thumbnail endpoints? How does that work?
My understanding was the server could insert anything that the place owner owns OR Roblox’s official account owns. Not both are necessary. Unless it changed?
No, it hasn’t changed. This is correct. Only assets you or Roblox own can be inserted. Free assets still have to be owned, otherwise they’ll return an HTTP 403 error as per ownership checks.
So long as it’s in your inventory, it’s usable.
Isn’t it assets you, ROBLOX or Games own? I remember reading that somewhere.
No. Games is a separate Roblox account utilized by Roblox but their assets are on the same level as a regular user’s. Only the Roblox account (ID 1) has elevated permissions across all assets.
My apologies. It seemed like you were saying OP shouldn’t have made this since nobody would use it and it could be used to infringe copyright.
Not at all. All I’m saying is that personally, I can’t find large amounts of use cases for this since there are not a hankering amount of games that use user input for decals nowadays, but this is a cool creation. Its an awesome web trinket that’s like the InsertService workaround but not exactly it. It’s just how many people will use it and what it’s used for is my concern.
OP did say it was for personal use but he was releasing for anyone who wants to use it anyway.
[UPDATE]: Fixed error responses for image not existing when an invalid decal ID was provided. Will now properly send a 404.
[UPDATE] : Fixed failure to parse XML returned by Roblox as a result of me not allowing data to load properly. All successful requests should once more return the Image/Asset ID in the response with a status code of 200.
You might as well do this:
https://twitter.com/Maelstronomer/status/850316111132405762
As far as I know it works with both shirts and decals. ^^
Although, the way you have set it up works fine as well. I just wanted to come up with a maybe quicker method?
The issue is doing this at runtime, not in Studio. For example someone inputs an ID and you need the asset. At runtime it won’t go from normal URL to asset.
Alright. I thought the issue was something else. Ty for telling. (;
Hello, Can I use this?
If not, then what are alternatives?
Unfortunately as the title states, this API is depreciated due to issues with it. From my own searching you can use the F3X Api which accomplishes the same thing, however you’ll need to dive into the F3X build tools to find the URL to send the request to.
If I have time to look into this soon I may do a rewrite to make it functional again. It didn’t have many requests being made to it so I assumed it didn’t have much use for people.
if anyone needs the width/height of an image, I have an API too: https://plugin-utils.glitch.me/sprite-splitter/imageId
e.g. https://plugin-utils.glitch.me/sprite-splitter/68073547
https://plugin-utils.glitch.me/sprite-splitter/68073547.png
The domain for F3X’s asset extraction is https://f3xteam.com/bt/
. There are specific endpoints for decals and meshes. Remember to wrap the calls with pcall, as is standard (or should be) when working with the HttpService.
To retrieve an image, you require getDecalImageID
with the ID supplied. It returns a number in plain text, so you can return the response directly from the call and use it.
local image = HttpService:GetAsync("http://f3xteam.com/bt/getDecalImageID/decalID")
To retrieve mesh data, it’s getFirstMeshData
. It returns a JSON string that includes the fields:
- bool success
- number meshID
- number textureID
For this, you can return the result of JSONDecode on the response of the call. This will give you a table. If success is true, meshID and textureID will be included. You can then use those on the fly.
local meshDataRaw = HttpService:GetAsync("http://f3xteam.com/bt/getFirstMeshData/meshID")
local meshData = HttpService:JSONDecode(meshDataRaw)
if meshData.success then
print(meshData.meshID, meshData.textureID)
end
If you want to replicate these endpoints and host your own server that can do this, quite sure something in Roblox’s web API should help you out. You could probably run it in the box too with a proxy.