/spunkybot

Multi-platform administration and RCON tool for Urban Terror

Primary LanguagePythonMIT LicenseMIT

This README is just a quick start document. You can find more detailed documentation of Spunky Bot at https://spunkybot.de.

What is Spunky Bot?

Spunky Bot is a lightweight game server administration bot and RCON tool. Its purpose is to administer, manage and maintain an Urban Terror 4.1 / 4.2 / 4.3 server and to provide real time statistics data for players. Spunky Bot is a cross-platform package and offers in-game commands without authentication and automated administration even when no admin is online. The code of Spunky Bot is inspired by the eb2k9 bot by Shawn Haggard, which was released under the Beerware License.

Build Status Actions Status License Release PyPI version Python version GitHub Downloads

If you want to know more, this is a list of selected starting points:

Features

  • Lightweight and fast
  • Real time game statistics
  • Different user groups and levels
  • Supports all RCON commands
  • Supports temporary and permanent bans of players
  • Supports rotation messages
  • Stores all player related information in a SQLite database
  • Runs 'out of the box', no other software requirements

Environment

  • Urban Terror 4.1.1 / 4.2.023 / 4.3.4
  • Python 2.6 / 2.7
  • SQLite 3 database
  • Cross-platform (tested on Debian 6 - 10, Ubuntu 10.04 - 20.04, CentOS 6 / 7, macOS 10.13, Windows 7 / 10)
  • Supporting 32-bit and 64-bit operating systems

Quickstart

It's easy to get started with Spunky Bot:

Configuration

  • Modify the Urban Terror server config file as follows:
seta g_logsync "1"
seta g_loghits "1"
seta g_friendlyfire "2"
  • Restart your Urban Terror server
  • Modify the Spunky Bot configuration file /conf/settings.conf and set game server port and RCON password
  • In-game displayed rules/advertisements are contained in the file /conf/rules.conf
  • If you do not want to display the rotation messages, set the value show_rules=0 in the config file /conf/settings.conf
  • Run the application manually: python spunky.py
  • Or use the provided systemd or sysVinit script to run Spunky Bot as daemon

First start instruction:

  • Connect to your game server and type !iamgod in the global chat to get the admin level "Head Admin". This command is only once available.

Documentation

You can find all details in the latest documentation.

Bot Commands

The description of all available commands as well as the admin levels and rights is located under the subfolder /doc.

Resources

Changelog

You can keep up-to-date with the changes that we have made via our releases page.

Versioning

Spunky Bot is currently maintained under the Semantic Versioning guidelines. Releases will be numbered with the following format: <major>.<minor>.<patch>

Additional Information

For additional information, visit the Spunky Bot website at https://www.spunkybot.de.

If you have any questions about Spunky Bot or need help, please use the mailing list.

If you have bug reports or feature suggestions, please use the issue tracker.

Contributing

You can help us in different ways:

  • Open an issue with suggestions for improvements
  • Fork this repository and submit a pull request:
    • Click the Fork button to create your personal fork
    • Create your feature branch (git checkout -b new-feature)
    • Commit your changes (git commit -am 'Add some feature')
    • Push to the branch (git push origin new-feature)
    • Create a new pull request
  • Improve the documentation (separate repository)

By contributing code to this project in any form, including sending a pull request via GitHub, a code fragment or patch via mail or public discussion groups, you agree to release your code under the terms of the MIT license that you can find in the LICENSE file included in this source distribution.

Please see the CONTRIBUTING guide for information regarding the contribution process.

License

The code of Spunky Bot is released under the MIT License. See the LICENSE file for the full license text.

Third Party Libraries

  • RCON: pyquake3.py
    • The library has been modified to fix some error handling issues and fulfill the PEP8 conformance. This file is released under the GNU General Public License.
  • GeoIP: pygeoip.py
    • The library has been extended with the list GeoIP_country_name to support full country names (e.g. Germany for country_code DE). This file is released under the MIT License.
  • GeoLite database: www.maxmind.com
    • The GeoLite databases created by MaxMind are distributed under the Creative Commons Attribution-ShareAlike 4.0 International License and the MaxMind Open Data License.
  • Schedule: schedule.py
    • This file is released under the MIT License.

Urban Terror® and FrozenSand™ are trademarks, or registered trademarks of Frozensand Games Limited.

Thank you!

We really appreciate all kinds of feedback and contributions. Thanks for using and supporting Spunky Bot!