What's New in Director 8.5 > Multiuser Server-Side Scripting > Adding server-side scripts > Sending custom events to server-side scripts |  |

Sending custom events to server-side scripts

To call a handler in a movie's server-script, send a message with `"system.script"` in the `#recipients` parameter and the handler name in the `#subject` parameter. The following statement sends a message to the server that calls the handler `testHandler` in the movie's server-side script:

    errCode = gMultiuserInstance.sendNetMessage([#recipients: \
    "system.script", #subject: "testHandler", #content: \
    "This is the text to be displayed"])

The movie's server-side script will receive this message, and its `on incomingMessage` handler will be called. The `on incomingMessage` handler should contain a `case` statement that tests the contents of the `#subject` property and calls the handler named in it.

The server-side script would look something like this:

    on incomingMessage (me, movie, group, user, fullMsg)
    	-- if the #subject of the incoming message is "testHandler",
    	-- call that handler and pass it the #content as an argument
    	case fullMsg.subject of
    		"testHandler":
    			me.testHandler(fullMsg.content)
    	end case
    end

    on testHandler me, textArg
    	-- display the #content of the message in the server's
    	-- console window
    	put textArg
    end

Note that the arguments `me`, `movie`, `group`, `user`, and `fullMsg` are provided by the server and must be included with the `incomingMessage` handler. By passing these arguments to your handler, the server lets you know exactly who the message came from.

Specifying `"system.script"` as the recipient tells the server to send an `incomingMessage` event to the server-side script associated with the movie that sent the message. The `#subject` gets passed to the handler as part of the argument `fullMsg`. The `put` statement in the handler causes the server to display the specified text in its console window.