Mods / The Basics - RP Proximity Chat and more!

Category: #Other #QoL #Utility
Author: BASIC
Side: Server
Created: Apr 9th at 12:08 AM
Last modified: May 2nd at 4:35 AM
Downloads: 165
Follow Unfollow 7

As seen on Saltpoint RP and various other servers, finally released on ModDB!

The Basics

Adds an RP proximity chat system, with configurable talking ranges, nicknames, automatic message formatting, and more! Also adds a server save notification.

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
  • 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
    • "/hands (text)", "/h" - Set your chat mode to Sign Language, or sign a single message
  • Chat Messages
    • "/me [text]", "/m" - Send a proximity emote message
    • "/it [text]" - Send a proximity environment message
  • 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
  • Other
    • "/pmessage [text]" - Sends a message to all players in a specific area

Configuration:

{
"ProximityChatModeDistances": {
"Yell": 90,
"Normal": 35,
"Whisper": 5,
"Sign": 15
},
"BoldNicknames": false,
"ProximityChatModeVerbs": {
"Yell": [
"yells",
"shouts",
"exclaims"
],
"Normal": [
"says",
"states",
"mentions"
],
"Whisper": [
"whispers",
"mumbles",
"mutters"
],
"Sign": [
"signs",
"gestures",
"motions"
]
},
"ProximityChatModePunctuation": {
"Yell": "!",
"Normal": ".",
"Whisper": ".",
"Sign": "."
},
"ProximityChatModeQuotationStart": {
"Yell": "\"",
"Normal": "\"",
"Whisper": "\"",
"Sign": "<i>'"
},
"ProximityChatModeQuotationEnd": {
"Yell": "\"",
"Normal": "\"",
"Whisper": "\"",
"Sign": "'</i>"
},
"SendServerSaveAnnouncement": true,
"SendServerSaveFinishedAnnouncement": false,
"TEXT_ServerSaveAnnouncement": "Server save has started - expect lag for a few seconds.",
"TEXT_ServerSaveFinished": "Server save has finished."
}

Potential Future Improvements

  • Use actual line of sight for sign language

Feel free to leave suggestions!

Version For Game version Downloads Release date Changelog Download
v3.0.0-rc.2 52 May 2nd at 4:35 AM Show thebasics_3.0.0-rc.2.zip
v3.0.0-rc.1 64 Apr 10th at 10:29 AM Show thebasics_3.0.0-rc.1.zip
v2.7.0 49 Apr 9th at 1:17 AM Show thebasics_v2.7.0.zip

4 Comments (oldest first | newest first)

WickedSchnitzel, May 31st 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 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 at 12:23 AM

Fun mod. Love it. <3

RogueRaiden, Apr 18th 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.

delete edit