Skip to content
This repository has been archived by the owner on May 16, 2019. It is now read-only.
Christian Voigt edited this page Sep 24, 2018 · 26 revisions
EARLY ACCESS -> MIGHT CRASH AT ANY TIME

Welcome to the 7dtd-chrani-bot wiki!

I shall call this project 'chrani-bot' or just 'the bot' for the remainder of this wiki

What can it do?

  • Player-data is being monitored and can be used throughout the bot
  • IP-Checks can be integrated with an external tool, free for moderate usage: https://ipinfo.io/
  • Actions can be created that the bot will execute
    • by chat-command
    • by telnet-event
    • periodically
    • from the webinterface
  • Players can be checked against certain criteria during log-in, issuing actions before they have entered the world.
  • Integrated socket-based web-interface

With these mechanisms, a lot of functions are possible. The following have been integrated already:

  • Password authentication
    • Several authentication levels
    • Different permissions per authentication level
  • Locations can be created
    • Secure lobby for new players
    • Player-homes
    • Named PoI
    • Locations can have different shapes: spheres and cubes (with restricted height) and round areas and rectangular areas (which act like landclaims)
  • A whitelist can be set up
    • Players with ASCII names can be kicked during log-in
    • Players from blacklisted countries can be kicked during log-in
    • Players with URL-Style names can be kicked during log-in
  • the Bot can be remote controlled via the web-interface
    • set players permission groups
    • port players home / to the lobby
    • kick and ban players
    • list their locations and if they are in them or not
    • put players on the whitelist or remove them from it
    • switch whitelist on or off
    • pause the bot's game-interface (only webinterface-actions will work)
    • delete all known player-data
    • view locations and players on a map
    • the bot will remove screamers spawning in village-locations

Want more details?

The bot will run periodic polls to get current player-data and all telnet-lines/chat-commands. Actions can be tied to chat-commands, monitors can be set up to fire actions when specific conditions are met.

Actions and events can be configured on a user-rank basis.

A lobby system is in place to fetch new players and keep them in any specified area, artificially confined or open. A players position will be monitored and they will be teleported back to the lobby whenever they leave it's specified area. There is no way around this other than authenticating with the bot. The system will jump into action as soon as a lobby is placed.

Provide 'home' commands. You can set a home and return to it, if a players permissions allow it. The home can have a few options, like a variable size and teleport-spot, which can be set anywhere inside the home-area. Players will be notified on entering and leaving of such an area in the games chat.

Provide location commands. You can set locations that act pretty much like a home does. Locations can have warning messages set for an inner and an outer perimeter and distinguishes between entering an leaving.

Locations, like homes, can have a protected core, teleporting every player but the owner and his friends out.

Several small goodies are included like a leg-fixer, a health buff command, kicking and banning, listing players, going to your backpack after death and more. These are just for fun and may be removed at any time

There's automatic (timed) server restarts with warning messages

We have rotating messages to be displayed in chat.

Authenticating with the bot will also enable access to the web-interface with the same set of commands available in-game (where applicable) and more!

What is the 7dtd-chrani-bot about?

The chrani-bot is about easy installation and unobtrusive integration to allow an easy, worry free admin and player experience. Weed out the unwanted in a safe and easy fashion!

Though it is meant to be installed on the same server as the game itself, it will work perfectly from any remote location. You can basically run it in any python (2.7x) console with network-access: For Example, development on the bot is done via PyCharm's python console and the game running on our remote root server.

What will the 7dtd-chrani-bot never be about?

The Bot will never add functions the game already has. There will be no second economy system to pay-gate commands. There will be no bot friendslist or bot-friends for bot features. It does make use of the games friendslist, like for protected locations

Current state

The bot Is currently being tested on our main 7dtd server. So far we didn't encounter any problems at all. So I can say the bot is ready for some serious testing, hardening of the code-basis and then adding features ^^

Judging from our current experiences, the basic functions work well. Set up correctly, it will survive server-restarts as well as bot-restarts and can be controlled remotely (stop/start/shutdown). Updates, once set up correctly, consist of a simple "git pull"

Lobby and home command are pretty solid, simple locations are working as well.

The webinterface is websocket-based, so you have real time updates for most things.

I am currently working on making the code-design easier to follow and extend. As I still learning Python, this is my first and only project with it, there's been a lot of questionable design decisions I am now ironing out.

How to use and install?

For now, please refer to my blog posts about the bot on my servers website ^^

https://chrani.net/chrani-bot/

And this is how it currently looks like

Clone this wiki locally