Jump to content

LHammonds

Members
  • Posts

    54
  • Joined

  • Days Won

    1

LHammonds last won the day on January 12 2016

LHammonds had the most liked content!

Personal Information

  • Location
    Behind you!
  • Interests
    Modding, Hosting game servers

LHammonds's Achievements

Scavenger

Scavenger (2/15)

0

Reputation

  1. EDIT: Moved post to this thread.
  2. If you do "sudo su" to switch into the root, doing "crontab -e" should show you the root crontab schedule. If you are having problems with scripts not running in the schedule, it might be due to the reduced environment (not having a search path to find programs when the full path is not explicit). Try adding the following in root's crontab schedule: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # # Crontab SYNTAX: # minute(0-59) hour(0-23) day-of-month(1-31) month(1-12) day-of-week(0-6) command-to-execute # 5 * * * * /usr/local/bin/7dtd.sh start "!" NOTE: You didn't include a full path to where 7dtd.sh was located which means the root crontab simply could not execute it because the default schedule does not have a search path environment variable defined. You could specify the full path like I did but if there are any programs in the script that do not explicitly specify the full path, they would also fail. Having the environment path variable defined helps prevent failure like this but also increases the security risk for hijacked commands but it is a low risk. Reference Post LHammonds
  3. Awesome. Thanks for sharing Starvation with us. Got it installed, seems to be working. Died in 1st 5 minutes of the game. * Realistic (checked off) Sincerely, LHammonds
  4. What version of the scripts are you running? What version was the server? What operating system is the scripts running on? I did not have an issue running "7dtd.sh upgradeengine" when going from 16.2 to 16.3. LHammonds
  5. No sir. If I wrote an install script, it would likely only work for this one specific version and only in the exact way I would set it up. Since this is something VERY few people would do, I'd kinda be wasting my time doing it. This was more of an exercise in seeing if I could do it. But in a real-world scenario, I'd rather not maintain manual installs like this. I'd much rather just have a 2nd instance of the server running so that my "vanilla" server could be mostly hands-free when it comes to running and updating it. The modded server will still need to be manually updated with the mods but at least the upgrade process of the game engine would still be handled by alloc's scripts making it less complicated. The notes I made should help you with a 2nd, 3rd, etc. instance though. Keep in mind that there is no RAM/CPU performance gains having multiple engines on the same server...it will still consume every bit as much RAM/CPU for each version of the engine you are running as if it were running individually. Meaning, if each server engine needs 6 GB to run smoothly, you will need at least 12 GB for two running, or at least 18 GB for three, etc. LHammonds EDIT 1: Could have swore there was another script conversation going on. I must be going senile in my old age. EDIT 2: Yep, senile. Was a different thread.
  6. I wonder if it would be possible at some point to "link" servers together similar to how Spigot does for Minecraft. Imagine joining a single server from the server list and it is a "hub world" where you can jump into multiple other servers via teleportation...such as one with PVP, one with PVE, etc. but everyone can chit-chat on the screen between the servers. Admins/Moderators able to handle multiple servers at one time. :-) EDIT: Sorry, thought I was in the PC "multiplayer"...good luck. LHammonds
  7. Thanks for the update. FYI - If you use 7-zip format, the 16.4 MB .zip archive can be reduced to a 5.4 MB .7z archive. Thanks, LHammonds
  8. Hmmm...that is a good question. Sure would be nice if Alloc's script could handle that but I know it is designed for a single engine with multiple instances...so if you modify XML of the engine, it affects all instances. I'll see if I can figure out the best way to setup a single server that can host multiple modded engines using Alloc's fixes...and then post back here with my documentation on how to do the same for yourself. I look into setting up the following: - vanilla engine (no mods), Navezgane map on port 25000, RandomGen map on port 25010 - modded engine, ValMod Overhaul + Compopack, Navezgane map on port 25020, RandomGen map onport 25030 EDIT #1: Looking good so far. I have 2 engines installed in different folders. Still need to create instances and test but I have to go for now. Will publish dox after testing. EDIT #2: Went to install the serverfixes and it only worked for the 1st server. So either it won't work or I missed editing a file somewhere or need to manually install the fixes rather than using the management script. EDIT #3: Here is a copy of my notes so far. They are no way to be considered a "tutorial" at the moment. Once I get all the steps figured out, I'll create an actual tutorial people can follow. EDIT #4: Success! I now have 2 separate engines running on the same server. One vanilla, one modded. Each has two instances running Navezgane and RandomGen and all of them have their own web server map running. LHammonds
  9. Well....technically yes. Install Oracle VirtualBox on the Windows Server, install Ubuntu Server 16.04 LTS and enjoy. ;-) Here is how I install a Ubuntu Server (long-living production-quality). Steps are pretty-much the same if installing under VMware or VirtualBox now that the virtualization tools are built into the install process. LHammonds
  10. I'm running version 106 (2016-12-08) of the scripts and the output shows the player count correctly. I then did the updatescripts: 7dtd.sh updatescripts A newer version of the scripts is available. Local: v.106 Available: v.108 Continue? (yn) y Updating... Update done. Note: This updated only script files. If the global config file /etc/7dtd.conf contains changes for the newer version or there were new files added to the user folder /home/sdtd those changes have not been applied! Now my instances are not showing up and cannot start the servers because it does not recognize the instance names anymore. I checked the /etc/7dtd.conf and it seems I need to re-edit the following values which got reset to default: export SDTD_BASE=/home/sdtd export SDTD_BACKUP_ROOT=/home/sdtd/backup Once I got the scripts to see the correct location and backup targets, I could then start the instances. Here is what it looks like with the instance command when they are offline and then online (but with no users connected) Instances not started: 7dtd.sh instances list Instance name | Running | Players | Port ---------------------+----------+---------+------ hamcraft | no | -/ 8 | 28000 nav | no | -/ 8 | 28010 valmod | no | -/ 8 | 28020 2 of 3 instances started: 7dtd.sh instances list Instance name | Running | Players | Port ---------------------+----------+---------+------ hamcraft | yes | 8/28000 | 0 nav | yes | 8/28010 | 0 valmod | no | -/ 8 | 28020 Thanks, LHammonds
  11. Don't know about Starvation but here is the last A15 version of Compopack. Link will work only for a short time: COMPOPACK 24 for alpha 15 stable b105.7z (* Link Removed *)
  12. Howdy, Just thought I'd drop by and share another script I created for my server which is based on Alloc's fixes. Source: http://hammondslegacy.com/forum/viewtopic.php?f=40&t=213&p=508#p508 Here is a horde notification script for players which I tested on Ubuntu Server 16.04 LTS but should work for most other flavors of Linux since it uses Bash. Create a file such as sdtd-horde-notify.sh and set permissions on it: mkdir -p /var/scripts/prod touch /var/scripts/prod/sdtd-horde-notify.sh chown root:root /var/scripts/prod/sdtd-horde-notify.sh chmod 755 /var/scripts/prod/sdtd-horde-notify.sh Add the following text to the script: #!/bin/bash ############################################################# ## Name : sdtd-horde-notify.sh ## Version : 1.1 ## Date : 2017-05-25 ## Author : LHammonds ## Purpose : Notify players once a day about approaching horde night. ## 1. Only process this script if there are players online. ## 2. Only process this script if the time is > 5:00 am in-game. ## 3. Finally, send chat message with how many days until horde night. ## Parameters : #1 = 7dtd server instance name (required) ## Installation : Run from crontab every few minutes. ## Compatibility : Verified on Ubuntu Server 14.04 thru 16.04 LTS ## 7 Days to Die, Alpha 15.2 ###################### CHANGE LOG ########################### ## DATE VER WHO WHAT WAS CHANGED ## ---------- --- --- --------------------------------------- ## 2017-05-08 1.0 LTH Created script. ## 2017-05-25 1.1 LTH Added multi-instance support. ############################################################# ## Import standard variables and functions. ## source /usr/local/lib/7dtd/common.sh ## Check parameter. if [ "${1}" == "" ]; then echo -e "[ERROR] Missing required parameter. Enter the server instance." echo -e "Syntax: ${ScriptName} [serverInstance]" echo -e "Example 1: ${ScriptName} HamCraft" echo -e "Example 2: ${ScriptName} WalkingDead" echo -e "Example 3: ${ScriptName} Vanilla" echo -e "Here is a list of valid instances:" 7dtd.sh instances list exit 1 else InstanceName="${1}" fi TempFile="/tmp/sdtd-gettime-${InstanceName}.txt" LastRun="/tmp/sdtd-lastrun-${InstanceName}.txt" Hour2Notify=5 ## Send ListPlayers command results to a temporary file. telnetCommand ${InstanceName} "lp" > ${TempFile} ## Get the last line of the file. Example: Total of 0 in the game PlayerCount=`tail -n 1 ${TempFile}` ## Get the 3rd column of the line. Example: 0 PlayerCount=`echo ${PlayerCount} | cut -d' ' -f3` ## Delete the temporary file. rm ${TempFile} if [[ ${PlayerCount} == 0 ]]; then ## No active players online. No need to send in-game message. echo "[iNFO] No players online, aborting script." ## Remove last run file to allow next person online to get the message. if [ -f ${LastRun} ]; then rm ${LastRun} fi exit 0 else echo "[iNFO] ${PlayerCount} players online." fi ## Send gettime command results to a temporary file. telnetCommand ${InstanceName} "gettime" > ${TempFile} ## Get the last line of the file. Example: Day 115, 05:22 DayLine=`tail -n 1 ${TempFile}` ## Get the 2nd column of the line. Example: 115, CurrentDay=`echo ${DayLine} | cut -d' ' -f2` ## Remove the comma. Example: 115 CurrentDay="${CurrentDay//,}" ## Get the in-game time. Example: 05:22 CurrentTime=`echo ${DayLine} | cut -d' ' -f3` ## Get the in-game hour. Example: 05 CurrentHour=`echo ${CurrentTime} | cut -d':' -f1` ## Force number to decimal (base 10) by removing any leading zeroes. Example: 5 CurrentHour=$((10#${CurrentHour})) ## Get the remainder from dividing by 7. Example: 3 Remainder=`expr ${CurrentDay} % 7` ## Subtract the remainder from 7 to get how many days until the 7th night. DaysToHorde=`expr 7 - ${Remainder}` if [[ ${DaysToHorde} == 1 ]]; then DayPlural="day" else DayPlural="days" fi if [[ ${CurrentHour} -gt ${Hour2Notify} ]]; then ## It is not too early in the day to send the notification. if [ -f ${LastRun} ]; then ## If last message sent was today, abort script. PriorDay=`tail -n 1 ${LastRun}` if [[ ${PriorDay} == ${CurrentDay} ]]; then ## Message already sent today, abort script. exit 0 else ## We are in a new day. if [[ ${Remainder} == 0 ]]; then telnetCommand ${InstanceName} "say \"[ffff00][iNFO] [00ff00]Horde night tonight!\"" else telnetCommand ${InstanceName} "say \"[ffff00][iNFO] [00ff00]${DaysToHorde} ${DayPlural} until horde night.\"" fi ## Create last run file with date when message was sent. echo ${CurrentDay} > ${LastRun} fi else ## Messasge not sent today, send the chat message. if [[ ${Remainder} == 0 ]]; then telnetCommand ${InstanceName} "say \"[ffff00][iNFO] [00ff00]Horde night tonight!\"" else telnetCommand ${InstanceName} "say \"[ffff00][iNFO] [00ff00]${DaysToHorde} ${DayPlural} until horde night.\"" fi ## Create last run file with date when message was sent. echo ${CurrentDay} > ${LastRun} fi else ## Too early in the morning to message players, abort script. exit 0 fi ## Delete the temporary file. rm ${TempFile} You can then schedule it in the root account (accessible by doing "sudo su" from your admin account) and then type "crontab -e" Example crontab schedule: ######################################## # Name: Crontab Schedule for root user # Author: LHammonds ############# Update Log ############### # 2016-01-18 - LTH - Created schedule ######################################## SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # Crontab SYNTAX: # minute(0-59) hour(0-23) day-of-month(1-31) month(1-12) day-of-week(0-6) command-to-execute # # Adjust the time clock # 0 1-23 * * * /usr/sbin/ntpdate ntp.ubuntu.com > /dev/null 2>&1 # # 7dtd: Notify players each in-game day about approaching horde night # */5 * * * * /var/scripts/prod/sdtd-horde-notify.sh HamCraft > /dev/null 2>&1 */5 * * * * /var/scripts/prod/sdtd-horde-notify.sh WalkingDead > /dev/null 2>&1 */5 * * * * /var/scripts/prod/sdtd-horde-notify.sh Vanilla > /dev/null 2>&1 Summary of what it is doing: The schedule is configured to run the script every 5 minutes for instances of servers called "HamCraft", "WalkingDead" and "Vanilla" Even though it runs often, it will only generate an in-game message once per day shortly after the desired hour...which is set to 5am in the script via the "Hour2Notify" variable. Here are all the possible messages players will see in the game: [iNFO] 6 days until horde night. [iNFO] 5 days until horde night. [iNFO] 4 days until horde night. [iNFO] 3 days until horde night. [iNFO] 2 days until horde night. [iNFO] 1 day until horde night. [iNFO] Horde night tonight!
  13. Where is this "cp25" or "B99" version? Is that something in the pipe to be released or is it available somewhere? Only thing I see mentioned on the 1st post or in the last week of postings is cp23, b83
  14. Thank you for creating and sharing this mod. It is obvious you put a LOT of time and effort into it. The 28.016.full version looks like it is an SDX mod (since screenshots show new models). You should probably mention that on the 1st page description that SDX is required and also mention it in the install instructions. It also looks like it is for version Alpha 14.5 of 7 Days to Die but the 1st post mentions Alpha 13.6 Thanks, LHammonds English to Russian Translation (via Google): Благодарим Вас за создание и совместное использование этого мода . Очевидно, вы положили много времени и усилий в нее . Версия 28.016.full выглядит как это мод SDX (так как скриншоты показывают новые модели ) . Вы , вероятно, следует отметить, что на 1-ом описании страницы , которая требуется SDX , а также отметить, что в инструкции по установке . Кроме того, похоже, что это для версии Альфа 14.5 7 дней , чтобы умереть , но первое сообщение упоминает Альфа 13.6 Благодаря, LHammonds
  15. Thanks for creating and sharing. I printed out a few copies for my kids. LHammonds
×
×
  • Create New...