<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.multitheftauto.com/wiki/OnPlayerTriggerInvalidEvent?action=history&amp;feed=atom</id>
	<title>OnPlayerTriggerInvalidEvent - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.multitheftauto.com/wiki/OnPlayerTriggerInvalidEvent?action=history&amp;feed=atom"/>
	<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=OnPlayerTriggerInvalidEvent&amp;action=history"/>
	<updated>2026-05-15T02:46:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://wiki.multitheftauto.com/index.php?title=OnPlayerTriggerInvalidEvent&amp;diff=79398&amp;oldid=prev</id>
		<title>Srslyyyy: Add onPlayerTriggerInvalidEvent by lopsi (https://github.com/multitheftauto/mtasa-blue/pull/3400)</title>
		<link rel="alternate" type="text/html" href="https://wiki.multitheftauto.com/index.php?title=OnPlayerTriggerInvalidEvent&amp;diff=79398&amp;oldid=prev"/>
		<updated>2024-05-24T20:02:18Z</updated>

		<summary type="html">&lt;p&gt;Add onPlayerTriggerInvalidEvent by lopsi (https://github.com/multitheftauto/mtasa-blue/pull/3400)&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;__NOTOC__&lt;br /&gt;
{{Server event}}&lt;br /&gt;
{{Added feature/item|1.6.1|1.6.0|22459|This event is triggered whenever a player trigger invalid event on server-side.}}&lt;br /&gt;
It works for both non-added and non-remote events.&lt;br /&gt;
&lt;br /&gt;
==Parameters==&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
string eventName, bool isAdded, bool isRemote&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*'''eventName''': An [[string]] representing event name.&lt;br /&gt;
*'''isAdded''': An [[bool]] representing whether called event is added.&lt;br /&gt;
*'''isRemote''': An [[bool]] representing whether called event is remote.&lt;br /&gt;
==Source==&lt;br /&gt;
The [[event system#Event source|source]] of this event is the [[player]] who triggered invalid event.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
This example allows you to kick/ban player which triggered invalid event.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;lua&amp;quot;&amp;gt;&lt;br /&gt;
local invalidEventCheckPunishment = true -- should player be punished upon detection (make sure that resource which runs this code has admin rights)&lt;br /&gt;
local eventCheckPunishmentBan = true -- only relevant if invalidEventCheckPunishment is set to true; use true for ban or false for kick&lt;br /&gt;
local eventCheckPunishmentReason = &amp;quot;Triggered invalid event&amp;quot; -- only relevant if invalidEventCheckPunishment is set to true; reason which would be shown to punished player&lt;br /&gt;
local eventCheckPunishedBy = &amp;quot;Console&amp;quot; -- only relevant if invalidEventCheckPunishment is set to true; who was responsible for punishing, as well shown to punished player&lt;br /&gt;
local eventCheckBanByIP = false -- only relevant if invalidEventCheckPunishment and eventCheckPunishmentBan is set to true; banning by IP nowadays is not recommended (...)&lt;br /&gt;
local eventCheckBanByUsername = false -- community username - legacy thing, hence is set to false and should stay like that&lt;br /&gt;
local eventCheckBanBySerial = true -- only relevant if invalidEventCheckPunishment and eventCheckPunishmentBan is set to true; (...) if there is a player serial to use instead&lt;br /&gt;
local eventCheckBanTime = 0 -- only relevant if invalidEventCheckPunishment and eventCheckPunishmentBan is set to true; time in seconds, 0 for permanent&lt;br /&gt;
local eventCheckDebugMessageLevel = 4 -- this debug level allows to hide INFO: prefix, and use custom colors&lt;br /&gt;
local eventCheckDebugMessageRed = 255 -- debug message - red color&lt;br /&gt;
local eventCheckDebugMessageGreen = 127 -- debug message - green color&lt;br /&gt;
local eventCheckDebugMessageBlue = 0 -- debug message - blue color&lt;br /&gt;
&lt;br /&gt;
function onPlayerTriggerInvalidEvent(eventName, isAdded, isRemote)&lt;br /&gt;
	local playerName = getPlayerName(source)&lt;br /&gt;
	local eventAdded = isAdded and &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot;&lt;br /&gt;
	local eventRemote = isRemote and &amp;quot;yes&amp;quot; or &amp;quot;no&amp;quot;&lt;br /&gt;
	local eventActionTaken = (not invalidEventCheckPunishment and &amp;quot;none&amp;quot;) or (eventCheckPunishmentBan and &amp;quot;ban&amp;quot; or &amp;quot;kick&amp;quot;)&lt;br /&gt;
	local eventLogText = &amp;quot;[Events]: &amp;quot;..playerName..&amp;quot; triggered invalid event '&amp;quot;..eventName..&amp;quot;' (event added: &amp;quot;..eventAdded..&amp;quot;, event remote: &amp;quot;..eventRemote..&amp;quot;, action taken: &amp;quot;..eventActionTaken..&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
	outputDebugString(eventLogText, eventCheckDebugMessageLevel, eventCheckDebugMessageRed, eventCheckDebugMessageGreen, eventCheckDebugMessageBlue)&lt;br /&gt;
&lt;br /&gt;
	if (not invalidEventCheckPunishment) then&lt;br /&gt;
		return false&lt;br /&gt;
	end&lt;br /&gt;
&lt;br /&gt;
	if (eventCheckPunishmentBan) then&lt;br /&gt;
		banPlayer(source, eventCheckBanByIP, eventCheckBanByUsername, eventCheckBanBySerial, eventCheckPunishedBy, eventCheckPunishmentReason, eventCheckBanTime)&lt;br /&gt;
	else&lt;br /&gt;
		kickPlayer(source, eventCheckPunishedBy, eventCheckPunishmentReason)&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
addEventHandler(&amp;quot;onPlayerTriggerInvalidEvent&amp;quot;, root, onPlayerTriggerInvalidEvent)&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{See also/Server event|Player events}}&lt;/div&gt;</summary>
		<author><name>Srslyyyy</name></author>
	</entry>
</feed>