Mods / The Basics - Roleplay (RP) Proximity Chat and more!

Tags: #Other #QoL #Utility
Author: BASIC
Side: Both
Created: Apr 9th 2022 at 12:08 AM
Last modified: Sep 11th at 5:27 AM
Downloads: 37269
Follow Unfollow 163

Recommended download (for Vintage Story 1.20.12, 1.21.0 and 1.21.1):
thebasics-v5.2.3.zip  1-click install


As seen on Saltpoint RP, Fair Travels, The Expansion, Echoes of the Ancients, Lunaria, and various other servers!

The Basics

Mod Systems:

  • Roleplaying (RP) local proximity chat system, with configurable talking ranges, nicknames, automatic message formatting, and more!
  • Server save notification (sends a message when save starts, which can help lower frustration about lag for large worlds)
  • Player sleep notification (encourages players to go to sleep when at least 50% of players are in bed)
  • Player Stats system (Keeps track of stats about players that can be viewed by anybody.  Currently tracks deaths, player kills, and NPC kills)
  • TPA System (Allow players to teleport to each other by consuming a temporal gear)
  • Repair system (Adds an admin command /setdurability to set the durability of an item held in your hand)

Join my discord for support! https://discord.gg/PYKTaJ5Ett

Roleplay Proximity Chat System

Adds a Proximity chat tab with local chat designed for roleplaying

Set Nickname And Chat

Yell or whisper!

Talking Ranges

Speak in configurable languages, so that only others that speak it can understand you!

Languages

Use emotes and environment messages for additional flavor!

Emotes

Environment Messages

Use Bold and Italics to spice things up!

Accents

Commands:

Note: [value] denotes a required argument, while (value) denotes an optional one  Pipes (|) denote a range of allowable values. Aliases are listed after the first string, but with argument lists omitted.

  • Nicknames
    • "/nick (nick)", "/setnick", "/nickname" - Get or set your nickname
    • "/clearnick" - Clear your nickname
    • "/nickcolor (color)" - Get or set your nickname color
    • "/clearnickcolor" - Clear your nickname color
    • "/adminsetnickname \[player\] (nickname)"
  • Chat modes/Chat messages
    • "/yell (text)", "/y" - Set your chat mode to Yelling, or yell a single message
    • "/whisper (text)", "/w" - Set your chat mode to Whispering, or whisper a single message
    • "/say (text)", "/normal", "/s" - Set your chat mode back to normal, or say a single message
    • "/ooc (text)" - Send a message in local OOC
      • can also be performed by wrapping your message in `(message)` (by default, delimiters configurable) instead of using the command
    • "/gooc (text)" - Send a message in global OOC
      • can also be performed by wrapping your message in `((message))` (by default, delimiters configurable) instead of using the command
  • Chat Messages
    • "/me \[text\]", "/m" - ("\*" prefix) - Send a proximity emote message
      • can also be performed by prefixing your message with `*message` (by default, delimiters configurable) instead of using the command
    • "/it \[text\]" - ("!" prefix) - Send a proximity environment message
      • can also be performed by prefixing your message with `!message` (by default, delimiters configurable) instead of using the command
  • Configurable Options
    • "/emotemode \[on|off\]" - Turn Emote-only mode on or off
    • "/rptext \[on|off\]" - Turn the whole RP system on or off for your messages
  • Languages
    • Player Commands
      • "/addlang \[langCode\]" - Add a known language
      • "/remlang \[langCode\]" - Remove a known language
      • "/listlang \[langCode\]" - List your known languages, and all available languages
    • Admin Commands
      • "/adminaddlang \[player\] \[langCode\]" - Add a language to another player
      • "/adminremlang \[player\] \[langCode\]" - Remove a language from another player
      • "/adminlistlang \[player\]" - List a player's known languages
  • Player Stats
    • "/playerstats (player)" - Get your player stats, or another players
    • "/clearstats [player] (confirm)" - Clear all of the stats of a player
    • "/clearstat [player] [statName] (confirm)" - Clear a specific stat a player
  • TPA (Teleport) System
    • "/tpa [player]" - Request to teleport to another player
    • "/tpahere [player]" - Request to teleport another player to you
    • "/tpaccept" - Accept a pending teleport request
    • "/tpdeny" - Deny a pending teleport request

    Note: TPA requires a temporal gear to use by default, and can be configured with cooldowns and permissions.

  • Repair System
    • "/setdurability [value]" - (Admin only) Set the durability of the item you're holding

Configuration:

Spoiler!

The mod is highly configurable through the config file. Here are the main configuration sections:

Proximity Chat Settings

The proximity chat system can be configured in several ways:

  • Chat Distances: Configure how far different chat modes can be heard
  • Feature Toggles:
    • DisableNicknames: When set to true, completely disables the nickname system
    • DisableRPChat: When set to true, disables all RP-specific features, making it function as a standard proximity chat
  • Nickname Control:
    • ProximityChatAllowPlayersToChangeNicknames: Controls whether players can set their own nicknames
    • ProximityChatAllowPlayersToChangeNicknameColors: Controls whether players can change their nickname colors
    • ChangeNicknameColorPermission: The privilege required for players to change their nickname colors (if allowed)
  • Message Formatting: Customize how messages appear in chat
{
  // ----- Proximity Chat ----- //
  "ProximityChatModeDistances": {
    "Yell": 90,    // Maximum distance for yelling
    "Normal": 35,  // Normal talking distance
    "Whisper": 5,  // Whisper range
    "Sign": 15     // Sign language visibility range
  },
  "ProximityChatAllowPlayersToChangeNicknames": true,
  "ProximityChatAllowPlayersToChangeNicknameColors": true,  // Whether players can change their nickname colors
  "ChangeNicknameColorPermission": "chat",  // The privilege required to change nickname colors (if allowed)
  "EnableDistanceObfuscationSystem": true,
  "ProximityChatModeObfuscationRanges": {
    "Yell": 45,
    "Normal": 15,
    "Whisper": 2,
    "Sign": 15
  },
  "EnableDistanceFontSizeSystem": true,
  "ProximityChatDefaultFontSize": {
    "Yell": 30,
    "Normal": 16,
    "Whisper": 12,
    "Sign": 16
  },
  "ProximityChatClampFontSizes": [30, 16, 12, 6],
  "BoldNicknames": false,
  
  // Message formatting
  "ProximityChatModeVerbs": {
    "Yell": ["yells", "shouts", "exclaims"],
    "Normal": ["says", "states", "mentions"],
    "Whisper": ["whispers", "mumbles", "mutters"],
    "Sign": ["signs", "gestures", "motions"]
  },
  "ProximityChatModeBabbleVerb": "babbles",
  "ProximityChatModePunctuation": {
    "Yell": "!",
    "Normal": ".",
    "Whisper": ".",
    "Sign": "."
  },
  "ProximityChatModeQuotationStart": {
    "Yell": "\"",
    "Normal": "\"",
    "Whisper": "\"",
    "Sign": "'"
  },
  "ProximityChatModeQuotationEnd": {
    "Yell": "\"",
    "Normal": "\"",
    "Whisper": "\"",
    "Sign": "'"
  },

  // ----- Server Save Announcement ----- //
  "SendServerSaveAnnouncement": true,
  "SendServerSaveFinishedAnnouncement": false,
  "TEXT_ServerSaveAnnouncement": "Server save has started - expect lag for a few seconds.",
  "TEXT_ServerSaveFinished": "Server save has finished.",

  // ----- Player Stats ----- //
  "PlayerStatSystem": true,
  "PlayerStatToggles": {
    "Deaths": true,
    "NpcKills": true,
    "PlayerKills": true,
    "BlockBreaks": true,
    "DistanceTravelled": true
  },
  "PlayerStatClearPermission": "commandplayer",
  "PlayerStatDistanceTravelledTimer": 2000,

  // ----- TPA Requests ----- //
  "AllowPlayerTpa": true,
  "AllowTpaPrivilegeByDefault": false,
  "TpaRequireTemporalGear": true,
  "TpaUseCooldown": false,
  "TpaCooldownInGameHours": 0.5,

  // ----- Sleep Notifications ----- //
  "EnableSleepNotifications": true,
  "SleepNotificationThreshold": 0.5,
  "TEXT_SleepNotification": "You start to feel tired...",

  // ----- Language System ----- //
  "EnableLanguageSystem": true,
  "ChangeOwnLanguagePermission": "chat",
  "ChangeOtherLanguagePermission": "commandplayer",
  "MaxLanguagesPerPlayer": 3, // Maximum number of languages a player can know at once, -1 for unlimited
  "Languages": [
    {
      "Name": "Common",
      "Description": "The universal language",
      "Prefix": "c",
      "Syllables": ["al", "er", "at", "th", "it", "ha", "er", "es", "s", "le", "ed", "ve"],
      "Color": "#92C4E1",
      "Default": true,
      "Hidden": false,
"GrantedToClasses": [] }, { "Name": "Tradeband", "Description": "A common language for ease of trade across regions", "Prefix": "tr", "Syllables": ["feng", "tar", "kin", "ga", "shin", "ji"], "Color": "#D4A96A", "Default": false, "Hidden": false,
"GrantedToClasses": [] }, { "Name": "Ancient", "Description": "A mysterious ancient language", "Prefix": "anc", "Syllables": ["xar", "eth", "oth", "ith", "uth", "yth"], "Color": "#8B0000", "Default": false, "Hidden": true,
"GrantedToClasses": ["malefactor"] } ], // ----- Nametags ----- // "PreventProximityChannelSwitching": true, "ShowNicknameInNametag": true, "HideNametagUnlessTargeting": false, "ShowPlayerNameInNametag": true, "NametagRenderRange": 30, // ----- OOC Chat ----- // "AllowOOCToggle": true, "OOCTogglePermission": "chat" }

System Details

TPA (Teleport) System

The TPA system allows players to request teleportation to other players. Key features:

  • Requires a temporal gear by default (configurable)
  • Optional cooldown system
  • Permission-based access
  • Request/accept/deny workflow for safety

Language System

The language system allows players to learn and use different languages for roleplay. Key features:

  • Players can learn languages using /addlang [language] and remove them with /remlang [language]
  • To speak in a language, prefix your message with `:lang`, such as `:c` or `:tr`. Use the language identifier without a message to set your current default speaking language.
  • Players are limited to knowing a maximum number of languages at once (configurable, default 3)
  • Languages can be hidden from players to prevent unauthorized access
    • Hidden languages can only be added by admins using /adminaddlang
    • Admins can see all languages (including hidden ones) with /adminlistlang
  • Players who don't know any languages or try to speak in an unknown language will "babble" incoherently
  • Languages can be configured with `GrantedToClasses` to automatically be given to players based upon their class.

Player Stats System

Tracks various player statistics including:

  • Deaths
  • Player kills
  • NPC/Mob kills
  • Blocks broken
  • Distance travelled

Server Save Notification

Automatically notifies players when the server is saving, helping reduce confusion about temporary lag spikes. The notification messages and timing are fully configurable.

Sleep Notification System

Encourages coordinated sleeping by notifying players when enough others are in bed. This helps servers manage the day/night cycle more effectively.

Potential Future Improvements

  • Use actual line of sight for sign language

 

Feel free to leave suggestions! Thank you for your continued support and for being a part of the amazing VS roleplaying community!

Mod Version For Game version Downloads Released Changelog Download 1-click mod install*
5.2.3 1581 Sep 11th at 5:27 AM thebasics-v5.2.3.zip 1-click install
  • Fix TPA system issues with multiple in-flight TPA requests
    • Disambiguate multiple incoming tpa requests
    • prevent multiple outgoing requests
    • add /tpalist and /tpacancel commands
  • Fix issue with chat font size by distance not respecting temporary chat modes
5.2.2 4533 Aug 27th at 9:13 AM thebasics-v5.2.2.zip 1-click install

* Fix issue #32 with null player name data causing exception when setting nickname (thanks to Lantalia for the fix!)

5.2.0 1017 Aug 20th at 3:39 PM thebasics-v5.2.0.zip 1-click install

First off a note.. (to all 5 of you that will read this... looking at you Jar 💖)

Thank you all SO much for your continued use of this mod. It makes my heart happy to see the roleplay community flourish! I apologize for the delays in responses and in pushing out updates~ I have a dozen projects going on at any given time, and it's difficult to ship quickly while also maintaining a high standard of quality.

That being said, I have a whole slew of updates for you! With plenty more on the way. As always, please report any issues in the comments on the mod or in the Github Issues, and I'll address them as promptly as I am able.

💖

Proximity RP Chat

  • Implement fix for VTML injection
    • Fix bug causing chat to break when using the `<` or `>` characters in a proxchat message with a command (ie. `/gooc`, `/ooc`, `/me`, etc.) 
    • Prevent use of VTML within nicknames
      • this will break any nicknames that are manually using VTML for styling such as coloration - use the `/nickcolor` command instead. This change is necessary in lieu of complex validation to ensure nicknames can't be used to maliciously break chat.
  • FINALLY correctly implement `PreventProximityChannelSwitching` config value, to prevent players from automatically getting their channel swapped when a new message comes in General chat 🎉
    • Note: this implementation is INCREDIBLY hacky but somehow seems to do the trick, which is to temporarly set the client's `AutoChatOpenSelected` client config value when new messages come
  • Add language feature to automatically grant language based upon character class, using the `GrantedToClasses` array in the modconfig.
  • Allow custom delimiters for bold (`+`), italics (`|`), environment messages (`!`), OOC (`(message)`), GOOC (`((message))`), and Emote (`*`) in mod config
  • Implement safe networking system to handle attempts to send messages before client/server connection (this is probably way too heavyhanded lol, oh well)
  • Prevent player setting nickname that conflicts with existing playername or nickname
    • This is configurable via ModConfig
    • A new optional `force` flag has been added to the `/adminsetnick` command to allow admins to override this behavior

TPA

      • Implement consumption of temporal gear for TPA, and returning if teleport is not accepted.  This came with a lot of weird edge cases, such as the user logging out, their hand being full
      • Add TPA Timeout, configurable, defaults to 2 minutes
5.1.0-rc.2 6412 Jun 17th at 5:39 AM thebasics_5.1.0_rc.2.zip 1-click install

* Fix issue with duplicate ready messages being sent from client upon player join

5.1.0-rc.1 2270 May 12th at 4:14 AM thebasics_5.1.0_rc.1.zip 1-click install
  • Completely revamp RP Chat system
  • Allow hidden languages
  • Add babble language (a language everybody can speak but nobody can understand)
  • Add sign language (with line of sight that doesn't quite work yet lol)
  • Add config to limit max number of languages a player can know
  • Fix some things with nametags
  • Log RP chat to logfiles

 

NOTE: There are probably some bugs with the new implementation, given the large amount of changes!! Please report things on the Github and I'll get them fixed ASAP.  

 

Make sure to regenerate your mod config file (and make a copy of it first)

5.0.2-rc.1 6490 Mar 12th at 5:45 AM thebasics-5.0.2-rc.1.zip 1-click install

- Prevent console from running some commands
- Fix issue with font scaling in emotes even if config is off
- Add custom emote color config value
- Add ability for admins to query name by nickname with the /adminnick command

5.0.1 10386 Jan 11th at 9:53 PM thebasics_V5.0.1.zip 1-click install

Fix various issues, continue to polish in preparation for V1.20 release

5.0.0 1043 Dec 23rd 2024 at 2:03 AM thebasics_V5.0.0.zip 1-click install

Updated for V1.20!! LOTS of new features, including:

  • Languages! Players can speak in custom languages, and languages they don't understand appear as gibberish.  Languages can be customized in the mod config- two languages are shipped as examples by default (Common and Tradeband)
  • Nickname Nameplates! Peoples nicknames now appear over their head (configurable to just show nickname, just show player name, or to show both)
  • Proximity font sizing - messages appear in smaller or larger font based on perceived volume
  • Distance travelled and blocks broken player stats
  • Testing: Prevent chat tab group switching from receiving a message in a different channel when in the proximity channel

 

I'll be releasing better patch notes soon, as well as a forum post and a usage guide.... eventually™

As usual, let me know of any problems you have!

Known issues:

  • `EnableLanguageSystem` config flag doesn't properly work when set to `false`- many features of the language system still appear, including language colors.
  • Error messages shown to the user in the language system also spam the system console
  • `/clearstats` to clear player stats is broken
  • Block Breaks and Distance Travelled stats shouldn't add to the counter when in creative mode or noclipping around
4.0.1
1.19.5 - 1.19.8
932 Jun 15th 2023 at 12:59 AM thebasics_4.0.1.zip 1-click install

Allow chat accents to be non-terminating (for example, `+hello+ there +user` turns into `Basic exclaims "Hello there user!"`)

4.0.0 223 Jun 15th 2023 at 12:57 AM thebasics_4.0.0.zip 1-click install

Clone of v4.0.0-pre.3

4.0.0-pre.3 274 May 22nd 2023 at 1:41 AM thebasics_4.0.0-pre.3.zip 1-click install
* Fix issue with player stats system where ranged kills would throw an exception and bug out the remains
* Add Config ProximityChatAllowPlayersToChangeNicknames to restrict non-admins from changing nicknames (unrestricted by default), and add command /adminsetnick for admins to get and set players nicknames
* Add bold and italic text to prox chat (surround proximity chat messages by "|" for italics and "+" for bold)

Remember to try resettting your modconfig file if you have issues!
4.0.0-pre.2 221 May 20th 2023 at 4:21 AM thebasics_4.0.0-pre.2.zip 1-click install

Fixed looc and * (emote) prefix messages, and added Distance Obfuscation: at a distance, proximity chat is harder to hear.  All ranges are configurable.

4.0.0-pre.1
1.18.0 - 1.18.1
266 Apr 27th 2023 at 3:43 AM thebasics_4.0.0-pre.1.zip 1-click install

Made compatible with 1.18!

Known issues:

  • Emote prefix * is not working.  /me is still working as expected and can be used as a substitute in the meantime
  • LOOC prefix ( is not working.  There is no workaround at this time

Upcoming features:

  • RP Chat Languages!  Players will be able to pick which languages they know.  Hearing a language you don't know will be randomized gibberish
  • RP Chat Distance Obfuscation!  Past a certain range, RP chat will become "muffled" with random characters replaced by asterisks

All upcoming features have been commented out of this build in order to get a working release out for 1.18.  A fix for the known issues will not be released for at least another two weeks, sorry!

3.0.0
1.17.11 - 1.17.12
222 Apr 27th 2023 at 3:37 AM thebasics_3.0.0.zip 1-click install

First and only stable release of v3, clone of v3.0.0-rc.4

3.0.0-rc.4 315 Mar 10th 2023 at 5:50 AM thebasics_3.0.0-rc.4.zip 1-click install

Updated to now be a DLL mod, for Windows server compatability.

I'm hoping to roll out a stable release in time for 1.18, please let me know if anything is broken and feel free to give suggestions!

3.0.0-rc.2 381 May 2nd 2022 at 4:35 AM thebasics_3.0.0-rc.2.zip 1-click install

IMPORTANT NOTICE: Default TPA settings allow unrestricted teleport requests between players.  If this is a problem for your server, set `AllowPlayerTpa` to false in your config (which you will need to regenerate to see).  This will be fixed in the next release candidate version.

  • Add TPA mod system (requires "tpa" privilege by default)
  • Add Player Stats mod system
  • Add Sleep Notifier mod system
3.0.0-rc.1 347 Apr 10th 2022 at 10:29 AM thebasics_3.0.0-rc.1.zip 1-click install
  • Significantly adds to configuration (be sure to delete your existing config file!)
  • Fixes various chat display bugs
2.7.0 352 Apr 9th 2022 at 1:17 AM thebasics_v2.7.0.zip 1-click install

Initial release!


57 Comments (oldest first | newest first)

💬 Zuren, Sep 9th at 8:59 PM

i would love to see that world-replacement function, though i don't see why it couldn't be in this mod

💬 BASIC , Sep 4th at 6:55 AM

Grandfather That might be best suited as an entirely different mod. Although admittedlty,this is already a bit of a kitchen sink mod.. It's been on my radar to split off things like the TPA system into their own independent mods.


That being said, either way, I'll put it in my backlog! Should be a simple enough feature.

💬 Grandfather, Sep 4th at 5:38 AM

Any chance of implimenting a feature that reads certain words and replaces them with other input?
That could be used as a profanity filter, or to replace certain swear words with lore appropriate ones.

💬 BASIC , Sep 4th at 12:30 AM (modified Sep 4th at 7:18 AM)

AlteOgre At least that's progress! 😅 Sorry you've been having issues - I'm very curious about the stack trace from those crashes but hey, happy it's fixed now.

As for the global chat, that's very weird! The only config that should affect that is `UseGeneralChannelAsProximityChat`, which defaults to `false` - this setting effectively changes the General chat tab into Proximity chat.

 

In what way is global chat disabled? Are players still able to go to the General chat tab? Do messages just not appear?

 

There are a couple of other config values that affect how chat works that might be worth tinkering with:

`ProximityChatAsDefault` (default false) - Moves players to the proximity chat tab upon first login to the server

`PreserveDefaultChatChoice` (default true) - Moves players to their previous chat tab upon logging back in

`PreventProximityChannelSwitching` (default true) - Prevents players chat from automatically switching tabs when a new message comes in from a different channel, if they're in the Proximity tab.

 

You might consider deleting your ModConfig file so it regenerates fresh. Feel free to reach out on discord (basic_bit) if you want to do any troubleshooting together.

💬 AlteOgre, Sep 1st at 5:06 PM

BASIC
When I updated from 5.0.1 to 5.2.2 on our 1.20.12 server, global chat was disabled. I couldn't find any clue as to why that was, but reverting the update fixed it.
Any idea what may have caused this? We don't have any other mods affecting game/server chat.

Note that I had tried to update to other versions of TheBasics earlier and with all of the other versions we got client crashes upon logging in on the server. At least v5.2.2 didn't cause client crashes upon logging in ...

💬 BASIC , Aug 27th at 9:17 AM

WatermelonFrogy Thank you for reporting this, and sorry for the oversight! v5.2.2 is out with the fix; thanks to Lantalia for submitting the fix PR!

💬 WatermelonFrogy, Aug 27th at 12:55 AM

Hi it seems nicknames are broken in the new update, this is the error when you run any /nick or /setnick commands :(

Nickname Command Error
27.8.2025 00:53:46 [Server Error] Player WatermelonFrogy/vXSehGeRR3Rkh66LwiqmTeAn caused an exception through a command.
27.8.2025 00:53:46 [Server Error] Command: /nick set Caden Holt
27.8.2025 00:53:46 [Server Error] Exception: Object reference not set to an instance of an object.
at thebasics.Utilities.NicknameValidationUtils.ValidateNickname(IServerPlayer player, String nickname, ICoreServerAPI sapi, String& conflictingPlayer, String& conflictType) in D:\a\Vintage-Story-Mods\Vintage-Story-Mods\mods-dll\thebasics\src\Utilities\NicknameValidationUtils.cs:line 127
at thebasics.ModSystems.ProximityChat.RPProximityChatSystem.SetNickname(TextCommandCallingArgs fullArgs) in D:\a\Vintage-Story-Mods\Vintage-Story-Mods\mods-dll\thebasics\src\ModSystems\ProximityChat\RPProximityChatSystem.cs:line 483
at Vintagestory.Common.ChatCommandImpl.CallHandler(TextCommandCallingArgs callargs, Action`1 onCommandComplete, Dictionary`2 asyncParseResults) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 311
at Vintagestory.Common.ChatCommandImpl.Execute(TextCommandCallingArgs callargs, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandImpl.cs:line 236
at Vintagestory.Common.ChatCommandApi.Execute(String commandName, TextCommandCallingArgs args, Action`1 onCommandComplete) in VintagestoryLib\Common\API\Command\ChatCommandApi.cs:line 99
at Vintagestory.Common.ChatCommandApi.Execute_Patch1(ChatCommandApi this, String commandName, IServerPlayer player, Int32 groupId, String args, Action`1 onCommandComplete)
💬 BASIC , Aug 22nd at 1:39 PM

Diakonus I've implemented this as of v5.2.0 - Sign language is now baked into the language system using `:sign`, and removed from the chat mode system (yell,say,whisper).

Kasel This should be fixed now as well!

GlooMeGlo I'll definitely look into this - I've been working on a feature to show RP chat in the chat bubbles above players heads, so this goes hand-in-hand with that.

Hexedian You can currently only disable this server side, but I've added a feature as of v5.2.0 to prevent switching chat tabs on new messages

Amarillo This should be fixed as of v5.2.0 - the issue had to do with not marking the nametag WatchedAttribute as "dirty", so it wasn't reliably getting synced with clients

 

Thanks for your patience everybody! Let me know if you have any other issues or feature requests <3

💬 Diakonus, Jun 14th at 9:49 PM

Would be possible to add the language feature to Sign language mode?
On an rp server we have some people that rp mute characters, and having a dummy sign language that we could give to these characters would allow to better represent sign as something that not everyone knows and allow for rping of learning sign

💬 Kasel, May 18th at 11:15 PM

For some reason, it's not consuming the gear when we use the teleport feature.  There aren't any errors or anything and it still requires us to hold the gear to teleport.  Any ideas?

💬 GlooMeGlo, Apr 21st at 4:26 AM

any chance you could add some form of functionality like Nexrem's mod, NameTag tweaks? I wanna make it so myself and my admins have different username colors in game

💬 Hexedian, Apr 9th at 9:26 PM

Any chance for a way to disable server save notifications client-side? They're a bit distracting, if you don't have the general chat tab active.

💬 Amarillo, Mar 31st at 10:20 AM

Hey! is the "Hide name tag unless targeting" not working properly? Because the feature works sometimes and sometimes it won't.

Thanks for such a great mod!

💬 BASIC , Mar 17th at 10:58 PM

PookieBunny

The channel order is a bit finnicky, but I can take a look! There was another recent feature request to persist the selected channel across rejoins, and also to prevent chat switching on new messages in different channel.  I've started to implement those, maybe that will help with your issue.

💬 PookieBunny, Mar 13th at 4:09 AM

BASIC

I'm sorry if this has been asked before, but is there any way to like... swap the general and prox channels? We like having the proximity as the default channel on our server, but having to do the global OOC to speak to everyone can be a bit tedious, so if instead the two channel pages were swapped (Prox in the general chat's place, and General in the prox chat's place) it would make things so much easier.

💬 BASIC , Mar 12th at 4:44 AM

Ragolution

Gotcha, that should be an easy fix! Sorry for the delay, I have a long-running refactor branch with all of the requested features implemented (save for the newest one, which I'll add!)  I hope to get that out within a week.

💬 Ragolution, Mar 2nd at 8:29 AM

So, after some testing it seems that, when using other languages, the text of player's messages is still in their native language in the bubble floating over their head, so if I typed in tradeband, it would be over my head in English.

💬 Ragolution, Feb 19th at 5:44 PM

We ended up disabling the "ShowNicknameInNametag" variable to remove the appended names so players stopped showing up as Ragolution (Ragolution). This ended up fixing the problem.


CAN Markets uses the player's names to assign ownership to stalls, so it was making it record the wrong name for the owner player. It would recognize them (on placement) as "Ragolution (Ragolution)" but on further interactions, they would be just "Ragolution". In any event, it seems to be fixed, so there's no need to do anything.

I posted a couple things to your github. Mostly feature requests, honestly. :')

Thank you for all your hard work on this mod, our players couldn't function without it.

💬 BASIC , Feb 19th at 2:10 PM

Ragolution

I can look into it! I'm curious though, which mod are you using? Nicknames themselves don't really affect much.  There is a mod config option to disable nameplates, `ShowNicknameInNametag` (regenerate your mod config if you don't see it).  Otherwise though, Nicknames don't drive much other than chat messages.

💬 Ragolution, Feb 18th at 6:00 AM

Could there be a way to disable the nickname system? It's currently interfering with another mod we're using that records account names to determine a block's owner.

💬 BASIC , Feb 5th at 2:16 PM

CHR3S

Whoops, I tore out that functionality at one point! I've removed it from the documentation, and filed a feature request.

Royal_X5

Thanks for the report, I've filed an issue to track this and will take a look sometime next week, thanks for your patience.

💬 Royal_X5, Feb 4th at 8:31 PM

Nicknames seem buggy, can't set the range correctly and sometimes they always show regardless.

💬 CHR3S, Jan 30th at 2:56 PM

/pmessage doesn't seem to work

💬 CHR3S, Jan 23rd at 9:33 PM

BASIC

I assume it has to do with one of the mods I installed. Since I can't use any basic commands. e.g.: /say or /yell

💬 BASIC , Jan 23rd at 4:56 AM

CHR3S

I can do some debugging tomorrow, but my initial guess is that you need to regenerate the mod config! I added a new config option `UseGeneralChannelAsProximityChat` that's being used on that line.

💬 CHR3S, Jan 22nd at 7:47 PM
Any Idea how to fix this?

22.1.2025 20:46:52 [Server Error] Mod exception: OnPlayerChat
22.1.2025 20:46:52 [Server Error] Exception: Object reference not set to an instance of an object.
at thebasics.ModSystems.ProximityChat.RPProximityChatSystem.Event_PlayerChat(IServerPlayer byPlayer, Int32 channelId, String& message, String& data, BoolRef consumed) in C:\bench\vs\Vintage-Story-Mods\mods-dll\thebasics\src\ModSystems\ProximityChat\RPProximityChatSystem.cs:line 412
at Vintagestory.Server.ServerEventManager.TriggerOnplayerChat(IServerPlayer player, Int32 channelId, String& message, String& data, BoolRef consumed) in VintagestoryLib\Server\ServerEventManager.cs:line 616
💬 Kara, Jan 16th at 4:12 PM

BASIC don't ever worry about being slow, go at your own pace and enjoy modding =D

💬 Foxtrot88, Jan 13th at 5:27 AM

I'm literally surprised this is not a built in module already, it's amazing!! A must have for multi!!

💬 BASIC , Jan 11th at 9:58 PM

@Kara

It's difficult to remove general chat entirely as it's pretty much baked into the game's code, but I've released an update V5.0.1 with a config flag `UseGeneralChannelAsProximityChat` that will instead use General chat as the proximity chat.  I also added `EnableGlobalOOC` to go along with this, which enables using two parens in a message (ie. "((This is a Global OOC message))") for global OOC in the Prox chat channel.

I hope this meets your needs! Please let me know of any issues you find.

I've made a couple of other small fixes as part of this update, but there's still plenty of small bugs left to tackle.  Sorry I'm being so slow on this everybody, I appreciate you all very much 💜

💬 Kara, Dec 26th 2024 at 6:55 AM

Is there a way to disable General chat with this? =O

💬 BASIC , Dec 23rd 2024 at 2:06 AM

Update for V1.20 has been released! This is very much a WIP build, but I wanted to get it out ASAP for anybody who's waiting on it.  I'll be revisiting it soon with another update to polish it up!

💬 Keekenox, Dec 5th 2024 at 8:22 AM

When update??? 😳

💬 Rafflesia, Dec 5th 2024 at 8:15 AM

Aw man, I was betting the highly esteemed BASIC would be the first one to update to 1.20.

Multiplayer just isn't the same without being able to passively agressively suggest everyone sleep.

💬 DejFidOFF, Sep 20th 2024 at 1:34 PM

BASIC

hallo o/ Any chance to implement AFK notification ( when player not moving or doing anything) ?

 

💬 Quiche, Jun 22nd 2024 at 1:07 AM

Nameplates would be a blessing! Bless you for still working on this mod.

💬 Marshy, Jun 19th 2024 at 6:29 AM

Just here to respond to this poll. Yeah, nameplate changes would be awesome! I personally don't see any problem with switching the mod's Side either.
Thanks for working on this mod -- it's a must-have for me. :D

💬 BASIC , Jun 17th 2024 at 7:54 PM

Hey Maamessu it's good to see you again too ~ I can't tell you how happy it makes me to see this mod continue to have life!

I'll dedicate some time to these feaures here soon and see what I can make happen!

💬 Maamessu, Jun 17th 2024 at 6:41 PM

Nice to see you again, BASIC. I've still been using the mod all these years and glad it was written so well as to keep functioning regardless of the game updates!

I think making the mod universal is fine. With autodownloading from the moddb, it's not much of a concern. Changing nameplates to show nicknames would be amazing IMO, as would the ability to tweak the range at which nameplates are shown (or maybe "a show when targetting" option like traders?) that's synced to the server.

Anyways, hope your doing well! XD

💬 BASIC , Jun 17th 2024 at 5:21 PM

Hello all - Sorry that I've been gone for so long! I've been off working on other projects.

Quick responses to all the questions in my absense:
@McTaco You can access stats via the `/playerstats` command.  It takes an optional argument of another player's name to see their stats, but currently only works if that player is online.  I really should update the mod's description with the missing commands...
@Kaofan You *might* be able do it with the current build by setting the config to: `"<font color="#[hex code]">Server save has started - expect lag for a few seconds.</font>"`  I've created an issue on the github here to track this feature request.
@Guayo Yup, it still functions as expected! I am bad about keeping up with the supported game version tagging as new VS versions are released.
@Mohandar Although it would be neat, proximity voice is not on my radar right now.  It'd be really neat to implement something similar to TFAR in Arma 3 over Teamspeak...

Now, a general poll for the community~ I've gotten a lot of requests recently around changing nameplates to show nicknames, as well as fixing the issue with chat focus switching to General chat.  These changes would (probably) require switching this mod from server-side only to Universal (which means it'd now be listed as a mod clients have to download).  Does anybody have any concerns about such a change? Thanks!

Lastly, I wanted to mention that I welcome any collaboration if anybody wants to contribute to the mod.  Feel free to reach out on discord (basic_bit), leave a comment here, or just submit a PR on Github!

<3

💬 McTaco, Oct 14th 2023 at 2:22 AM

How to use the stats?

💬 Gnusik2291, Sep 30th 2023 at 1:09 PM

BASIC

Is it possible to somehow change the color of the text displayed on the Server?

 

Example:

"TEXT_ServerSaveAnnouncement": "Server save has started - expect lag for a few seconds.",

"Color": "Cyan",

💬 Guayo, Jul 17th 2023 at 9:46 PM

Is th is mod still functioning?

💬 Mohandar, Jul 16th 2023 at 3:25 PM

What about a voice proximity chat as well? <3

💬 Amarillo, Jun 22nd 2023 at 9:13 AM

BASIC thanks for the reply and update. I am testing the mod on my server and for now so everything is okay! My community and I appreciates an active mod author like you that handles the issues.

💬 BASIC , Jun 14th 2023 at 2:44 PM

Amarillo This was a known issue in v4.0.0-pre.2, and fixed in v4.0.0-pre.3, see issue here.  Sorry that you've experienced this though, it was a pretty eggregous issue!  The root cause was due to an API behavior change in the v1.18 VS lore update.

I've been busy with other things but I'll put the official v4 release out today (clone of pre.3), along with a subsequent v4.0.1 to fix a small issue relating to chat accents.

💬 Amarillo, Jun 4th 2023 at 11:38 AM

Discovered that when using this mod in 1.18.5 version creates a bug that makes creatures keep walking when killed and turning into bones when killed from range, It super weird but I tested removing this mod and revealed that was causing the issue

💬 Davis, May 22nd 2023 at 8:52 PM

@BASIC Was hoping to speak with you regarding this mod! My Discord ID is Davis#3285 and I've sent you a message on there already. Awesome mod!

💬 Keekenox, May 21st 2023 at 7:53 PM

RogueRaiden Hello, I am BASIC's secretary! He has been notified of the problem. Thank you!

💬 Amarillo, Apr 28th 2023 at 11:11 AM

Hi! there is any way to disable the /nick command, I dont want the players to impersonate other players

💬 BASIC , Mar 11th 2023 at 3:43 AM

Falco

Thanks for diagnosing this, and for submitting the issue! For now I'll just package the mod up into a dll- I've pushed a new version out that should do the trick.

cc: Catochondria WickedSchnitzel

💬 Falco, Feb 12th 2023 at 12:57 PM

Catochondria & WickedSchnitzel

It seems to be an issue with live compiling with the windows dedicated server. Try compiling the mod yourself and replace the src directory in the mod with the DLL file. This only needs to be done on the server side. Clients can keep using the mod with the src/ directory as long as the mod version is the same.

I created an issue for this bug here: https://github.com/anegostudios/VintageStory-Issues/issues/2378.

💬 Morei_Nyn, Sep 14th 2022 at 7:03 PM

I hope we'll see an update or something like this. Unfortunately, and obviously, doesn't work with the current version. Same issue as below on 1.17.3

💬 WickedSchnitzel, May 31st 2022 at 10:51 PM

Server crash with

[Server Fatal] System.IO.FileNotFoundException: Could not load file or assembly 'VSSurvivalMod, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' or one of its dependencies. The system cannot find the file specified.
File name: 'VSSurvivalMod, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'
   at thebasics.ModSystems.SleepNotifier.SleepNotifierSystem.b__0(IPlayer player)
   at System.Linq.Enumerable.WhereListIterator`1.MoveNext()
   at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source)
   at thebasics.ModSystems.SleepNotifier.SleepNotifierSystem.GetSleepingCount() in Data\Cache\unpack\SERVER_thebasics_3.0.0-rc.2.zip_9e1dc03459e5\src\ModSystems\SleepNotifier\SleepNotifierSystem.cs:line 52
   at thebasics.ModSystems.SleepNotifier.SleepNotifierSystem.SlowServerTick(Single dt) in Data\Cache\unpack\SERVER_thebasics_3.0.0-rc.2.zip_9e1dc03459e5\src\ModSystems\SleepNotifier\SleepNotifierSystem.cs:line 28
   at Vintagestory.Common.EventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Server.CoreServerEventManager.TriggerGameTick(Int64 ellapsedMilliseconds, IWorldAccessor world)
   at Vintagestory.Server.ServerMain.Process()
 
WRN: Assembly binding logging is turned OFF.
To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1.
Note: There is some performance penalty associated with assembly bind failure logging.
To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. BASIC
💬 BASIC , Apr 19th 2022 at 1:28 AM

I can take a look at both of those things!  Group order is based upon when you joined it, as far as I can tell.  There might be a way to change the ordering; a simple (yet crude) way would be to remove and re-add all of a player's groups when they join, to control the ordering.  I'll mess around with it and see what I can do.

As for "focus" mode, that's probably something that can only be fixed client-side.  I've been trying to keep this mod server-side-only so far, but I'll still do some investigating.

 

PS: thanks Keek :D

💬 Keekenox, Apr 19th 2022 at 12:23 AM

Fun mod. Love it. <3

💬 RogueRaiden, Apr 18th 2022 at 5:46 PM

Any way the proximity chat group could be placed directly next to the general chat group? For players with several chat groups, it would be easier to swap. Edit: I noticed with one of my players, their proximity group is before their chat groups while mine is not. lol Not sure if that means it depends on when the groups are created.

Could there be a command to prevent a chat window from "popping up" on new messages when ran within that chat window? So a player could ignore chat groups to only focus on proximity or a particular chat group.

 (edit comment delete)
Основной веб-сайт | Почтовый сервер | FTP сервер | Административная панель | API интерфейс | Content Delivery Network | Статические файлы | Ресурсы сайта | Изображения | Файловое хранилище | Блог | Интернет-магазин | Техническая поддержка | Справочная система | Документация | Форум | Новости | Загрузки | Демонстрация | Тестовая среда | Приложение | Медиа контент | Разработка | Промежуточная среда | Бета версия | Безопасная зона | Вход в систему | Панель управления | Портал | Система управления контентом