SANDBOX — this is a test environment. No servers are actually deployed and no real payments are charged.
Back to NxLabs

NxLabs / Vintage Story

Zero Loss Coke

HBy harukadev

Removes the random 50% loss when converting coal to coke, ensuring you always get maximum yield. Ser

Description

<h1 style="text-align: center;"><strong>ZeroLossCoke</strong></h1> <p style="text-align: center;"><strong>No More 50% Loss When Producing Coke in Vintage Story</strong></p> <p style="text-align: center;">ZeroLossCoke removes the hardcoded coke yield loss from vanilla coal conversion, ensuring predictable, configurable, and server-safe results using clean Harmony Postfix patches.</p> <h2>📋 Features</h2> <ul> <li><strong>Full Coke Yield</strong> &ndash; Eliminates the vanilla 50% conversion loss</li> <li><strong>Configurable Output</strong> &ndash; Yield multiplier with optional min/max limits</li> <li><strong>Server-Safe Patching</strong> &ndash; Uses Postfix only (no Transpilers, no IL hacks)</li> <li><strong>Zero Performance Impact</strong> &ndash; No extra ticks, loops, or allocations</li> <li><strong>Optional Debug Logging</strong> &ndash; Transparent server-side logging for admins</li> </ul> <h2>⚙️ Configuration</h2> <p>On first launch, the mod generates <em>zerolosscoke.json</em> with the following defaults:</p> <pre><code>{ "YieldMultiplier": 2.0, "MinYield": 0, "MaxYield": 0, "DebugLogging": true }</code></pre> <h3>Settings Explanation</h3> <table> <thead> <tr> <th>Setting</th> <th>Type</th> <th>Default</th> <th>Description</th> </tr> </thead> <tbody> <tr> <td><strong>YieldMultiplier</strong></td> <td>float</td> <td>2.0</td> <td>Final coke multiplier (2.0 = 100% yield, 1.0 = vanilla behavior)</td> </tr> <tr> <td><strong>MinYield</strong></td> <td>int</td> <td>0</td> <td>Guaranteed minimum output (0 disables the limit)</td> </tr> <tr> <td><strong>MaxYield</strong></td> <td>int</td> <td>0</td> <td>Hard cap for output amount (0 = unlimited)</td> </tr> <tr> <td><strong>DebugLogging</strong></td> <td>bool</td> <td>true</td> <td>Enable detailed server-side conversion logs</td> </tr> </tbody> </table> <h2>🎮 How It Works</h2> <ol> <li>Build a valid coke oven using refractory blocks and a door</li> <li>Place bituminous coal piles inside</li> <li>Ignite the oven and wait for the burn cycle to complete</li> <li>Receive the full configured coke yield</li> </ol> <p><strong>Example:</strong> 16 coal &rarr; 16 coke (instead of the vanilla 8)</p> <h2>🔧 Compatibility</h2> <ul> <li><strong>Vintage Story:</strong> 1.20.x &ndash; 1.21.x (<a href="https://github.com/HarukaYamamoto0/zero-loss-coke/releases">GitHub Releases for 1.20</a>)</li> <li><strong>Multiplayer:</strong> Fully server-side, clients do not need the mod</li> <li><strong>Other Mods:</strong> Compatible with most mods that do not replace coal pile logic</li> </ul> <h2>💻 Technical Notes</h2> <p>ZeroLossCoke applies a Harmony Postfix patch to <code>BlockEntityCoalPile.OnBurningTickServer()</code>, adjusting the final output after the vanilla logic completes. No IL rewriting, reflection tricks, or unsafe hooks are used.</p> <h2>❓ Support &amp; Issues</h2> <ul> <li>Bug reports and feature requests: GitHub repository</li> <li>General discussion: Vintage Story modding forum</li> <li>Debugging: Check server logs for <code>[ZeroLossCoke]</code> entries</li> </ul> <p style="text-align: center;"><em>"Because losing half your coke was never good game design."</em> 🏭🔥</p>

Ratings & reviews

No ratings yet

Sign in to leave a rating or comment.