Best way to implement dynamic stickers that can be applied to any custom mesh at runtime?

I’m trying to implement a sticker system in UE 5.3 for the game I’m currently working on so that the user can customize objects like old consoles and gadgets.

I need the following:

  1. The stickers must be spawned at runtime on the object surface where the user clicks.
  2. The user must be able to delete/move/scale/rotate the stickers freely.
  3. The stickers must adapt to very different meshes without stretching or things like that.

I’ve been working with decals so far and, while the first two points have been accomplished, to say that the third one is a little more complicated is a huge understatement.
I’m currently using a sprite sheet which I then divide in the single different stickers inside a material with a sub-uv node. The system works pretty well, but obviously only if I apply the sticker to a flat surface. If a mesh is not flat, the decal gets horribly stretched.

I’ve heard that triplanar projection can kinda solve this issue with decals, but I could not make it work no matter how hard I tried. I’m not very good with shaders so I might be doing something wrong. I even tried passing the actor position through a blueprint to the material instead of using the world position and it kinda worked but the same decal then was being projected like 4 times and also shifted (like an out of order puzzle of 4 tiles).

Is there any solution to this?