Control player chat
Key RequiredUniversal

Control player chat

Universal ScriptTodayToday 1.6K views 1.5K executesUpdated Apr 18, 2026
5.0/ 5(1 votes)
10100% Positive
Lua Script•113 lines (5538 chars)
on chat:
    loop {blocked::*}:
        if message contains loop-value:
            cancel event
            send ""
            send "&7&n                                               "
            send ""
            send "&cWe've blocked your word &7'%loop-value%&7' &cAs it breaks our chat rules. If you find a bypass and abuse it, you may be punished. &bFind out more on &6/rules&b, and if you have any questions, join our discord. (/discord)"
            send ""
            send "&7&o(Report it instead)"
            send ""
            send "&7&m                                               "
            send ""
            send "&c&l(!) &8%player% &7tried to say &7&o'%loop-value%&7' &c&l(!) &8- &7&o(Chat alert)" to all players where [input has permission "skript.blockwords"]			

command /blockword [<text>] [<text>]:
    permission: skript.blockwords
    permission message: &cYou do not have the required permission to execute this command.
    aliases: bw
    trigger:
        if arg-1 is "block":
            if arg-2 is set:
                if {blocked::*} does not contain arg-2:
                    add arg-2 to {blocked::*}
                    send "&cYou haved blocked the word &7'%arg-2%&7'&c."
                    send "&7&o(To see all the blocked words, use /blockword list)"
                    send "&7&o(If you accidentally added this word or want to remove it, use /blockword delete (word) , or /chc and click the option)"
                else:
                    send "&cThat word is already blocked!"
                    send "&7&o(To remove it, use /blockword delete (word) or /chc and click the option)"
                    stop
            else:
                send "&cYou have to type the word you have to block! /blockword block (word)"
                stop
        if arg-1 is "delete":
            if arg-2 is set:
                if {blocked::*} contains arg-2:
                    remove arg-2 from {blocked::*}
                    send "&cYou haved unblocked the word &7'%arg-2%&7'&c."
                    stop
                else:
                    send "&cThat word was never blocked!"
                    stop
            else:
                send "&cYou have to type the word you have to unblock! /blockword delete (word)"
                stop
        if arg-1 is "list":
            send "&bThe filtered words are &a• &f%{blocked::*}%"
            stop
        else:
            send "&cNot a argument. Block/Delete/List"
            stop

Variables:
	{mutechat} = 1

command /chc [<text>]:
	aliases: chatcontrol
	permission: skript.chc
	permission message: &cYou do not have the required permission to execute this command.
	trigger:
		open virtual chest inventory with size 6 named "&7- &9Chat Control" to player
		make gui slot 37 of player with arrow named "&4&lExit" with lore "&aClick to go back" to run:
			close player's inventory
		make gui slot 15 of player with lava bucket named "&cClear chat" with lore "&7Clears the chat, nobody will be able" and "&7to see previous messages" and "&aClick to clear chat" and "&c&l(!) WARNING CAN LAG SERVER &c&l(!)" to run:
			loop 6000 times:
				broadcast ""
			broadcast "  &7&lChat has been cleared!  "
			send ""
			close player's inventory
		make gui slot 11 of player with iron bar named "&6Block a word" with lore "&7Censors a word and people can't say it" and "&7This can be done with &7&o(/blockword add)&7 too" and "&aClick to censor a word" to run:
			set {Blockword::%player%} to 1
			send "&7Now please &ctype &7a word in chat that you want to block"
			close player's inventory
		make gui slot 13 of player with water bucket named "&aUnblock a word" with lore "&7Uncensors a word and everyone can say it" and "&7This can be done with &7&o(/blockword remove) &7too" and "&cClick to uncensor a word" to run:
			set {Removeword::%player%} to 1
			send "&7Now please &ctype &7a word in chat that you want to unblock"
			close player's inventory
		make gui slot 43 of player with redstone comparator named "&6&oList the blocked word" with lore "&7Lists all the blocked words" and "&7This can be done with &7&o(/blockword list) &7too" and "&cClick to see" to run:
			make player execute "/blockword list"
		make gui slot 0 and 1 and 2 and 3 and 4 and 5 and 6 and 7 and 8 and 9 and 18 and 27 and 36 and 45 and 46 and 47 and 48 and 49 and 50 and 51 and 52 and 53 and 44 and 35 and 26 and 17 of player with black stained glass pane to do nothing
		if {mutechat} = 1:
			make gui slot 31 of player with lime clay named "&bUnmute chat" with lore "&7Unmutes chat, everyone" and "&7will be able to talk" and "&cClick to Unmute chat" to run:
				set {mutechat} to 0
				broadcast "&bServername &6&l> &7Chat has been &bunmuted&7."
				close player's inventory
		else:
			make gui slot 31 of player with red clay named "&bMute chat" with lore "&7Mutes chat, only staff" and "&7Will be able to talk." and "&aClick to mute chat" to run:
				set {mutechat} to 1
				broadcast "&bServername &6&l> &7Chat has been &bmuted&7."
				close player's inventory
		
on chat:
	if {Removeword::%player%} = 1:
		cancel event
		make player execute "/blockword delete %message%"
		set {Removeword::%player%} to 0
		
		
on chat:
	if {mutechat} = 1:
		if player does not have permission "skript.chc":
			send "  &7&lChat is muted!  "
			send ""
			send "&cYou have to be staff to talk!"
			send ""
			cancel event
			
on chat:
	if {Blockword::%player%} = 1:
		cancel event
		make player execute "/blockword block %message%"
		set {Blockword::%player%} to 0

Features & Information

Just control player chat.

Community Comments (0)

No comments yet for this script.

More Scripts for Universal Scripts