So most commonly you don’t use a scripting runtime with bevy (I don’t even know if there are any), you write the game logic in actual rust code. As far as I know, the game has to be recompiled in that case, forcing you to restart the game. Luckily, it’s usually pretty quick to restart a bevy game, though.
I usually develop with the game launched through cargo-watch, so each time I save code, the game is automatically restarted.
cargo watch -i assets -cx run
Also, for non-code assets (and also shaders), hot reloading is usually supported (but has to be enabled), so changes are immediately visible. This is even supported by a lot of plugins (for instance bevy_ecs_ldtk can update the level when you save .ldtk files).