Persistent key-value store across reloads

State

A simple persistent key-value store that survives script reloads and server restarts. Data is stored as JSON.

Works like a dict — read, write, and delete keys directly. Auto-saves on script shutdown.


Constructor

State(name=None)
state = State()            # Uses script name
state = State("my_data")   # Custom name

Usage

state = State()

# Read/write like a dict
state["kills"] = state.get("kills", 0) + 1
state["banned_players"] = ["Steve", "Alex"]

# Check membership
if "kills" in state:
    print(state["kills"])

# Delete
del state["banned_players"]

# Manual save (also auto-saves on shutdown)
state.save()

Methods

save

state.save()

Save state to disk. Called automatically on script shutdown, but you can call it manually for safety.

load

state.load()

Reload state from disk. Called automatically on construction.

get

state.get(key, default=None)

Get a value with a default fallback.

clear

state.clear()

Remove all keys.

update

state.update({"key": "value", ...})

Merge a dict into the state.


Properties

data

Direct access to the underlying data dict.

path

Path to the state file on disk.


Example: Kill counter

from bridge import *

state = State()

@event
async def player_death(e):
    killer = e.killer
    if killer:
        name = killer.name
        state[name] = state.get(name, 0) + 1
        await killer.send_message(f"Kills: {state[name]}")
        state.save()

Example: Persistent warps

from bridge import *

state = State("warps")

@command("Set a warp point")
async def setwarp(e, name: str):
    loc = e.player.location
    state[name] = {"x": loc.x, "y": loc.y, "z": loc.z, "world": loc.world.name}
    state.save()
    await e.player.send_message(f"Warp '{name}' set!")

@command("Teleport to warp")
async def warp(e, name: str):
    data = state.get(name)
    if not data:
        await e.player.send_message(f"Warp '{name}' not found.")
        return
    loc = Location(data["x"], data["y"], data["z"], data["world"])
    await e.player.teleport(loc)