Make an NPC speak or chatter

SAY NOW puts one line in an NPC's mouth, AMBIENT CHATTER repeats lines on a timer, and a PROXIMITY DECLARATION speaks once when somebody approaches.

In the menus: ESC → Design → NPCs → select an NPC → SPEAK

Say one line

Type the line under SAY NOW, then select SAY. The NPC says it once.

On an NPC with no display name the panel opens, but the server refuses the line.

A myNPC persona with the same display name can also speak from this NPC.

Set an NPC chattering

Chatter is a pool of lines and an interval. The NPC picks one at random, waits, and picks again.

  1. Set Every (secs): to the average gap between lines. The slider runs from 5 to 300.
  2. Type the pool into Lines:, separating lines with a |, as in Move along|Nothing to see here.
  3. Select SAVE CHATTER.

That NPC's roster row gains the mark ~C. CHATTER OFF stops it.

The server keeps at most 16 lines, and each gap is randomised so chattering NPCs never fall into step.

Chatter pauses while no real players are connected, so an empty server does not keep logging NPC speech.

Speak when somebody approaches

A proximity declaration is a one-shot line for a player entering the NPC's view.

  1. Set Distance: from 32 to 4,096 units.
  2. Leave Player: blank for anybody, or enter part of one player's name.
  3. Type the Line: and select SAVE DECLARATION.

Choose the language an NPC speaks

The shared Language: row covers everything that NPC says: immediate lines, chatter, declarations, waypoint lines, trigger-stored lines and LLM replies.

Type the language and select SET LANGUAGE. none puts the NPC back to Basic.

A listener who holds the language reads it with the language named in front.

One who does not reads invented words instead. This is the system players speak through, covered on speak another language.

Prefer the console?

/npc say is silent to you when it works, and the line itself is the result.

/npc say [id|targetname|name] <message>

The language is silent on success, and none or basic clears it:

/npc edit [id|targetname|name] language <lang|none>