Se o script for client-side, então:
Cria uma variável qualquer com valor false. Fora da função.
Quando o jogador executa o comando, verifica se a variável é true ou não.
Se for true, então:
Manda outputChatBox dizendo pra esperar pra usar o comando.
Se não for true, então:
Faz a variável ficar true.
Executa o código que tem que ser executado.
Inicia um setTimer de 5 segundos pra fazer a variável voltar pra false.
Se o script for server-side, então:
Cria uma table qualquer vazia. Fora da função. Será usada pra armazenar os timers dos jogadores.
Quando o jogador executa o comando, verifica se existe a variável da table indexada nele ou não.
Se a table indexada no jogador for igual a nil, então:
Executa o código que tem que ser executado.
Cria a variável da table indexada no jogador, ex: tableQualquer[thePlayer] = setTimer...
Na variável da table indexada no jogador, inicia um setTimer de 5 segundos pra anular a variável indexada no jogador. tableQualquer[thePlayer] = nil
Se a table indexada no jogador não for nil, então:
Manda outputChatBox dizendo pra esperar pra usar o comando.
Em outra função, se o jogador sair do servidor (onPlayerQuit), então:
Verifica se o timer da variável da table indexada no jogador existe com isTimer.
Se o timer existe, então:
Da killTimer nesse timer e anula a variável da table indexada no jogador.
Espero ter ajudado. Eu poderia ter dado código pronto mas vc parece que nem tentou fazer.