Well although I don't really know what kind of item system you're trying there LTGH. Maybe this could help.
Variables: empty1 -> boolean array from 0 to 19 [this says us whether for example slot4 is empty (true) or full (false) - note that empty1[0] represents the first slot empty1[1] the second and so on]
first_empty1 -> integer [this will always hold the value of the first empty slot]
The "1" behind the variables mean, that you must create these triggers for all players. This would be working for only one.
All this is doing, whenever an item is dropped (add your own event... I dunno how you go there with destructibles and stuff) the boolean variable "empty" is set to true for the slot it got dropped of. This means that we can check later, whether or not that slot is empty.
Afterwards we check for each 20 slots (slot 0 to slot 19) if it is empty. In case it is, the integer variable "first_empty" gives us the array for the first slot.
That means that the number for the first empty item slot is first_empty.
Thus you can add an item to that slot whenever you want.
-
ItemDrop
-

Events
-

Conditions
-

Actions
-


Set first_empty1 = *The number of the slot the item got dropped from*
-


Set empty1[first_empty1] = True
-


Set first_empty1 = -1
-



Do Multiple ActionsFor each (Integer A) from 0 to 19, do (Actions)
-




Loop - Actions
-





Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-






If - Conditions
-







(empty1[(Integer A)] Equal to (==) True) and (first_empty1 Equal to (==) -1)
-






Then - Actions
-







Set first_empty1 = (Integer A)
-






Else - Actions
The actions of the second trigger should be run whenever an item is picked up. The slot is considered as full by setting the boolean array "empty" for that slot to "false".
Afterwards it again checks which slot is empty and sets "first_empty" to that value.
-
ItemPickup
-

Events
-

Conditions
-

Actions
-


**Create Item in slot [first_empty1]**
-


Set empty1[first_empty1] = False
-


Set first_empty1 = -1
-



Do Multiple ActionsFor each (Integer A) from 0 to 19, do (Actions)
-




Loop - Actions
-





Multiple FunctionsIf (All Conditions are True) then do (Then Actions) else do (Else Actions)
-






If - Conditions
-







(empty1[(Integer A)] Equal to (==) True) and (first_empty1 Equal to (==) -1)
-






Then - Actions
-







Set first_empty1 = (Integer A)
-






Else - Actions
Note that these are just the actions, you must add your own events that go off when you drop or pick up an item. Or you simply add these actions to the trigger, where all your other item drops / pick ups are dealt with.
And since I don't really know where your problem might be, this might be of no help. Yet think about it at first.
And last but not least it might be possible, that some of these GUI functions don't exist in normal World Editor. I use NewGen WE...