BerryBots programs are written in Lua. If you're new to Lua, check out the Lua 5.1 Manual, the Tutorial Directory at the Lua-users wiki, or learn by example from the BerryBots sample programs.

To create a ship or stage, your Lua program must implement the functions of the ShipControl or StageControl interface. These functions are called by BerryBots before, during, and after the match. The parameters passed to them allow your program to learn about and control the gameplay elements in BerryBots.

The Game Runner API lets you write code to execute BerryBots matches, process the results, and (optionally) save replays. To write a Game Runner, your Lua program must implement the functions of the RunnerControl interface. The parameters passed to your program allow it to specify input parameters, prompt a user for input, queue BerryBots matches, process match results, save replays, and read and write files to disk.

For more information about programming for BerryBots, or to post about your own creations, visit the BerryBots Wiki.

Ship / Stage Modules

Admin Provides administrative superpowers to a stage control program.
DebugGfx Provides graphical debugging for ships and stages.
Sensors A ship's sensors, which provide information about events that occurred on the previous tick.
Ship A ship controlled by a user written program.
ShipControl The API to be implemented by a ship control program.
StageBuilder Used to configure stage properties before the game starts.
StageControl The API to be implemented by a stage control program.
StageSensors The stage's sensors, which provide information about all events that occurred this tick.
World The game world.

Game Runner Modules

MatchRunner Executes BerryBots matches and returns the results.
RunnerControl The API to be implemented by a Game Runner control program.
RunnerFiles A file access object used by a Game Runner program to read and write data files or programs to disk.
RunnerForm A form used by a Game Runner program to configure parameters.