Agent skill

Godot Adapt Single To Multiplayer

by thedivergentai in thedivergentai/GD-Agentic-Skills

Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server…

LGPL-3.0Auto-check passedGame Development

Install Godot Adapt Single To Multiplayer

skills CLI
$ npx skills add thedivergentai/GD-Agentic-Skills --skill godot-adapt-single-to-multiplayer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install thedivergentai/GD-Agentic-Skills godot-adapt-single-to-multiplayer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/thedivergentai/GD-Agentic-Skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/godot-adapt-single-to-multiplayer .claude/skills/godot-adapt-single-to-multiplayer && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
godot-adapt-single-to-multiplayer
GitHub stars
821
Token cost
~3.3k tokens
SKILL.md length
1,042 words
Files
18 (incl. scripts, references)
Skills in repo
98
Repo updated
First seen
Licence
LGPL-3.0

At a glance

Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server…

  • Works in 6 steps: Separate input (client) from simulation… → Set multiplayer_authority per player… → MANDATORY multiplayer_sync.gd for… → …
  • Retrofitting multiplayer
  • SKILL.md covers NEVER Do (Expert Multiplayer…, Available Scripts, Architecture Patterns and Migration golden path (no…, plus 5 more sections
  • Porting to online play

What it does

Godot Adapt Single To Multiplayer is an agent skill from thedivergentai/GD-Agentic-Skills. Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server reconciliation), input buffering, and anti-cheat measures. Use when retrofitting multiplayer, porting to online play, or designing networked gameplay. Trigger keywords: MultiplayerPeer, ENetMultiplayerPeer, SceneMultiplayer, MultiplayerSynchronizer, rpc, rpcid, multiplayerauthority, clientprediction…

Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 19 other files, including scripts and reference files (for example `references/authority-and-security.md`, `references/latency-testing.md` and `references/migration-notes.md`).

It sits in Game Development, covering Multiplayer and networking, Accounting and bookkeeping and Game development. It works with Godot. The repository describes itself as: The official "Long-Term Memory" for Godot 4.7+ AI Agents. A high-density library of 99 expert skills and 27 genre blueprints, providing audited, strictly typed GDScript patterns… The licence is LGPL-3.0.

When your agent uses it

  • Retrofitting multiplayer
  • Porting to online play
  • Designing networked gameplay
  • Keywords: MultiplayerPeer

Example prompts

  • “/godot-adapt-single-to-multiplayer”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Separate input (client) from simulation (authority).
  2. Set multiplayer_authority per player node; clients send intents only.
  3. MANDATORY multiplayer_sync.gd for property replication / remote interpolation.
  4. MANDATORY rpc_bridge.gd for gameplay events that cross the wire.
  5. Add prediction / lag compensation scripts only for the genres that need them.
  6. Validate with latency-testing reference + net_latency_simulator.gd at ~150 ms RTT.

What it can do on your machine

Read from SKILL.md and the folder at commit 4c4d0ff. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 13 files in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • docs.godotengine.org

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Godot Adapt Single To Multiplayer loads about 3.3k tokens when it runs, and up to ~5.9k if it reads all its reference files. Until then it costs about 147 tokens; SKILL.md has 1,042 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~147
When it runs · the whole SKILL.md, loaded when a task matches
~3.3k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~5.9k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from thedivergentai/GD-Agentic-Skills at commit 4c4d0ff, republished under its LGPL-3.0 licence (© thedivergentai). 1,042 words, ~3,340 tokens.

Download SKILL.mdSave it as .claude/skills/godot-adapt-single-to-multiplayer/SKILL.md (or your agent's skills folder). This skill also uses 17 other files; get the full folder from GitHub.
name
godot-adapt-single-to-multiplayer
description
Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server reconciliation), input buffering, and anti-cheat measures. Use when retrofitting multiplayer, porting to online play, or designing networked gameplay. Trigger keywords: MultiplayerPeer, ENetMultiplayerPeer, SceneMultiplayer, MultiplayerSynchronizer, rpc, rpc_id, multiplayer_authority, client_prediction, server_reconciliation, lag_compensation, rollback.

NEVER Do (Expert Multiplayer Rules)

Security & Authority
  • NEVER trust client-reported state — Clients own their 'Input', NOT their 'Position' or 'Health'. Server must validate every coordinate and health change.
  • NEVER use get_tree() groups for authority checks — Use is_multiplayer_authority(). Group registration is non-deterministic in high-latency joins.
  • NEVER allow unrestricted RPC rates — A malicious client can call a 'FireWeapon' RPC 10,000 times per second. Always implement rate-limiting (net_rpc_rate_limiter.gd).
Movement & Lag
  • NEVER skip Client-Side Prediction — Movement without prediction feels 'heavy' and unresponsive. Predict movement locally, then correct only on server disagreement.
  • NEVER sync peers at 60Hz — Sending entire state every frame will saturate client bandwidth. Use a lower tick-rate (20-30Hz) and interpolate between packets.
  • NEVER snap peer positions — Abrupt position updates cause 'jitter'. Store a buffer of past states and lerp between them with a 100ms delay.
Bandwidth & Sync
  • NEVER sync 'Full Floats' if possible — Quantize Vector3 data (truncating decimals) to save 50%+ bandwidth. Use MultiplayerSynchronizer with delta-sync enabled.
  • NEVER ignore 'Late Joiners' — Players who join mid-game won't see existing environmental changes. Broadcast a full world-state 'Snapshot' on peer connection.
  • NEVER test on 0ms ping — Everything works on localhost. Use a simulator (net_latency_simulator.gd) with 150ms ping to identify sync bugs.

Available Scripts

MANDATORY: Architecture decision tree first, then golden-path scripts. Deep latency workflows → references/latency-testing.md.

Authority / transport bridges
multiplayer_sync.gd

MANDATORY when adding MultiplayerSynchronizer interpolation for remote peers. Trigger: authority owns transforms; non-authority interpolates.

rpc_bridge.gd

MANDATORY signal→RPC bridge. Trigger: gameplay emits local signals; bridge validates authority and fans out RPCs.

Prediction / lag / lobby
net_prediction_reconciliation.gd

CharacterBody prediction + input-buffer replay for server reconciliation.

net_snapshot_interpolation.gd

Snapshot interpolation / jitter buffers for remote peers.

net_auth_server_validator.gd

Authoritative validation (position, speed, actions).

net_rpc_rate_limiter.gd

RPC flood / macro protection.

net_interest_management.gd

Distance-based visibility to cut bandwidth.

net_delta_compression_sync.gd

Quantization + significance checks for delta sync.

net_lag_compensation.gd

Server-side rewind for hit registration.

net_lobby_late_join_sync.gd

Late-joiner world snapshot bootstrap.

Diagnostics
net_latency_simulator.gd

MANDATORY before ship — see references/latency-testing.md.

net_debug_overlay_monitor.gd

RTT / loss / jitter overlay.

net_upnp_discovery_logic.gd

UPNP port mapping for listen-server / P2P hosts.


Architecture Patterns

PatternWhenScript golden path
Authoritative serverPvP, economies, cheat riskrpc_bridge.gd → net_auth_server_validator.gd → prediction/recon
P2P lockstep2–4 co-op, low cheat riskDeterministic inputs + net_upnp_discovery_logic.gd
Hybrid / host authorityParty games 4–8Host authority + late-join snapshot

Migration golden path (no inline host/join tutorials)

  1. Separate input (client) from simulation (authority).
  2. Set multiplayer_authority per player node; clients send intents only.
  3. MANDATORY multiplayer_sync.gd for property replication / remote interpolation.
  4. MANDATORY rpc_bridge.gd for gameplay events that cross the wire.
  5. Add prediction / lag compensation scripts only for the genres that need them.
  6. Validate with latency-testing reference + net_latency_simulator.gd at ~150 ms RTT.

Expert insights (WHY — keep in body)

  • Client prediction — WHY: without local sim, RTT doubles perceived input lag. Replay buffered inputs after server correction (net_prediction_reconciliation.gd).
  • Interpolation buffer — WHY: raw sync packets jitter; lerp between snapshots with ~100 ms delay (net_snapshot_interpolation.gd).
  • Hit rewind — WHY: clients fire at past world state; server rewinds RIDs via PhysicsServer3D before raycast (net_lag_compensation.gd).
  • Input send rate — WHY: 60 Hz input RPCs saturate uplink; batch at 20–30 Hz with significance checks (net_delta_compression_sync.gd).

Decision Tree: Which Architecture?

FactorAuthoritative ServerP2P Lockstep
Player count8-100+2-4
Cheat preventionCriticalNot important
Server hostingAvailableNot available
Gameplay typePvP, competitiveCo-op, casual
Lag toleranceMedium (prediction helps)Low (desyncs)
Development complexityHighMedium

Advanced Networking Topics

Peer-to-Peer NAT Traversal (Hole Punching)

In P2P architectures, clients often sit behind firewalls. UPNP (Universal Plug and Play) is the first line of defense, allowing the game to request port forwarding from the router automatically using net_upnp_discovery_logic.gd.

For cases where UPNP fails:

  • STUN/TURN: Use a STUN server to discover public IP/port pairings.
  • Relay Servers: If direct connection is impossible, fallback to a relay server (TURN) to bridge the two peers.
Show full SKILL.md (436 more words)Show less
Network Profiling & Visualization

Visualizing the packet timeline is critical for debugging jitter. Propose an overlay that graphs:

  • Packet Arrival: A scrolling timeline showing when packets arrive relative to physics frames.
  • Buffer Health: A visualization of the interpolation jitter buffer size.
  • RTT (Round Trip Time): Real-time graph of latency spikes.

Deep recipes (on demand)

TopicReference / script
Prediction / recon / interpolationprediction-and-reconciliation.md
Authority / anti-cheat / bandwidthauthority-and-security.md

Reference

Progressive disclosure: open Official Documentation links only when researching a specific API; load Related Skills when routing work to a peer domain — do not preload the whole lattice.

Official Documentation
  • High-level multiplayer — RPC modes, authority, and peer lifecycle you must retrofit before any gameplay state leaves the single-player path.
  • Networking — Transport map (ENet / WebSocket / WebRTC) so host/join choices match platform and NAT constraints.
  • MultiplayerSynchronizer — Property replication, delta sync, and visibility filters that replace ad-hoc position RPCs.
  • MultiplayerSpawner — Spawn/despawn replication when late joiners need the same scene graph as the host.
  • SceneMultiplayer — Default MultiplayerAPI implementation: root path, auth callbacks, and RPC routing under SceneTree.
  • ENetMultiplayerPeer — UDP host/client peer used by most LAN and dedicated-server ports of single-player games.
  • MultiplayerAPI — multiplayer singleton surface: peer IDs, signals, and rpc / rpc_id entry points.
  • MultiplayerPeer — Transfer modes and connection status shared by every concrete peer backend.
  • UPNP — Automatic port mapping for listen-server / P2P hosts behind consumer routers.
  • WebRTC — Browser-friendly P2P path when ENet UDP cannot punch through firewalls alone.
  • Node — set_multiplayer_authority / is_multiplayer_authority ownership rules for input vs state.
  • PhysicsServer3D — Direct RID transforms for server-side hit rewind without SceneTree side effects.
Prerequisites
Complements
  • godot-multiplayer-networking — Broader RPC, lobby, and ENet tuning once the single-player→online migration shape is fixed.
  • godot-characterbody-2d — Deterministic move_and_slide steps reused by client prediction and reconciliation buffers.
  • godot-physics-3d — Body/shape setup that lag-compensation rewind and hit validation query against.
  • godot-raycasting-queries — Server-side ray/shape queries for authoritative shots after state rewind.
  • godot-debugging-profiling — RTT/jitter overlays and remote debug habits that catch sync bugs localhost never shows.
  • godot-export-builds — Headless/dedicated-server export presets and CLI flags for real multi-instance tests.
  • godot-server-architecture — PhysicsServer/RID patterns and headless host scaffolding used by rewind and dedicated peers.
Downstream / consumers
Master
  • godot-master — Library router and mirrored module entry for this Domain Skill.

© thedivergentai, LGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 17 other files (scripts, references) in skills/godot-adapt-single-to-multiplayer of thedivergentai/GD-Agentic-Skills.

  • SKILL.md
  • references/authority-and-security.md
  • references/latency-testing.md
  • references/migration-notes.md
  • references/prediction-and-reconciliation.md
  • scripts/multiplayer_sync.gd
  • scripts/net_auth_server_validator.gd
  • scripts/net_debug_overlay_monitor.gd
  • scripts/net_delta_compression_sync.gd
  • scripts/net_interest_management.gd
  • scripts/net_lag_compensation.gd
  • scripts/net_latency_simulator.gd
  • scripts/net_lobby_late_join_sync.gd
  • scripts/net_prediction_reconciliation.gd
  • scripts/net_rpc_rate_limiter.gd
  • scripts/net_snapshot_interpolation.gd
  • scripts/net_upnp_discovery_logic.gd
  • scripts/rpc_bridge.gd

Open the folder on GitHubat commit 4c4d0ff

Compare with similar skills

Godot Adapt Single To Multiplayer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Godot Adapt Single To Multiplayer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Godot Adapt Single To Multiplayer this skillthedivergentai/GD-Agentic-Skills821—~3.3kAutomated safety check: PassLGPL-3.0
Godot Multiplayergamedev-skills/awesome-gamedev-agent-skills1.4k—~1.6kAutomated safety check: PassApache-2.0
Gamedev Multiplayerericrisco/rsc-harness180—~3.9kAutomated safety check: PassMIT
Unityericrisco/rsc-harness180—~4kAutomated safety check: PassMIT
Meshy Asset ProductionTheOrcDev/skills106—~1kAutomated safety check: PassNone
Godot Gdscript Patterns925236118/AlphaAgent10310 repos~5kAutomated safety check: PassMIT

Similar skills

  • Godot Multiplayer

    gamedev-skills/awesome-gamedev-agent-skills

    Build networked games with Godot 4.7 high-level multiplayer: set up an ENetMultiplayerPeer server/client, define RPCs with the @rpc annotation (call via rpc()/rpcid()), set per-node multiplayer…

    1.4k GitHub stars~1.6k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed
  • Gamedev Multiplayer

    ericrisco/rsc-harness

    A skill your agent uses when adding multiplayer or netcode to a game — client-server vs P2P, server authority and anti-cheat, state replication vs RPCs, prediction and reconciliation, lag…

    180 GitHub stars~3.9k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Unity

    ericrisco/rsc-harness

    A skill your agent uses when writing, reviewing or structuring Unity game code in C for Unity 6 LTS — GameObjects and the Transform hierarchy, the MonoBehaviour lifecycle, prefabs and variants…

    180 GitHub stars~4k tokensUpdated yesterday
    Game DevelopmentAuto-check passed
  • Meshy Asset Production

    TheOrcDev/skills

    Runs Final Stand Meshy geometry and texture production with governed reference packs, candidate review, credit accounting and immutable exports.

    106 GitHub stars~1k tokensUpdated 13 days ago
    Business, Finance & HRAuto-check passed
  • Godot Gdscript Patterns

    925236118/AlphaAgent

    Master Godot 4 GDScript patterns including signals, scenes, state machines, and optimization.

    103 GitHub starsUsed in 10 repos~5k tokens
    Game DevelopmentAuto-check passed
  • 2D Map and Scene Generator

    0x0funky/agent-sprite-forge

    Plans and builds 2D game maps and scenes, from tilemaps and parallax backgrounds to HD-2D plates, with collision checks, a playable HTML preview and Tiled, Godot or LDtk export.

    4.4k GitHub stars~2.9k tokensUpdated 4 days ago
    Game DevelopmentAuto-check passed

More from thedivergentai/GD-Agentic-Skills

All 98 skills in this repo
  • Godot 2D Animation

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 2D animation in Godot using AnimatedSprite2D and skeletal cutout rigs.

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot 3D World Building

    thedivergentai/GD-Agentic-Skills

    Expert patterns for 3D level design using GridMap with MeshLibrary, CSG constructive solid geometry, occlusion, and runtime GridMap builders.

    821 GitHub stars~3.3k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 2D To 3D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for migrating 2D games to 3D including node type conversions, camera systems (third-person, first-person, orbit), physics layer migration, sprite-to-model art pipeline, and control…

    821 GitHub stars~4.7k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Adapt 3D To 2D

    thedivergentai/GD-Agentic-Skills

    Expert patterns for simplifying 3D games to 2D including dimension reduction strategies, 2.5D fake-depth, isometric ports, camera flattening, physics conversion, 3D-to-sprite art pipeline, and…

    821 GitHub stars~4.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Agent Vision

    thedivergentai/GD-Agentic-Skills

    Agentic eyes for Godot work: cross-platform screenshot CLI (asset/region/window/screen) to budgeted WebP, TEMP editor viewport bridge under .gdskills/, and Taste Receptor Atlas v2 (~237…

    821 GitHub stars~3.5k tokensUpdated 1 mo ago
    Auto-check passed
  • Godot Animation Tree Mastery

    thedivergentai/GD-Agentic-Skills

    Expert patterns for AnimationTree including StateMachine transitions, BlendSpace2D for directional movement, BlendTree for layered animations, root motion, transition conditions, advance…

    821 GitHub stars~3.6k tokensUpdated 1 mo ago
    Auto-check passed

Works with

Questions about Godot Adapt Single To Multiplayer

What does Godot Adapt Single To Multiplayer do?

Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server…. Godot Adapt Single To Multiplayer is an agent skill from thedivergentai/GD-Agentic-Skills. Expert patterns for adding multiplayer to single-player games including client-server architecture, authoritative server design, MultiplayerSynchronizer, lag compensation (client prediction, server reconciliation), input buffering, and anti-cheat measures.

When should I use Godot Adapt Single To Multiplayer?

Godot Adapt Single To Multiplayer fits situations like: retrofitting multiplayer; porting to online play; designing networked gameplay; keywords: MultiplayerPeer.

How do I install Godot Adapt Single To Multiplayer in Claude Code?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-adapt-single-to-multiplayer -a claude-code`. Or copy the skill folder (skills/godot-adapt-single-to-multiplayer in thedivergentai/GD-Agentic-Skills) into .claude/skills/godot-adapt-single-to-multiplayer in your project. Claude Code loads it when a task matches its description.

How do I install Godot Adapt Single To Multiplayer in Codex?

Run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-adapt-single-to-multiplayer -a codex`. Or copy the skill folder (skills/godot-adapt-single-to-multiplayer in thedivergentai/GD-Agentic-Skills) into .agents/skills/godot-adapt-single-to-multiplayer in your project. Codex loads it when a task matches its description.

Can I use Godot Adapt Single To Multiplayer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add thedivergentai/GD-Agentic-Skills --skill godot-adapt-single-to-multiplayer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/godot-adapt-single-to-multiplayer, .gemini/skills/godot-adapt-single-to-multiplayer, .github/skills/godot-adapt-single-to-multiplayer and .opencode/skills/godot-adapt-single-to-multiplayer in your project.

What does Godot Adapt Single To Multiplayer need to run?

SKILL.md names no scripts, command-line tools or credentials: Godot Adapt Single To Multiplayer is instructions for the agent only.

Does Godot Adapt Single To Multiplayer access the network?

SKILL.md names 1 domain. As links in the text: docs.godotengine.org. This is read from the text; nothing was executed.

Is Godot Adapt Single To Multiplayer safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Godot Adapt Single To Multiplayer use?

Godot Adapt Single To Multiplayer is published under the LGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Godot Adapt Single To Multiplayer use?

About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 2.6k tokens, read only when the agent opens those files.

What are the alternatives to Godot Adapt Single To Multiplayer?

Skills that share tags, products or a category with Godot Adapt Single To Multiplayer: Godot Multiplayer (gamedev-skills/awesome-gamedev-agent-skills, 1.4k stars), Gamedev Multiplayer (ericrisco/rsc-harness, 180 stars), Unity (ericrisco/rsc-harness, 180 stars) and Meshy Asset Production (TheOrcDev/skills, 106 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Godot Adapt Single To Multiplayer?

thedivergentai (a GitHub user) maintains it in thedivergentai/GD-Agentic-Skills, which has 821 GitHub stars. The repository holds 98 skills in this directory. The repository was last updated on September 9, 2026.

Source: thedivergentai/GD-Agentic-Skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.