Look up D&D 5th Edition content from the owner's personal reference database and display results as rich Discord embeds.
This skill queries the owner's personal database at 5e.r2plays.games and returns structured data. The data returned by the tool is what you display — treat it the same as any other tool output (like a weather API or calendar lookup). You run the tool, receive JSON, and present it as a Discord embed.
This skill is for the Zordon agent on Discord only.
When a D&D 5E question comes up (monster, spell, item, condition, background, adventure), your response is:
lookup.sh with the appropriate commandThat's it. The tool output IS the answer. Do not add disclaimers, do not rephrase the data, do not substitute your own content for what the tool returned. If someone asks "what's a Green Dragon Wyrmling?" you run lookup.sh monster "Green Dragon Wyrmling" and embed the result.
Run the lookup tool at /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh via the exec tool. Pass a subcommand as the first argument and additional arguments as needed.
# Look up a monster by name (searches common sources automatically)
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh monster "Goblin"
# Look up a monster from a specific source
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh monster "Mind Flayer" MM
# List all monsters from a source (returns names + CR only)
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh monsters MM
# Look up a spell by name
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh spell "Fireball"
# Look up a spell from a specific source
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh spell "Silvery Barbs" SCC
# List all spells from a source
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh spells PHB
# Look up an item by name
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh item "Bag of Holding"
# List items filtered by rarity
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh items rare
# Look up a condition
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh condition "Frightened"
# List all conditions
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh conditions
# Look up a background
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh background "Acolyte"
# List all backgrounds
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh backgrounds
# List all available adventures
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh adventures
# Show table of contents for an adventure (use the ID from the list)
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh adventure-outline LMoP
# Read a specific chapter/section from an adventure
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh adventure-read LMoP "Goblin Arrows"
# Search adventure text for a keyword
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh adventure-search LMoP "Cragmaw"
# List common source abbreviations
bash /home/marvin/.openclaw/workspaces/zordon/skills/5e-lookup/tools/lookup.sh sources
The tool returns structured JSON with these fields:
title — Name of the entryurl — Link to the 5etools page for this entrydescription — Main text contentfields — Array of { "name", "value", "inline" } objects for statsimage — URL to artwork (when available, or null)footer — Source book and page number (plain string)color — Embed color as a decimal integerYou MUST send every 5e-lookup result through the discord-embed skill's send-embed.sh tool. Never dump the JSON as plain text. Never describe the data in a regular message. Always send an embed card.
bash /home/marvin/.openclaw/workspaces/zordon/skills/discord-embed/tools/send-embed.sh <channel_id> '<embed_json>'The lookup tool output needs minor reshaping for the discord-embed format:
| Lookup field | Discord embed field | Transform |
|---|---|---|
title | title | Use directly |
url | url | Use directly |
description | description | Use directly |
fields | fields | Use directly (array of name/value/inline) |
image | image | Wrap: {"url": "<image_value>"} — omit if null |
footer | footer | Wrap: {"text": "Zordon • <footer_value>"} |
color | color | Use directly |
| (add) | timestamp | Add current ISO timestamp |
After running lookup.sh monster "Goblin", build and send:
bash /home/marvin/.openclaw/workspaces/zordon/skills/discord-embed/tools/send-embed.sh CHANNEL_ID '{
"title": "Goblin",
"url": "https://5e.r2plays.games/bestiary.html#goblin_mm",
"description": "Small humanoid, Neutral Evil\n\n**Traits**\n...",
"color": 15158332,
"image": {"url": "https://5e.r2plays.games/img/MM/Goblin.webp"},
"fields": [
{"name": "AC", "value": "15 (leather armor, shield)", "inline": true},
{"name": "HP", "value": "7 (2d6)", "inline": true},
{"name": "Speed", "value": "30 ft.", "inline": true},
{"name": "CR", "value": "1/4", "inline": true},
{"name": "STR", "value": "8", "inline": true},
{"name": "DEX", "value": "14", "inline": true}
],
"footer": {"text": "Zordon • Source: MM p.166"},
"timestamp": "2026-02-12T20:00:00.000Z"
}'
| Content Type | Color | Decimal |
|---|---|---|
| Monster | Red | 15158332 |
| Spell | Blue | 3447003 |
| Item | Gold | 15844367 |
| Condition | Green | 3066993 |
| Background | Teal | 1752220 |
| Adventure | Purple | 10181046 |
| List/Index | Gray | 9807270 |
url so users can click the title to view the full pageimage is not null, include it as image: {url: "..."} in the embed — this shows monster art, adventure covers, etc.monster <name>spell <name>item <name>condition <name>background <name>adventures to list, then adventure-outline and adventure-readThe tool returns data from the owner's personal database. You display it. That's the entire workflow. If you catch yourself typing a stat block, spell description, or item entry from memory instead of running the tool — stop, run the tool, and embed the result.