Skip to main content

evennia-mob-spawner

A declarative YAML-driven mob spawn system for Evennia.

Spawn rules — what typeclass spawns where, how many, how often — are expressed as data; a persistent script maintains the population against the running game's database. The library is the spawn equivalent of evennia-world-builder: world-builder owns static content (rooms, exits, fixtures, immortal NPCs); this library owns refreshing populations (mobs that die, respawn, and self-heal).

Status

Working. The full pipeline — Reader → Loader → Validator → Deployer — is implemented. One persistent script per rule-set file maintains populations across restarts and content rebuilds without losing cooldown state. Six admin commands (ms_load, ms_status, ms_stop, ms_restart, ms_delete, ms_spawn_report), each gated to the process that can correctly answer for it. 274 tests green, live-verified on a two-process sharded deployment against a real consumer game. See docs/progress.md for the running milestone log.

Is this for me?

This library is useful if you are building an Evennia game that:

  • Wants to express mob population rules as data (typeclass + area tag + cooldown + cap) rather than as Python builders.
  • Wants population maintenance to self-heal across server restarts and content rebuilds without losing cooldown state.
  • Wants rule files to live in a separate content repo (e.g. alongside your declarative world content), iterated locally and deployed from GitHub.

If your game's mob spawning is a few hand-coded scripts that rarely change, you do not need this library.

Install

pip install evennia-mob-spawner

Editable install for development against a checkout:

git clone https://github.com/FullCircleMUD/evennia-mob-spawner.git
cd evennia-mob-spawner
python -m venv venv
# Activate the venv (platform-specific)
pip install -e .
python runtests.py

Compatibility with evennia-shards

The library is shards-compatible but does not require shards. If evennia-shards is installed alongside, the ms_load / ms_validate commands automatically carry the active multi-tenant context across their run_async worker-thread dispatch — the Script rows created in the worker get stamped with the running process's shard_id and become correctly scoped under the auto-filter. If shards isn't installed, the library falls back to an identity passthrough at import time and behaves identically to a non-sharded deployment. No configuration needed either way; the integration is a try-import in commands.py using shards' preserve_tenant_context helper. See docs/shards-compatibility.md.

Co-installed, the pairing also requires shard as the first declared level and confines ms_load to the shard it is running as. See docs/interoperability.md.

Learn more

  • CLAUDE.md — load-bearing principles and orientation for working in the repository.
  • docs/INDEX.md — index of design documents.
  • docs/architecture.md — the spawn system's mechanisms and the library / consumer ownership boundary; the first architectural pass.

License

BSD 3-Clause. See LICENSE.

Metadata

Release files for evennia-mob-spawner 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for evennia-mob-spawner 0.1.2
File Size Uploaded
evennia_mob_spawner-0.1.2.tar.gz 74.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for evennia-mob-spawner 0.1.2
File Interpreter ABI Platform
evennia_mob_spawner-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 152.8 kB

Release files / evennia_mob_spawner-0.1.2.tar.gz

Download URL evennia_mob_spawner-0.1.2.tar.gz
Size 74.2 kB
Tags Source
SHA-256 checksum
How to use checksums
8ef1c023e7fccf03ef9c38830a261dc17f4699ab904cd613f81a633c2685da4b
BLAKE2b-256 checksum
How to use checksums
213ab71b95739f668b8dec60159c906051a73410530f9b171931e79e65ab91bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release files / evennia_mob_spawner-0.1.2-py3-none-any.whl

Download URL evennia_mob_spawner-0.1.2-py3-none-any.whl
Size 78.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
861203f7387f69e88fa2e5428cd7be3953a36fa21edc1988157f64f1a62f8078
BLAKE2b-256 checksum
How to use checksums
22449ba32f20045a733264887fb14fa502480fad6c2cc981f462c22d2467bc80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.12.3

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page