Diagnostics
AES1001code
This character cannot appear here.
Fix: Use ASCII letters for names, put other text inside a string, and use && or || instead of & or |.
AES1002code
The string literal has no closing quote.
Fix: Add " at the end of the string.
AES1003code
The escape sequence after \ is not supported.
Fix: Use \n, \t, ", \ or \uXXXX.
AES1004code
The word is reserved for a future version of the language.
Fix: Rename the identifier.
AES1005code
The number literal is malformed.
Fix: Write digits after the point (1.0, not 1.) and separate digits with _ only between digits.
AES1006code
The block comment has no closing */.
Fix: Add */ where the comment should end.
AES1007code
The file contains bytes that are not valid UTF-8.
Fix: Save the file as UTF-8.
AES1008code
A string literal cannot span lines.
Fix: Close the string on the same line or use \n.
AES1101code
The parser expected something else at this point.
Fix: Check for a missing bracket, comma or operator just before this position.
AES1102code
Every script file starts with a package clause.
Fix: Add package <directory name> as the first line.
AES1103code
Attributes are allowed only on scripts and script fields.
Fix: Move the attribute above a script or a var inside a script, or remove it.
AES1104code
Imports must come before any declaration.
Fix: Move the import to the top of the file, after the package clause.
AES1105code
Packages cannot hold mutable state.
Fix: Use const for fixed values, or move the variable into a script as a field.
AES1106code
Types, functions and constants are declared at package level.
Fix: Move the declaration out of the function body.
AES1107code
The left side of := must be one new name.
Fix: Write name := value, or use = to assign to an existing field or element.
AES1108code
A composite literal key must be a field name.
Fix: Write Type{Field: value}.
AES1109code
The code is nested too deeply.
Fix: Split the expression or block into helper functions.
AES1110code
The single part of a for loop must be a condition.
Fix: Write for cond {} or for init; cond; post {}.
AES1111code
A slice type here must be followed by a literal.
Fix: Write []T{...}.
AES1112code
Only one value can be assigned per statement.
Fix: Split the assignment into several statements.
AES1113code
else must follow the closing brace on the same line.
Fix: Write } else {.
AES2001code
The name is not declared in this scope.
Fix: Check the spelling, declare it, or add the missing import.
AES2002code
The name refers to something that is not a type.
Fix: Use a type name such as int, Vec2 or a declared struct.
AES2003code
The value has a different type than the place it is used.
Fix: Convert explicitly, for example float(x) or int(f).
AES2004code
The operator is not defined for these operand types.
Fix: Convert the operands to a type the operator supports.
AES2005code
The call passes a different number of arguments than the function expects.
Fix: Match the function signature; hover the function to see it.
AES2006code
The expression is not a function.
Fix: Remove the parentheses or call a function instead.
AES2007code
The left side cannot be assigned to.
Fix: Assign to a variable, field, slice element or writable component field.
AES2008code
The type has no field or member with this name.
Fix: Check the spelling; press Ctrl+Space after . to see the members.
AES2009code
The name starts with a lowercase letter, so it is private to its package.
Fix: Rename it to start with an uppercase letter if other packages need it.
AES2010code
A constant needs a value known at compile time.
Fix: Use literals and other constants only.
AES2011code
Integer division by a constant zero.
Fix: Check the divisor.
AES2012code
The constant does not fit its type.
Fix: Use a smaller value or a wider type.
AES2013code
The function can reach its end without returning a value.
Fix: Add a return statement on every path.
AES2014code
break or continue is outside a loop or switch.
Fix: Move it inside a for loop, or use return.
AES2015code
A switch on an enum must handle every member.
Fix: Add the missing cases or a default.
AES2016code
The same case value appears twice.
Fix: Remove the duplicate case.
AES2017code
A struct cannot contain itself by value.
Fix: Store the relation in a slice or remove the field.
AES2018code
The name is already declared in this scope.
Fix: Rename one of the declarations or remove one of them.
AES2019code
The returned value does not match the function result.
Fix: Return a value of the declared type, or none in a function without a result.
AES2020code
nil has no type of its own here.
Fix: Give the variable an explicit reference type: var r NodeRef = nil.
AES2021code
The type argument is not valid here.
Fix: Use Get/Has with a component name, AssetRef<Texture|Scene|Prefab|Mesh>.
AES2022code
A lifecycle method has the wrong signature.
Fix: Use func Ready(), func Update(dt float), func FixedUpdate(dt float), func Reloaded().
AES2023code
These types cannot be converted into each other.
Fix: Convert through int, float or string as documented.
AES2024code
The expression does not produce a value.
Fix: Call the function, or use a value instead of a type or package.
AES2025code
The value is computed and then thrown away.
Fix: Assign the result or remove the expression.
AES2026code
Constants refer to each other in a cycle.
Fix: Break the cycle with a literal value.
AES2027code
Constants can only be bool, int, float, string or enum.
Fix: Use a script field for other types.
AES2028code
The composite literal does not fit its type.
Fix: Use all keyed or all positional values, with the right count.
AES2029code
The function is too large to compile.
Fix: Split it into smaller functions.
AES2030code
The package was not built because a dependency has errors.
Fix: Fix the errors in the named package.
AES2031code
The variable is declared but never read.
Fix: Use it or remove it.
AES2032code
Slice elements may occupy at most 32 value slots.
Fix: Make the element struct smaller or store several slices.
AES2050code
yield suspends a coroutine, so it is allowed only inside a function declared as coroutine.
Fix: Declare the method as func Name() coroutine and start it with start Name().
AES2051code
A coroutine cannot be called like a plain function.
Fix: Write start Name(args); keep the result in a Coroutine field to stop it later.
AES2052code
start runs a coroutine method of the current script.
Fix: Mark the method with coroutine after its signature, or call a plain method directly.
AES2053code
A coroutine is a script method and returns no value.
Fix: Move it into a script and remove the result type; pass results through fields or signals.
AES2054code
The handler parameters must match the signal parameters exactly.
Fix: Change the handler to take the same types in the same order as the signal.
AES2055code
Connect takes a plain method of this script or ref.Method; signals are emitted only by their own script.
Fix: Pass a method name like OnDied or other.OnDied; call Emit only on a signal of this script.
AES2056code
Ready, Update, FixedUpdate and Reloaded are called by the engine and cannot be coroutines.
Fix: Keep the lifecycle method plain and write start Name() inside it.
AES2057code
wait takes seconds as float, frames and fixed take a count as int, a bare yield value must be a Coroutine.
Fix: Convert the value, for example yield wait(float(n)) or yield frames(int(t)).
AES2058code
ScriptRef and GetScript need the name of a script type.
Fix: Use the script name, or pkg.Name when the short name is ambiguous.
AES2059code
Lifecycle methods and coroutines run only on their own instance.
Fix: Call a plain method of the target that does the work, or connect to a signal.
AES3001code
Only scalar, vector, enum and reference fields can be exported.
Fix: Remove @export or change the field type.
AES3002code
The attribute is not known.
Fix: Use @export, @former or @hide.
AES3003code
The attribute argument is not valid.
Fix: See the attribute in the Script Reference; hover it for the accepted arguments.
AES3004code
The attribute or argument is given twice.
Fix: Keep one.
AES3005code
The attribute does not apply to this declaration.
Fix: Move it to a script or field, or remove it.
AES3006code
A field default must be a constant.
Fix: Use a literal or constant, or set the value in Ready.
AES4001code
The package clause must match the directory name.
Fix: Rename the package clause or move the file.
AES4002code
No script package or engine module has this path.
Fix: Check the path; script packages are directories under scripts/.
AES4003code
The package is imported twice.
Fix: Remove one import.
AES4004code
A package cannot import itself.
Fix: Remove the import.
AES4005code
Packages import each other in a cycle.
Fix: Move the shared code into a third package.
AES4006code
The name is declared twice.
Fix: Rename or remove one declaration.
AES4007code
An import uses the same name as a declaration.
Fix: Rename the declaration.
AES4008code
The import is not used.
Fix: Remove it.
AES4009code
Package paths under aego/ belong to the engine.
Fix: Change the project module.
AES4010code
A script package and an engine module share the same path.
Fix: Rename the script directory.
AES5001code
The engine or native module has no such member.
Fix: Check the name; press Ctrl+Space after the module name to list members.
AES6001code
The callback ran more instructions than its budget, usually an endless loop.
Fix: Make sure every loop ends within one frame.
AES6002code
A native Go binding panicked.
Fix: Fix the Go function; the Console shows its stack.
AES6003code
Calls nested more than 256 levels, usually endless recursion or re-emitting a signal from its handler.
Fix: Add a stopping condition.
AES6004code
A reference is nil or its node, component or script instance no longer exists.
Fix: Check if ref != nil and IsAlive before use.
AES6005code
The slice index is outside the slice.
Fix: Check the index against len(slice).
AES6006code
Integer division by zero at runtime.
Fix: Check the divisor before dividing.
AES6007code
A string or slice handle is invalid.
Fix: Report this as an engine bug.
AES6008code
A function reached its end without returning.
Fix: Add the missing return.
AES6009code
A call or binding could not be linked.
Fix: Rebuild the scripts and native code.
AES6010code
An engine or native function reported an error.
Fix: Read the message; it names the cause.
AES6100code
A compiled artifact is corrupt.
Fix: Reimport the scripts (Assets → Reimport).