<p style="text-align:center;"><a href="https://kreezcraft.com/localized-chat"><img width="90%" src="https://media.forgecdn.net/attachments/651/244/bh_nu_promo.png" alt=""/></a></p><p style="text-align: center;">If you want a server setup for the Localized Chat mod with zero effort, get a <a href="https://kreezcraft.com/localized-chat">server with BisectHosting</a> and receive 25% off your first month as a new customer using the code kreezxil</b></p><p> </p><h1 id="changelog-—-localized-chat-540-vs-1201-513">Changelog — Localized Chat 5.4.0 vs 1.20.1 (5.1.3)</h1>
<p>Compared against <code>multi/1.20</code> / 5.1.3 (Minecraft 1.20.1 Forge + Fabric).</p>
<h2 id="platforms">Platforms</h2>
<ul>
<li>1.20.1: Forge + Fabric</li>
<li>5.4.0: NeoForge + Fabric on Minecraft 1.21.1</li>
<li>Still server-side. Client is optional (LAN / singleplayer).</li>
</ul>
<h2 id="channels">Channels</h2>
<p>1.20.1 only had local talk and <code>/shout</code>. <code>/me</code> reused talk range. <code>/tell</code> / <code>/msg</code> / <code>/w</code> were vanilla and uncapped.</p>
<p>5.4.0 treats every owned comms path as its own channel:</p>
<table>
<thead>
<tr>
<th id="channel">Channel</th>
<th id="command">Command</th>
<th id="1.20.1">1.20.1</th>
<th id="5.4.0">5.4.0</th>
</tr>
</thead>
<tbody>
<tr>
<td>talk</td>
<td>normal chat</td>
<td>range only</td>
<td>enable, range, cost</td>
</tr>
<tr>
<td>shout</td>
<td><code>/shout</code>, <code>/s</code>, <code>/sh</code></td>
<td>range + hunger cost + disable toggle</td>
<td>enable, range, any cost mix</td>
</tr>
<tr>
<td>whisper</td>
<td><code>/me</code></td>
<td>used talk range, no own config</td>
<td>own enable, range, cost</td>
</tr>
<tr>
<td>tell</td>
<td><code>/tell</code>, <code>/msg</code>, <code>/w</code></td>
<td>vanilla, no range, no cost</td>
<td>own enable, range, cost</td>
</tr>
</tbody>
</table>
<p>Range rules in 5.4.0:</p>
<ul>
<li><code>-1</code> = unlimited</li>
<li><code>0</code> = only the sender hears talk/shout/me; tell reaches nobody</li>
<li>same-dimension check unless range is unlimited / op-exempt</li>
<li>still Manhattan (<code>|dx|+|dy|+|dz|</code>), same as 1.20.1</li>
</ul>
<h2 id="costs">Costs</h2>
<p>1.20.1 shout was hunger-only (<code>shoutFoodCost</code>). Talk was free. Nothing else charged.</p>
<p>5.4.0 every channel can charge any mix of:</p>
<ul>
<li><code>none</code></li>
<li><code>hp</code> (half-hearts)</li>
<li><code>hunger</code> (food points)</li>
<li><code>xp</code> (experience points, not levels)</li>
<li>comma/plus combos, or <code>all</code></li>
</ul>
<p>If any selected resource cannot be paid, nothing is deducted and the action fails.</p>
<p>Defaults vs 1.20.1:</p>
<ul>
<li>talk: still free, range 100</li>
<li>shout: still 1 hunger by default, range 400</li>
<li>whisper: free, range 100</li>
<li>tell: free, unlimited (<code>-1</code>)</li>
</ul>
<h2 id="operators">Operators</h2>
<p><code>opAsPlayer</code> is unchanged in meaning.</p>
<ul>
<li><code>false</code> (default): ops skip costs and everyone hears them on that channel</li>
<li><code>true</code>: ops pay and obey range like everyone else</li>
</ul>
<h2 id="extra-commands-new">Extra commands (new)</h2>
<p><code>extra_commands</code> can tax or disable other root commands (home, rtp, warp, etc.).</p>
<p>Format: <code>command|enabled|cost_type|hp|hunger|xp</code></p>
<p>Shorthand <code>home</code> means enabled, no cost. No leading slash. Only the root command matches — <code>/execute ... run home</code> does not. Builtins (<code>shout</code>, <code>s</code>, <code>sh</code>, <code>me</code>, <code>tell</code>, <code>msg</code>, <code>w</code>) are ignored here; use the channel sections.</p>
<h2 id="what-did-not-change">What did not change</h2>
<ul>
<li>Color codes, prefix, <code>usePrefix</code>, <code>rangeNotifier</code></li>
<li>Distance display in brackets when range notifier is on</li>
<li>Not compatible with other chat overlays (Discord bridges, FTB-style global chat, etc.)</li>
</ul>
<h2 id="config-key-migration">Config key migration</h2>
<p>Old 1.20.1 keys are gone:</p>
<ul>
<li><code>talkRange</code> → <code>[talk] talk_distance</code> / <code>enable_talk</code> / cost keys</li>
<li><code>shoutTalkRange</code> → <code>[shout] shout_distance</code></li>
<li><code>shoutFoodCost</code> → <code>[shout] shout_cost_type</code> + <code>shout_cost_hunger</code></li>
<li><code>shoutDisabled</code> → <code>[shout] enable_shout</code> (inverted)</li>
</ul>
<p>Copy numbers by hand. Do not drop a 1.20.1 config file onto 5.4.0 and expect it to map itself.</p>
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }