finds.dev← search

// the find

makspll/bevy_mod_scripting

★ 626 · Rust · Apache-2.0 · updated May 2026

Bevy Scripting Plugin

bevy_mod_scripting adds Lua and Rhai scripting to the Bevy game engine, letting you run game logic without recompiling. It's aimed at Bevy game developers who want hot-reloading or mod support. The crate handles script lifecycle, hot loading, event callbacks, and generates bindings for Bevy's own types automatically.

1. The binding system is genuinely well-designed — you write bindings once and they propagate to all supported languages, which avoids the usual per-language glue code explosion. 2. Scripts can register their own Bevy systems and run in parallel with existing Rust systems, which is a real integration rather than a scripting sandbox bolted on the side. 3. The no-panics policy enforced via clippy lints is unusual and meaningful for a plugin that runs inside a game loop — a panic from scripting infrastructure crashing the whole game is a real failure mode they've actually thought about. 4. Continuous benchmarking via bencher.dev with scripts stored in the repo means perf regressions are visible, not just assumed.

1. WASM is explicitly unsupported and has been an open issue for a while — this blocks browser targets entirely, which is a significant gap for any Bevy project targeting web. 2. Rune support is on hold after a rewrite, so the language matrix is effectively Lua variants plus Rhai — if you picked this crate for Rune, you're blocked. 3. The API tracks Bevy at the patch level, which means tight version coupling; the compatibility table already shows multiple 0.15.x entries for different patch releases, and you will get burned by this on upgrades. 4. The codegen layer is a separate workspace tool that regenerates Bevy bindings per release — it's necessary architecture but adds real complexity if you ever need to touch or debug the generated code.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →