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.

📞 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 v1 demo (Spanish):
✨ 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.

🏠 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.

📱 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.

👥 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.

📞 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).

🔒 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).

📋 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 ⚪.

⭐ 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.

🔨 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.

🧹 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
- Download the
.jarfile. - Place it in your server's
mods/folder. - (Optional) For richer mobile‑phone tooltips, also install DynamicTooltipsLib.
- Start the server —
VoicePhones.jsonis auto‑generated on first run. - Tweak the config if you want, restart.
- Craft a phone block or a mobile, register it, and start calling!
Requirements
- Hytale
- Optional: DynamicTooltipsLib
🌐 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


