Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Migrating to 0.16.0

https://github.com/makspll/bevy_mod_scripting/pull/455

Replace all usages of CallbackSettings<P>.callback_handler with P::handler()(..) and P::handle(..)

https://github.com/makspll/bevy_mod_scripting/pull/456

Replace all usages of CallbackBuilder<P>.load and CallbackBuilder<P>.reload with P::load(..) and P::reload(..) or P::context_loader()(..) and P::context_reloader()(..)

https://github.com/makspll/bevy_mod_scripting/pull/463

If you were relying on BMS enabling some features in Bevy crates, your builds might be pulling in less features than you expect. Ensure you explicitly select all features you need from bevy. BMS will now only pull in strictly necessary features and crates from bevy

https://github.com/makspll/bevy_mod_scripting/pull/470

Switch all references of ContextLoadingSettings to P::readonly_config(world.id()).

https://github.com/makspll/bevy_mod_scripting/pull/471

RuntimeSettings and RuntimeContainer are removed, replace usages with P::readonly_settings(world.id()).runtime) access to initializers is no longer possible outside the plugin setup phase

https://github.com/makspll/bevy_mod_scripting/pull/472

if you implemented a scripting plugin you will need to correct your function signatures for the above aliases, and fetch the config yourself to access callbacks via Plugin::readonly_configuration(world_id) using the world id you will now receive.

https://github.com/makspll/bevy_mod_scripting/pull/473

references to StaticScripts should be replaced with appropriate resident calls on ScriptContext filtered by the attachment kind

https://github.com/makspll/bevy_mod_scripting/pull/474

  • ScriptContext Access: Use .read() and .write() to access ScriptContext (now wrapped in Arc<RwLock<>>); replace get() with get_context()
  • HandlerContext: Replace with direct ScriptContext access; remove any with_handler_system_state() calls
  • Script Callbacks: Use new call_context_dynamic() or call_context() methods from the CallContext trait
  • Custom Context Types: Implement the new GetPluginFor trait to provide mapping from context to plugin type
  • Lua Interaction: Replace mlua::Lua with LuaContext wrapper type in all Lua code on BMS side
  • Script Callback Running: Replace run_with_handler() calls with run_with_context() or run_with_contexts()

https://github.com/makspll/bevy_mod_scripting/pull/475

  • References previously resident in bevy_mod_scripting_core::asset/bevy_mod_scripting::core::asset will now need to come from bevy_mod_scripting_asset or bevy_mod_scripting::asset
  • Adding supported extensions will now need to be done via scripting_plugin.add_supported_extension("extension") rather than via the app directly
  • Plugin implementors will need to add the new crate as a dependency and should not directly rely on the top workspace crate

https://github.com/makspll/bevy_mod_scripting/pull/477

  • Update imports to new crates (bevy_mod_scripting_bindings, bevy_mod_scripting_display, bevy_mod_scripting_asset) where appropriate, if you rely on the workspace these will be re-exported under bindings, display and asset respectively
  • Replace DisplayWithWorld usage with DisplayWithTypeInfo / DebugWithTypeInfo and use WithTypeInfo::new(value) in format strings. Ensure that the WorldGuard is in scope when printing using these utilities, or you might see raw type id's