Sometimes bank has wrong amount of slotsSolved
When i have 2 permissions with different slots, it sometimes picks the lowest one. Seems like, that having the bigger slots in config at the top of the array doesn't help.

This code helps:
int GetSlots (BasePlayer player)
{
    var availableSlots = new List<int>();
    availableSlots.Add(defaultSlots);

    foreach (KeyValuePair<string, object> kvp in boxSlots) {
        if (permission.UserHasPermission (player.UserIDString, kvp.Key)) {
            availableSlots.Add(Convert.ToInt32 (kvp.Value));
        }
    }

    return availableSlots.Max();
}​

Or maybe simple compairing would work

Yes, a player ought not to have multiple VIP permissions for a specific box.  They aren't sorted in any way, they are just searched to see if any exist.

Merged post

This is a minor issue, but IMHO the best way to handle it would be to ensure that all other specific box permissions are revoked automatically when a new one is granted to a player - thus ensuring there are no duplicates.
 to ensure that all other specific box permissions are revoked automatically
Thats not possible in my case, because i have permissions granted to certain groups. I can't just simply remove user from the whole group, because both groups should be applied (for example, for kits from both groups). Everything is handled that way, for example, NTeleportation plugin uses the best values if multiple permissions granted.

Merged post

Also imagine situation, when 15 slots granted for 30 days, 30 slots for 10 days. After 10 days, i should grant permissions for 15 slots again, which is not possible with TimedPermissions afaik. Ofc i can always patch all new versions manually, but i would be happy, if you add that or similar fix
Locked automatically