Paste #139961: bunnyhopping

Date: 2026/04/17 11:31:42 UTC+00:00
Type: Denizen Script

View Raw Paste Download This Paste
Copy Link


bhop_config:
    type: data
    speed_boost: 1.08
    max_speed: 1.5
    ground_reset_ms: 500

bhop_world:
    type: world
    debug: false
    events:
        on player jumps:
        - if !<player.has_permission[bhop.use]>:
            - stop

        - flag <player> bhop.ground_time:!
        - wait 1t

        - define current_vel <player.velocity>
        - define horiz_speed <[current_vel].x.abs.power[2].add[<[current_vel].z.abs.power[2]>].sqrt>
        - define stored <player.flag[bhop.speed].if_null[<[horiz_speed]>]>
        - define new_speed <[stored].mul[<script[bhop_config].data_key[speed_boost]>].min[<script[bhop_config].data_key[max_speed]>]>

        - flag <player> bhop.speed:<[new_speed]>

        - if <[horiz_speed]> > 0.01:
            - define scale <[new_speed].div[<[horiz_speed]>]>
            - adjust <player> velocity:<location[<[current_vel].x.mul[<[scale]>]>,0.5,<[current_vel].z.mul[<[scale]>]>].backward[<[scale]>]>

        on player walks:
            - if <player.location.material.name> == water:
                - flag <player> bhop.speed:!
                - flag <player> bhop.ground_time:!
                - stop

            - if !<player.has_flag[bhop.speed]>:
                - stop

            - if <player.is_on_ground>:
                - if !<player.has_flag[bhop.ground_time]>:
                    - flag <player> bhop.ground_time:<util.time_now>

                - define time_on_ground <util.time_now.duration_since[<player.flag[bhop.ground_time]>].in_milliseconds>

                - if <[time_on_ground]> > <script[bhop_config].data_key[ground_reset_ms]>:
                    - flag <player> bhop.speed:!
                    - flag <player> bhop.ground_time:!
            - else:
                - flag <player> bhop.ground_time:!