Skip to content

Null Kinetics: a full movement suite (dash, air jumps, wall run, glide, slide, grapple) + CI hardening - #1

Open
Qynl wants to merge 20 commits into
mainfrom
arena/bd4ee7b9-myfirstmod
Open

Qynl wants to merge 20 commits into
mainfrom
arena/bd4ee7b9-myfirstmod

Conversation

@Qynl

@Qynl Qynl commented Oct 6, 2026

Copy link
Copy Markdown
Owner

💨 Null Kinetics — the movement layer

A complete parkour-style movement kit themed on the realm's residual null energy, plus a craftable grapple weapon, energy/Flow systems, HUD, commands, config, and advancements. ~3,650 new lines across 49 files.

Abilities

Ability Input Description
Void Dash V Look-direction dash with FOV punch, portal burst + electric trail; aim up to dash skyward
Null Step Space (airborne) Up to two mid-air jumps; wall jumps refund a charge
Sculk Stride automatic Wall run along walls while airborne; Space wall-jumps off with momentum retention
Null Drift hold C Energy-glide: capped fall speed + forward steering
Phase Slide tap Sneak while sprinting Anti-friction ground slide (~11 blocks) with momentum-keeping slide hop
Nullhook right-click item Craftable grapple (chain/string/echo shard): flying hook entity, anchor, pull, retract — with rope + wireframe renderer

Systems

  • Energy pool (100, regenerating) with per-ability costs and a fall-damage grace window
  • Flow: chaining abilities stacks speed + cost reduction (max 6), shown as HUD pips
  • Server-authoritative with zero-latency feel: the client predicts every move through the same KineticMath the server validates with; continuous effects run as server-revalidated windows (energy drain, fall forgiveness, invalidation on landing)
  • HUD: segmented energy bar, ability icons with cooldown sweeps + active glows + live keybind badges, flow pips with pulse (J toggles)
  • Custom payloads (Fabric networking API) for dash/jump-intent/window intents and a compact state sync
  • /kinetics command: info, reload, toggle <ability>, energy <n>
  • JSON config (config/myfirstmod-kinetics.json), auto-generated, clamped, hot-reloadable; optional requireRelic mode
  • 7 advancements (Airwalker, Wall Dancer, Flow State challenges…), Nullhook recipe, generated 16×16 HUD icons (tools/gen_kinetics_icons.py, dependency-free rasterizer)

Bug fixes found along the way

  • Server crash on boot: dimension_type/null_realm.json used the pre-1.21 nested int provider, was missing has_ceiling, and infiniburn wasn't a tag id → dedicated servers failed to load registries
  • Loot table never loaded: loot_tables/ → loot_table/ (1.21 datapack folder rename)
  • Mixin config was never applied: fabric.mod.json had no "mixins" entry (and the config referenced a nonexistent TitleScreenMixin)

CI

  • Compile errors are surfaced as annotations + step summary
  • Dedicated-server smoke test: the fresh JAR boots on a real Fabric 1.21.1 server with Fabric API; must reach Done with zero mod-related datapack/mixin errors; the /kinetics command tree and the Nullhook entity are exercised live over RCON (tools/rcon.py); config generation is verified
  • Boss rewards added to creative tabs (Nullblade → combat, Heart of the Null → ingredients, Nullhook → tools)

All checks green on the branch ✅

Qynl and others added 20 commits October 6, 2026 20:55
…glide, slide, grapple)

- Void Dash (V): look-direction blink with FOV punch, cooldown + energy cost
- Null Step: double/triple air jumps with sculk-soul ring effects
- Sculk Stride: automatic wall running + momentum-keeping wall jumps
- Null Drift (hold C): energy-glide with forward steering
- Phase Slide: crouch-tap while sprinting, anti-friction momentum slide + slide hop
- Nullhook: craftable grapple item with hook entity, rope renderer, pull physics
- Flow: chaining abilities builds a speed + cost-reduction multiplier
- Energy system with server-authoritative validation and 2-tick state sync
- Client prediction via shared KineticMath so movement never rubber-bands
- Kinetics HUD: energy bar, ability icons with cooldowns, flow pips
- /kinetics command (info, toggle, reload, energy) + JSON config hot-reload
- 7 data-driven advancements, recipe, generated 16x16 icon textures
- Fix stale TitleScreenMixin reference in client mixins config
- Fix null_warden loot table path (loot_tables -> loot_table for 1.21.1)

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…icit entity factory

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…loat casts, drop debugEnabled

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…; CI dedicated-server smoke test

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…nullhook, summon test in smoke

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
…ith speed

Co-authored-by: arena-agent <297053741+arena-agent@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant