var status_CarryObject = 0;
action object_act
{
var attached;
var offset[3];
attached = 0;
while(me)
{
if(status_CarryObject)
{
if(attached == 0)
{
vec_diff(offset,player.x,my.x);
attached = 1;
}
vec_set(my.x,offset.x);
vec_add(my.x,player.x);
}
else { attached = 0; }
wait(1);
}
}
Attention: not tested, if it blows up your machine its your fault

Something along that line should work though
edit:
add the else status so now you should also be able to re-pick up that object.
edit #2:
forgot to mention: To use this you need a function which sets that status_CarryObject var to one on key press.
If you want several objects being carried individually you have to use c_scan plus scan_events, but because you were talking only about one object I went the easy way
