Roy

Administrator
  • Content count

    693
  • Joined

  • Last visited

  • Days Won

    113

Everything posted by Roy

  1. HIA NOOB.

    1. Show previous comments  1 more
    2. Roy

      Roy

      i won 5 rounds against you earlier :lenny:

    3. Kim

      Kim

      my mouse is unstable okay!!!!!!!!!!!!!!!!!!!!!! I AM BETTER THAN THAT ROY !!!!!!!!!!!!!!!!!! DONT STeAL MY PRIDE FUCK NOUUfoaicpoacikplaæØ.

    4. Roy

      Roy

      I MEAN, YOU STILL BEAT ME BY LIKE, 15 ROUNDS BUT I STILL WON 5. THAT'S ALL I CARE ABOUT!

  2. You're matching a string, so yes. For example: if (myString == "Christian Deacon") { std::cout << "You entered \"Christian Deacon\"!" << std::endl; } In these cases, I would recommend lower-casing the user's input and string. For example: // Got this code from here: https://stackoverflow.com/questions/313970/how-to-convert-stdstring-to-lower-case THIS IS NOT TESTED. - Roy #include <iostream> #include <algorithm> #include <string> int main() { std::string sName; std::cin >> sName; std::transform(sName.begin(), sName.end(), sName.begin(), ::tolower); if (sName == "christian deacon") { std::cout << "You entered Christian Deacon!" << std::endl; } } Thanks.
  3. Welp, time to purchase another OVH machine (MC-32) to replace our current MC-32B machine. I have around fifteen days or so to setup this machine but knowing myself, I will probably rush it and try to get it completely setup in the next couple days. I will be setting up B3 RCON bot on this machine along with moving our CoD 4 TDM server (I want all CoD 4 servers running on the same machine so we only need one B3 installation). Unfortunately, the CoD 4 TDM server will change IPs but this server is currently not populated (only gets to ~3 - 5 players peak).

     

    Apart from that, I want to finally move our main website to the new VM @balon has setup for us along with upgrading to IPS 4.2.x and optimizing our MySQL server to gain better performance. I plan on doing this after getting the other stuff done. After all the back end work is done, the Director team will form together and start working on the front-end of GFL.

     

    On a personal level, I will be receiving a call shortly that will tell me the complete test results (e.g. how bad the infection is and such). After I take these antibiotics for 10 days, I will schedule my appointment to get surgery on my hernia. Once that is done, I will update my "Taking a break from GFL" thread with the date, etc. I also have other personal projects to work on as well (coding and Linux).

     

    I still plan on taking it easy for the next couple weeks. Although, not really sure if doing back end stuff is considered "easy" :(

  4. Ah yes, I forgot about that Haven't coded in C++ in years lol. Thanks.
  5. Use the code block in the future instead of a spoiler. The formatting of that code is a big mess with the spoiler! Anyways, I'm trying to understand your question. Are you saying you want two conditions to "match" or do you want two separate if statements? If you want two conditions to match in an if statement, you can use operators (you'll likely use the "Logical Operators" in your case). For example: // && = AND (e.g. if myString == "what" AND if myString2 == "ok"). If ALL conditions are true. if (myString == "what" && myString2 == "ok") { std::cout << "myString equals \"what\" AND myString2 equals == \"ok\"" << std::endl; } // || = OR (e.g. if any condition is true). if (myString == "what" || myString == "ok") { std::cout << "myString equals \"what\" OR \"ok\"" << std::endl; } If you want two separate statements, you can use else if. For example: if (myString == "what") { std::cout << "myString equals \"what\""; << std::endl; } else if (myString == "ok") { std::cout << "myString equals \"ok\""; << std::endl; } else { std::cout << "myString doesn't equal \"what\" or \"ok\"" << std::endl; } I hope this answers your question! I apologize if I didn't explain it well (I'm not very well at explaining things). If you would like additional support, feel free to reply to the thread or PM me! Thanks!
  6. Well, I had nothing to do today so I decided to setup another CoD 4 server along with the B3 RCON tool. It took me most of the day since I ran into multiple errors but it is completely setup now! The B3 RCON tool is also logging to the FFA server. However, since B3 isn't running on the same VM (TDM and FFA run on two different machines), it is currently slow (e.g. delayed responses when entering commands). I will have to setup another B3 RCON bot on the FFA machine for best performance :( It most likely won't take as long as last time since I know what to do now.

     

    Anyways, I have my laptop and desktop idling on the server. The server got to 11 - 13 players earlier already! It is currently 40 slots and I have confidence this server will become popular just like FFA did!

     

    P.S. Yes, I know I should be taking a break and I will be in the next week. I just had literally nothing to do today and was bored out of my mind. I just wanted to do something I feel I would enjoy and it had to be done eventually.

    1. rapperdan

      rapperdan

      so @Roy when can I watch you streaming using hammer?

  7. Hello everybody, I posted this as a status update but that can easily be unnoticed so I decided to post it here. Taking A Break I will be taking a break from GFL for the next couple weeks. I've had a lot more stress recently than normal. I've been also going through pain possibly caused from the stress (more sick, etc). Therefore, I just want to relax for a little. I haven't ever took a break from GFL other than going on vacations out of town (in which, seem to always go wrong because something critical happens in GFL while I'm gone). I'm going to give this a shot. With my current health issues, I feel this is necessary. Health Update As some of you may already know, I've suffered from a hernia for the past two or so years now. Yesterday after having my IRL friend over to watch a movie (haven't seen him in 6+ months), I made the mistake of wearing tight shorts and I was sitting awkwardly in chairs I don't normally sit in (located in my basement). Anyways, my hernia started hurting me and I decided to go upstairs to change pants. Around half-way there, the pain worsen from going up the stairs and the pain became so bad I took off my pants and well, the pain caused me to pass out (first time passing out in my life). Thankfully, my parents were there and took me to the hospital. I was there for around seven hours or so (6 PM to 1 AM) and took two tests (Cat Scan and Ultrasound). It is a confirmed hernia + I have some kind of other infection in there (this hernia is located in the scrotum). Surgery will be required and I need to get it ASAP. In the meantime, I will be taking antibiotics to lessen the swelling and infection. I at first got this looked into back in January and the doctor said it was a hernia (first time finding out so). But due to financial issues (insurance, etc), I couldn't get it further looked into (when I went to the doctor, it was initially for something required by the state to look after my nephew). Anyways, since I am registered into the system now, getting surgery will not be difficult at all and I can finally get this issue that has affected me for so long fixed. Advice for anybody else who has a hernia, DO NOT BE LIKE ME AND GET IT LOOKED INTO IMMEDIATELY. Yesterday was the scariest experience I've had since I thought the blood flow may have been cut off (hernias can become strangulated which can lead to death in many cases). Just wanted to give an update. I'll keep you all updated (especially any of you who have me added on SnapChat ). If you want to move this thread to other sections, feel free to. I just wanted to let the Server Admins+ know. I may move it to Team Members+. Thanks.
  8. I can't be the only person who finds hospitals interesting and not "scary", right? I mean, other than seeing the other patients (which is sad), I somewhat liked it (other than that Ultrasound..).

     

    My sister is a Nurse, so that may also be why I have an interest in it (she has taught me some stuff about it).

    1. Show previous comments  7 more
    2. Joshy

      Joshy

      To come think of it: I don't think I've read a mystery book.  I think I would like it because it's one of the mechanisms I enjoy in dystopian literature, which are my favourite to read.  Thanks for the recommendation!

    3. Pyros

      Pyros

      hospitals are fun when you don't need to stay for too long, otherwise it becomes boring 

    4. Nap14hockey

      Nap14hockey

      Theres something with you and diseases.  I have a different perspective after watching "it follows" with you and kubnair.

  9. Moved to Member Activity just so everybody is aware of my activity in the next couple weeks. Thanks.
  10. I'm going to try taking a break from GFL in the next couple weeks. I've been under a lot more stress than normal recently and I just want to try to relax. There is still a lot of things to do, especially in the front-end and I am well aware of it. Though, I will admit the back-end takes a lot of my time. When I become active again (who knows, maybe I won't take a break), I will try to focus on the front-end.  I'm also going to be contacting some people outside of GFL to see if they're interested in helping.

     

    I hope you understand.

     

    Thanks.

    1. Show previous comments  1 more
    2. Xy_
    3. rapperdan

      rapperdan

      baddy @Xy_

      Edited by rapperdan
    4. Kim

      Kim

      So when am i going to be the founder?

  11. Hello everybody, I’m going to be giving an update on our OVH setup. Things did not go as planned but I believe we’ll be fine. Let’s begin! Our Initial Plan If you’ve read other update threads/posts I made about OVH, you probably already know the plan. However, I’ll go over it again for those who do not know. Basically, after switching from NFO to OVH in our European location, we found our OVH machine having too little space. Since linking files isn’t supported in the new control panel we use, our CS:GO base installations take 15+ GBs alone. The machine only comes with a 240 GBs SSD (only ~200 GBs available). With that said, we had to use some of that space for another mandatory VM on the machine. Basically, we don’t have enough space and we need a better solution. This machine’s specs are: Name - MC-32B Processor - Intel i7-4790K @ 4.0 GHz Ram - 32 GB DDR3 Storage - 240 GBs SSD Datacenter - SBG (Strasbourg, France) Price - $79.00/m OVH recently opened a new datacenter located in Frankfurt, Germany and they had a great deal on one of the machines there. Here are the machine’s specs: Name - DISCOVER-DE Processor - Intel E3-1245v6 @ 3.7 GHz Ram - 32 GB DDR4 Storage - 2 TBs HDD Datacenter - DE (Frankfurt, Germany) Price - $54.99/m This machine was less expensive and had more storage space. This is one HELL of a deal in my opinion. These specs are better than the NFO machine we had (other than the hard drive which doesn’t matter much in our case) and our NFO machine costed $164.98/m (yes, this Germany machine is basically ⅓ the price of the NFO machine)… I wanted to replace the MC-32B machine with DISCOVER-DE and move our 79.137.121.128/29 block to the new DISCOVER-DE machine. What Didn’t Go To Plan? When the OVH Germany datacenter opened, we had to wait to purchase a machine because additional IPs weren’t initially supported (something required for us). This took a little over a month but last week they finally added support. Therefore, I decided to purchase the machine and set it up (took a couple consecutive days to setup). Once things were successfully set up, I was ready to move the 79.137.121.128/29 block to the new Germany machine. However, I noticed the option wasn’t there and after contacting OVH’s support, I found out there wasn’t a way to move IP blocks from datacenter to datacenter (both of those machines listed above are in different datacenters). I would have normally expected this but since I ordered the 79.137.121.128/29 block under the Germany geo-location/pool specifically, I thought there wouldn’t have been any problems (moving a Germany IP block over to a Germany machine, what could go wrong, right?). Furthermore, when contacting OVH asking when additional IPs will be supported in the Germany datacenter, they made it sound like we wouldn’t have any issues moving this IP block over once additional IPs were supported in Germany. However, in the end, this is my fault for not directly asking them about moving the 79.137.121.128/29 block over to the new Germany machine before purchasing it. I do apologize. So yeah.. We can’t move any of our servers from the MC-32B machine over to the DISCOVER-DE machine without changing IPs. I was thinking about just moving the servers over with another IP change but players and admins are already frustrated from the last IP change on the CS:GO servers. With that said, our very popular CoD 4 server is on the MC-32B machine. We also paid $12.00 for the 79.137.121.128/29 block and honestly, I really don’t want to put this IP block to waste. What’s The New Plan? I’ve been thinking about this a lot for the past few days occupied by frustration. We have TWO highly powerful but also highly underloaded OVH machines in Europe. The one we would like to get rid of has our most popular CoD 4 server on it (something we do not want to change IPs for). I feel like I’ve setup the DISCOVER-DE machine far better than the MC-32B machine when it comes to software and such. With that said, the MC-32B machine does NOT have enough space for our needs. After a while, I decided we’re just going to keep the DISCOVER-DE machine and look for another machine to replace MC-32B (in the same datacenter so we can move the servers to the new machine). The DISCOVER-DE deal is something we cannot avoid in my opinion. After looking at machines in other OVH datacenters, I’ve found that most of the cheapest machines are $70+/m for the Intel E3-1245v5 (the DISCOVER-DE has the E3-1245v6). The DISCOVER-DE deal won’t last and it’s best to purchase the machine now and although we’re going to be paying $54.99/m for a possible underloaded machine, we will benefit from it once we put the machine to use and the deal is erased. What Machine Will We Replace With The MC-32B? I’ve been thinking about this as well and I believe it’d be best to purchase the newest OVH GAME machine for an extra $10.99/m. The machine would be an upgrade to the storage (240 GBs to 480 GBs), ram (32 GB DDR3 to 32 GB DDR4), and processor (Intel i7-4790K to Intel i7-6700K). The new machine’s full specs are: Name - MC-32 Processor - Intel i7-6700K @ 4.0 GHz Ram - 32 GB DDR4 Storage - 480 GBs SSD Datacenter - SBG (Strasbourg, France) Price - $89.99/m I believe it is worth spending an extra $10.99/m for these specs. Otherwise, we can just get one of the ~$70.00/m machines that comes with the Intel E3-1245v5. I may end up initially purchasing the Intel E3-1245v5 machine and once we start using the machine more, upgrade to one of the GAME machines. Does This Mean Another European Expansion? I’ve been planning on expanding into the European division again for some time now and I think this is the start of it. We started our very successful European expansion back in September of 2013. We should do the same this September/October and now that we have two VERY powerful machines fully setup, this gives us motivation to do so. I will discuss this in detail in another update post. Overall Although things did not go to plan, I believe everything will work out in the end. We can easily support both of these machines financially and believe it or not, these two machines combined are still less expensive than the NFO machine we had (even with the upgraded MC-32) and more powerful. NFO Price - $164.98/m OVH Price - $144.98/m ($54.99 + $89.99) I will be looking for things to add to our DISCOVER-DE machine to put it to use until we setup game servers on it. A few years back we hosted GameBanana mirrors that advertised GFL. I feel like doing something similar again would be nice! If you have any questions or concerns, feel free to reply to this thread or PM me! Google Doc Thanks for reading!
  12. CoD 4 server is doing so well :D 

    https://www.gametracker.com/server_info/79.137.121.131:28960/

     

     

    1. PB-n-J

      PB-n-J

      When you don't see @Roy's name in the top ten...

       

       

      :shrug: 

    2. SwegBuster

      SwegBuster

      When are we getting another server 😂😂😂

    3. JerryBomb

      JerryBomb

      That's awesome! We need another server that requires no downloading any mods so I can play it :) 

  13. Any updates and such done to CS:S Surf RPG DM will be posted in here. Thanks.
  14. GO TO BED KIM, UR DRUNKZ
  15.  

    Still one of my favorite videos of all time :)

     

    32.33 repeating of course percentage of survival...

    1. rapperdan

      rapperdan

      God damn it leeroy.

    2. Eli

      Eli

      HD 1080p :lenny:

  16. This thread will be used as a changelog for the CS:GO Surf RPG DM server.
  17. So the new IP block I ordered for our OVH Germany machine (145.239.233.16/30) will have its geo-location set to Germany next Tuesday :D

    12049e5f9f94b7.png

     

    I also got some other things working on the OVH Germany machine today and all that is left to do is move the servers from the temporary OVH machine over to this one. It's time to learn how to use FTP commands in Linux :D (I'll probably just archive the server files and download the archive over FTP on Linux).

     

    Things are looking good :) 

  18. So I decided to remake the CoD4x installation scripts. Instead of downloading a 5+ GBs file every time you want to "reinstall" (e.g. update or install) the server, it'll just copy the CoD4 base files from the Docker image (if it's an install) and download/unzip the CoD4x files from the CoD4x website. The Docker Image The CoD4 Base Files There should be a file called cod4base.tar.gz in the same folder as the Dockerfile. This archive should include the base CoD4 files. The files are listed here. Archive format should be: . .. main/ zone/ I'd recommend using 7 Zip to add the contents to an archive. The first archive format should be TAR. Afterwards, add the TAR archive to a Gzip archive (file name will be cod4base.tar.gz). Dockerfile The Dockerfile should be the following: # Environment: Call of Duty 4 X (GFL) # Minimum Panel Version: 0.6.0 # ---------------------------------- FROM ubuntu:16.04 MAINTAINER Pterodactyl Software, <support@pterodactyl.io> COPY ./cod4base.tar.gz /cod4base.tar.gz Build The Image You can now build the image by executing the following command (ensure you are in the same directory as the Dockerfile and cod4base.tar.gz): docker build -t cod4x . (Optional) Push The Image I found myself running into an error when using the Docker image I built above on the new Germany machine. This was the error: {"name":"wings","hostname":"game","pid":17292,"level":60,"msg":"A fatal error was encountered while attempting to create a server. { Error: (HTTP code 404) unexpected - {\"message\":\"manifest for quay.io/pterodactyl/core:gflsource not found\"}\n \n at /srv/daemon/node_modules/docker-modem/lib/modem.js:247:17\n at IncomingMessage.<anonymous> (/srv/daemon/node_modules/docker-modem/lib/modem.js:274:9)\n at emitNone (events.js:91:20)\n at IncomingMessage.emit (events.js:185:7)\n at endReadableNT (_stream_readable.js:974:12)\n at _combinedTickCallback (internal/process/next_tick.js:80:11)\n at process._tickDomainCallback (internal/process/next_tick.js:128:9) reason: undefined, statusCode: 404, json: null }","time":"2017-09-01T21:40:04.736Z","v":0} This error never occurred on the temporary OVH GS machine with the same setup. Therefore, I'd assume Docker updated? Anyways, I ended up making a Docker Hub account and pushing the image over to that. You can read how to do that here. Here are the commands I executed for the image above. docker tag cod4x gamemann/gflcod4x docker push gamemann/gflcod4x It should then push it to Docker Hub (or whatever) and the last argument will be the image name (you can check with the docker images command). In my case, the image name is gamemann/gflcod4x. @Ariistuujj also suggested that I could use Docker registry instead of Docker Hub. I haven't looked into that yet but I will in the future (it would be local). The Service Installation Scripts Finally, here's the CoD4x installation script on the control panel. Install Script #!/bin/bash # GFL CoD4X Base Installation Script (Revamped) # By Roy (Christian Deacon) # # Server Files: /mnt/server apt -y update apt -y --no-install-recommends install wget unzip # Make the server home. mkdir -p /mnt/server/ # Check if we're installing this server or updating it. if [ ! -e "/mnt/server/cod4x18_dedrun" ]; then echo "Extracting base files..." tar -xzvf /cod4base.tar.gz -C /mnt/server/ echo "Extracting base files... Done" fi # Download the latest version of CoD4x. echo "Downloading latest version of CoD4x..." wget -O /mnt/server/cod4x.zip --no-check-certificate https://cod4x.me/downloads/cod4x_server-linux.zip echo "Downloading latest version of CoD4x... Done" # Unzip the CoD4x file. echo "Extracting CoD4x files..." unzip -o -d /mnt/server/ /mnt/server/cod4x.zip echo "Extracting CoD4x files... Done" # Chmod /mnt/server/cod4x18_dedrun chmod 755 /mnt/server/cod4x18_dedrun # Set everything to root. chown -R root:root /mnt # Export HOME. export HOME=/mnt/server Set Script Container to the image you built above (in my case, it's gamemann/gflcod4x) and Script Entrypoint Command to bash. (Optional) You can delete the COD_INSTALL variable if you made the CoD4x service using the information from the first post. That's it! If you know a better way of handling this installation, please feel free to reply! I hope this helps! Thanks!
  19. Hello, I am making this thread for anybody interested in the Pterodactyl control panel. I've been working on this control panel for the past couple weeks (adding custom Docker images, services, etc) and I'm honestly very happy with it. I will be posting the stuff I've created here and other useful information I've found. Custom Docker Images I will list custom Docker image(s) I've made below. Custom "Source Engine" Image I modified Pterodactyl's default image for the Source Engine. Pterodactyl's version can be found on GitHub (here). Here is a list of what's changed: Added GDB and LSOF. Made the /tmp/dumps directory and gave it permissions (may not be needed). Set ulimit to unlimited in entrypoint.sh (did this for crash dumps). Here is the Dockerfile: # ---------------------------------- # Pterodactyl Core Dockerfile # Environment: Source Engine (GFL) # Minimum Panel Version: 0.6.0 # ---------------------------------- FROM ubuntu:16.04 MAINTAINER Pterodactyl Software, <support@pterodactyl.io> ENV DEBIAN_FRONTEND noninteractive # Install Dependencies RUN dpkg --add-architecture i386 \ && apt-get update \ && apt-get upgrade -y \ && apt-get install -y tar curl gcc g++ lib32gcc1 lib32tinfo5 lib32z1 lib32stdc++6 libtinfo5:i386 libncurses5:i386 libcurl3-gnutls:i386 gdb lsof \ && useradd -m -d /home/container container \ && mkdir -p /tmp/dumps && chmod -R 777 /tmp/ \ && chown root:root /tmp/dumps USER container ENV HOME /home/container WORKDIR /home/container COPY ./entrypoint.sh /entrypoint.sh CMD ["/bin/bash", "/entrypoint.sh"] Here is the entrypoint.sh file: #!/bin/bash sleep 5 # Set Ulimit ulimit -c unlimited echo "Set: ulimit -c unlimited" cd /home/container # Replace Startup Variables MODIFIED_STARTUP=`eval echo $(echo ${STARTUP} | sed -e 's/{{/${/g' -e 's/}}/}/g')` echo ":/home/container$ ${MODIFIED_STARTUP}" # Run the Server ${MODIFIED_STARTUP} if [ $? -ne 0 ]; then echo "PTDL_CONTAINER_ERR: There was an error while attempting to run the start command." exit 1 Make a new directory and put both files in it. Run the following command to build the Docker image: docker build -t quay.io/pterodactyl/core:gflsource . You can change core:gflsource to something else if you would like. I'd recommend keeping "quay.io/pterodactyl/" in the tag (I ran into permission errors when removing it). Custom Services I've made custom services for games and separate game engines. I will post them below. After creating a service, make sure to restart the daemon (it needs to create the service folder in /srv/daemon/src/services). service wings restart Half-Life GoldSrc I made this service to install our CS 1.6 server. Main Options Name - Half-Life GoldSrc Description - <anything you want> Folder Name - goldsrc Default Start Command - ./hlds_run -game {{HLDS_GAME}} -console +ip {{SERVER_IP}} +port {{SERVER_PORT}} +maxplayers {{HLDS_MAXPLAYERS}} +map {{HLDS_MAP}} Custom Config - Any Game This configuration will allow you to install games such as CS 1.6 or TFC. Configuration Options Option Name - Any Game Description - <anything you want> Option Tag - anygame Docker Image - quay.io/pterodactyl/core:gflsource Startup Command - <leave blank> Process Management Options Stop Command - quit Log Configuration - { "custom": true, "location": "logs/latest.log" } Configuration Files - {} Start Configuration - { "done": "VAC secure mode is activated.", "userInteraction": [] } Variables Mod Name Name - Mod Name Description - The mod name. Environment Variable - HLDS_GAME Permissions - Users Can View Default Value - cstrike Input Rules - required|string|max:20 App ID Name - App ID Description - The App ID. Environment Variable - HLDS_APPID Permissions - Users Can View Default Value - 90 Input Rules - required|numeric Mod ID Name - Mod ID Description - The Mod's App ID. You can find this from here: https://developer.valvesoftware.com/wiki/Steam_Application_IDs Environment Variable - HLDS_MODID Permissions - Users Can View Default Value - 10 Input Rules - required|numeric Maximum Players Name - Maximum Players Description - The server's maximum players. Environment Variable - HLDS_MAXPLAYERS Permissions - Users Can Edit Default Value - 32 Input Rules - required|numeric Starting Map Name - Starting Map Description - The server's starting map. Environment Variable - HLDS_MAP Permissions - Users Can Edit Default Value - de_dust2 Input Rules - required|string|max:64 * Default settings installs a CS 1.6 server running de_dust2 as the starting map and 32 maximum players. Install Script Here's the install script: #!/bin/bash # SRCDS Base Installation Script # # Server Files: /mnt/server apt -y update apt -y --no-install-recommends install curl lib32gcc1 ca-certificates cd /tmp curl -sSL -o steamcmd.tar.gz http://media.steampowered.com/installer/steamcmd_linux.tar.gz mkdir -p /mnt/server/steamcmd tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd # For CS 1.6 and other games, we need to include some manifest files in order to get SteamCMD to download it properly. mkdir -p /mnt/server/steamapps cd /mnt/server/steamapps for i in ${HLDS_MODID} 70; do curl -sSL -o appmanifest_$i.acf https://raw.githubusercontent.com/Arkshine/hlds-appmanifest/master/appmanifest_$i.acf; done # Go back to the SteamCMD directory. cd /mnt/server/steamcmd # SteamCMD fails otherwise for some reason, even running as root. # This is changed at the end of the install process anyways. chown -R root:root /mnt export HOME=/mnt/server ./steamcmd.sh +api_logging 1 1 +login anonymous +force_install_dir /mnt/server/ +app_update ${HLDS_APPID} +app_set_config ${HLDS_APPID} mod ${HLDS_GAME} +quit mkdir -p /mnt/server/.steam/sdk32 cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so Set Script Container to ubuntu:16.04 and Script Entrypoint Command to bash. Custom Source Engine This is basically the same as the Source Engine service that comes with Pterodactyl. After talking to a project leader via Discord, they recommended creating a custom service for the Source Engine to future updates to the control panel doesn't overwrite changes I've made. Main Options Name - Custom Source Engine Description - Custom Source Engine servers. Folder Name - customsrcds Default Start Command - ./srcds_run -game {{CSRCDS_GAME}} -console -debug -ip {{SERVER_IP}} -port {{SERVER_PORT}} +maxplayers {{CSRCDS_MAXPLAYERS}} -maxplayers_override {{CSRCDS_MAXPLAYERS}} -nodefaultmap -condebug Custom Config - Any Game This configuration will allow you to install any Source Engine game. Configuration Options Option Name - Any Game Description - <anything you want> Option Tag - anygame Docker Image - quay.io/pterodactyl/core:gflsource Startup Command - <leave blank> Process Management Options Stop Command - quit Log Configuration - { "custom": true, "location": "logs/latest.log" } Configuration Files - {} Start Configuration - { "done": "gameserver Steam ID", "userInteraction": [] } Variables Game/Mod Directory Name - Game/Mod Directory Description - The Source Engine game directory (e.g. cstrike). Environment Variable - CSRCDS_GAME Permissions - Users Can View Default Value - cstrike Input Rules - required|string|max:20 App ID Name - Application ID Description - The Source Engine application ID.. Environment Variable - CSRCDS_APPID Permissions - Users Can View Default Value - 232330 Input Rules - required|numeric Maximum Players Name - Maximum Players Description - The server's maximum players. Environment Variable - CSRCDS_MAXPLAYERS Permissions - Users Can Edit Default Value - 64 Input Rules - required|numeric * Default settings installs a CS:S server running at 64 maximum players. You must create an autoexec.cfg file in cstrike/cfg and put map "<anyStartingMap>" in order for the server to boot up correctly. Install Script Here's the install script: #!/bin/bash # GFL Source Engine Base Installation Script # # Server Files: /mnt/server apt -y update apt -y --no-install-recommends install curl lib32gcc1 ca-certificates cd /tmp curl -sSL -o steamcmd.tar.gz http://media.steampowered.com/installer/steamcmd_linux.tar.gz mkdir -p /mnt/server/steamcmd tar -xzvf steamcmd.tar.gz -C /mnt/server/steamcmd cd /mnt/server/steamcmd # SteamCMD fails otherwise for some reason, even running as root. # This is changed at the end of the install process anyways. chown -R root:root /mnt export HOME=/mnt/server ./steamcmd.sh +login anonymous +force_install_dir /mnt/server +app_update ${CSRCDS_APPID} +quit mkdir -p /mnt/server/.steam/sdk32 cp -v linux32/steamclient.so ../.steam/sdk32/steamclient.so Set Script Container to ubuntu:16.04 and Script Entrypoint Command to bash. Call of Duty 4X This is a custom service I made for installing CoD4X. The COD_INSTALL variable needs a download link to a .tar.gz file including the base installation files for CoD4x. The folder should have the following contents: - cod4server -- main/* -- zone/* -- * Read more on preparing the CoD4x files here. Main Options Name - CoD4X Description - A CoD4x service. Folder Name - cod4x Default Start Command - ./cod4x18_dedrun +map {{COD_MAP}} +set dedicated 2 +exec {{COD_CFG}} +map_rotate +set net_ip {{SERVER_IP}} +set net_port {{SERVER_PORT}} +set sv_maxclients {{COD_MAXPLAYERS}} Custom Config - CoD4X This configuration will allow you to install the CoD4X server. Configuration Options Option Name - CoD4X Description - <anything you want> Option Tag - cod4x Docker Image - quay.io/pterodactyl/core:gflsource Startup Command - <leave blank> Process Management Options Stop Command - quit Log Configuration - { "custom": true, "location": "logs/latest.log" } Configuration Files - {} Start Configuration - { "done": "Server connected successfully", "userInteraction": [] } Variables Starting Map Name - Starting Map Description - Starting Map. Environment Variable - COD_MAP Permissions - Users Can Edit Default Value - mp_strike Input Rules - required|string|max:20 Maximum Players Name - Maximum Players Description - Server's maximum players. Environment Variable - COD_MAXPLAYERS Permissions - Users Can Edit Default Value - 32 Input Rules - required|numeric Server CFG File Name - Server CFG File Description - Server CFG file. Environment Variable - COD_CFG Permissions - Users Can Edit Default Value - mp-server.cfg Input Rules - required|string|max:20 CoD4x Server Installation File Name - CoD4x Server Installation File Description - Cod4x server installation file. Environment Variable - COD_INSTALL Permissions - Users Can View Default Value - http://<host>/cod4server.tar.gz Input Rules - required|string|max:64 * Default settings installs a CoD4x server running at 32 maximum players and on the mp_strike map. Ensure to create a mp-server.cfg file in the main/ folder with other options. Install Script Here's the install script: #!/bin/bash # GFL CoD4X Base Installation Script # # Server Files: /mnt/server apt -y update apt -y --no-install-recommends install curl wget lib32gcc1 ca-certificates # Download the CoD4X server. cd /tmp echo "Downloading server..." ionice -c3 wget -O cod4x.tar.gz ${COD_INSTALL} echo "Downloading server... Done" # Make the server home. mkdir -p /mnt/server/ # Extract the CoD4X files using ionice (to prevent the tar command from "hanging" the Linux machine). echo "Extracting files..." ionice -c3 tar -xzvf cod4x.tar.gz -C /mnt/server/ echo "Extracting files... Done" # Move the files from the cod4server directory to the main directory (I hope to find a better solution for this in the future). echo "Copying files up a directory..." ionice -c3 cp -rf /mnt/server/cod4server/* /mnt/server/ echo "Copying files up a directory... Done" # Delete the cod4server folder. echo "Deleting cod4server folder..." rm -rf /mnt/server/cod4server echo "Deleting cod4server folder... Done" # Change directory to the main server directory. cd /mnt/server/ # Set everything to root. chown -R root:root /mnt # Export HOME. export HOME=/mnt/server Set Script Container to ubuntu:16.04 and Script Entrypoint Command to bash. Fixing Core Crash Dumps (Ubuntu 16.04) I had an issue earlier this week that wouldn't allow a Source Engine server to create a core crash dump when it crashed on Ubuntu 16.04. After doing a lot of testing, I finally found a solution. The problem was, it was storing these core dumps outside of the Docker container. After reading this article, I found it working. The only thing that I did different in the article was this line (run this as the root user): echo 'core.%e.%p' | tee /proc/sys/kernel/core_pattern In order to get the Source Engine to add information about the crash into the debug.log file, you need to name the core dump file just core (instead of core.%e.%p). Instead, this works: echo 'core' | tee /proc/sys/kernel/core_pattern With that said, when the machine is restarted, these changes will be lost. This is due to Apport (Ubuntu's default crash reporting service). You can read how to solve this issue by reading here. Overall That is it! I will continue adding onto this thread as I make custom content for this control panel! If you have any questions/concerns, feel free to reply! If you find something to be inaccurate, please let me know! Thank you for reading!
  20. I plan on finishing the OVH Germany machine today. I've redone the CoD4x installation scripts and such so now it uses a Docker image to copy the base files over (better than downloading a 5 GB file every time we want to install/update a CoD4x server). After that, I will move the servers from the temporary machine over to the new Germany machine and also email MaxMind to have our new IP block set to Germany's geo-lcation (currently set to Paris, FR).

     

    After this is done, I'm going to work on our current FFA server in CoD 4 including setting up RCon tools and setting up a new manager.

     

    Still a lot of things that need to be done and I'm going to try my best to get them done.

    1. Leks

      Leks

      ROY I found this dope php rcon tool, basically a console like NFO's in web, although it's currently for minecraft, maybe you can do your magic and make it for anything?;)
      9EfWFdJ.png

    2. Roy

      Roy

      @Leks There are plenty of PHP libraries and such for Source Engine RCon commands lol.

  21. @Katie is and always will be a nerd
  22. N3RDDDDDDDDDDDDDDDD

  23. Happy birthday :) Did not know you were younger than me O.o

    1. Nick

      Nick

      Thanks, man :D