Deixa eu ser sincero contig em uma coisa. Pra quem está de fora como eu que nunca vi seu script e nem consigo imaginar a metodologia empregada ao mesmo se torna extremamente difícil saber qual é o problema.
Eu sugiro que tu estude para entender como funciona o sistema de ot server, então tu saberás o que estás a fazer de errado.
Bem... eu acredito que seu sistema retorne para a função onuse algum valor diferente de nil ou false para cada argumento, portanto o parâmetro itemEx seria um valor válido, logo se tu por isso como condição, ela sempre será verdadeira.