Draft: Provide user generated scripting with libsql and wasm
Metadata
- Status: Draft
- Deciders: V-Sekai,
- Tags: V-Sekai,, 20230125-user-generated-scripting-with-libsql-and-wasm
Context and Problem Statement
We want to have user scripting for interactivity for objects, pets and npcs.
Describe the proposed option and how it helps to overcome the problem or limitation
We implement the wasm scripts using libsql and a wasm runtime to be determined.
We had a previous implementation called WASGO. Possible names for the new one is WASGOQuery and WASGO.
Advantages:
- WAMR wasn’t well liked because it’s written in c/c++ and because it’s not widely used.
- WASMTIME is widely used and used for commercial / financial applications
Disadvantages:
- WASMTIME rust is hard to deploy
- WAMR is hard to use.
Open Questions:
Does it require determinism for clustering?
Design
We ONLY support floating point, integers, strings and byte arrays.

Positive Consequences
We can user script our worlds.
Negative Consequences
We cannot get other features in.
Option graveyard
- Option: The status quo.
- Rejection Reason: This solves nothing.
If this enhancement will not be used often, can it be worked around with a few lines of script?
Knowing what to do is hard.
Is there a reason why this should be core and done by us?
Scriptability is a core feature.
References
(Libsql Bindgen 2026): “libsql bindgen.” https://bindgen.libsql.org/ (Wasm Udfs in Sqlite 2026): “wasm udfs in sqlite.” https://blog.chiselstrike.com/webassembly-functions-for-your-sqlite-compatible-database-7e1ad95a2aa7
References
Libsql Bindgen. 2026. https://bindgen.libsql.org/.
Wasm Udfs in Sqlite. 2026. https://blog.chiselstrike.com/webassembly-functions-for-your-sqlite-compatible-database-7e1ad95a2aa7.