Python script to monitor and control a 7 Days to Die server remotely via webinterface with in-game bot commands and in response to the games own actions.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Go to file
Christian Voigt 3378ef9899
fleshed out the render map widget, still a wip
1 year ago
bot fleshed out the render map widget, still a wip 1 year ago
.gitignore adjusted gitignore to accommodate the new directory structure in options 3 years ago
LICENSE changed origin to dataset, makes more immediate sense 3 years ago
README.md fixing or removing half-working stuff. ongoing effort 1 year ago
app.py added comman line argument for settings to be used. can set this to a folder name inside options. 3 years ago
requirements.txt updated requirements.txt 1 year ago

README.md

chrani-bot-tng

Flexible, modern, and easy to extend bot/webinterface for the game 7dtd

Important!

Do use the development branch for updates - master is rarely updated and only meant for stable (not necessarily usable ^^), testing is the bleeding edge branch that might be broken or full of bugs.
It's usually not though :)

Vision

After running a gameserver for several years, and using several managers and bots, I have realized one thing: They heavily modify the game-experience.

In both ways, good and bad

While many of their features add elements and experiences to the game, they also take away from the core game itself. Having teleports to move around, having protected stuff and areas, item shops...

The aim of this bot is to not alter the games experience by much, but only to add to it.
Specially for Admins/Moderators, and Builders. The casual player may not even notice that a bot is at work, apart from the authentication process of course ^^

Current state

The bot will work on any Vanilla install, and basic functions will work right out of the box. If you want to use the muting option and future features, you will need to install the chrani-mod as well.

We have been forced to write our own server-mod, the available and suitable ones were either discontinued or closed source.

It's a mad world! Closed source gaming tools. What's wrong with people and their extreme sense of self-importance? :) Feel free to do with this heap of code-junk, or parts of it, as you please, as long as it stays open source!

There's a fairly comprehensive installation guide on the projects-wiki

You can port forward or reverse proxy or whatever it's called this thing too. I don't know much about it, but here is my take on making subdomains work on the projects-wiki

Core Functions

  • Module based functionality
    • new modules can be added easily and without altering any of the bots files, just drop them in, check for configuration options, and start using them
  • Trigger-based actions and reactions
    • any telnet log output can be parsed for triggers, using regular expressions. This includes player-chat.
    • database access can be monitored, using access paths, triggering actions on value changes
    • any user-input from the webinterface... well... yeah of course that is monitored :)
  • Socket/Push based, LCARS-Style Web-Interface :)
    • Steam-login for authentication
    • Widget system to easily extend the webinterface
    • Uses the games own permission system (serveradmin.xml)
    • Looks Epic already, even if I say so myself.
  • Server-based configuration
    • A single bot can run multiple servers using configuration directories
    • Error-logs are stored per server

Modules

  • Telnet-log widget
  • Player-table widget (delete, login-status, info, kick)
    • kick players with a custom message
    • view basic info like kills, deaths, last time online etc.
  • Location widget (create, edit, delete, records time and place of death)
    • a location can be designated as a Lobby to keep people in
    • locations can be made screamer-proof, all screamers will be killed on spawn
    • locations can be set up as a home, with a dedicated teleport entry
    • locations can be set up to kill screamers whenever they spawn inside
    • locations can be set up as a village, there's no attached functionality as of yet
    • a place of death location will be updated on every player-death
  • Timed or scheduled Remote shutdown procedure
    • will shut down the server for restart after a given up-time, respecting Bloodmoons
    • Will show the game-servers uptime when hovering online status
    • shutdowns can be cancelled and forced
  • Simple gametime display
    • Will show the current game-time and the next Bloodmoon
  • Entity widget
    • simply shows all active entities for now
  • Permissions widget to gate commands
    • a password can be used to authenticate a player

Commands

There's a few commands for players to use. Each module can have their own commands, I'll just list them all here, I'm still moving some of them around, I'll sort them later ^^

/when is restart
Will print out the next scheduled restart

/send me home
Will send a player to their home location (if they have one)

/send me to location xxxxx
Will send a player to their own locations, specified with the Location identifier, (usually it's name without spaces). Replace xxxxx with the Location Identifier!

/take me to my grave
Will send a player to their last place of death

/where am i
Will print out the locations the player is currently in.

/password xxxxx
Allows players to authenticate with the bot, for various purposes like muting and lobby-porting. xxxxx is to be replaced with the actual password!

/uptime
Will print out the servers uptime (not the game-server, but the physical server)

/when is hordenight Will print out the date and time of the next Hordenight