pixlyzer-physics

This pixlyzer module runs physics test on minecraft and extracts data from it.

Use cases

  • Anti cheat development
  • 3rd party clients/servers to not get banned, e.g. integration tests in Minosoft
  • Maybe mojang themselves? (check if nothing broke in their messy code)

What affects movement (client side)?

(This list aims to be perfect, but you know its probably not)

  • input (keys, mouse)
    • walking
    • sprint
    • sneak
    • rotating
    • jumping
  • gravity
  • potions/modifiers
    • speed/slowness (sent by server)
    • levitation
    • jump boost
    • blindness
    • slow falling
    • dolphins grace
    • correct expiring (count ticks) (sent by server)
  • hunger
  • swimming
  • elytra (also boosting with firework rocket)
  • enchantments
    • depth strider
    • frost walker
    • soul speed
    • swift sneak
    • riptide
  • armor
    • leather boots on powder snow
    • knockback resistance
  • items
    • usable items (e.g. bow, shield)
    • trident (with riptide)
  • damage
  • blocks
    • collisions
    • block motion (e.g. piston, shulker box)
    • block pushing
    • prevent unsneak
    • climbing (e.g. ladders)
    • scaffolding
    • stepping (e.g. stairs)
    • honey
    • soul sand
    • fences
    • bouncing
      • bed
      • slime
    • slow movement
      • powder snow
      • sweet berry bush
      • cobweb
    • slippery movement
      • ice
  • vehicles
    • riding (e.g. horse, strider, ...)
      • jump strength
      • time on space bar
    • boats
    • minecarts
    • ...
  • fluids
    • water (also bubble column with soul sand/magma blocks)
    • lava (also dimension ultra_warm)
  • flying (creative)
  • spectator
    • gamemode
    • and spectating other entities
  • death
  • entities
    • cramming/pushing
  • auto jump
  • sleeping
  • fishing rod?
  • precision loss (high coordinates 20M+)
  • world border
  • end of world (everything >= 30M)
  • abilities (flying, walk speed, fly speed)
  • tags
  • tags

Additional entity physics

Ridable entities

(only client controlled)

  • strider (with warped fungus on a stick)
  • pig (with carrot on a stick)
  • all horses (with controls and jumping)
  • boat

Client calculated

  • items
  • projectiles
  • firework rockets
  • fishing bobber

Non physics things

  • client side biome noise
  • digging times

About consistency

Tests are general non-mutable, so a diff is possible between versions. New tests can/will always be added, existing tests may only be changed if they break or are considered wrong.

Parkour code (attach debugger in ClientPlayerEntity, where getTutorialManager is called):

"f="+input.pressingForward+",b="+input.pressingBack+",l="+input.pressingLeft+",r="+input.pressingRight+",j="+input.jumping+",sn="+input.sneaking+",sp="+client.options.sprintKey.isPressed()+"  -->   "+getX()+"|"+getY()+"|"+getZ()+"  "+yaw+"|"+pitch
Description
A pixlyzer extension to extract physics unit testable data
Readme 224 KiB
Languages
Kotlin 100%