Compatibility
Minecraft: Java Edition
Platforms
Links
Tags
Creators
Details
Meccha Chameleon in vanilla minecraft
This datapack adds meccha chameleon to your minecraft world. Hide or hunt and paint yourself to blend in with the decor to avoid getting spotted before the end of the round
How to play ?
Add the datapack to your world and tap the "Start round" once everyone is present Pick a role, once everyone's ready simply hit the start button and you'll be good to go
Hider
As a hider your goal is to blend with the decor, paint yourself and try to not get spotted within the time limit.
- Left click with the brush to select the color from the block you're looking at
- Right click with the brush to paint your body
- Open the settings to further customise your color and brush size
- Right click the armor stand to change your pose
- Right click the horn to taunt the hunters
Hunter
As a hunter your goal is to find every hider within the time limit
- Right click with the blaze rod to shoot where you're looking to spot a hider
Features
- 6 Custom poses
- Pick color from any block with left click
- Paint with right click
- Customize your color with an in game color palette with brightness and saturation values
- Toggle directional shadows ON or OFF to blend perfectly with the decor
- Choose from 4 brush sizes: Pixel | Cross | Face | Cube
- All brushes automatically wrap around the volume for ease of painting
- Responsive in game UI to easily start new rounds with a preview of participants
- Add your custom spawn locations to play anywhere you want
- Climb on any surface
- Fly by double pressing space while in paint mode to reach every corner of your body
Disclaimer
If you intend to play on a pre existing world I suggest that you use a backup just in case. The datapack uses custom items and clears your inventory, make sure you have everything stored safely before starting to recover your state afterwards
How was this made ?
- Asset Pre-Computation Pipeline: A Python asset pipeline (
tools/) bakes blockstates, models, and texture coordinates from the game files into into an optimized, flat NBT registry. This heavy data loads exactly once on server startup. - Raycast Resolution: For the Eyedropper (reading in-world block model textures to sample colors) I used custom wrappers around the
Bookshelflibrary to calculate virtual ray-plane intersections. The Paintbrush is done using math only compute native to this pack - Modular Display Rigging: Custom models are constructed using scaled
text_displayentities. Every pixel shares a common cuboid origin, with translation, scale, and quaternion rotations baked into static entity transformations. - Dynamic Shading: Approximates directional lighting by calculating the world-space normal vectors of moving cuboids, adding a tinted shadow to the painted color across six axes. (This feature can be turned on or off in the brush settings)
- Bounding Volume Hierarchy (BVH) & Hit Detection: Features a two-tiered raycasting combat system. A fast broad phase checks rays against a global axis-aligned bounding box (AABB), while a narrow phase utilizes the Separating Axis Theorem (SAT) to project rays onto individual rotated oriented bounding boxes (OBBs) representing limbs.
- Dialogs Use a heavy amount of macro functions to rebuild at runtime each UI layout to have responsive controls reading data storages
How long did this take ?
Two weeks
Who did this ?
It was I Icodak mwahahaha !


