Channel bots that support users are my greatest of expertise, and I would gladly help you with this.
Do try to get in contact with me, I can easily be found on eu.globalgamers.net #globalgamers .
As for hash versus ini, inis are the easiest way to go, BUT, they are also the slowest form of variables to handle.
If you want to code something simple, and don't mind a little lag in the code, provided your user list is actually that long, then you should opt for the simple solution of adding the users to the list with an access that includes the network and channel names within, and then settings that as a header of the events, though this would made twice as many events, it's just copy-pasting.
/auser $+($network.,$chan.,$2) $address($3,2)
This would be a simple implementation for your bot, where you copy-paste the existing events and simply change the access on them to "<your-network>.<your-channel>.<access>:".
Note that this line is meant to work with a command such as "!AddUser <level> <nick>".
That said, if you do want to go hashing, which I personally think is the best way to go in any script, you're looking at re-scripting your stuff to work with "var %level = $hget($+(Users.,$network.,$chan),$nick)" .