makspll / makspll/bevy_mod_scripting

Script Systems & Components

Open
#244 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

enhancement
Dominant language
Rust
Stars
649
Forks
59
PR merge metrics
No merged PRs in 30d

Description

The idea of using scripts as systems, i.e. having a script declare functions which act like systems, with specific dependencies on the world, and scheduling them in such a way that they can access the world safely

  • Dynamic world access system

  • Handler resources should have interior mutability at bms_core level, so systems can run in parallel if they access different scripts

  • Reflecting schedules and systems, querying the ordering

  • Dynamically injecting systems into bevy schedule safely

  • Injected systems to specify access ahead of time, and dynamic systems are parallelizable against other systems

  • Multi threading scripts not necessary

  • Command - Deferred versions of the WorldGuard bindings (i.e. insert_component_deferred + better warnings if aliasing is broken, geared towards script authors who might not know rust)

  • Allow specifying read/write access in script builder as an optional argument as well as for queries

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the existing dynamic world access, WorldGuard bindings, injected systems, and script builder or query APIs. Compare how current systems specify access and how Bevy schedule injection is handled. Done means deferred WorldGuard commands and optional read/write access declarations for script systems and queries are implemented, with appropriate warnings preserved or improved.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
game-dev
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.