Date: 2026/04/17 11:31:42 UTC+00:00
Type: Denizen Script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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:!