Starbound

Starbound

Not enough ratings
Dynamic Proximity Chat
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
Updated
273.767 KB
23 Mar @ 12:41am
7 Aug @ 3:27pm
26 Change Notes ( view )

Subscribe to download
Dynamic Proximity Chat

Description
Notices
  • This mod is in active development as a hobby after work, it's possible I've missed things while developing, due to testing being somewhat limited.
  • This mod uses the same general method as the proximity mode of Star Custom Chat RP by Degranon. That mod isn't required for this one, and the two should be able to work together.


About
Inspired by a fondly remembered server that unfortunately closed, this chat mod that adds a new chat mode which manages and alters incoming and outgoing messages based on proximity. This allows for a truly local chat system with various formatting options depending on the intended type of message being sent.

The mod also adds support for virtually infinite custom languages for use in roleplay scenarios. Players can create languages and use them in chat so only other players that know the language can understand some or all of the message.

Lastly, there is a basic toggleable autocorrect feature that lets you create entries for commonly misspelled words, which will then be automatically corrected to whatever you've set as the correction.

Requirements
Dynamic Proximity Chat for StarCustomChat, based on the proximity mode in the mod of the same name by Degranon. Requires Star Custom Chat[github.com] and Star Extensions[github.com], Open Starbound[github.com] or xStarbound[github.com]




How to use the mod
The following goes over how the mod works and how to format messages. In the future I may add an in game menu for this reference.

Chat Controls
Function
Symbol
Action/Emote
N/A
Quote
"..."
Sound
<...>
Volume Control
:+/:-/:=
Local OOC
<<...>>
Instance OOC
((...))
Serverwide OOC
(((...)))
Local/Instance Radio
{...}
Serverwide Radio
{{...}}
Rolling
|###|
Emphasis
*...* or /.../
Item Emphasis
`...`

Languages
Languages in this mod work by checking player inventories for items that are created with language codes made up of some amount of letters. Depending on how many items with a given code a player has, they will understand more or less of a language.

Proficiency can be increased or decreased with more or fewer items in your inventory. By default, the language [!!] is universal, meaning everyone will understand it.

Using empty brackets [] will reset the active language to the player's default language.
You can use <...> inside quotes to quickly designate phrases as universally known. Use this for things like names.

You can have multiple default languages, the mod will find the first one in your inventory. Just remember to switch them around when you need them.
Note: Language items show up in the crafting components section of your inventory, since they're components to craft dialogue, or something like that.

Radio
Note: For instance-wide radios to work properly, /sendlocal must be enabled.

Sending messages over radio (ignoring line of sight) can be done with {...} for local radio or {{...}} for serverwide radio. Normally, radio chat is universally heard, but you can use comm channels in order to send more private messages.

To use comm channels, prefix a segment of radio chat with [###], much like you would with languages, with either an integer code or alphanumeric alias. You can only send messages to channels you are listening on (code '0' is enabled by default).

See the commands section for information on how to set up comm channels.

Typo Correction
You can add and remove typos and corrections from a list stored in the player file. These are case sensitive and only work between punctuation and spaces. This tool is off by default.




Important Commands
/newlangitem name (String), code (String), count (Number), default (True/False), color (#hex code) - Creates new language items for your character.
  • name: One word name for the language (you must use one word, no more)
  • code: The code that the language uses.
  • count: The number of items you're going to spawn, between 1 and 10.
  • default: Whether or not the language is a default language, meaning it will automatically be used when no code is provided
  • color: A custom color in which you'll see scrambled words of the language, otherwise they'll be random
    Note: Since this mod is clientside, only you will see the color you set for the language. If you make an item with blue, and someone else makes the same item with red, you'll see it as blue and they'll see it as red.

/addtypo typo (String), correction (String) - Adds a typo to your typo list
  • typo: The mistyped word, such as "hte, adn, weast, s"
  • correction: The intended word, such as "the, and, west, a"

/removetypo typo (String) - Removes a typo from your typo list
  • typo: The typo to remove

/toggletypos - Activates or Deactivates typo correction, off by default.

/checktypo - Checks the status of the typo correction tool.

/showtypos - Shows the list of saved typos you have, and if the tool is on or off.

/proxlocal - Toggles whether or not messages sent in "Local" are processed as dynamic messages.

/sendlocal - Toggles whether or not dynamic messages are sent via local chat. These will still be processed as dynamic messages.
Note: Instance wide radio and OOC will require /sendlocal to be on

/proxooc - Toggles whether or not instance OOC ((...)) is range capped.

/commcodes: Lists all comm codes your character is listening in on. Comm codes are saved on a per-character basis. (And handled appropriately on xStarbound if you have multiple characters loaded!)

/commcode [$newDefault]: Shows you your default commcode for sending messages without a comm code specifier, or if specified, sets your default. Setting your default to - means you must always explicitly specify a commcode in order for roleplay in comms brackets to show up as comms. You may specify your default commcode by its alias.

/addcommcode $newCommCode [$alias]: Adds or modifies a listened comm code, optionally adding, modifying or (if left unspecified) removing an alphanumeric alias. Aliases are handled before language code checks — i.e., if [ABC] is an alias, it won't be parsed as a language code when you send messages.

/removecommcode $commCodeOrAlias: Removes a listened comm code. You may specify the code to remove by its alias




Tips
  • [!!] can be used for the code in a language item, so it may be worthwhile to generate a set of default language items with that code in case you make others later for niche situations
  • Quotes and sounds have independent volume trackers while using volume control.

Planned Enhancements
  • GUI for settings, if needed.
  • International Support (eventually). Right now this mod won't work with non-ASCII script

Links
Github repository[github.com]
Popular Discussions View All (2)
7
31 May @ 10:28am
Suggestions
Captain Salt
0
2 Apr @ 4:00pm
Bug Reporting
Captain Salt
7 Comments
Captain Salt  [author] 2 Aug @ 9:29pm 
It requires the Custom Chat mod as well as Open Starbound. It's also worth noting that the client processor is in need of some minor fixes, which I'll probably work on soon. It should work for most use cases, however.
LuigitheMan20 2 Aug @ 3:30pm 
Just a quick question: does the mod require "custom chat *and* OpenStarbound" or "custom chat *or* OpenStarbound"?
RetGone 11 May @ 3:21pm 
I am also here.
Alaystus 11 May @ 2:19am 
Hell yeah, dude. Thank you for making this.
Captain Salt  [author] 2 Apr @ 4:07pm 
I added a couple of discussion posts to help with support. I don't have a server for this project, so listing bugs and suggestions in the appropriate discussions will probably be the best way for me to work on supporting the mod.
FezzedOne 2 Apr @ 10:31am 
Oh, and I can also help with improvements to this mod.
FezzedOne 2 Apr @ 10:30am 
Do you have a Discord server for support or chit-chat? I can also offer help with any issues related to xStarbound compatibility. Considering using this mod on my currently-on-hiatus roleplay server.