Mods / Typing Indicator

Category: #QoL
Author: Fatigue
Side: Both
Created: Jun 25th at 4:55 AM
Last modified: Jul 7th at 7:03 AM
Downloads: 4489
Follow Unfollow 24

Latest file for v1.19.8:
TypingIndicator.zip 1-click install


Server / Singleplayer compatible. Must be installed on both client and server for it to successfully function.

Server owners, when you update this mod it will replace your configuration.
1.
Go to VintagestoryData/ModConfig/typing_indicator/
2. Adjust VintagestoryData/ModConfig/typing_indicator/config.json with the localization text each update.
2.1. Your old configuration files have been moved to VintagestoryData/ModConfig/typing_indicator/out_of_date_configs/config_(version).json. You can copy/paste what's changed; this is just a safety thing in case the server packets change in the future. In most cases unless otherwise specified, you can basically copy paste everything above READONLY_CreatedWithTypingIndicatorVersion to the new configuration.

Changelog - Version 1.1.2

Should fix https://github.com/FatigueDev/typing_indicator/issues/2, which is a null reference exception when the display text is null in the renderer. Prevents players with rough connections from crashing, instead temporarily displaying the default english localization before the server finishes sending it's preferred configuration to be displayed.

Changelog - Version 1.1.1
Hotfix for singleplayer, should hopefully fix https://github.com/FatigueDev/typing_indicator/issues/1 reported by WickedSchnitzel
Changelog - Version 1.1.0

Server Owners / Singleplayers:
When the game is run, it spits out a new configuration file containing the following defaults:

{
  "Localizations": {
    "en": "Typing..."
  },
  "Timeout": 5.0,
  "MaxRange": 50,
  "READONLY_CreatedWithTypingIndicatorVersion": "1.1.0"
}

Localizations can be appended to and given custom text. The default is "en": "Typing...", but once the configuration is created it can be changed while the server is running. Players re-log, they get the updated contents of this config applied to their TypingIndicator.

Timeout is how long a player can not type before they stop displaying their indicator in seconds.

MaxRange is how far players can see each other's typing indicators (NOT in blocks, it's a magic distance number. Please tweak this until you're happy with how far away it is displayed.

READONLY_CreatedWithTypingIndicatorVersion is a flag for creating configs. If the mod updates, we'll move your old config to ModConfig/typing_indicator/out_of_date_configs/ so you can copy and paste your old configuration settings to potentially a new configuration format. I don't think it'll be updated often, but if and when it is you'll need to keep this in mind.

Version For Game version Downloads Release date Changelog Download 1-click mod install*
v1.1.2 3463 Jul 7th at 7:03 AM Show TypingIndicator.zip Install now
v1.1.1 754 Jun 27th at 10:20 AM Show TypingIndicator.zip Install now
v1.1.0 78 Jun 27th at 4:53 AM Show TypingIndicator.zip Install now
v1.0.0 194 Jun 25th at 4:58 AM Show TypingIndicator.zip Install now

14 Comments (oldest first | newest first)

💬 Whiteshadoh, Nov 28th at 3:22 PM

This hard crashes in 1.20

```
Thu 11-28 9:21:45 AM: Critical error occurred in the following mod: typing_indicator@1.1.2
Loaded Mods: game@1.20.0-pre.13, typing_indicator@1.1.2, creative@1.20.0-pre.13, survival@1.20.0-pre.13
System.MissingMethodException: Method not found: 'Vintagestory.API.Common.IMountable Vintagestory.API.Common.EntityAgent.get_MountedOn()'.
at TypingIndicator.EntityTypingIndicatorRenderer.OnRenderFrame(Single deltaTime, EnumRenderStage stage)
at Vintagestory.Client.NoObf.ClientEventManager.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\Util\ClientEventManager.cs:line 200
at Vintagestory.Client.NoObf.ClientMain.TriggerRenderStage(EnumRenderStage stage, Single dt) in VintagestoryLib\Client\ClientMain.cs:line 816
at Vintagestory.Client.NoObf.ClientMain.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\ClientMain.cs:line 1005
at Vintagestory.Client.GuiScreenRunningGame.RenderToDefaultFramebuffer(Single dt) in VintagestoryLib\Client\MainMenu\Screens\GuiScreenRunningGame.cs:line 248
at Vintagestory.Client.ScreenManager.Render(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 695
at Vintagestory.Client.ScreenManager.OnNewFrame(Single dt) in VintagestoryLib\Client\ScreenManager.cs:line 670
at Vintagestory.Client.NoObf.ClientPlatformWindows.window_RenderFrame(FrameEventArgs e) in VintagestoryLib\Client\ClientPlatform\GameWindow.cs:line 92
at OpenTK.Windowing.Desktop.GameWindow.Run()
at Vintagestory.Client.ClientProgram.Start(ClientProgramArgs args, String[] rawArgs) in VintagestoryLib\Client\ClientProgram.cs:line 328
at Vintagestory.Client.ClientProgram.<>c__DisplayClass10_0.<.ctor>b__1() in VintagestoryLib\Client\ClientProgram.cs:line 130
at Vintagestory.ClientNative.CrashReporter.Start(ThreadStart start) in VintagestoryLib\Client\ClientPlatform\ClientNative\CrashReporter.cs:line 93
```

💬 ShubiMaja, Nov 3rd at 9:33 PM

It looks like the server config is placed in data/data/ModConfig instead of data/ModConfig. Is this expected behavior?

💬 Lumvik, Oct 31st at 6:37 PM
Hello, the config file on my server isn't working. After restarting the server, all changes in the config file are reset.🤔
💬 FatigueAuthor, Jul 7th at 7:04 AM

Updated to version 1.1.2 (Server owners, update your configurations);

Should fix https://github.com/FatigueDev/typing_indicator/issues/2, which is a null reference exception when the display text is null in the renderer. Prevents players with rough connections from crashing, instead temporarily displaying the default english localization before the server finishes sending it's preferred configuration to be displayed.

💬 FatigueAuthor, Jun 27th at 10:21 AM

Updated to version 1.1.1;
Hotfix for singleplayer, should hopefully fix https://github.com/FatigueDev/typing_indicator/issues/1 reported by WickedSchnitzel

💬 FatigueAuthor, Jun 27th at 5:03 AM

Updated to version 1.1.0;
Added configuration that's given to clients.

Localization; now you can set the typing indicator of all your players to "Grundle bo-bundle..." or whatever you like. You can add support for a new language by adding the language code as it's key and giving it a value. If it doesn't exist, it defaults to English. PLEASE, if you are adding a new language that is simply "Typing..." but in a Vintage Story supported language, make a pull request with the addition to this file on the Typing Indicator Github.

Added typing timeout which, if you type type type but stop for a length of time defined in your config (default 5 seconds) you'll stop typing.
Added max display distance which is a magic number. I'm not keen on getting into the render code but it's configurable.

All configurable options are sent when a player joins, so you can change the values in the config and make all the players rejoin to have them show the newest values in the config.

💬 Tels, Jun 26th at 8:02 PM

That is a nice mod! Think if the text can be changed, I'd change it to "Clears throat ..." 😀

💬 DUCATISLO, Jun 26th at 1:39 PM

gg

💬 FatigueAuthor, Jun 25th at 10:06 AM

I have lots of things planned for config, but after spending a couple long nights on it I'm gonna take a bit to chill and turn my brain off.

Features planned:
- Timer that counts how long the text hasn't changed. If it exceeds the max (config), stop IsTyping.
- Localization file loaded serverside which can display the text in whatever language you choose (config). It'd also let you change the displayed text.
- Settable distance on how far away the Typing indicator can be seen (config).

Other possible features could include sending a placeholder message when someone starts typing into the client's chat. Like..
'(PlayerName) is typing...'
But when they stop typing (either by sending the message or by timing out / losing chat focus), that is removed from the text chat.
If I did add this functionality, it'd probably be opt in on the client. Could use thoughts.

💬 WickedSchnitzel, Jun 25th at 8:52 AM

Suggestion: Add a config to let admins decide what will be displayed. For example, i would prefer "Thinking.."

💬 Marshy, Jun 25th at 6:08 AM

Tested it on localhost dedicated, works great! Will report back with results from online play soon.
I do have one suggestion: configurable timeout, so the indicator goes away if you still have the chatbar focused but have not entered any characters for n seconds. For those players who afk in the middle of a sentence lol

At any rate, thanks a bunch for putting this out!

💬 Ket, Jun 25th at 5:36 AM

Thank you so much for even attempting to make this! 

💬 FatigueAuthor, Jun 25th at 5:28 AM

Iphour Cheers, mate. Hope it's stable. Tested on my local server with some people, so fingers crossed. If you have any issues, post here or on the issue tracker. Enjoy!

💬 Iphour, Jun 25th at 5:25 AM

I love you for this

(edit comment delete)