You can’t get the TextureId with 100% accuracy without using HttpService and a web host which downloads the decal and then reads the TextureId from it. You could make a loop which descends the ID until a few conditions are met, yet there would be complications with group decals if you checked for the CreatorId or if someone creates multiple decals simultaneously and the IDs kind of mix up.
I recommend using the decal thumbnail instead. If 420x420 is enough of resolution for you, I’d use that since thumbnails are mostly already generated in that resolution, preventing the blank image from showing up and caching on clients before it’s been generated.
Try using
Decal.Texture = "https://www.roblox.com/Thumbs/Asset.ashx?width=420&height=420&assetId=" .. decalIdHere