Lua Error Explanation

From Garry's Mod
Revision as of 18:14, 25 June 2017 by JasonMan (Talk | contribs)
Jump to: navigation, search

Contents

Attempt to call a nil value

Description: You tried to call a function that doesn't exist.

Possible causes:

  • Your function might be defined in another lua state. (e.g Calling a function on the client that only exists on the * server.)
  • You're using a metafunction on the wrong kind of object. (e.g. Calling :SteamID() on a Vector)
  • The function you're calling has an error in it which means it is not defined.
  • You've misspelled the name of the function.

Ways to fix:

  • Make sure the function exists
  • Make sure your function is defined in the correct realm
  • Check your function calls for spelling errors


Attempt to perform arithmetic on global '?' (a nil value)

Description: You tried to perform arithmetic (+, -, *, /) on a global variable that is not defined.

Possible causes:

  • You tried to use a local variable that was defined later in the code
  • You've misspelled the name of the global variable

Ways to fix:

  • Make sure you define local variables before calling them in the code
  • Check for spelling errors

Attempt to perform arithmetic on '?' (a type value)

Description: You tried to perform arithmetic (+, -, *, /) on a variable that cannot perform arithmetic. (e.g. 2 + "some string")


Attempt to index global 'varname' (a nil value)

Description: You tried to index an undefined variable (e.g. print( variable.index ) where variable is undefined)

Possible causes:

  • The variable is defined in a different realm
  • The variable is local and defined later in the code
  • You've misspelled the name of the variable

Ways to fix:

  • Make sure the variable is only accessed in the realm it was defined in
  • If the variable is local, define it before accessing it

Malformed number near 'number'

Description: There is a malformed number in the code (e.g. 1.2.3, 2f)

Possible causes:

  • An IP address was written as a number instead of a string
  • Incorrect writing of multiplication of a number and a variable

Ways to fix:

  • Store IP addresses as a string
  • Multiply variables with numbers by using the * operator


Unexpected symbol near 'symbol'

Description: You typed a symbol in the code that Lua didn't know how to interpret.

Possible causes:

  • Incorrect syntax (e.g. Forgot to write "then" after an if statement)
  • Not closing brackets and parenthesis at the correct locations

Ways to fix:

  • Make sure there are no mistypes in the code
  • Close brackets and parenthesis correctly (See: Code Indentation)

'symbol1' expected near 'symbol2'

Description: Lua expected symbol1 instead of symbol2

Possible causes:

  • Not closing all brackets and parenthesis before the end of the file
  • Wrong operator calling (e.g. "==" instead of "=")

Ways to Fix

  • Close brackets and parenthesis correctly (See: Code Indentation)
  • Use the correct operators
Personal tools
Navigation