- App 2
Appendix 2: Common Errors
99 compiler errors in the code,
99 compiler errs.
Fix one bug, compile it again,
2,459 errors in the code!
This section is devoted to common errors you will run across. While there's already a great section on these
, the existing section probably doesn't appeal to more than professional coders.
Before I begin, you may want to look at the definition of a compiler
Here are examples of errors you will run across, listed by relative frequency:
By far the most common problem. Syntax errors
mean the code could not compile because there are one or more problems with how the code has been physically written. To remedy this, simply double-check your code for any typos.
Your script ran out of memory
while it was running, likely because of a memory leak or similar problem. Revise the code and try again.
Caused when a math operation does something that basic math can't handle (e.g. imaginary numbers, divide by zero, etc). The most common
reason for this error is your code is dividing by zero somewhere.
Name Not Defined Within Scope
Another really common one. This means that the function or variable name you are trying to use has not been declared yet, is out of its scope
, or you accidentally typed it wrong. To remedy this problem, check the variables and functions where the compiler has placed the cursor.
The variable type does not match the type you need or are trying to use. To remedy, check the variable or typecast
it into a new type.
Function Call Mismatches Type or Number of Arguments
The function variables in the call
do not match those in the actual function header. If a function is defined this(integer one, float two)
, then it requires a call to it that looks similar. For example, this(1,2.0);
would be a proper way to call it.
Name Previously Defined Within Scope
The antithesis of the "not defined" error, this just means you used the same name twice. Change it and try again.
Tried to [Animate/Take Controls/Take Money/Etc] but Permissions Not Set
Permissions must be supplied for some actions, like taking money, starting an animation, changing the links of an object, or animating another avatar. These are requested with llRequestPermissions
and handled in run_time_permissions
Object Out of Range
If your client cannot see the object, it cannot properly interact with it. Get closer and try again.
Can't enable physics for objects interpenetrating other objects
Pretty self-descriptive. Occasionally this will fire when enabling phantom, but this is likely a bug.
Cannot rez object - parcel is full
This parcel is at its maximum number of objects. Move somewhere else.
Only objects under 31 primitives can enable physics
Error in parameter [yadda yadda]
In several list-based functions, like llParticleSystem
, you will receive this error for supplying bad data. Try again at the area specified.
Uninitialized Variables Can't Be Included in a List
Pretty cut and dried, yes? Declare your variables!
Use of vector or quaternion method on incorrect type
Also pretty cut and dried. Only vectors
accept vector commands. Only rotations
accept quaternion commands.
Lists can't be included in lists
cannot be nested in another list. To add a list inside of another list, use functions such as llListReplaceList
, or simply adding the two lists together.
Return statement type doesn't match function return type
When a function is written to return
a value, it must return the type defined in its preceeding variable definition. For example:
Function returns a value but return statement doesn't
// This function is returning an integer, because "integer" is written before the function name.
// This return would throw this error
// This one would work properly
Similar to the last error, you can't just write return;
. You must supply a value if the function requires it.
Not all code paths return a value
Where loops and if-statements are present, you may choose to have different function returns from different paths. Remember to supply a default return statement
if none of the paths work.
Dead code found beyond return statement
Now here's one I've never seen before. While code should *technically* be able to run in this case, the presence of an error means the compiler doesn't like it.
Basically, if you plan to make use of return statements
, don't add code after the function tries to exit.
Global functions can't change state
The compiler does not allow for state
changes from functions users have created. While there is a hack
for this scenario, it is likely better to follow the compiler on this one.
Expression must act on LValue
You can only assign values to variables
. For example, you cannot do something like 2 = 3;
because it makes no sense.
Token buffer overflow/ Not enough space for parser stacks/ Parser stack overflow
Your function's buffer blew up. Try again with fewer or simpler values.
Byte code assembly failed -- out of memory
The compiler failed because your script's code is too large to even just compile it. Try cutting down on the stuff you've typed or split the scripts with a communications system (example
Too many listens
Your script is trying to open too many listener channels at once. Try consolidating channels and using llListenRemove
Bounds check error
The compiler missed a bad value for something and it screwed up in your code. This is usually the result of using jumps
poorly in code, or otherwise trying to do something that the compiler is not built to handle.
Hit Sandbox Limit
For objects in sandbox mode
, this is just a notifier that the object has been moved 10 meters or across a sim boundary.
llSetPrimitiveParams Error Running Rule [Add number and Type Here]
Bad list data has been supplied to llSetPrimitiveParams
at that supplied rule number. Check the list.
Script trying to illegally [access/give items to/start script in] [add name here]
Object or script permissions are not properly configured in this object. Common reasons for this are: The object is not yours, the object is flagged "No Modify," or the object has not had its pin
set properly for script access.
Occasioanally, Second Life's asset server
becomes too overloaded with tasks and cannot save your script. In these cases, you should receive a pop-up warning to that effect. Simply try compiling/saving the script at a later time and save it in another place (like a text editor
) for now.
Occasionally you will receive error messages created by other users. These are readily identifiable, because they usually will appear in local chat or a blue script box that does not look official. In these cases, ask the creator what's going on.
A deprecated error, but worth noting anyway. Second Life chat is limited to 255 characters. Fortunately, chat commands should now just truncate
- App 2