Holesnap is an original Sn0w feature mentioned in the project README as a signature capability of this client!
Overview
Holesnap automatically detects nearby safe holes (1x1 obsidian/bedrock surrounds) and rapidly moves you into them. This is essential for PvP survival, providing instant protection from crystal damage and other threats. Description: Moves and centers yourself into the nearest hole (or teleport with some settings)Core Concept
In Minecraft PvP, “holes” are 1x1 spaces surrounded by blast-resistant blocks (obsidian or bedrock). These provide protection from:- End crystal explosions
- TNT damage
- Most ranged attacks
Key Features
Intelligent Hole Detection
- Scans for holes within configurable range (1-6 blocks)
- Supports both single holes and double holes
- Distinguishes between obsidian and bedrock holes
- Validates hole safety (checks for air blocks inside)
Visual Feedback
Real-time visualization of snap movement:- Colored line from player to target hole
- Customizable gradient colors (left/right)
- Distance display in HUD
- Clear indication of target position
Movement Modes
Normal Mode:- Direct pathfinding to hole center
- Physics-based movement
- Step height handling
- Collision detection
- Advanced pathfinding algorithm
- Navigates around obstacles
- Better for complex terrain
Configuration
Basic Settings
Range- Range to search for holes
- Range: 1-6 blocks
- Default: 3
- Higher range = more options but slower detection
- Movement calculation mode
- Options: Normal, Pathfinding
- Default: Normal
- Normal is faster, Pathfinding is smarter
- Allow targeting 2x1 holes
- Default: false
- Useful for more hole options but less safe
- Allow swapping to holes even if you’re already in one
- Default: false
- Enable for repositioning between holes
Speed Optimization
Boost- Use speed boost for faster hole snapping
- Default: false
- Faster but more detectable
- Modify game tick rate during snap
- Default: false
- Dramatically increases speed
- Tick speed multiplier when Use TickSpeed enabled
- Range: 1-10
- Default: 5
- Higher = faster but more detectable
- Ticks to apply timer boost
- Range: 10-100
- Default: 25
- Controls how long the speed boost lasts
Advanced Options
Physics- Run multiple physics ticks on enable
- Default: false
- Simulates movement for instant positioning
- Number of physics ticks to run
- Range: 3-20
- Default: 3
- More ticks = further instant movement
- Apply timer after reaching hole
- Default: false
- Helps with centering in hole
Step Configuration
Step Mode- How to handle height differences
- Options: Vanilla, NCP, NONE
- Default: Vanilla
- Vanilla: Uses standard step height increase
- NCP: NoCheatPlus bypass technique
- NONE: No step assistance (may fail on uneven terrain)
Visual Customization
Left Color- Starting color of the visual line
- Default: RGB(255, 0, 255, 255) - Magenta
- Ending color of the visual line
- Default: RGB(0, 255, 0) - Green
Movement Mechanics
Target Calculation
Holesnap calculates the target position differently for single vs. double holes: Single Hole:- If
toTargetexists: centers on that specific block - Otherwise: calculates center point between both blocks
Speed Calculation
Movement speed is calculated based on:- Distance to target
- Ground state (on ground vs airborne)
- Boost setting
- With Boost:
min(PlayerUtils.getDefaultBaseSpeed(true), dist/2) - Without Boost:
min(0.2805, dist/2)
- Uses
PlayerUtils.getDefaultBaseSpeed(false)
Direction Calculation
Uses rotation to player position:Auto-Disable Conditions
Holesnap automatically disables when:-
No hole found on enable
- Displays: “Unable to find hole. Disabling”
-
Successfully entered hole
- Displays: “Snapped into hole, disabling.”
- Centers player position
-
Target hole destroyed
- Displays: “Hole no longer exists, disabling.”
- Happens if blocks are broken during movement
-
Server disconnect
- Prevents errors on world change
Integration & Compatibility
NoAccel Integration
Holesnap pauses NoAccel module during operation:- Sets
NoAccel.paused = trueduring movement - Restores
NoAccel.paused = falsewhen complete - Prevents movement conflicts
Step Integration
Dynamic step height adjustment:- Sets step height when collision detected
- Resets to 0.6 when clear path
- Uses Step module’s configured height
Timer Management
Careful timer state management:- Stores original tick length on enable
- Applies custom timer during movement
- Restores original value on disable
- Handles post-timer timing separately
Usage Guide
Basic Usage
- Bind Holesnap to a key (e.g., H)
- During combat, press the key when you need safety
- Module finds nearest hole and moves you there
- Automatically disables when safe
Competitive PvP Setup
Aggressive Setup (Risky)
Conservative Setup
Advanced Techniques
Pre-Emptive Snapping
Bind Holesnap to an easily accessible key and use it:- Before engaging in combat
- When taking damage
- When opponent pulls out crystals
- When low on health
Hole Swapping
With Swapping enabled:- Can reposition between holes during fight
- Useful for avoiding trapped holes
- Enables tactical repositioning
- Keep Range low (2-3) for predictable swaps
Timer Control
For maximum speed with minimal flags:- Enable Use TickSpeed
- Set Tick Amount to 2-3 (not 5+)
- Set Boost Time to 15-20
- Disable immediately after reaching hole
Troubleshooting
“Unable to find hole” on enable- Increase Range setting
- Enable Doubles to consider 2x1 holes
- Verify you’re not already in a hole (enable Swapping if you are)
- Check surrounding area has valid holes
- Enable Boost option
- Enable Use TickSpeed (if server allows)
- Increase Tick Amount
- Check if NoAccel is interfering
- Change Step Mode to Vanilla or NCP
- Enable Physics with 3-5 ticks
- Increase Range to find clearer path
- Try Pathfinding mode
- May be stuck in “almost there” state
- Manually disable and re-enable
- Check Post Timer setting (try toggling)
- Verify hole is still valid (not griefed)
- Check colors are not set to transparent
- Ensure render distance is sufficient
- Verify target hole is within range
- Check if HUD is disabled
Technical Details
Hole Validation
UsesHoleUtils to validate holes:
isObbyHole()- Checks for obsidian surroundisBedrockHoles()- Checks for bedrock surroundisDoubleHoleFr()- Validates double holes
State Tracking
boostTime- Tracks packets sent for timer durationstuckTicks- Counts ticks stuck on collisionposttimerticks- Timer ticks after reaching holestartPos- Original position when enabledlastTarget- Current target positiontargetHole- Current target hole data structure
Movement State
Thecancel flag indicates active movement:
truewhen moving to holefalsewhen disabled or idle- Other modules can check
Holesnap.INSTANCE.cancel
Best Practices
Why It’s a Signature Feature
Holesnap represents sophisticated game knowledge:- Understanding PvP hole meta
- Real-time pathfinding and movement
- Visual feedback and user experience
- Integration with multiple client systems
- Balancing speed with anti-cheat evasion