2021-01-19 04:20:52 -05:00
---
module: [kind=event] modem_message
---
2023-03-15 21:52:13 +00:00
<!--
SPDX-FileCopyrightText: 2021 The CC: Tweaked Developers
2023-03-28 10:23:28 +01:00
SPDX-License-Identifier: MPL-2.0
2023-03-15 21:52:13 +00:00
-->
2023-08-24 10:48:30 +01:00
The [`modem_message` ] event is fired when a message is received on an open channel on any [`modem` ].
2021-01-19 04:20:52 -05:00
## Return Values
2023-08-24 10:48:30 +01:00
1. [`string` ]: The event name.
2. [`string` ]: The side of the modem that received the message.
3. [`number` ]: The channel that the message was sent on.
4. [`number` ]: The reply channel set by the sender.
5. [`any` ]: The message as sent by the sender.
6. < span class = "type" > [`number` ]|[`nil` ]</ span > : The distance between the sender and the receiver in blocks, or [`nil` ] if the message was sent between dimensions.
2021-01-19 04:20:52 -05:00
## Example
2023-08-24 10:48:30 +01:00
Wraps a [`modem` ] peripheral, opens channel 0 for listening, and prints all received messages.
2021-12-21 00:22:16 +00:00
2021-01-19 04:20:52 -05:00
```lua
2021-12-21 00:22:16 +00:00
local modem = peripheral.find("modem") or error("No modem attached", 0)
modem.open(0)
2021-01-19 04:20:52 -05:00
while true do
2023-01-16 22:53:58 +00:00
local event, side, channel, replyChannel, message, distance = os.pullEvent("modem_message")
print(("Message received on side %s on channel %d (reply to %d) from %f blocks away with message %s"):format(
side, channel, replyChannel, distance, tostring(message)
))
2021-01-19 04:20:52 -05:00
end
```