<!-- Page: https://rustic-game-engine.pages.dev/docs/guides/gameplay-programming/external-process-languages/runtime-integration -->

# External language runtime integration

[Back to External process languages](https://rustic-game-engine.pages.dev/markdown/guides/gameplay-programming/external-process-languages.md).

Every supported gameplay language calls the engine-owned API. SDKs are supplied
by Rustic during validation/build and at runtime; generated editor copies live in
`.rustic/generated/programming`. Gameplay scripts do not implement a JSON request
loop, build response commands, or serialize output. Existing custom protocol
programs remain compatible, but new scripts should use the native API.

Lua and JavaScript use embedded bindings. Python, C#, C, C++, Java, PHP, and Luau
use persistent isolated sessions. The engine supplies each callback's owner state,
input, properties, attributes and scene references. External mutations apply after
the callback in issue order. Luau returns a behavior table and keeps its typed
locals alive across callbacks; its engine-owned Luau host handles invocation.
CSS alone is styling; HTML inline JavaScript has the JavaScript API.
