Catalysm Jul 15, 2018
Contents 1 Install Allocs Fixes. 1 2 Set up authentication credentials for CSMM 3 3 Add your server 5 4 Discord 7 4.1 Chat bridge................................................ 7 4.2 Commands................................................ 8 4.3 Admin commands............................................ 16 4.4 Notifications............................................... 18 4.5 Configuration............................................... 19 5 Player tracking 21 6 In-game features 25 6.1 Country ban............................................... 25 6.2 Commands................................................ 25 6.3 Cron job / Automation commands.................................... 26 6.4 Message of the day............................................ 27 6.5 Support tickets.............................................. 27 7 Economy 29 7.1 Playtime earner.............................................. 29 7.2 Discord text earner............................................ 29 7.3 Kill earner................................................ 29 7.4 Shop................................................... 29 8 Contributing to documentation 31 8.1 Github.................................................. 31 8.2 Local Build................................................ 31 9 For players 33 9.1 Ingame commands............................................ 33 10 FAQ 35 10.1 How do I link my discord profile to CSMM?.............................. 35 10.2 How do I add other people as admin on CSMM?............................ 35 i
10.3 How does the import/export system work?............................... 35 10.4 How do I hide CSMM commands from ingame chat?.......................... 36 11 Support 37 11.1 Tickety.................................................. 37 12 About 39 12.1 How does CSMM work?......................................... 39 13 CSMM 41 13.1 Links................................................... 41 13.2 License.................................................. 41 ii
CHAPTER 1 Install Allocs Fixes. Allocs fixes is probably already installed on your server, if not you ll end up installing it anyway most likely. To get the port of the webserver, you will need to go into your serverconfig. xml and find the value for ControlPanel- Port. The webserver uses ControlPanelPort+2 as port. If you do not have direct access to your server config (usually because of hosting companies setting it up for you), you ll need to do some more digging; ControlPanelPort could also be called query port on some hosting providers. Be careful because 7DTD also has a query port, this is not the same as the port we need for CSMM! When Your server boots up, you should see a logline like this 1.234 Started Webserver on 8082 (located in output_log.txt) See this page for additional information https://7dtd.illy.bz/wiki/ Integrated%20Webserver Finally, confirm the webserver is up and running. To do this, you can browse to http://ip:port in your browser. Replace ip and port with the values for your server (so for example you d type something like this; http://192.168.0.1:8084) You should see the dynamic map page. 1
2 Chapter 1. Install Allocs Fixes.
CHAPTER 2 Set up authentication credentials for CSMM To be able to read data and execute actions on your server, you need to make a authentication name and token. You will create these yourself, so pick any value BUT consider that these are like the keys to your server. If you let other people know what these are or you pick easy to guess values, this is a security risk! Be smart. Connect to your server console (telnet, webpanel, ingame should all work) and execute these commands. Check if you have any set up already: webtokens list Add a new token: webtokens add <name> <token> 0 Don t forget the 0 at the end! It s important CSMM has privilege 0 to ensure all functions can properly work. Reload permissions: reloadwebpermissions These credentials are sensitive! You should treat these as a password. (Keep it secret, no obvious names/tokens) its advised to use a combination of numbers, letters, lowercase and uppercase aswell as symbols It is highly recommended to remove any tokens that are not being used. 3
4 Chapter 2. Set up authentication credentials for CSMM
CHAPTER 3 Add your server Go to the website, login and navigate to the add server page. Fill in the info, click submit and you will be taken to your servers dashboard. 5
6 Chapter 3. Add your server
CHAPTER 4 Discord 4.1 Chat bridge Chat from discord directly to the game. CSMM will automatically grab new messages from the game and send them to your specified discord channel. (and from discord to game aswell) 7
Make sure you have the bot in your Discord guild. Admins can configure certain prefixes to be blocked from chat bridge. This is useful to reduce clutter. If you want to make your chatbridge public, it is recommended to turn rich messages off. This will make chatbridge display a basic playername connected message instead of steam IDs and countries. Note: make sure the bot has read, send messages permission and permission to embed links! 4.2 Commands Multiple 7dtd servers per discord guild A note for users who have more than one 7DTD server linked to a discord guild. CSMM needs to be able to differentiate between servers. That s why all commands can take one extra argument at the end, a server identifier. Use the listservers discord command to see a list of servers associated with this guild, if you want to execute a 8 Chapter 4. Discord
command for a second server, you ll add that servers identifier at the end of a command. By default, this argument is 1. So for example, if you have 2 servers associated with a guild $status will respond with status for server 1. To get status for your second server, you will use $status 2 Another example: $ex say sends a message to first server $ex say sends a message to third server 3 ** Starting and ending command arguments when they contain spaces ** When a command takes an argument that can contain spaces, you will also need to start and end your arguments properly. Consider the following $ex say test - This will send a message to server one $ex say another test - This will think that test is the server identifier! This is bad syntax The correct way is this: $ex say another test 4.2.1 Status Aliases: d7, day7 Quickly see some basic info about the server 4.2.2 Listservers Quick and basic list of the server you have 4.2. Commands 9
4.2.3 Serverinfo Detailed infomation about your server and settings 10 Chapter 4. Discord
4.2.4 Top Which players have spent the most time on your server? Arguments: type What type of data do you want to see the top players of? This can be: playtime, zombies, players, deaths, currency, level or score 4.2. Commands 11
amount The amount of players to show. maximum 20. Which players have killed the most zombies on your server? Which players have died the most on your server? 12 Chapter 4. Discord
Which players have killed the most players on your server? Which players have the most currency on your server? 4.2. Commands 13
Which players have the highest level on your server? Which players have the highest score your server? 14 Chapter 4. Discord
4.2.5 Player Detailed player profile lookup. This command will only show information that is okay to show to all your players. This should be used in public channels (as opposed to lookup). Search by name, steam ID or entity ID 4.2. Commands 15
4.3 Admin commands 4.3.1 Lookup Detailed player profile lookup. In contrast to the player command, this will show info like IP, location. This command should be used in admin channels Search by name, steam ID or entity ID 16 Chapter 4. Discord
4.3.2 Ex CSMM can run console commands for you from discord. Only users who are registered as owner or admin of a server on CSMM can use this command. 4.3. Admin commands 17
4.4 Notifications Ticket Notfiication Notifications for $calladmin tickets. You will receive a notification when a new ticket or comment is made. Lost and Connected Notification Get notified when csmm loses and connects to your server. CSMM Restart Notfiication A notification that shows when csmm restarts. This is usually when CSMM gets updated or there are issues with the service. Chatbridge Notfiication A notifcation that updates you on chat bridge status. Country Ban Notfiication 18 Chapter 4. Discord
A notification that shows when a player gets kicked or banned by the countryban module. Cron Job / Server Automation Notification A notification that shows when a automated job has been run. This could also be used to keep a periodic log of some command output. 4.5 Configuration All discord configuration can be done via the settings page in your servers dashboard. 4.5. Configuration 19
20 Chapter 4. Discord
CHAPTER 5 Player tracking CSMM can take a snapshot of online players on your server every 30 seconds. It can store location and inventory data. This information can be queried from the player tracking page on the website. CSMM can show you the inventory changes for every player in your query. 21
You can also consult the raw inventory or location data. If you specified a location to search in, distance will also be calculated. 22 Chapter 5. Player tracking
23
24 Chapter 5. Player tracking
CHAPTER 6 In-game features 6.1 Country ban Select countries that you do not wish on your server. CSMM will automatically kick or ban anyone joining from an IP in these countries. Note This is very naive protection. Users can get around this with VPN/proxies. This ll keep casuals out, but if someone REALLY wants to get in this will not suffice. 6.2 Commands 6.2.1 calladmin Let a player create a support ticket. Admins can get notified of this ticket and can view/comment on it via the website. CSMM will collect inventory and location data to display along the ticket. 6.2.2 Custom commands Admins can create custom ingame commands. You can set delay, timeout, cost of the command. Note: If a custom command has same name as an existing csmm command, the existing csmm command will always take precendence. the custom command never gets executed. For example: $discord: say linktodiscord You can execute multiple commands by separating with ; : 25
say "Here is one message";say "Here is the second!" You have access to the players steam and entity ID with ${steamid} and ${entityid} : sayplayer ${entityid} "WAZAAAAAAAAAAAAA" Examples $safehouse: teleportplayer ${entityid} 15 85-53; sayplayer ${steamid} "You are safe now." $animals: spawnmultipleentity ${entityid} 5 @ 59 59 60 61 $animals-advanced: spawnmultipleentity ${entityid} 5 @ 59 59 59 59 64 $brutality: say "Die Bitch" ;spawnmultipleentity ${entityid} 15 @ 2 3 4 5 6 9 15 15 15 17 18 19 21 31 31 35 40 40 45 46 53 56 63 63 63 63 64 67 67 67 70 Spawnmultipleentity is a coppis command for anyone without see example below: Spawnentity ${entityid} 59 ;Spawnentity ${entityid} 59 6.3 Cron job / Automation commands Cron jobs allow you to configure commands to run at specific time intervals. You can set up a job to run every x minutes or hours. Advanced users can also use the cron syntax to define their jobs. This allows much more control and cool stuff you can do. To get you started with the cron syntax, you can use this very helpful website https://crontab.guru/ Common use cases are automatic server restarts with a countdown, infoticker messages. Advanced users can customize this to create special server events. Let us know if you make some cool stuff with this! :) 26 Chapter 6. In-game features
6.4 Message of the day Set a message to be sent to players when they join the server and/or show this message periodically to all players. This is useful to advertise your discord server, remind people to abide by the rules etc Note: the periodic messages are deprecated, you should use the server automation feature. In the future, MOTD will only be shown when players connect to the server. 6.5 Support tickets Players can create support tickets with the corresponding calladmin command (if enabled). This is a great way for players to ask admins for some assistance, even when there is no admin currently online. 6.4. Message of the day 27
28 Chapter 6. In-game features
CHAPTER 7 Economy The economy module allows admins to set a cost to multiple actions (teleports, custom commands,... ). It is highly configurable, you decide what modules to enable or disable, set the prices or name your currency. 7.1 Playtime earner Allow players to earn money for being online on the server. Timer and amount can be configured. 7.2 Discord text earner Allow players to earn money by typing in Discord. You can configure a timeout for messages, so players cannot spam to earn money. ** Players must link their Discord profile to CSMM in order for this to work. ** 7.3 Kill earner Allow players to earn money for killing players or zombies. 7.4 Shop Admins can add items to the shop, set the amount quality and price. These will have infinite stock. Players can go to the same page or use the ingame $shop command, to be presented with a menu of items they can purchase. After purchasing, players can claim their items via the ingame $claim command. 29
Shop allows you to import / export your listings for easy configuration. The data is displayed in JSON format. In order to import your new config, you must make sure the syntax is 100% correct. A handy tool to check your syntax is here. 30 Chapter 7. Economy
CHAPTER 8 Contributing to documentation Here s a handy cheatsheet for the markup in this documentation https://github.com/ralsina/rst-cheatsheet/blob/master/rst-cheatsheet.rst 8.1 Github If you are ok with using a web interface or just want to make some small change you can use the Edit on Github buttons 8.2 Local Build If you d rather work on your own machine, in a more powerful editor, here are some steps to do this Make sure python & pip are installed Install Sphinx: pip install sphinx sphinx-autobuild sphinx_rtd_theme Create a new folder: mkdir csmm-docs cd csmm-docs Clone the documentation repository to your machine: git init git pull https://github.com/niekcandaele/csmm-issues Write some docs! Build your new version: 31
make html Open index.html from the _build folder to see the docs. Autmatically rebuild when a file changes: sphinx-autobuild. _build/html Once you have changes to add, open up a pull request! 32 Chapter 8. Contributing to documentation
CHAPTER 9 For players 9.1 Ingame commands Note: server admins can enable/disable every command. So not every command might work on the server you play on! 9.1.1 Calladmin Get an admins help with something! This will automatically record your location & inventory. Usage: $calladmin My bike is glitched A page for your ticket will be made on the website. An admin will (hopefully) resolve your issue soon! 9.1.2 Teleports Create custom teleport locations. You can set your teleport location to public and give the name to your friends. Set a new teleport location: $settele teleportname Teleport to a location: $tele teleportname Remove a teleport location: $removetele teleportname List all your saved locations: 33
$listtele Shows all public tps for the server: $listtele public Rename a location: $renametele oldname newname Set a teleleport location to public: $telepublic teleportname Set a teleport location to private: $teleprivate teleportname 9.1.3 Economy Find out your economy balance: $balance 9.1.4 Shop Claim all items you have purchased. Drops all claimed items at the players feet. Best to do this on a even surface. If you have more than 10 items ready to be claimed, only the first 10 will be given at a time.: $claim List all items that can be claimed: $claim list Replies with a link to the server shop: $shop 9.1.5 Who See who was in a certain radius around your current location. Size defaults to 150 blocks. When a large amount of players has been in your area, it will show who was there the latest. Consider keeping the area to search as small as possible for most accurate results $ who You can specify the location to search. Min 1 max 500 $who 250 34 Chapter 9. For players
CHAPTER 10 FAQ 10.1 How do I link my discord profile to CSMM? Go to your profile page on CSMM, look for the Discord ID section and click the Discord icon to log in. 10.2 How do I add other people as admin on CSMM? Make sure the admin has logged in to CSMM at least once, to make sure he/she has a user profile. Next, go to your server settings -> Basic server settings -> add/remove admins. Fill in the new admins steam ID there, CSMM will look to find a profile with corresponding steam ID. Note that admins will have full control of your server on CSMM. Be careful who you give this permission to! 10.3 How does the import/export system work? Data is exchanged in JSON format. JSON is very much like XML, a data transfer syntax. It doesn t need as much syntax fluff as XML, it s very simple! An example of what a shop export looks like [ { }, { "name": "bottledwater", "friendlyname": "water", "amount": 5, "quality": 0, "price": 5 "name": "cornbread", (continues on next page) 35
] }, { }, { } "friendlyname": "food", "amount": 5, "quality": 0, "price": 5 "name": "turd", "friendlyname": "shit mate", "amount": 100, "quality": 0, "price": 1000 "name": "baconandeggs", "friendlyname": "baconandeggs", "amount": 50, "quality": 0, "price": 2000 (continued from previous page) In JSON, [] means multiple entries (array) and {} means an object. In practice, what this means for CSMM import/export is that every import statement will start with [ and end with ]. Every {} denotes a new entry (shop listing, cron job or custom command) which holds the keys and values. To get started with this method of configuration, it s recommended to create 2-3 entries via the web interface and exporting those to a file. That will show you the fields that can be configured and give you a good baseline to build the rest of your config. Some important pointers for JSON syntax Note the, after every object except the last object. Every string has around it Numbers or boolean values (true/false) don t need When you import your data, it is still validated by the same rules as you would do it via the web interface. This means that itemnames in shop must be valid item names on your server, commands need to be valid etc 10.4 How do I hide CSMM commands from ingame chat? This functionality requires an API mod. CSMM cannot provide it but the mod Coppi s additions provides a very useful command tcch which can hide messages starting with a certain prefix from chat. Since v4.92 it supports multiple prefixes. 36 Chapter 10. FAQ
CHAPTER 11 Support If you were trying to answer a question and these docs don t provide you with one, worry not! The best way to contact someone is via our Discord server. In there, you can either ask your question in the appropriate support channel or you can create a personal ticket with Tickety discord bot. 11.1 Tickety Create a new ticket:: -new This will create a private channel with you and support staff. If you have a general question, it s better to ask in the public channel as you ll likely get answered faster there. 37
38 Chapter 11. Support
CHAPTER 12 About 12.1 How does CSMM work? At the very basic level, CSMM communicates with your server via the web API provided by Allocs fixes. Once that has happened, CSMM uses a custom library to get/set/format/... data. 39
40 Chapter 12. About
CHAPTER 13 CSMM CSMM is a server manager for 7 Days to Die. Monitor your server via a web interface Cloud hosted - You do not need to worry about getting another VPS Discord bot integration 13.1 Links Issue tracker Discord server 13.2 License The project is licensed under the MIT license. 41