Pickle that's completely different.
You'd need this: (It will pick up no matter what the circumstances)
function SwordItem::onCollision(%this,%obj,%col)
{
if(!%col.client)
return;
for(%i=0;%i<%col.dataBlock.maxTools;%i++)
{
%tool = %col.tool[%i];
if(%tool $= "" || %tool $= 0)
{
%col.tool[%i] = %this;
messageClient(%col.client,'MsgItemPickup','',%i,%this);
%obj.delete();
return;
}
}
}