Module bevy::app::prelude


  • App is the primary API for writing user applications. It automates the setup of a standard lifecycle and provides interface glue for plugins.
  • Runs first in the schedule.
  • Runs first in the FixedMain schedule.
  • The schedule that runs last in FixedMain
  • The schedule that runs after the FixedUpdate schedule, for reacting to changes made in the main update logic.
  • The schedule that contains logic that must run before FixedUpdate.
  • The schedule that contains most gameplay logic.
  • Runs last in the schedule.
  • The schedule that contains the app logic that is evaluated each tick of App::update().
  • The schedule that runs once after Startup.
  • The schedule that contains logic that must run after Update. For example, synchronizing “local transforms” in a hierarchy to “global” absolute transforms. This enables the PostUpdate transform-sync system to react to “local transform” changes in Update without the Update systems needing to know about (or add scheduler dependencies for) the “global transform sync system”.
  • The schedule that runs before Startup.
  • The schedule that contains logic that must run before Update. For example, a system that reads raw keyboard input OS events into an Events resource. This enables systems in Update to consume the events from the Events resource without actually knowing about (or taking a direct scheduler dependency on) the “os-level keyboard event system”.
  • The schedule that contains scene spawning.
  • The schedule that runs once when the app starts.
  • A secondary application with its own World. These can run independently of each other.
  • The schedule that contains app logic. Ideally containing anything that must run once per render frame, such as UI.


  • An event that indicates the App should exit. If one or more of these are present at the end of an update, the runner will end and (maybe) return control to the caller.


Derive Macros§

  • Generates a dynamic plugin entry point function for the given Plugin type.