Freeze Script

Berufeng

Member
Jan 29, 2020
18
0
0
This is a little task script that can be run to freeze a player in place seamlessly. Please check the commented lines to make sure you're not accidentally disabling flight for players that should have flight permissions.

NOTE:
This script will allow frozen players the freedom to rotate their camera and character. If you are looking for a way to freeze their camera controls as well, the preferred method is to simply create an NPC clone of the player in their place and spectate the player onto the NPC. If there is interest, I can add a simple task script that does that as an alternative, in this forum post.

Run this task using
- run Freeze_Task def:<player>|freeze or
- run Freeze_Task def:<player>|unfreeze

Here's a link to a haste: https://one.denizenscript.com/haste/71275

Or click the spoiler to view the script in this post:
Code:
Freeze_Task:
  type: task
  debug: false
  # Call this task with "- run Freeze_Task def:<player>|(un}freeze"
  definitions: player|2
  script:
    - choose <[2]>:
      - case unfreeze:
        - flag <[player]> frozen:!
        - adjust <[player]> flying:false
        - adjust <[player]> fov_multiplier:0.0
        # Change the tag here if you have flight enabled for non-ops.
        # Example: if !<player.has_permission[SomePermission]>:
        - if !<player.is_op>:
          - adjust <[player]> can_fly:false
      - case freeze:
        - flag <[player]> frozen
        - adjust <[player]> can_fly:true
        - adjust <[player]> fly_speed:0.0
        - teleport <[player]> <[player].location.add[0,0.001,0]>
        - adjust <[player]> flying:true
        - adjust <[player]> fov_multiplier:0.0

Freeze_Flight:
  type: world
  debug: false
  events:
    on player stops flying flagged:frozen:
      - determine cancelled