
Bevy Data Resources
Place Bevy 0.20 gameplay data on a Component or a Resource.
Install
npx skills add thedivergentai/Game-Dev-Agentic-Skills --skill bevy-data-resources -g -a claude-code -y- Repository
- thedivergentai/Game-Dev-Agentic-Skills917
- Category
- Engineering
- Updated
- 19d ago
- License
- LGPL-3.0
- Context cost
- Mediumabout 1,986 tokens
- Runs scripts
- No, instructions only
What it does
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 withRes<T>(read) andResMut<T>(write). - Insert.
insert_resourceplaces a resource on theApp. The page's sample derivesResourceonGreetTimer(Timer)and insertsTimer::from_seconds(2.0, TimerMode::Repeating). - Time.
Timeis inserted byadd_plugins(DefaultPlugins).time.delta()is the elapsed time since the last update.Timer::tickandjust_finishedare the page's timer methods. - Schedule: The sample reads
Res<Time>andResMut<GreetTimer>inside anUpdatesystem. Startup versus update is on the ECS page.
A resource can hold asset handles loaded through AssetServer. The handles are data; the loader stays on the asset server.
Where data lives
| Need | Bevy idiom |
|---|---|
| Data on one gameplay thing | A Component |
| One copy for the whole app | A Resource inserted with insert_resource |
| Shared clock | Time from DefaultPlugins, or your own Resource |
| Authored data file | serde plus ron::from_str into a Resource, or Handle<Mesh> from AssetServer |
Scope
- Handles, RON tables, and plugin
insert_resourcecalls are in the examples below. - Per-entity data files and save blobs are out of scope. See bevy-save-load.
[package]
name = "data-resources"
version = "0.1.0"
edition = "2021"
[dependencies]
bevy = "0.20"
serde = { version = "1", features = ["derive"] }
ron = "0.10"
One greet timer resource, ticked from Time on Update.
