@Belidos, the ho_decal.lua script has a function called ho_ShowDecal with 7 parameters:
x, y, z, - 3d position
xA, yA, zA, - 3d rotation
t - time to display in milliseconds
The 3d rotation is required because the RotateToCamera command only rotates in Y.
So simply add a call to that function from your pick-up script when you press E. Pass x,y.z of the entity and player angles i.e. g_PlayerAngX, g_PlayerAngY, g_PlayerAngZ.
So the code would look like:
.... E press detection
local Ent = g_Entity[e]
if ho_ShowDecal ~= nil then
ho_ShowDecal(Ent.x, Ent.y + 20, Ent.z, g_PlayerAngX, g_PlayerAngY, g_PlayerAngZ, 500)
end
....
The y + 20 bit is to raise the decal slightly as by default most objects have their y origin at the base so if they are sitting on the ground the decal would otherwise be sunk into the terrain. You may need to fiddle with the value depending on the decal you use. Also you may need to play with the 'Scale(e, 200)' line in ho_decal_init to make the decal you choose an appropriate size.
Make sure the decal is 'always active' btw otherwise when the player gets a certain distance from it it all stop working!
Been there, done that, got all the T-Shirts!