RedM documentation

Murphy's Telegram & Mail

Getting Started

Features Overview


Telegrams

Short text-only messages (120 characters by default) with dynamic per-character pricing. The font is randomly assigned by the "postman" - the player does not choose it. Telegrams have a short delivery delay (3 seconds by default).

Pricing formula:

text
cost = telegramBasePrice + (telegramPriceChar x characterCount)

Optionally, subject and signature fields can also be charged per character.

Telegram composition screen with contacts, recipient fields and remaining character count
Telegram composition screen with contacts, recipient fields and remaining character count

Source: storefront gallery. These images show the source presentation; interface details and displayed values may differ in your installed version. Select an image to enlarge it.

Letters

Long-form messages (up to 10,000 characters) with player-chosen fonts. Letters support attaching item packages from the sender's inventory.

Pricing formula:

text
cost = letterBasePrice + (letterPricePerItem x itemCount)
Letter composition screen beside a contacts list with recipient, package and send fields
Letter composition screen beside a contacts list with recipient, package and send fields

Item packages

  • Attach any inventory item to a letter
  • Weight cap enforced (default: 10 kg)
  • Item type filtering (only allowed types can be packaged)
  • Items are removed from sender's inventory on send and given to recipient on pickup
  • If recipient's inventory is full, the package stays in the database for later pickup
A received letter displayed in front of the player with the inventory open on the left
A received letter displayed in front of the player with the inventory open on the left

Templates & stationery

Customize the look of letters and telegrams with templates:

  • Letter templates: background texture, header banner, stamp image, header/footer text
  • Telegram templates: background texture, decorative border, header/footer text
  • Job-restricted templates: lock stationery to specific jobs (sheriff, doctor, mayor, etc.)
  • Fully customizable with your own PNG images - no code changes needed

See Templates for full details and image specifications.

Fonts

Five included handwriting and typewriter fonts:

Font Style
BethEllen Handwriting, irregular
Caveat Handwriting, casual
DancingScript Cursive, elegant
MarckScript Handwriting, relaxed
TypeRa Typewriter monospace
  • Telegrams: font randomly assigned
  • Letters: player chooses from the list

Post office NPCs

Configurable NPC clerks at each post office location:

  • Custom ped model and outfit per location
  • Ambient speech (idle chatter)
  • Integrated with murphy_interact for 3D interaction targets
  • Two interaction options: "Post Office" (send/receive personal mail) and "Open Mailbox" (access job mailboxes)

Job mailboxes

Shared mailboxes accessible by any player with the matching job:

  • Route mail to a role (e.g. "Sheriff of Rhodes") instead of a specific person
  • Multiple jobs can share a mailbox
  • Atomic claim system prevents duplicate pickups

Contacts & favorites

Each character has a persistent contacts list:

  • Add contacts for quick recipient selection
  • Mark favorites (sorted first, star icon)
  • One-click autofill when composing mail
  • Remove contacts at any time

Delivery system

  • Scheduled: document created, waiting for delay
  • Pending: delay expired, available for pickup at any post office
  • Delivered: player picked up the item

The promotion loop (scheduled -> pending) runs every 15 seconds.

Notifications

  • Sender receives a success notification after sending
  • Recipient receives a notification when mail arrives (if online)
  • Separately configurable for telegrams and letters

Rate limiting

Configurable cooldown between sends per player (default: 30 seconds). Set to 0 to disable.

Auto-cleanup

Old documents and inbox entries are automatically deleted based on configurable thresholds:

  • Documents older than 30 days (default)
  • Inbox entries older than 14 days (default)
  • Cleanup runs every hour (default)

External API

Other resources can send mail programmatically via exports and events. See API for full documentation.

Security

  • All prices recalculated server-side (never trusts client)
  • Template access validated against player's current job
  • Parameterized SQL queries (no injection)
  • Atomic database operations (no duplicate deliveries)
  • Field length sanitization
  • Item type and weight filtering

Last updated: September 9, 2026