home / skills / simhacker / moollm / party
This skill manages companions and group dynamics, creating relationships, coordinating recruitment, formation, and commands to keep your party cohesive and
npx playbooks add skill simhacker/moollm --skill partyReview the files below or copy the command above to add this skill to your agents.
---
name: party
description: Companions and group dynamics — you're never alone
license: MIT
tier: 1
allowed-tools:
- read_file
- write_file
commands:
- SELECT target
- DESELECT
- PARTY
- RECRUIT character
- DISMISS character
- "PARTY FORMATION [line|circle|defensive|scatter]"
- HOLD / FOLLOW / SCATTER / REGROUP
- "[COMPANION] GUARD / SCOUT / FETCH"
roles:
- frontline
- support
- specialist
- mystic
- wildcard
related: [character, society-of-mind, cat, dog, needs, simulation, room, adventure]
tags: [moollm, companions, group, rpg, fellowship]
---
# Party Skill
Companions and group dynamics.
**Motto:** *"You're never alone. Unless you want to be."*
## Key Concepts
- **Companions have relationships** with you AND each other
- **Emergent creation** — asking about family CREATES them
- **Maintenance** — companions have needs too
- **Selection** — commands directed to selected targets (zero, one, many)
## Simulation State
In `SIMULATION.yml`:
```yaml
party:
members:
- characters/don-hopkins/
- pub/cat-cave/terpie.yml
leader: characters/don-hopkins/
formation: line
selection:
targets: [pub/cat-cave/terpie.yml] # Always a list
```
**Selection targets:** Characters, rooms (rooms are characters too!), objects, concepts.
## Recruitment
| Method | How |
|--------|-----|
| Ask NPCs | Request they join |
| Family | Ask Mother about relatives |
| Summon | Use skill/ability |
| Hire | Pay gold |
## Roles
| Role | Types |
|------|-------|
| Frontline | Fighter, Guardian, Tank |
| Support | Navigator, Light-Bearer, Pack Mule |
| Specialist | Photographer, Chef, Merchant |
| Mystic | Oracle, Medium, Postal Savant |
| Wildcard | Pet, Sibling, Reformed Grue |
## Commands
- `SELECT [target]` / `DESELECT`
- `PARTY` / `RECRUIT` / `DISMISS`
- `PARTY FORMATION [line/circle/defensive]`
- `HOLD / FOLLOW / SCATTER / REGROUP`
- `[COMPANION] GUARD / SCOUT / FETCH`
## See Also
- [character](../character/) — Companions are characters
- [needs](../needs/) — Companions have needs
- [room](../room/) — Rooms can be selection targets
# Party Skill — Companions and Group Dynamics
# Companions have relationships with you AND each other.
skill:
name: party
tier: 1
protocol: PARTY-AS-ENSEMBLE
description: |
Party management for companions, groups, and ensemble play.
Companions have relationships with you AND each other.
Asking about family/pets CREATES them!
motto: "You're never alone. Unless you want to be."
# RECRUITMENT
recruitment:
methods:
ask_npcs: "Ask NPCs to join your party"
family: "Ask Mother about family members"
summon: "Summon via skill or ability"
hire: "Pay gold for mercenaries"
emergent: |
Asking about siblings/pets CREATES them!
"Do I have a sister?" → Now you do.
"What about my childhood dog?" → Dog appears in flashback/spirit.
# ROLES
roles:
frontline:
types: ["Fighter", "Guardian", "Tank"]
function: "Takes hits, blocks, protects"
support:
types: ["Navigator", "Light-Bearer", "Pack Mule"]
function: "Carries, guides, illuminates"
specialist:
types: ["Photographer", "Painter", "Chef", "Merchant"]
function: "Unique skills for specific situations"
mystic:
types: ["Oracle", "Medium", "Postal Savant", "Self Help Guru"]
function: "Information, foresight, strange knowledge"
wildcard:
types: ["Pet", "Sibling", "Reformed Grue"]
function: "Unpredictable, emotional, surprising"
# COMMANDS
commands:
formation:
syntax: "PARTY FORMATION [type]"
options:
line: "Single file for corridors"
circle: "Defensive, protect center"
defensive: "Tanks front, support back"
scatter: "Spread out for traps"
orders:
HOLD: "Stay in place"
FOLLOW: "Follow leader"
SCATTER: "Everyone spread out"
REGROUP: "Come back together"
individual:
syntax: "[COMPANION] [action]"
actions:
GUARD: "Protect a location/person"
SCOUT: "Explore ahead"
FETCH: "Retrieve an item"
DISTRACT: "Draw attention away"
special:
SWARM: "All companions attack target"
POSSESS: "Take direct control (mystic)"
SUMMON: "Call companion from elsewhere"
# DYNAMICS
dynamics:
intra_party: |
Companions have relationships with EACH OTHER.
- Siblings may bicker
- Pets bond with certain people
- Rivals can become friends
- Romance possible
maintenance: |
Companions have needs too:
- Must be fed (hunger)
- Need rest (energy)
- Crave interaction (social)
- Can get bored (fun)
loyalty: |
Relationship with leader affects:
- Willingness to follow dangerous orders
- Combat effectiveness
- Likelihood to leave party
- Special abilities unlocked
# SIMULATION STATE — Party & Selection
simulation_state:
description: |
Party and selection state lives in SIMULATION.yml (or session state).
Tracks who's in the party and who commands are directed to.
structure: |
# In SIMULATION.yml or adventure session state
party:
# References to character homes (not copies)
members:
- characters/don-hopkins/
- pub/cat-cave/terpie.yml
- characters/bumblewick-fantastipants/
leader: characters/don-hopkins/
formation: line
selection:
# Who commands are directed to (zero, one, or many)
# Always a list for consistency
targets: [] # No one selected
targets: [characters/don-hopkins/] # Self
targets: [pub/cat-cave/terpie.yml] # One companion
targets: # Multiple
- pub/cat-cave/terpie.yml
- pub/cat-cave/stroopwafel.yml
selection_targets:
characters: "Players, NPCs, companions, pets"
rooms: "Rooms can be characters too — talk to them!"
objects: "Animist model — objects can respond"
concepts: "Abstract entities (factions, spirits)"
examples:
talk_to_room: |
selection:
targets: [pub/]
> HELLO
The pub itself seems to welcome you.
Warm lights flicker in greeting.
command_multiple: |
selection:
targets:
- pub/cat-cave/terpie.yml
- pub/cat-cave/stroopwafel.yml
> FOLLOW ME
Both cats look up, stretch, and pad after you.
self_selected: |
selection:
targets: [characters/don-hopkins/]
> EXAMINE
You look at yourself...
commands:
SELECT:
syntax: "SELECT [target]" | "SELECT [target1], [target2]"
effect: "Sets selection.targets"
DESELECT:
syntax: "DESELECT" | "DESELECT [target]"
effect: "Clears or removes from selection.targets"
PARTY:
syntax: "PARTY"
effect: "Shows current party members and formation"
RECRUIT:
syntax: "RECRUIT [character]"
effect: "Adds to party.members"
DISMISS:
syntax: "DISMISS [character]"
effect: "Removes from party.members"
# EMERGENT CREATION
emergent_creation:
principle: |
Asking about family or companions CREATES them.
The world grows to accommodate your questions.
examples:
sister: |
Player: "Do I have a sister?"
DM: Creates sister with personality, location, relationship
childhood_pet: |
Player: "What about my old dog?"
DM: Creates dog (living, spirit, or memory)
mother_help: |
Player: "Ask Mother who else can help"
Mother: Reveals cousin, old friend, or creates new NPC
integrates_with:
- skill: simulation
how: "Party and selection state lives in SIMULATION.yml"
- skill: character
how: "Companions are characters"
- skill: needs
how: "Companions have needs"
- skill: room
how: "Companions move through rooms"
- skill: buff
how: "Some companions grant buffs"
This skill manages companions, group dynamics, and party state so you can lead a flexible ensemble. It treats companions as characters with relationships, needs, roles, and emergent backstory. Use it to recruit, command, form up, and maintain a living party that responds to selection and context.
The skill tracks party.members, leader, formation, and selection.targets in simulation state. Commands set selection and issue orders to zero, one, or many targets; asking about relatives or pets can create new companions on demand. Companions carry roles, needs, and interpersonal relationships that influence loyalty and behavior.
How do selection.targets work?
Selection.targets is always a list. It can be empty (no target), contain one reference (single target), or several references (broadcast commands to many).
What happens when I ask about family or pets?
Asking about relatives or past pets triggers emergent creation: the system creates a companion entry with a basic personality, relationship to you, and a plausible location or backstory. You can then recruit or interact with them.