Mods / The Basics - RP Proximity Chat and more!

Category: #Other #QoL #Utility
Author: BASIC
Side: Server
Created: Apr 9th 2022 at 12:08 AM
Last modified: Jun 15th 2023 at 12:59 AM
Downloads: 2746
Follow Unfollow 43

Latest file for Various v1.19.x:
thebasics_4.0.1.zip 1-click install


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

The Basics

Mod Systems:

  • RP 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)

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 1-click mod install*
v4.0.1 767 Jun 15th 2023 at 12:59 AM Show thebasics_4.0.1.zip Install now
v4.0.0 155 Jun 15th 2023 at 12:57 AM Show thebasics_4.0.0.zip Install now
v4.0.0-pre.3 184 May 22nd 2023 at 1:41 AM Show thebasics_4.0.0-pre.3.zip Install now
v4.0.0-pre.2 151 May 20th 2023 at 4:21 AM Show thebasics_4.0.0-pre.2.zip Install now
v4.0.0-pre.1 195 Apr 27th 2023 at 3:43 AM Show thebasics_4.0.0-pre.1.zip Install now
v3.0.0 159 Apr 27th 2023 at 3:37 AM Show thebasics_3.0.0.zip Install now
v3.0.0-rc.4 227 Mar 10th 2023 at 5:50 AM Show thebasics_3.0.0-rc.4.zip Install now
v3.0.0-rc.2 325 May 2nd 2022 at 4:35 AM Show thebasics_3.0.0-rc.2.zip Install now
v3.0.0-rc.1 293 Apr 10th 2022 at 10:29 AM Show thebasics_3.0.0-rc.1.zip Install now
v2.7.0 287 Apr 9th 2022 at 1:17 AM Show thebasics_v2.7.0.zip Install now

24 Comments (oldest first | newest first)

💬 DejFidOFF, Sep 20th at 1:34 PM

BASIC

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

 

💬 Quiche, Jun 22nd at 1:07 AM

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

💬 Marshy, Jun 19th 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

💬 BASICAuthor, Jun 17th 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 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

💬 BASICAuthor, Jun 17th 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?

💬 Kaofan, 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.

💬 BASICAuthor, 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!

💬 RogueRaiden, May 18th 2023 at 10:24 PM
💬 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

💬 BASICAuthor, 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
💬 BASICAuthor, 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)