I've seen several people asking about it, but no successful posts about using launchd to start the Teamspeak 3 server, so here's what is working for me.

Notes:
  • Change the UserName key to the account name of the user you want it to run as. There's no reason to run it as root -- just don't do it!
  • Set WorkingDirectory to the path of the server binary.
  • I have KeepAlive set to false. I prefer to do it this way for testing, so launchd won't keep trying to launch the server every 10 seconds forever if something isn't working. Once all is working as intended, you might consider changing this to TRUE, so launchd will restart the process if it dies (or is killed).
  • I recommend Lingon to add this to your user daemons. Put it in expert mode, paste in the plist below, make the changes I mentioned above, and save. Done!


Code:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>KeepAlive</key>
	<false/>
	<key>Label</key>
	<string>net.MyDaemons.TeamSpeak3</string>
	<key>ProgramArguments</key>
	<array>
		<string>./ts3server_mac</string>
	</array>
	<key>RunAtLoad</key>
	<true/>
	<key>UserName</key>
	<string>MacUser</string>
	<key>WorkingDirectory</key>
	<string>/Users/MacUser/ts3/</string>
</dict>
</plist>