|
|
@ -2,81 +2,134 @@ |
|
|
|
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 ^^), and testing is the bleeding edge branch that might be broken or full of bugs. |
|
|
|
It's usually not though :)` |
|
|
|
`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 or bad |
|
|
|
After running a gameserver for several years, and using several managers and |
|
|
|
bots, I have realized one thing: They heavily modify the game-experience. |
|
|
|
|
|
|
|
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... |
|
|
|
In both ways, good and bad |
|
|
|
|
|
|
|
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 ^^ |
|
|
|
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 works on any Vanilla install, and basic functions will work right out of the box. |
|
|
|
For more advanced stuff like hiding chat-commands or exporting prefabs, you will need add a |
|
|
|
few server-side mods. |
|
|
|
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]( |
|
|
|
https://code.chrani.net/chrani.net/chrani-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]( |
|
|
|
https://code.chrani.net/wwevo/chrani-bot-tng/wiki/Installation |
|
|
|
https://code.chrani.net/chrani.net/chrani-bot-tng/wiki/Installation |
|
|
|
) |
|
|
|
|
|
|
|
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 |
|
|
|
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]( |
|
|
|
https://code.chrani.net/wwevo/chrani-bot-tng/wiki/Reverse_Proxy |
|
|
|
https://code.chrani.net/chrani.net/chrani-bot-tng/wiki/Reverse_Proxy |
|
|
|
) |
|
|
|
|
|
|
|
#### 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 |
|
|
|
|
|
|
|
* 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 |
|
|
|
* any user-input from the webinterface... well... yeah of course that is monitored :) |
|
|
|
|
|
|
|
* Socket/Push based, **LCARS**-Style Interface :) |
|
|
|
* 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 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 as a village, there's no attached functionality as of yet |
|
|
|
* 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 |
|
|
|
* players can be blocked from logging in if they happen to be in a special location on Bloodmoons, |
|
|
|
to prevent destruction of cool property. (like absentmindedly logging in while being in the village |
|
|
|
during MB) |
|
|
|
|
|
|
|
* players can be blocked from logging in if they happen to be in a |
|
|
|
special location on Bloodmoons, to prevent destruction of cool |
|
|
|
property. (like absentmindedly logging in while being in the village |
|
|
|
during Bloodmoon) |
|
|
|
* Timed or scheduled Remote shutdown procedure |
|
|
|
* will shut down the server for restart after a given up-time, respecting bloodmoons |
|
|
|
* 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 time and the next Bloodmoon |
|
|
|
|
|
|
|
* 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, for example, to give them the ability to leave the |
|
|
|
Lobby |
|
|
|
|
|
|
|
* a password can be used to authenticate a player, for example, to give |
|
|
|
them the ability to leave the Lobby |
|
|
|
|
|
|
|
#### 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 |
|
|
|
|