Using a safer version of the above:
Misuse the velocity parameter. It's copied into each particles vel_x,vel_y,vel_z. You can store any kind of 32 bit value in each single variable.
, I actually used/use this and it works very well (a whole struct is not yet needed since I only need to pass along the ID and owner/controller).
@Malice, I dont for sure if you/my works, I find it a bit tricky in this case (better to be safe, I hate memory errors

). And I do take multiplayer into account (just incase lateron I really want to add multiplayer)