Introduction
Knight is a from-scratch SA-MP 0.3.7 / 0.3.DL server and a native, statically-typed scripting language.
Knight is a from-scratch SA-MP 0.3.7 / 0.3.DL server written in Go, paired with Knight, a small statically-typed language for gamemodes.
A gamemode is a single .sa file. You declare callbacks, configure the server, and call native functions directly by name — no namespace prefix, no self, no object methods.
knight
player::connect(int playerid) {
SendClientMessage(playerid, "Welcome, {PlayerName(playerid)}!");
};
player::spawn(int playerid) {
SetPlayerHealth(playerid, 100.0);
};
Why Knight
- Native-first API — call
SetPlayerHealth(playerid, 100.0)directly. - Statically typed — mistakes are caught before the server starts.
- Fast — the language runs on a native evaluator, no VM in between.
- Small footprint — around 18 MB RSS with 1000 connected bots.
- 0.3.7 and 0.3.DL — old clients keep working with safe fallbacks.