QScript

QScript is the frontend language used in Neversoft's in-house engine and their games, such as the Tony Hawk's Pro Skater and Guitar Hero games, which has been present since Pro Skater 3 (2001), up until the last game developed by Neversoft, Guitar Hero: Warriors of Rock (2010).

It was created by Kendall Harrison,[1] and is more infamously known as QB, and its script items containing bytecode, "QbScript", due to its extension name and implementation name in Nanook's QueenBee program used to view compiled QScript files. The internal name of its compiler in official source code is "qcomp".[2] Q scripts have the extension ".q", and compiled ones have the extension ".qb", which stands for Q built, or "q binary".

Its syntax and structure is comparable to the Lua language, but is a little more limited and simplistic. The checksums used for the names of variables and items are created using CRC32 with a special polynomial.

The games don't have an internal way of handling syntax errors, and thus, in most cases, will cause the game to freeze if ever encountered.

QScript's way of storing variables and parameters differ from other languages. Unlike most languages where functions can only return a singular value, or return nothing at all, functions in QScript can return multiple variables to the script that is calling it.

A few fan made compilers attempt to implement this language for use with modding the games, such as NeverScript (THPS4–THUG2), NodeQBC and QBC (THAW–GH3), and ROQ (which is terrible), some of which have varying syntax, despite Q's simplicity, both in syntax and in data structure.

Harmonix's in-house engine, Milo/Forge (2001–2014, 2015—), used by Guitar Hero 1, 2, and the Rock Band series, has a similarly structured but more pseudo-style scripting and data system that is based on Lisp, unofficially known as DTA.