premium banner
Craftable telephone blocks with real voice chat, 3D spatial audio, ringing animations, call history, privacy controls, and a full in-game UI. Place it, name it, call anyone.

Description

ScarVoicePhones — Functional Telephones, Mobiles & Group Calls for Hytale

Place phones. Carry mobiles. Call anyone. Talk through them in 3D. A complete in‑world telephone system for Hytale with real voice chat, 3D positional audio, ringing animations, contacts, group calls, mobile phones, and a polished ingame UI.

ScarVoicePhones Banner


📞 What is ScarVoicePhones?

ScarVoicePhones turns Hytale's proximity voice chat into a full phone network. You can:

  • 🏠 Place phone blocks ("landlines"), register them with a name like Home or Shop, and call them from anywhere on the server.
  • 📱 Craft a mobile phone that lives in your inventory, with its own number, contacts and ringtones, so you can take calls on the move.
  • 👥 Start group calls with up to 8 phones (mix and match blocks and mobiles) so the whole crew can talk at once.

When a call connects, the engine plays your voice in 3D from the destination phone: anyone standing nearby can hear you, join in, or eavesdrop. Your phone rings, you walk to it, you pick up, you talk. No chat commands, no fake telephony.


🎬 Video Showcase

📺 Original v2 trailer:

Original demo

📺 Original v1 demo (Spanish):

Original demo


✨ Features

🔊 Real voice chat through phones

  • 3D positional audio — voice is emitted from the destination phone (block or mobile holder). Walk closer to hear better, walk away and it fades.
  • Speakerphone by design — anyone nearby can hear the conversation, just like a real speakerphone.
  • Configurable ranges — voice capture (default 8 blocks) and audio broadcast (default 16 blocks) per phone.
  • Engine‑level routing — the mod hooks into Hytale's voice pipeline and rewrites the speaker position of voice packets, so the engine itself does all the 3D attenuation and panning.

Voice Chat Demo

🏠 Phone blocks (landlines)

  • Craftable & placeable with a custom 3D model.
  • Register with a unique name (your phone "number") and pick Public, Private or Contacts‑only mode.
  • Phone Directory — clean, scrollable list of every phone, with search, A‑Z / Z‑A sorting, and All / Favorites ⭐ / Recents tabs.
  • Status indicators — Available 🟢, In Call 🔴, Ringing 🟡, DND 🟠.
  • Smart cleanup — breaking the block hangs up calls, stops ring sounds and unregisters the phone automatically.

Phone List UI

📱 Mobile phones (NEW)

  • Craftable item with its own model, in‑hand animation and ringtones.
  • Per‑item identity — name, owner UUID and owner name are stored in the item's metadata, so the phone keeps its identity across deaths, trades and restarts.
  • Register / rename / unregister / transfer ownership without losing your contacts.
  • Personal contacts list and mute list stored on the phone (up to 50 each).
  • Recent calls per player.
  • Dynamic tooltip showing phone name and owner directly in the inventory (powered by DynamicTooltipsLib, optional dependency).
  • Cleanup on disconnect — calls and ringing stop automatically when the holder logs off.

Mobile hand Mobile UI

👥 Group calls (NEW)

  • Start a multi‑phone call from the mobile phone or from a phone block.
  • Each connected phone becomes a relay node — speak near one and everyone connected hears it from their own phone.
  • Configurable size (default 8 participants).
  • Mix and match: block‑to‑block, mobile‑to‑mobile, or any combination.
  • Each participant can leave / hang up independently.

group UI

📞 Calling system

  • Ring with animation — the target phone block plays a ringing animation and a 3D ring sound; the mobile plays its own ringtone.
  • Calling tone — the caller hears a 3D "calling" tone at their phone while waiting.
  • Answer or Reject — the receiver gets an incoming call screen with Answer / Reject buttons.
  • Cancel — the caller can cancel an outgoing call at any time.
  • Hang up — end active calls from the UI, or just break the block.
  • Ring timeout — unanswered calls auto‑cancel after a configurable timeout (default 30s) and are recorded as missed calls.
  • Call cooldown — prevents spam‑calling (default 5s between calls).

Incoming Call

🔒 Privacy & security

  • Public / Private / Contacts‑only modes.
  • Contacts whitelist (up to 50) per phone.
  • Mute / block players (up to 50) per phone.
  • Do Not Disturb (DND) — silence all incoming calls; callers see a DND warning.
  • Owner‑only settings — only the phone owner can access Settings, Contacts and History (configurable).

Privacy Settings

📋 Call history & missed calls

  • Persistent call history — last 20 calls per phone with direction (IN/OUT), status, duration and timestamps.
  • Missed call notifications — red banner with the count when you open your phone.
  • Color‑coded statuses — Completed ✅, Missed ❌, Cancelled ⚪.

Call History

⭐ Favorites & recents

  • Star any phone to add it to your Favorites tab for quick access.
  • Recents automatically tracks your last called phones (up to 10).
  • Both are per‑player and persist across sessions.

favorites

🔨 Crafting

  • Phone block and mobile phone both have default crafting recipes at the Workbench.
  • Fully customizable — server owners can override ingredients, crafting time, bench type and output quantity via RecipeConfig.json.
  • Recipes can also be completely disabled if you prefer admin‑placed phones only.

crafting

🧹 Smart cleanup everywhere

  • Breaking a phone block hangs up its call, stops ring sounds, and unregisters it.
  • Renaming or unregistering a phone cleans up all players' favorites and recents automatically.
  • Player disconnect during a call ends the call cleanly on both sides.

⚙️ Server configuration

All settings are in VoicePhones.json (auto‑generated on first run):

Setting Default Description
DefaultPhoneMode PUBLIC Default visibility mode for new phones
MaxPhoneNameLength 20 Max characters for phone names
MaxContactsPerPhone 50 Max whitelist entries per phone
MaxMutedPerPhone 50 Max blocked players per phone
MaxRecentsPerPlayer 10 Max recent calls stored per player
VoiceRange 8 Radius (blocks) for voice capture near a phone
PhoneAudioRange 16 Radius (blocks) for voice broadcast from a phone
RingTimeoutSeconds 30 Auto‑cancel unanswered calls after X seconds
MaxPhonesPerPlayer -1 Max phones per player (-1 = unlimited)
AllowRenaming true Players can rename their phones
AllowUnregister true Players can unregister their phones
RequireOwnerForSettings true Restrict Settings/Contacts/History to phone owner
CallCooldownSeconds 5 Minimum seconds between calls from the same phone
MaxGroupCallSize 8 Max simultaneous phones in a group call
Debug false Verbose log output

Crafting recipes have their own config (RecipeConfig.json).


🛠️ Admin commands

Command Description
/phone list List every registered phone, position and active call
/phone status System status: phone count, active calls, voice interceptor state
/phone hangup Force hang up ALL active calls on the server
/phone clearall Unregister ALL phones and end all calls (full reset)

📦 Installation

  1. Download the .jar file.
  2. Place it in your server's mods/ folder.
  3. (Optional) For richer mobile‑phone tooltips, also install DynamicTooltipsLib.
  4. Start the server — VoicePhones.json is auto‑generated on first run.
  5. Tweak the config if you want, restart.
  6. Craft a phone block or a mobile, register it, and start calling!

Requirements


🌐 Where it's being tested

ScarVoicePhones is actively developed and tested on the Hub Social server:

🔗 https://www.elhubsocial.net/  •  📡 IP: elhubsocial.net

Many of my mods are battle‑tested there before public release. Come hang out!


💡 Planned features

  • Phone skins / color variants
  • Caller ID display on the block
  • SMS / text messages
  • Smartphones with apps
  • Answering machine / voicemail

Have a suggestion? Drop it in the comments!


🙏 Credits

Mod by: ScarForges Tested on: El Hub Social

Optional integration: DynamicTooltipsLib by Herolias

If you enjoy this mod, leaving a like or favorite helps a lot. ❤️


*ScarVoicePhones v2.1.0 — Built for Hytale