Script tips: Post yours below and I'll consider adding them to this OP.
I'll start it off with the first few. I'll also be tweeting the ones that will fit in a tweet.
Script tip #1:
You can use a variable anywhere you can use a number.
Script tip #2:
Substitute a variable for it's value in any [text] message by surrounding it in square brackets, eg. notify [Count=[count]]
Script tip #3:
Format a variable text value to x decimal places in [text[var:x]] by specifying # of decimal places after a colon after the var name.
e.g. notify [Radiation=[rad:2]] means the text will show the rad value truncated to 2 decimal places.
Script tip #4:
A simple coordinate based hash:
var [hash] = [31] + [rel:x] * [rel:z]
var [hash] = [31] * [hash] + [rel:y]
var [hash] = [31] * [hash] + [rel:z]
and to limit the hash to x number of digits use modulus [%] with a value of 10^x (like for a pin etc).
var [hash] = [hash] % [10000] // e.g. will limit it to 4 digits 10^4
Script tip #5:
Use a history value anywhere you can use a number by first loading it into a var.
e.g: var [bla] = [history:bla], now use bla in another command.
Script tip #6: (2.5 only)
A simple gamertag based hash:
var hash = [hash:[gamertag]]
Script tip #7:
Many parameters can be omitted, and where appropriate will use a default value. (See help/docs).
Script tip #8:
All variables (vars) are 64-bit floating-point values.
Script tip #9:
History values are 64-bit integer values. To store a fractional value from a variable to history, first multiply the variable by 10^x where x is the number of decimal places to store. Then when you want to use the fractional value again, divide by 10^x when assigning to a variable.
Script tip #10:
Notify and HudText are very useful debug tools. If you're not sure why something isn't working correctly then placing notify or HudText commands in the right places to display the relevant data on screen (history, variables etc) is a great help to find out where the script is going wrong.
Script tip #11:
Wait [100]
Loop // delay omitted = default [16] i.e. same as Loop [16]
is the same as
Loop [116]
Script tip #12:
var assignments are processed strictly left to right, there is no operator preference.
Script tip #13:
Press the Back button to instantly exit the script editor window (no need to go through the B menu). If you've made changes to the script, you'll be prompted.
Script tip #14:
Press the Start button on any command that specifies another script to open that script in another editor window. It will automatically create a new script if it doesn't yet exist.
Script tip #15:
Whenever you use Loop, consider the highest delay possible for 'good enough' function. The higher the delay, the less potential for script lag.