Links
Tags
Creators
Details
Licensed MPL-2.0
Published 4 months ago
Updated 3 weeks ago
All versions
🚁 New Aircraft: The Helicopter (
1.2.0
Release
PeterWolf’s Planes 1.2.0last month 20
Compatibility
Minecraft: Java Edition
26.2
Platform
Fabric
Supported environments
Client and server
Changes
1.2.0
🚁 New Aircraft: The Helicopter (peterwolfs_planes:helicopter)
- Vertical Takeoff and Landing (VTOL):
- Takes off and lands vertically directly on heavy-duty tubular landing skids—no runway required!
- Hover equilibrium at ~50% throttle, balancing gravity ($0.04\text{ blocks/tick}$) for a rock-solid stationary hover.
- Throttle up (W) to climb; throttle down (S) to descend or initiate smooth autorotation landing.
- Fuselage & Cockpit Visuals:
- Distinctive open minecart-style cockpit tub where the player sits with a clear forward view.
- Heavy-duty tubular landing skids with front upturns, tuned with ground offset (
-1.625F) so the bottom of the tubes rests flush with the ground surface. - Realistic cockpit instrumentation: functional analog speedometer and altimeter dials mounted on the dashboard.
- Centrally mounted animated cyclic control stick directly in front of the pilot, dynamically reacting to pilot inputs and aircraft attitude.
- High rotor mast with 4-blade horizontal main rotor (120 units wide) and vertical tail rotor, both spinning smoothly in real-time.
- Aft engine deck, tail boom, and vertical tail fin.
- Aviation Warning & Navigation Lighting (ICAO/FAA Compliant):
- Port (left) red and starboard (right) green position lights.
- Aft white navigation light on tail.
- Synchronized high-intensity flashing white strobes and red anti-collision beacon on the vertical tail fin.
- Emissive glowing layer (
RenderTypes.eyes) active while the aircraft is occupied.
- Crafting & World Integration:
- Survival crafting recipe using iron ingots, redstone, iron bars, and a minecart.
- Added to creative inventory tab, starter kit (
/function peterwolfs_planes:kit), and runway chest loot tables.
🎮 Helicopter Flight Controls & Aerodynamics
- Instant Response (Zero Lag):
- Removed slow low-pass smoothing (
0.12F) on helicopter cyclic controls, replacing it with an immediate0.60Ffactor. - Eliminated camera fighting (
centerPilotLook) on pitch, giving crisp 1:1 mouse steering with response times under 50 ms.
- Removed slow low-pass smoothing (
- Exponential (Expo) Control Curve:
- Implemented an exponential response curve ($|x|^{1.85}$) for both pitch and roll cyclic controls.
- Controls are gentle and precise near zero (neutral stick) for steady hovering and fine trimming, while smoothly ramping up to full authority at larger deflections.
- Cyclic Stick Pitch (Mouse Forward / Backward):
- Mouse forward: tilts cyclic stick forward, pitches nose down, and accelerates forward with strong horizontal thrust ($1.85\times$).
- Mouse backward: pulls cyclic stick back, pitches nose up, and flares to brake forward momentum or fly backward.
- Cruise Attitude Hold: pitch angle does not snap back to zero during forward flight, enabling continuous, comfortable cruising without endlessly dragging the mouse.
- Bounded Deflections: clamped to realistic, safe limits (max $+16^\circ$ nose-down, $-12^\circ$ flare), preventing wild overshooting and runaway dives.
- Cyclic Stick Roll & Lateral Flight (Mouse Left / Right):
- Swapped left and right response: moving mouse left/right banks and propels the aircraft in the newly inverted direction.
- Bank angle clamped to a safe $\pm 14^\circ$ envelope, maintaining stability without sudden tipping.
- Anti-Torque Tail Rotor (Keys A & D):
- Dedicated pedal control to rotate the tail boom and steer heading ("obrót ogona" / yaw authority) even while hovering motionless.
- Keys A and D strictly govern tail rotor rotation without inducing roll.
- Effortless Hover Stabilization:
- Simply looking towards the world horizon ($\pm 4^\circ$) automatically levels the aircraft back to $0.0^\circ$ pitch and engages a stable, motionless hover.
- Deadband centering ensures easy, vibration-free hovering.
- Aerodynamic Rotor Thrust & Translation Sink Physics:
- Tilting forward/backward (pitch) or sideways (roll) redirects rotor thrust away from the vertical axis, causing natural altitude loss (sink / opadanie) rather than climbing.
- Forward, backward, and lateral horizontal airspeed induces aerodynamic sink ($v_{\text{horiz}} \cdot 0.024$).
- Flying forward, backward, or strafing sideways naturally descends unless the pilot gently adds throttle (collective), exactly like real helicopters.
- Aerodynamic parasite drag modeled for forward and lateral airflow.
- Control Reset on Boarding:
- All control deflections (pitch, roll, rudder, cyclic stick, yaw rate, pitch rate) immediately reset to zero upon boarding the helicopter.
🎛️ Helicopter Simple Altitude Mode (Default) & Command Switcher
- Simple Altitude Control (Default for Helicopters):
- W (held): climbs smoothly upward (
Vertical: CLIMB % (W)). - S (held): descends smoothly downward (
Vertical: DESCEND % (S)). - Neutral (releasing W / S): automatically locks and holds current altitude (
Vertical: ALT HOLD (W/S)). - Zero Maneuvering Sink: pitching forward, backward, or banking sideways to fly and turn does not cause altitude loss—the helicopter maintains a steady, level flight altitude while cruising and maneuvering!
- W (held): climbs smoothly upward (
- Realistic Mode Available:
- Realistic aerodynamic collective remains available where cyclic tilt and translational airspeed induce natural sink that must be compensated with collective pitch.
- Commands & Switcher:
/helialtor/helicontrolor/planes helicopter altitude: toggles between Simple and Realistic altitude modes./helialt simpleor/planes helicopter altitude simple: sets altitude control to Simple mode./helialt realisticor/planes helicopter altitude realistic: enables realistic aerodynamic collective control.- Running while piloting a helicopter switches the current vehicle and updates player default; running outside updates default for future helicopters.
🛑 Ground Detection & Automatic Steering Lock
- Automatic Ground State Recognition:
- The helicopter accurately detects when resting on the ground, helipad, or landing surface.
- Pinned solidly to the terrain with zero jitter, zero micro-sliding, and zero uncontrolled drift.
- Steering Disabled on Ground:
- While on the ground, cyclic pitch (forward/backward) and cyclic roll (sideways steering) are completely disabled.
- Moving the mouse does not tilt the helicopter or cause accidental forward/backward sliding.
- Airframe stays perfectly flat ($0.0^\circ$ pitch, $0.0^\circ$ roll) on its heavy-duty landing skids.
- Tail rotor pedals (A / D keys) remain active, allowing pilots to steer heading in place to align on the helipad before takeoff.
- HUD control stick indicator displays
GROUNDin amber and locks the cyclic crosshair centered at(0, 0). - HUD status displays
Helicopter: ON GROUND (W to fly).
- Vertical Liftoff Activation & Auto-Centering Cursor:
- Holding W lifts the helicopter strictly vertically into the air (
Takeoff: LIFTOFF % (W)). - The moment the skids clear the ground, the helicopter switches into airborne flight mode (
isHelicopterAirborne = true). - Automatic Cursor Zeroing: The instant liftoff occurs, the pilot's cursor/look direction (pitch $0.0^\circ$ at horizon, yaw straight ahead) and cyclic stick are automatically snapped to neutral center
(0, 0), preventing sudden lurches and starting flight in a stable hover. - Flight controls (forward/backward, sideways bank, cyclic stick) immediately activate once airborne.
- Holding W lifts the helicopter strictly vertically into the air (
- Smooth Touchdown & Landing Lock:
- Upon descending to the surface and making ground contact with low/descending throttle, the helicopter smoothly touches down:
- Pitch and roll are auto-leveled to $0.0^\circ$.
- Flight steering immediately locks to prevent tipping over or sliding across blocks.
- Airframe enters parked state (
PARKED).
- Upon descending to the surface and making ground contact with low/descending throttle, the helicopter smoothly touches down:
🕹️ HUD 2D Control Stick Indicator (Cyclic & Centering Guide)
- Visual Control Stick Widget:
- Mounted directly on the right side of the cockpit HUD (docked seamlessly next to instruments).
- Features an analog 2D crosshair arena displaying active cyclic stick position (Pitch on vertical axis, Roll on horizontal axis).
- Instant visual feedback for flight controls without having to look down into the cockpit tub.
- Effortless Center & Hover Locking:
- Center target box deadband illuminates in vibrant neon green (
[+]/CENTER) when cyclic controls are centered. - Allows pilots using mouse steering to effortlessly find the neutral 0 trim position for a rock-solid, stationary hover.
- Marker dot dynamically shifts color: bright neon green when centered, cyan during normal maneuvering, and red at extreme deflection limits.
- Center target box deadband illuminates in vibrant neon green (
- Tail Rotor / Rudder Pedal Bar:
- Integrated 1D horizontal deflection bar displaying active anti-torque tail rotor / rudder pedal input (A / D keys).
- Multi-Layout HUD Support:
- Supported across all three HUD modes: full instrumentation panel, compact mini HUD, and top-right docked layout.
- In full combat HUD mode, provides real-time flight regime badges (
HOVER,CRUISE,MANVR) and numerical pitch/roll degree readouts.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:McTtzw3T:dhqT8AjT"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:McTtzw3T:dhqT8AjT"
}

