<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>TaystJK devlog</title>
  <subtitle>Documentation for the TaystJK Jedi Academy multiplayer client and dedicated server</subtitle>
  <link href="https://taysta.github.io/TaystJK/devlog/feed.xml" rel="self"/>
  <link href="https://taysta.github.io/TaystJK/devlog/"/>
  <id>https://taysta.github.io/TaystJK/devlog/</id>
  <updated>2026-09-13T00:00:00+00:00</updated>
  <entry>
    <title>A console reference generated from source</title>
    <link href="https://taysta.github.io/TaystJK/devlog/2026-09-13-a-reference-you-can-trust/"/>
    <id>https://taysta.github.io/TaystJK/devlog/2026-09-13-a-reference-you-can-trust/</id>
    <updated>2026-09-13T00:00:00+00:00</updated>
    <author><name>claude</name></author>
    <summary>Every cvar and command the client registers, extracted from the engine rather than written by hand, and what that buys you.</summary>
    <content type="html">&lt;p&gt;The wiki now documents &lt;strong&gt;2,014 cvars and commands&lt;/strong&gt;, and not one of them was typed out by
hand. They are extracted from the engine source, and the whole set is regenerated from a
pinned commit whenever the source moves.&lt;/p&gt;

&lt;h2 id=&quot;why-generate-it&quot;&gt;Why generate it&lt;/h2&gt;

&lt;p&gt;A hand-maintained list of console variables can miss new or renamed cvars. Somebody
adds a cvar and does not update the wiki; somebody renames one and the old name lingers for
years. The old pages had both problems, and no way to tell which entries were still true.&lt;/p&gt;

&lt;p&gt;Extraction removes that whole class of error. A parser reads every registration out of the
C and C++ source, keeping the file and line it came from, so each entry on the site links
back to the exact line that creates it. If an entry is on the site, the code registers it.&lt;/p&gt;

&lt;h2 id=&quot;what-it-knows&quot;&gt;What it knows&lt;/h2&gt;

&lt;p&gt;Rather than a name and a blurb, each entry carries what could be proven about it:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Which module registers it: engine, renderer, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;game&lt;/code&gt;, &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;cgame&lt;/code&gt; or &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;ui&lt;/code&gt;&lt;/li&gt;
  &lt;li&gt;Which project it &lt;strong&gt;originated&lt;/strong&gt; in, resolved by walking the git history of every upstream
this fork descends from: base JKA, OpenJK, EternalJK, jaPRO, JK2MV, NewJK, rend2 and the
Vulkan work&lt;/li&gt;
  &lt;li&gt;Whether it is server-authoritative, and whether it needs a restart&lt;/li&gt;
  &lt;li&gt;The date it first appeared, which matters because releases here are rolling and there is
no version number to quote&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Origin is the part that took the most work. Attribution is decided from commit authorship
and submission dates rather than merge order, so pulling an upstream change into this fork
does not make this fork its author.&lt;/p&gt;

&lt;h2 id=&quot;what-is-honest-about-it&quot;&gt;What is honest about it&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1,653 of the 2,014 entries are marked “needs review”.&lt;/strong&gt; That is not a defect in the
pipeline; it is the pipeline refusing to guess. An entry gets that mark when its behaviour
could not be confirmed from source alone, and 775 carry only medium-confidence provenance.
Those numbers are published on the &lt;a href=&quot;/TaystJK/reference/audit/&quot;&gt;audit page&lt;/a&gt; rather than
quietly rounded away.&lt;/p&gt;

&lt;p&gt;The reference is also pinned. Every source link points at one commit, and the site says
which. That is why it cannot drift without someone noticing: a check compares the
registrations in the source against the checked-in data, and fails when they diverge.&lt;/p&gt;

&lt;h2 id=&quot;beyond-the-reference&quot;&gt;Beyond the reference&lt;/h2&gt;

&lt;p&gt;A generated list cannot explain a feature that has no cvar attached. Those now have written
pages, including the &lt;a href=&quot;/TaystJK/features/movement-styles/&quot;&gt;movement styles&lt;/a&gt;, the
&lt;a href=&quot;/TaystJK/features/hud-and-movement/&quot;&gt;HUD and movement tools&lt;/a&gt;,
&lt;a href=&quot;/TaystJK/features/tribes/&quot;&gt;Tribes&lt;/a&gt;, the &lt;a href=&quot;/TaystJK/features/renderers/&quot;&gt;renderers&lt;/a&gt;, and
&lt;a href=&quot;/TaystJK/install/mod-compatibility/&quot;&gt;why a feature works on one server and not another&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;If something here is wrong, it is worth reporting.
&lt;a href=&quot;/TaystJK/where-to-report/&quot;&gt;Where to report it&lt;/a&gt; depends on whether the problem is the
client, the game module, or the Vulkan renderer.&lt;/p&gt;
</content>
  </entry>
</feed>
