message_begin(MSG_BROADCAST ,SVC_TEMPENTITY) //message begin
write_byte(TE_WORLDDECAL)
engfunc(EngFunc_WriteCoord,origin[0]) // Origin in float, you can change function to take integer value
engfunc(EngFunc_WriteCoord,origin[1])
engfunc(EngFunc_WriteCoord,origin[2])
write_byte(26) // texture index of precached decal texture name
message_end()
I took last code from one of my plugins with out thinking, it had a lot of thing you don't needed, this one is simpler.