Lua Development

From Zero-K
Jump to navigation Jump to search

Lua FAQ

Lua scripting is the primary way for developers to customize their games and add new features. Most aspects of the Spring engine can be controlled and extensively modified through the Lua API.

Introduction to Lua in Spring

Interfaces (last update: 104)

Environments (Details the available environments and shows which interfaces are loaded by each)

Callins (Entry points to lua addons)

System
Lua_System

Const
Lua_ConstGame (holds game relevant constants)
Lua_ConstEngine (version & buildflags)
Lua_ConstPlatform (Current OS, video driver etc)
Lua_ConstCOB (COB, Explode, EmitSfx)
Lua_CMDs (documents all CMDs and CMDTYPEs)

Defs
Lua_UnitDefs
Lua_WeaponDefs
Lua_FeatureDefs

GameState
Lua_SyncedCtrl
Lua_SyncedRead
Lua_SaveLoad (engine-assisted Lua save/load)

Client
Lua_UnsyncedCtrl
Lua_UnsyncedRead
Lua_Lobby

OpenGL
Lua_OpenGL_Api
Lua_GLSL_Api (OpenGL Shading Language)
Lua_FBO_and_RBO (Framebuffer and Renderbuffer Objects)
Lua_UnitRendering (manage unit LODs and materials)
Lua_ConstGL (some OpenGL constants)
Lua_Fonts

Unit Physics
Lua_MoveCtrl (changes the physics of single units)
Lua_PathFinder

Engine
Lua_VFS (used to access files in the virtual filesystem, e.g. modfiles)
Lua_Scream
Lua_BitOps
Lua_MathExtra
Lua_Socket

Tutorials

Other useful information

Official Lua documentation

'Programming in Lua' book online
Lua 5.1 Reference manual
Lua tutorials