View Single Post
Author Message
Hawk552
AMX Mod X Moderator
Join Date: Aug 2005
Old 01-06-2014 , 18:06   [ANY] Cross-Server Chat
Reply With Quote #1

Cross-Server Chat

Description
This plugin and Python script allows you to chat between any number of servers without actually playing in them. For example, you could connect 3 servers together using this, and then talk with people in the 2nd and 3rd servers while you're in the 1st server.

How it Works
A Python script is provided which acts as the master server to receive all server messages. Each server pings the master server every second, with a payload including all messages that have been sent on this server in the last second, and the master server replies with all messages sent by other servers in the last second.

Requirements
You must install the SteamTools extension to use this.
You must also have access to a server capable of running Python 2.7.x scripts, with an open port that is not in use.

ConVars
  • sm_csc_host (string) (def. "http://YOURHOST.com:8000) - The host and port that the master server Python script resides at.
  • sm_csc_prefix (string) (def. "") - The prefix to use for sending messages. A blank prefix means that all messages are networked. An example prefix is "#", which would mean that all messages you want networked must be of the format "#message", e.g. "#hi hawk".
  • sm_csc_admin_only (string) (def. "0") - Whether or not cross-server chat should be restricted to admins only. For this to be "1", sm_csc_prefix must also be set to something non-blank (e.g. "#").

Installation
  1. Install the SteamTools extension, if you haven't already.
  2. Install the plugin on every game server you want networked. See installing plugins.
  3. Install the Python script on the server you want to be the master server.
    1. Copy the cross-server-chat.py script to somewhere that you can run it.
    2. Edit it and be sure to change the following:
      Code:
      HOST_NAME = 'YOURHOSTNAME.com'
      PORT_NUMBER = 8000
    3. Run it by typing:
      Code:
      python cross-server-chat.py
      You may consider running it in a Screen session or as a daemon so that it doesn't get terminated when you close the terminal.
  4. Restart the game server(s).

Changelog
  • 1.0, Jan 6, 2014
    • Initial version.
  • 1.1, Jan 9, 2014
    • Added sm_csc_admin_only cvar.
    • Added chat flooding detection for non-admins.

On GitHub
https://github.com/DouglasSherk/Sour...ss-server-chat
Attached Files
File Type: zip cross-server-chat.zip (11.5 KB, 538 views)
__________________

Last edited by Hawk552; 01-10-2014 at 14:07. Reason: Updated SteamTools thread.
Hawk552 is offline
Send a message via AIM to Hawk552