|
1 year ago | |
---|---|---|
bot | 1 year ago | |
.gitignore | 3 years ago | |
LICENSE | 3 years ago | |
README.md | 1 year ago | |
app.py | 3 years ago | |
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