Non-sequential Asset ID Generation Coming Soon

Does this apply to user ids for new players?

6 Likes

Highly appreciated change, particularly with the recent revival of official Roblox events; sucks to see things get leaked super early on, leading to speculation and possible let down.

A bit unfortunate that you’re either having to trust an unknown third party proxy (which could go down any time, without notice), or figure things out yourself for such a silly problem.

I also wonder how impacted current methods will be if more stringent asset privacy features are rolled out, limiting the ability to parse the XML from assetdelivery.

Given Roblox Studio is capable of converting a Decal ID to Image ID, I imagine that code is not that far away from being put into something like AssetService:GetDecalImageAsync(...) or even rbxassetid:// working with Decal IDs and translating them to the proper Image asset.

I won’t pretend to understand reasons why there may be resistance to this, but it doesn’t seem that crazy to lend a hand here instead of leaving developers to do crazy external requests to get an image.

8 Likes

This benefits nobody but bad actors hiding their files

5 Likes

I personally use that method. Back when I found it, almost every decal ID subtracted by 1 was the image ID, so I just used it, and didnt think about it since.

Now would be a good time to find a different method to do this. Do you have any suggestions, or what other developers are doing?

2 Likes

Yes, It was to grab inappropriate places hidden as models, because of how many flaws this engine has, condos or inappropriate people can decompile their places as rbxms (usually mainmodules), upload it to roblox then use it to compile their game onto a private server, the only way to grab these models was to use the latest asset id, add it by 1 then hope you stumble across one to report it, but due to this update, it has become rarer to grab these models and report them, making bad actors hide and get away more.
This also applies to backdoors.

I tried to report this method directly to roblox engineers through support but I haven’t gotten any answers.

8 Likes

To be honest I’m mostly indifferent to this besides the fact that they’re a little bit too long. Badge IDs already look insanely long and messy and stuff like not being able to tell image IDs from decal IDs is a huge disadvantage with no API to fetch the ID. I’d suggest just listening to the community for once and adding this:

4 Likes

Or for a more quick fix before this change goes live, why not just add a button to copy the ‘Image ID’ from the ‘Decal’ page.

2 Likes

Certainly possible, BTRoblox has a button to go to the image asset from the decal asset:
image

6 Likes

I use this method in my helper functions across all my games and my client’s games. Such a change would impact quite a lot of creators. I played Block Digging simulator, and found out all the images have disappeared, aswell as a loss of player count. During the rest of the day, i found out my experiences also had the issue.

It would be extremely useful if we could open a feature-request about this, as it is currently impossible to have a reliable method to grab the image id from decal id.

Also, I used to use the rbxthumb://type=Asset&id=000w=420&h=420 in the last few years but had to resort to the repeated ID decremental method since that rbxthumb method have been discontinued.

Once again, such “hacky” method of working can’t make a better and more stable platform. Multiple top experiences loses all of their images whenever the current best method dies, all because of the lack of an appropriate API.

3 Likes

You can use InsertService on the decal it self and it will insert the Decal object, 2d clothes as well, no matter if you own it or not. I use this practice in 2 of my games and never had an issue.

2 Likes

To be clear, the change hasn’t shipped yet, this post is just advance warning. If you’re seeing an issue in experiences at the moment it must be thanks to something else.

4 Likes

Please do not ship this update out, read my previous statement on how this is harmful, if users want privacy we should get privacy focused updates instead, like why are people still allowed to spoof animations using game:GetObjects?

I would greatly appreciate if you could at least give me a hindsight on how the team is planning to patch both animation spoofing and uploading games as models. A DM to me is also appreciated as I could give a whole detailed explanation on how this works for the team.

5 Likes

Roblox Staff allegedly uses the InsertService, but seems clueless when it comes to using it in production games since that method is only server-sided and can only load owned content.

Here is the reply of the roblox staff: It's Impossible to Get an Image ID From a Decal ID - #10 by Subcritical_alt

3 Likes

Is there a reason you couldn’t pull the sort order from the place’s creation date rather than chuck all of our places into a pick-n-mix?

4 Likes

please do not ship this update. my world-building game Wubby allows players to create their own worlds. in these worlds they can place decals and images, since i’m using the “subtract ID until image ID” trick because it’s the most reliable for me, removing the ability for Wubby to automatically transform Decal ID > Image ID is counterintuitive and might confuse my playerbase, whilst removing a quality-of-life feature for players that know how to avoid this.

please, id suggest for you to give us any way to automatically transform Decal ID > Image ID and maybe MeshPart ID > Mesh ID (since my playerbase also gets this last part mixed up). thank you.

26 Likes

Insert Tom Scott rant about incremental counters here

5 Likes

@tnavarts
Why are decal assets even still a thing? Roblox could eliminate the entire Decal → Image problem by just… Removing decals. They aren’t used anywhere, they’re auto-converted to image IDs in every known spot, why do they still exist?

As far as I’m aware, flat out removing decal assets would impact literally nobody since image IDs are required in every user-facing place in the engine.

4 Likes

This. My game uses a livery system and we have to use a hacky way to convert it. I would love an in-built method from MarketPlaceService that can convert it easily.

If it were a “just” they would have been removed. It’s not impossible but hard enough that it hasn’t made it to the top of the priority list and gotten done.

1 Like

could you at least try adding a quick button to get the image id of a decal, just like how BTRoblox does it, so we can get rid of this hassle?

1 Like