Vamos ver...
Esse primeiro problema está acontecendo pois você está utilizando os comandos keydown() e keyup() de maneira errada. Como pode ver na documentação, você deve utilizá-los não com nomes de teclas, mas sim com alguns valores que representam ações no jogo, como andar pra frente ("forward"), pular ("jump"), ou com um valor de 0 a 255 que represente um keycode do seu teclado.
Nesse caso, como acho que você deve estar querendo fazer com que o jogador agache, você deve usar o parâmetro "sneak" ao invés de "shift".
O motivo pelo qual está apertando "esc" é esse:
Não entendi muito bem se isso faz parte da funcionalidade do seu script, senão, você pode só retirar essa linha do código.
Já esse segundo problema está acontecendo por que você esqueceu de declarar o tipo da variável "@count" do seu script. Lembrando que mesmo se a variável for global, você precisará ainda indicar o tipo dela (# - numérica, & - string). Caso você não indique o tipo da variável com # ou &, você estará criando uma variável booleana (true/false). Portanto, executar operações matemáticas sobre uma variável booleana não faz sentido, e acho que o mod irá converter todos os valores iguais a zero para "0" (false) e todos os valores diferentes de zero para "1" (true).
O resultado disso é:
Deduzi que você quer criar uma variável numérica, então só precisa adicionar o "#" depois do "@".
O resultado disso é:
Caso interesse,
esse é o link de uma documentação não-oficial do mod. Lá você pode obter informações sobre o funcionamento de todas as ações, variáveis, eventos e parâmetros úteis pra criar seu script
Clique para expandir...