What Is the Inventory System?

The CSMS inventory system lets you pick up, drop, give, and throw items using natural language — no menus, no clutter. Your character sheet automatically tracks what you're carrying, and the AI always knows what's in your hands.

Prefix the action in your input with act_ and the script handles the rest.

Immersion first. The act_ prefix is stripped before the AI ever sees your input. What the AI reads is clean prose — exactly as you wrote it, just without the prefix.

Basic Usage

Add act_ directly before the action keyword anywhere in your input. Everything before and after is preserved.

What you typeWhat the AI sees
I walk over and act_grab the briefcase.I walk over and grab the briefcase.
act_drop the knife on the floor.drop the knife on the floor.
Alex act_hand the folder to Marcus.Alex hand the folder to Marcus.
I turn and act_throw the bottle at the guard.I turn and throw the bottle at the guard.

Keyword List

Any of these words after act_ will trigger the inventory system:

ActionKeywordsEffect
Taketake, grab, pick up, collect, retrieve, get, acquire, tuckAdds item to your inventory
Dropdrop, discard, throw away, leave, abandon, let go ofRemoves item from your inventory
Givegive, hand, pass, offer, deliver, transfer, slide, shoveTransfers item to another character
Throwthrow, toss, hurl, fling, chuck, lobRemoves item, optional target character

Taking From Another Character

Use from followed by their name:

act_take documents from Sarah
act_grab the keycard from the guard
I reach over and act_take the envelope from Marcus.
The character must have a 📋 sheet. You can only take items from characters tracked by CSMS. NPCs without a sheet aren't tracked — the script won't know what they're carrying.

Giving to Another Character

Use to followed by their name. The item must be in your inventory first:

act_give the documents to Sarah
I lean across the table and act_hand the keycard to Marcus.
Always use the character's name — never pronouns. act_give her the files will fail. act_give files to Sarah works.

Throwing at a Target

Use at followed by a name, or throw with no target to discard:

act_throw the bottle at Marcus
act_hurl the knife at the guard
I pull the pin and act_toss it away.

Throwing removes the item from your inventory regardless of whether it hits. The AI narrates what happens next.

Your Inventory on the Character Sheet

Your inventory lives in the Notes field of your 📋 card, inside the [Inventory] block:

[Inventory]
- leather jacket
- burner phone
- P99-Pistol
- crumpled note "Meet at pier 7, midnight"

[Ordinances]
-

You can edit this directly — open your 📋 card in the Story Cards panel and add or remove items manually. The script reads it automatically on the next action.

Formatting rules: Each item is one line starting with - . Items with embedded text use quoted format — - note "text here". The quoted text is part of the item name, not a comment.

Item Naming Tips

The script matches items by exact name (case insensitive). What you type to pick something up is what gets stored — and what you need to type to interact with it later.

SituationRecommendation
Multi-word itemsP99-Pistol, Glock-17 — hyphens keep the name together cleanly
Multiple of the same itemEach appears as a separate line — - knife twice means two knives
Specific vs genericact_take knifeact_take sharp knife — be consistent with naming
Stacking notationbottle x3 works as a name — but you must type it exactly each time

When You Don't Have the Item

If you try to drop, give, or throw something you're not carrying, the script replaces your input with a natural failure — the AI narrates the moment gracefully:

— You type —
I walk to the desk and act_drop the keycard.

— You don't have it, so the AI sees —
I walk to the desk and reach for the keycard, but realize it isn't there.

— The AI narrates —
Your hand moves to your jacket pocket out of habit, but comes up empty.
The keycard isn't there. You stand at the desk, momentarily at a loss.
Plans fail naturally. The input field is your character's intention. When the check fails, the story reflects that — no immersion broken, no error messages in the feed.

Rules & Limitations

One item at a time

Each act_ inventory command handles a single item. For multiple items, use separate inputs:

act_take Glock-17 from Marcus
act_take P99-Pistol from Marcus

One inventory act_ per input

If you include two inventory actions in one input, both will fire:

I grab Marcus by the collar and act_take his keycard. ✅
act_take the knife and act_tuck it into my belt. ⚠️ (both fire — item added twice)

Receiver must have a character sheet

You can only give to or take from characters with a 📋 sheet. Generic NPCs like "the guard" or "the clerk" aren't tracked unless a sheet exists for them.

No pronouns for receivers

act_give him the gun will fail. act_give gun to Marcus works. Always use the character's actual name.

Location phrases are stripped automatically

act_drop wallet on the desk — "on the desk" is stripped from the item name. What gets removed is "wallet", not "wallet on the desk".