You could implement a binary-magnetic system using magnets and magnetic sensors. Basically, each item would have spots for up to 5 magnets (to represent a number between 1 and 30). The presence or absence of a magnet would represent a bit of binary. So the first item would have four empty spots and one magnet (binary 00001). The 30th item would have four magnets and one empty spot (binary 11110).
The sensor unit would have five complimentary magnetic sensors (Hall Effect or reed switches). When the item is placed in near proximity of the sensor unit, the presence or absence of the magnets are read. The binary pattern is decoded by an MCU and the system knows which item it is.
You'd need five magnetic sensor devices for the array and enough magnets to populate the binary pattern on each item. From my experience, you can get SPST reed switches cheaper than Hall Effect sensors, but you may find differently. You may have to experiment with different magnets to find ones that have the right field strength for the job.
This magnet/sensor arrangement assumes that the items are large enough to attach up to five magnets. Obviously the magnets must be mounted far enough apart from each other as to not trip more than one sensor. And it also assumes the items are placed near the sensor array in a predictable orientation so the magnets line up with the sensors.