⌨️ Configuration & Dynamic GameRules (MC 26.3)
📌 Repository Source Disclaimer: The documentation in this Wiki reflects the current source code state in the repository, which may include recent unreleased commits or developmental features ahead of public release builds on CurseForge and Modrinth.
1. Official Infobox Table
| Parameter | Technical Details |
|---|---|
| Subsystem Name | Dynamic GameRules & Brigadier Command Suite |
| Minecraft Anchor | MC 26.3 |
| Java Implementation | net.vanillaoutsider.velocityrender.registry.YouRunFastGameRules |
| Command Implementation | net.vanillaoutsider.velocityrender.command.YouRunFastCommand |
| Root Command | /velocityrender |
| GameRule Category | velocityrender:main ("Velocity Render") |
| Permission Level (Get/Status) | Level 0 (All players) |
| Permission Level (Set/Reset/Reload) | Level 2 (GAMEMASTERS / Server Operators) |
| Integration Framework | DynamicGameRuleManager via DasikLibrary |
2. Step-by-Step Player Workflow & Command Usage
1. Checking Real-Time Telemetry (/velocityrender status)
Players can check their instantaneous velocity, server tick performance, active tickets, and chunk mesh state at any time:
/velocityrender statusExample Output:
§6[Velocity Render — Engine Telemetry]§r
§7• §fStatus: §aACTIVE§r
§7• §fYour Velocity: §a1.45 b/t (29.0 m/s)§r
§7• §fDynamic Forward Reach: §e14 Chunks§r
§7• §fActive Packed Tickets: §b18 (LongOpenHashSet Zero-Alloc)§r
§7• §fServer MSPT Load: §f18.4 ms §7(§a20.0 TPS§7)§r
§7• §fClient Mesh Bias: §aCOMPILING FORWARD§r
§7• §fForward Lead Multiplier: §e100%§r
§7• §fMin Speed Threshold: §b0.20 b/t (4.0 m/s)§r
§7• §fBudget Conservation: §aON§r
§7• §fDebug Logging: §7OFF2. Querying Active GameRules (/velocityrender get <rule>)
/velocityrender get lead_multiplier
-> §6velocityrender:forward_lead_multiplier = §e100%
/velocityrender get min_speed
-> §6velocityrender:min_speed = §e0.2 b/t3. Modifying Settings in Real Time (/velocityrender set <rule> <value>)
Operators can tune settings on the fly without restarting the server or client:
/velocityrender set lead_multiplier 150
-> §aUpdated velocityrender:lead_multiplier to 150
/velocityrender set min_speed 30
-> §aUpdated velocityrender:min_speed to 304. Restoring Defaults & Reloading
/velocityrender reset
-> §aReset all You Run Fast settings to vanilla defaults.
/velocityrender reload
-> §aReloaded You Run Fast configuration successfully.3. Mathematical Conversions & Configuration Ranges
- Forward Lead Multiplier: $$\text{Multiplier Ratio} = \frac{\text{Setting Value}}{100.0}, \quad \text{Range: }[0, 300]%$$
100= 1.0x baseline lookahead ($16$ blocks per block/tick).200= 2.0x aggressive lookahead ($32$ blocks per block/tick).0= Disables forward bias entirely.
- Minimum Speed Threshold: $$\text{Velocity Threshold} = \frac{\text{Setting Value}}{100.0}\text{ blocks/tick}, \quad \text{Range: }[1, 200]$$
20= $0.20\text{ b/t} = 4.0\text{ m/s}$ (Default: activates on sprint/horse).50= $0.50\text{ b/t} = 10.0\text{ m/s}$ (Activates only on Elytra / Ice Boat).
4. Visual ASCII Diagram: Command Dispatcher Tree
/velocityrender
├── help (Level 0)
├── status (Level 0)
├── get (Level 0)
│ └── <rule> [enabled | lead_multiplier | budget_conservation | min_speed | debug_mode]
├── set (Level 2)
│ ├── enabled <boolean>
│ ├── lead_multiplier <int: 0..300>
│ ├── budget_conservation <boolean>
│ ├── min_speed <int: 1..200>
│ └── debug_mode <boolean>
├── reset (Level 2)
└── reload (Level 2)5. SNBT & Level.dat GameRule Schema
Settings are saved automatically in Minecraft's level.dat under GameRules:
snbt
{
GameRules: {
"velocityrender:enabled": "true",
"velocityrender:forward_lead_multiplier": "100",
"velocityrender:budget_conservation": "true",
"velocityrender:min_speed_threshold_pct": "20",
"velocityrender:debug_mode": "false"
}
}6. Exhaustive Reference Tables
Dynamic GameRules
| GameRule Key | Type | Default | Valid Range | Permission | Description |
|---|---|---|---|---|---|
velocityrender:enabled | Boolean | true | true, false | Level 2 | Master toggle for both client meshing and server ticket allocation |
velocityrender:forward_lead_multiplier | Integer | 100 | $0$ to $300$ | Level 2 | Percentage multiplier scaling lookahead distance ($100 = 1.0\text{x}$) |
velocityrender:budget_conservation | Boolean | true | true, false | Level 2 | Enables dynamic trimming of rear/lateral non-simulation tickets at high speed |
velocityrender:min_speed_threshold_pct | Integer | 20 | $1$ to $200$ | Level 2 | Minimum speed percentage ($20 = 0.20\text{ b/t} = 4.0\text{ m/s}$) |
velocityrender:debug_mode | Boolean | false | true, false | Level 2 | Enables verbose diagnostic telemetry logging to server and client logs |
Brigadier Commands
| Command Syntax | Arguments | Perm | Returns |
|---|---|---|---|
/velocityrender help | None | 0 | Displays comprehensive command guide in chat |
/velocityrender status | None | 0 | Displays live velocity, dynamic reach, tickets, MSPT, and client status |
/velocityrender get <rule> | rule: Word | 0 | Prints current active value for the specified setting |
/velocityrender set enabled <val> | val: Boolean | 2 | Updates master mod enablement state |
/velocityrender set lead_multiplier <val> | val: 0..300 | 2 | Updates forward lead scaling percentage |
/velocityrender set budget_conservation <val> | val: Boolean | 2 | Updates budget conservation mode |
/velocityrender set min_speed <val> | val: 1..200 | 2 | Updates minimum activation speed threshold |
/velocityrender set debug_mode <val> | val: Boolean | 2 | Updates diagnostic debug logging flag |
/velocityrender reset | None | 2 | Restores all 5 GameRules to default values |
/velocityrender reload | None | 2 | Flushes and confirms active runtime configuration |
7. Developer & API Hooks
java
// Querying GameRules programmatically via DasikLibrary
boolean enabled = YouRunFastGameRules.isEnabled(serverLevel);
int leadPct = YouRunFastGameRules.getLeadMultiplierPct(serverLevel);
boolean budget = YouRunFastGameRules.isBudgetConservationEnabled(serverLevel);
double minSpeed = YouRunFastGameRules.getMinSpeedThreshold(serverLevel);
boolean debug = YouRunFastGameRules.isDebugMode(serverLevel);