Wiki/Scripting/client_scripting.md
2022-12-22 09:24:43 +00:00

1.8 KiB

title description published date tags editor dateCreated
Client Side Scripting Client Side Scripting true 2022-12-22T09:22:58.542Z scripting, client, lua, coding, communication markdown 2021-01-12T00:34:24.843Z

Client Side Scripting

BeamMP allows you to create your own client side plugins as well. We have provided a few functions that you can use to communicate with other multiplayer mods, and other players through the server.

Functions

List of available events for scripting: {.is-info}

Function Notes
TriggerServerEvent("eventName", "data") Triggers an event in the server lua environment, both parameters are strings
TriggerClientEvent("eventName", "data") Triggers an event in the local lua environment, both parameters are strings. Good for communication between plugins
AddEventHandler("eventName", Function) Adds the 2nd parameter to the table to be called when eventName is received (either locally or from the server), Function will get 1 parameter, a string containing the event data

For example to parse the chat use the included ChatMessageReceived event as such: {.is-info}

local function chatReceived(msg) -- Receive event with parameters
	print("chat received: "..msg)
	local i = string.find(s, ":") -- Find where our first ':' is, used to separate the sender and message 
	if i == nil then
		print("error parsing message: separator could not be found!")
		return -- Could not find separator, cancel function
	end
	print("index of separator: "..tostring(i))
	local sender = string.sub(msg, 1, i-1) -- Substring our input to separate its 2 parts
	local message = string.sub(msg, i+1, -1)  -- Do whatever you want to with the message
	print("sender: " .. sender)
	print("message: ".. message)
end

AddEventHandler("ChatMessageReceived", chatReceived) -- Add our event handler to the list managed by BeamMP