As I said in the readme, if you're getting confused by arguments (btw, argument0 is used as a normal script-pass argument) and alarms without events, then you need to expand your mind and stop thinking inside the box, which is what it means when you get confused in that way. Nowadays I can look at a code I typed up using arguments and it not only makes sense right away, it also looks aesthetically pleasing (to me at least). As for alarms... yeah I have a database of what each alarm actually corresponds to. It's not efficient, maybe, but some alarms I end up memorizing just like i have RAM offsets memorized. The way I see it, alarms and arguments are recognized by GM so using them as temporary or local variables (although when used outside of a script arguments are global variables) makes them get highlighted so they stand out in the code; that makes it a lot easier to read the code for me.
Edit:
Look at it this way: The only real issue you can cite against me using arguments and alarms is that you and the rest of the GMC have preconceived notions of what arguments and alarms are for. Go through my code and make the following substitutions:
argument0 = pickle
argument1 = lettuce
argument2 = tomato
argument3 = beef
argument4 = cheese
argument5 = bread
argument6 = egg
argument7 = mustard
argument8 = catsup
argument9 = relish
argument10 = onion
argument11 = fries
argument12 = soda
argument13 = patty
argument14 = cone
argument15 = pie
alarm[0] = cherry
alarm[1] = vanilla
alarm[2] = orange
alarm[3] = grape
alarm[4] = diet
alarm[5] = lime
alarm[6] = lemon
alarm[7] = acai
alarm[8] = apple
You get the idea. It wouldn't make any difference; it'd just change the excuse from being, "That's not what those variables are used for," to, "Those variables don't make any sense." If you think that example is bad, then how about this example:
alarm[0] = osasuna
alarm[1] = bizitza
alarm[2] = abiadura
alarm[3] = norabidea
alarm[4] = xede
argument0 = aita
argument1 = aitona
argument2 = birraitonak
argument3 = ama
argument4 = amona
argument5 = umea
You'd complain that the variable names were nonsensical and you couldn't understand the code because none of the variables made sense. In all fairness, that last example would make a LOT of sense if you copied that into Google Translate for Basque-->English.
Regardless of the name of the variable, to understand a code, you have to look beyond the surface (the variable names) and look at the roots. Look at the whole and not the parts. Since it's so easy to just re-download the files anyway, just open the palette swap script, delete all the comments, and just stare at it. It's a tiny script and if you just look at it without getting hung up on variable names -- which is really what your problem is -- then you should be able to see the whole picture. You can see a painting by Michelangelo and understand what it depicts without even knowing why or how it's a Michelangelo painting.
When the only code you read day in and day out is just 0445FAD493C258E000532, you stop worrying about descriptive names and just try to keep your variables in order. (My alarms are somewhat haphazard, but there actually is a loose set of rules governing how I use arguments... which has no meaning to anyone who isn't looking at the same blocks of code as me.
)