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
Run this task using
Here's a link to a haste: https://one.denizenscript.com/haste/71275
Or click the spoiler to view the script in this post:
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