on rightclick: if event-block = sign: if player is sneaking: if player has permission "pyraSignEdit.usage": set {_packet} to new play_server_open_sign_editor packet set location pinfo 0 of {_packet} to (location of event-block) send packet {_packet} to player set {pyraSignEditor::%player%} to (location of event-block) on packet event play_client_update_sign: if {pyraSignEditor::%player%} = (location of targeted block): cancel event set {_lines::*} to (strings array pinfo 0 of event-packet) loop 4 times: set (line (loop-number) of targeted block) to (coloured {_lines::%loop-number%}) delete {pyraSignEditor::%player%}