# How does the "mesasge" in msg.post work

**URL:** <https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212>\
**Category:** Questions\
**Created:** [September 22, 2024, 11:03am UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212 "2024-09-22T11:03:25Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![OPSPESH](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/opspesh/32/35873_2.png) [@OPSPESH](https://forum.defold.com/u/OPSPESH)\
**Post date:** [September 22, 2024, 11:03am UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/1 "2024-09-22T11:03:25Z")

</div>

I’m trying to send a msg

```lua
msg.post("/m_char#m_char_script", "set_pos", vmath.vector3(0, 0, 0))

```

to another script to set its position to I’m trying to send the position as a vector3 but when I do I get this error

```lua
ERROR:SCRIPT: bad argument #3 to 'post' (table expected, got userdata)

```

but if I make it a table it doesn’t work in the other script because it isn’t a vector3 and it gives me this error. What can I do

```lua
ERROR:SCRIPT: bad argument #1 to 'set_position' (vector3 expected, got table)

```

Any ideas why. Thanks

---

<div class="post-metadata">

**Author:** ![Mathias\_Westerdahl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/mathias_westerdahl/32/228_2.png) [@Mathias\_Westerdahl](https://forum.defold.com/u/Mathias_Westerdahl)\
**Post date:** [September 22, 2024, 11:14am UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/2 "2024-09-22T11:14:39Z")

</div>

You receive a table.  
Use e.g. ”message.myposition”

---

<div class="post-metadata">

**Author:** ![britzl](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/britzl/32/23_2.png) [@britzl](https://forum.defold.com/u/britzl)\
**Post date:** [September 22, 2024, 12:46pm UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/3 "2024-09-22T12:46:56Z")

</div>

> [@OPSPESH](#):
>
> Any ideas why. Thanks

Have you read the manual on messages?

> **[Message passing in Defold](https://defold.com/manuals/message-passing/)**
>
> Message passing is the mechanism used by Defold to permit loosely coupled objects to communicate. This manual describes this mechanism in depth.

---

<div class="post-metadata">

**Author:** ![OPSPESH](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/opspesh/32/35873_2.png) [@OPSPESH](https://forum.defold.com/u/OPSPESH)\
**Post date:** [September 22, 2024, 2:01pm UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/4 "2024-09-22T14:01:04Z")

</div>

Thanks. I’ve used

```lua
table.remove(message)

```

and it works now.

---

<div class="post-metadata">

**Author:** ![Pawel](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/pawel/32/24623_2.png) [@Pawel](https://forum.defold.com/u/Pawel)\
**Post date:** [September 22, 2024, 11:13pm UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/5 "2024-09-22T23:13:13Z")

</div>

> [@OPSPESH](#):
>
> `msg.post("/m_char#m_char_script", "set_pos", vmath.vector3(0, 0, 0))`

The error for this line states clearly that it expects a table at 3. argument, but you are passing a vector here (type of vector is “userdata”)

You can simply put your vector inside a table and pass it:

```lua
    msg.post("/m_char#m_char_script", "set_pos", { position = vmath.vector3(0, 0, 0) } )

```

---

<div class="post-metadata">

**Author:** ![Pawel](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/pawel/32/24623_2.png) [@Pawel](https://forum.defold.com/u/Pawel)\
**Post date:** [September 22, 2024, 11:16pm UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/6 "2024-09-22T23:16:15Z")

</div>

> [@OPSPESH](#):
>
> Thanks. I’ve used
> 
> ```lua
> table.remove(message)
> 
> ```
> 
> and it works now.

We don’t know where you put it, but I suspect in the receiver’s `on_message` code - because `on_message` has a `message` parameter. I don’t know how it resolved your issue though 😁

Check out my above post for a correct solution 😉

---

<div class="post-metadata">

**Author:** ![OPSPESH](https://forum-defold.b-cdn.net/user_avatar/forum.defold.com/opspesh/32/35873_2.png) [@OPSPESH](https://forum.defold.com/u/OPSPESH)\
**Post date:** [September 23, 2024, 9:39am UTC](https://forum.defold.com/t/how-does-the-mesasge-in-msg-post-work/78212/7 "2024-09-23T09:39:51Z")

</div>

I forgot to mention I made it a table like how you said too and you’re right

```lua
table.remove(message)

```

is in the recevers on\_message. Thanks
