Normally I would offer hosting to you. Unfortunately I am not currently in a position to make that offer.
There is an optimization you could make to part of your code. The distance check you have as:
sqrt( (object position x(number) - object position x(character)^2 + ((object position y(number) - object position y(character)) / scale#)^2 + (object position z(number) - object position z(character))^2) < distance
Could also be written as:
( (object position x(number) - object position x(character)^2 + ((object position y(number) - object position y(character)) / scale#)^2 + (object position z(number) - object position z(character))^2) < (distance*distance)
Which essentially removes the square root function altogether.