Meh, google gives me nothing. Explain.
code rant
What did you use to examine what packets were being sent? And what did you program said tool in? This has me more interested in Terraria than anything else at the moment; as an aspiring game programmer I know I've got a while to go (and a bit more school) but to take a good hard look at a game I like that would be easily poked at...
Seems like too much of an opportunity to pass up
I wrote what is basically a proxy server for the Terraria client (in C#, using Visual C# 2010 express). It listens on port 7778, you tell the client to connect to localhost and port 7778, and when it connects, the proxy connects another socket to an IP and port that you have specified in the proxy's GUI (which is the actual server). Any packets the client sends to the proxy, it sends to the server, and anything the server sends to the proxy, it sends to the client, while examining everything that it gets sent from both directions, potentially modifying them (generally only modifying ones from the client), and also inserting its own packets when requested. It requires Terraria 1.0.3 at least, since the ability to connect on any port was added to Terraria in that version. Prior to that I ran it on port 7777 and couldn't run a server on the same IP.
I also used .NET Reflector 6.8 to view Terraria's (decompiled) source (reverse-engineering) in order to learn which packets did what and how the system worked more easily than I could have by just examining what was being sent between the client and server. There are several open-source .NET/C# decompilers, and I'm not familiar with all of them. One open-source one is named ILSpy, and it works in a similar manner to .NET Reflector, although the decompiled source code it generates is somewhat different, of course.
I haven't added tile-manipulation features, e.g. draw on the screen to create tiles, with one exception, since there don't seem to be any packets for "user clicked on this tile." It does tell the server that the user clicked, but not what they clicked. The exception is that I have a checkbox to add hellstone brick backwall when placing hellstone brick, since the client sends packets to create tiles and walls, so placing hellstone brick is detectable and adding hellstone brick wall in the same place (if there's nothing blocking it) is entirely possible to do.