Runner Errors

Here you can see the possible errors that the Virtual Machine runner can throw.

Even after syntax checking in the code editor and then having the compiler check your code, there are still occasions when something can go wrong. in most cases this will throw a VM (virtual machine) error which looks like this: VM errors are generally more serious than compile errors as it means that there is something seriously wrong with your code that neither the code editor nor the compiler have been able to detect, and as such you should pay attention to all such errors. When one occurs, you can use the "copy" button on the pop-up to copy the error to the clipboard which you can then paste into a text file (or wherever) for future reference.

Certain error messages will be prefixed by a negative value. these values can be used to pinpoint the exact nature of the error and what it refers to with the following values possible:

Prefix Scope
-1 Self
-2 Other
-3 All
-4 Noone
-5 Global
-6 Not Specified
-7 Local

The possible errors from the VM runner are as follows:

NOTE: All runner errors will try and point you to the object or script that has caused the crash.

  1. Comparisons

    DoSet ::Invalid comparison type

    This denotes that the runner has tried to compare two incompatible data types, like a real number with a string.

  2. Conversions

    DoConv:: Execution Error

    This denotes an error in the conversion of one data-type into another.

  3. Addition

    DoAdd:: Execution Error

    Something has gone wrong when using the addition (+) expression.

  4. Multiplication

    DoMul:: Execution Error

    Something has gone wrong when using the multiplication (*) expression.

  5. Subtraction

    DoSub:: Execution Error

    Something has gone wrong when using the subtraction (-) expression.

    DoSub:: Execution Engine - Cannot operate on string type

    You are trying to subtract the wrong type of variables (for example subtract a string from a real).

  6. Division

    DoDiv:: Execution Error

    Something has gone wrong when using the division (/ or div) expression.

    DoDiv:: Execution Engine - Cannot operate on string type

    You are trying to divide the wrong type of variables (for example divide a string by a real).

    DoDiv:: Divide by zero

    You are attempting to divide by 0.

  7. Remainders

    DoMod:: Execution Error

    Something has gone wrong when using the modulo (mod) expression.

    DoMod:: Execution Engine - Cannot operate on string type

    You are trying to use modulo on the wrong type of variables (for example mod a string by a real).

  8. Bitwise And

    DoAnd:: Execution Error

    Something has gone wrong when using the bitwise "and" (&) expression.

    DoAnd:: Execution Engine - Cannot operate on string type

    You are trying to use "and" on the wrong type of variables (for example trying to "and" a string with a real).

  9. Bitwise Or

    DoOr:: Execution Error

    Something has gone wrong when using the bitwise "or" (|) expression.

    DoOr:: Execution Engine - Cannot operate on string type

    You are trying to use "or" on the wrong type of variables (for example trying to "or" a string with a real).

  10. Bitwise Xor

    DoXor:: Execution Error

    Something has gone wrong when using the bitwise "xor" (^) expression.

    DoXor:: Execution Engine - Cannot operate on string type

    You are trying to use "xor" on the wrong type of variables (for example trying to "xor" a string with a real).

  11. Bitshift Left

    DoShl:: Execution Error

    Something has gone wrong when bitshifting left (<<) a value.

    DoShl:: Execution Engine - Cannot operate on string type

    You are trying to left bitshift the wrong type of variables (for example trying to bitshift a string).

  12. Bitshift Right

    DoShr:: Execution Error

    Something has gone wrong when bitshifting right (>>) a value.

    DoShr:: Execution Engine - Cannot operate on string type

    You are trying to right bitshift the wrong type of variables (for example trying to bitshift a string).

  13. Negative

    DoNeg:: Execution Error

    You are trying to turn a variable type into a negative when this type does not permit such an operation.

  14. Not

    DoNot:: Execution Error

    You are trying to "not" a variable type when this type does not permit such an operation.

  15. Stack Push

    Push:: Execution Error - Variable Index out of range (var)

    The variable being accessed is out with the established range for the runner.

    Push:: Execution Error - Variable Get (var)

    The given variable has not been defined or is unknown.

  16. Stack Pop

    Pop:: Execution Error - Variable Index out of range (var)

    The variable being accessed is out with the established range for the runner.

    Pop:: Execution Error - Variable Get (var)

    The given variable has not been defined or is unknown.

  17. With

    Cannot use global in with statement

    You have tried to use "global" as a variable within a "with" statement, ie:
    with (global)
       {
       //do something;
       }


    Cannot use local in with statement

    You have tried to use "local" as a variable within a "with" statement, ie:
    with (local)
       {
       //do something;
       }


  18. General

    DoCall:: Execution Engine type error

    This is an undefined error within the Virtual Machine. You should file a bug report should this happen (see: The Help Menu for details on how to do this.

  19. Stack Overflow...

    A stack overflow occurs when too much memory is used on the call stack and when your game attempts to use more space than is available on the call stack (that is, when it attempts to access memory beyond the call stack's bounds, which is essentially a buffer overflow), the stack is said to overflow, resulting in a program crash. Restart your computer and GameMaker: Studio and if the error persists please get in touch with support and/or file a bug (as explained above).


Back: Debugging
Next: Compile Errors
© Copyright YoYo Games Ltd. 2018 All Rights Reserved