--- name: bevy-data-resources description: "Place Bevy 0.20 gameplay data on a Component or a Resource. Use when choosing Query versus Res/ResMut, insert_resource, Time and Timer, or a RON/asset handle stored once for the app. Keywords: Bevy, Resource, Res, ResMut, Component, Timer, AssetServer." --- # Bevy data resources ## When to use Load this when you are deciding where a piece of data lives: on many entities, or once for the whole app. The Resources page and the ECS page are the source for the names below. ## ECS shape - **Components** are for data you query across entities (`Component`, `Query`). Use them when many things carry the same kind of fields. - **Resources** are globally unique data (`Resource`). The Resources page names elapsed time, asset collections, and renderers as examples. Access them with `Res` (read) and `ResMut` (write). - **Insert.** `insert_resource` places a resource on the `App`. The page's sample derives `Resource` on `GreetTimer(Timer)` and inserts `Timer::from_seconds(2.0, TimerMode::Repeating)`. - **Time.** `Time` is inserted by `add_plugins(DefaultPlugins)`. `time.delta()` is the elapsed time since the last update. `Timer::tick` and `just_finished` are the page's timer methods. - **Schedule:** The sample reads `Res