That's obiously, because you are creating the icons client-side, and if you wanted others to see them it should be server-side.
--client side
function applyAttachment(leaf)
if type(leaf) ~= 'table' then
leaf = getSelectedGridListLeaf(wndIcon, 'iconlist')
if not leaf then
return
end
end
triggerServerEvent("createPickup",g_Me,g_Me,leaf.id)
end
--server side
local pickup = {}
addEvent("createPickup",true)
addEventHandler("createPickup",root,
function (client, icon)
if isElement(pickup[client]) then destroyElement(pickup[client]) end
local x, y, z = getElementPosition(client)
pickup[client] = createPickup(x, y, z, 3, tonumber(icon))
if pickup[client] then
attachElements(pickup[client], client, 0, 0, 1.5)
end
end)
addEventHandler("onPlayerQuit",root,
function ()
if isElement(pickup[source]) then destroyElement(pickup[source]) end
end)
Try it, should work (not tested).