Heres what i noticed.
if (idlewinamp == on) {
^ % missing, add it in
alias idlemsg {
alias /idlemsg {
^ duplicate alias definitions, rename the second one, (side note / are not needed in the alias name definition and are ignored)
if ($2 == on) {
if ($2 == off) {
^ $2 should be $1, fix it
if (%idlewinamp == on) { msg $chan Already enabled. | halt }
msg $chan WinAmp Idle Enabled.
if (%idlewinamp == off) { msg $chan Already disabled. | halt }
msg $chan WinAmp Idle Disabled.
^ Since you can run an alais from anywhere the $chan value may not have a value, this could cause the script to send to a user named 'Already' or 'Winamp'
Suggested correction.
if (%idlewinamp == on) { if $chan { msg $chan Already enabled. } | halt }
if $chan { msg $chan WinAmp Idle Enabled. }
if (%idlewinamp == off) { if $chan { msg $chan Already disabled. } | halt }
if $chan { msg $chan WinAmp Idle Disabled. }