[GUIDE] How To Install DesolationREDUX Server

Discussion in 'Installation' started by Lawson Zeugin, Jul 7, 2017.

  1. Lawson Zeugin

    Lawson Zeugin New Member

    Joined:
    Dec 22, 2016
    Messages:
    10
    Likes Received:
    8
    Hey everyone looks like some people are having some difficulty getting their servers go so I was going to write a "How to install DesolationREDUX for Dummies"

    NOTE: This is DesolationREDUX ALPHA, this is important because support will be limited, I am writing this guide to get a larger scope of testing, but if you have never run an arma server on a dedicated machine on your own you probably won't have the most success. Desolation needs people who are knowledgeable about arma servers to test, not bombard them with generic arma server troubleshooting. I will be in the Desolation Discord to supply some support, but if you come in with a generic error, don't expect much. You are almost never the only one who has had an error, so please use Google before asking for support.

    I. Prerequisites
    This guide is written as if you have just got a fresh install of Windows running, so some of these prerequisites you probably already have if you are installing on the same computer you play ARMA on. So what you need is:
    - A Windows Operating System
    - DirrectX (https://www.microsoft.com/en-us/download/details.aspx?id=35)
    - Visual C++ Redistributable Packages for Visual Studio 2013 (https://www.microsoft.com/en-us/download/details.aspx?id=40784)
    II. MariaDB Install
    1. Navigate to MariaDB's website here: https://mariadb.org/
    2. Click the the "Download" button near the center under "Download the latest version of MariaDB now."
    3. Click the blue download button.
    4. Click the green button that says: "Download 10.2.6 Stable Now!"
    5. Then click "mariadb-10.2.6-winx64.msi" to download the windows 64bit installer.
    6. Hit "No thanks, just take me to the download" button on the right
    7. Wait for the .msi file to finish downloading
    8. Open the installer and hit next.
    9. Accept the End User license-agreement and hit next
    10. Hit Next again
    11. Enter the desired password for the root user of the database, then hit next
    12. Hit next twice, then Install.
    13. Hit yes to any Windows Security prompts
    14. Then click finish.
    We are now done installing MariaDB, we will be coming back to this later to finish setup.

    III. Downloading ARMA 3 Server with SteamCMD
    SteamCMD is a lightweight steam client used to download and update games in a server scenario.
    1. Create a folder somewhere called "steamcmd." I put mine in "C:\steamcmd" so it is easy to find.
    2. Create another folder where you want to actually store the server. So in my case "C:\arma_server"
    3. Download SteamCMD from here: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
    4. Extract the contents of the .zip file into your "steamcmd" folder.
    5. Launch the SteamCMD.exe and wait for Steam to install itself
    6. Next, you need to login, to do so type:
    Code:
    login <USERNAME> <PASSWORD>
    7. Steam will ask for a SteamGuard code if you have it enabled, then you will be logged into your account
    8. To tell Steam where you want to install arma server type in this line:
    Code:
    force_install_dir <PATH TO ARMA_SERVER>
    9. Now it is time to download arma, to do so use this line:
    Code:
    app_update 233780 validate
    This will start the download of Arma 3, this could take a while depending on your internet speeds.
    10. We also want to go ahead and download the DesolationREDUX client files from the workshop to do this type in:
    Code:
    workshop_download_item 107410 868032727
    11. It will look like it is doing nothing, but it's downloading the client files.
    12. Take note of where it says it was downloaded, it should display this after it is done
    13. Once it's done you can exit SteamCMD by typing in:
    Code:
    exit
    14. Go to that directory, it will be named a series of numbers, right click it and click "cut"
    15. Go back to your arma_server base directory and paste it
    16. Rename the folder to @DesolationREDUX
    Vanilla Arma is now installed into your arma_server directory.

    IV. Installing DesolationREDUX
    This is the good stuff, the part everyone has been waiting for. Actually installing DesolationREDUX and setting up the database correctly.
    a) Extracting The Server Files
    1. To start, we need to download the server files from the DesolationREDUX website. Goto http://desolationredux.com/ and scroll down until you see "Server Files" and click it.
    2. This should download a .rar file that you can open with your favorite extractor.
    3. Navigate to Release Candidate > Arma and empty the contents into the arma_server base directory
    4. Next, take a back step and extract the folders SQL and Tools to the base directoryof arma_server as well.​
    b) Setting up the Database
    5. Now we are going to go back to the Database.
    6. After installing MariaDB you should see HeidiSQL on your desktop, this is a great application in general for managing databases.
    7. Open up HeidiSQL and click "new" at the bottom left
    8. Leave Hostname / IP alone, it should be 127.0.0.1
    9. Leave root as the username
    10. Give the password you setup earlier in the password field and hit open.
    11. You should now see a window like this:
    [​IMG]
    12. We are gonna run the setup query file. This is .sql file in the SQL folder we extracted earlier.
    13. In HeidiSQL hit the query tab in above the databases it has a blue play button (Just dont hit 'processes, that's different)
    14. Navigate to your SQL folder you extracted earlier.
    15. Drag and drop the .sql file into the text field in HeidiSQL
    16. You can see this text field is now populated.
    17. Click the blue play button at the top.
    18. This has now created the database "desolationredux" and you can see it if you hit the green refresh button at the top.​
    c) Generating a UUID
    19. Now we need to generate our UUID
    20. Navigate to the Tools folder you extracted earlier
    21. Double click the generateuuid.bat
    22. You should get something like this:
    [​IMG]
    NOTE: EVERY TIME YOU RUN GENERATEUUID.BAT IT WILL GENERATE A DIFFERENT UUID, DON'T COME TO ME AND ARGUE THAT ITS THE SAME. THANK-YOU!
    23. That series of numbers and letters is your UUID
    24. Navigate to <your arma_server dirrectory>/MPMissions
    25. Chose the mission folder that corresponds with your map
    26. Open description.ext in your favorite text editor.
    27. Change the DB_WorldUUID to match your UUID you generated.
    28. Save and Exit​
    d) Injecting the UUID into the database
    29. We need to tell the database what our newly generated UUID is using this command:
    Code:
    INSERT INTO `world`(`uuid`, `name`, `map`) VALUES (CAST(0x00000000000000000000000000000000 AS BINARY),'My Tanoa Server','Tanoa')
    30. Go back to HeidiSQL and click on the "desolationredux" database on the left
    31. Click Query again, clear out anything that might still be there, and paste the line above.
    32. Replace the 0s following the "0x" (the 0x MUST be there) with your UUID you generated before.
    33. Replace "My Tanoa Server" with a generic name for your server
    34. Replace "Tanoa" with the map you will be using
    35. Hit the blue play button.
    NOTE: If you go back and look at the UUID in the table and it shows as a werid series of characters, this is because it is translated from Hex into binary and you are seeing the binary. It is perfectly normal.​
    e) Database connection
    36. Navigate back to your arma_server base directory.
    37. Open LibRedex.cfg in your favorite text editor
    38. In this section:
    Code:
    "database":{
    "type":"MYSQL",
    "hostname":"localhost or 127.0.0.1", //MUST BE EITHER localhost or 127.0.0.1
    "user":"YOUR DB USER NAME", //THE USERNAME YOU CREATED WHEN YOU MADE YOUR DATABASE
    "password":"YOUR DB USER PASSWORD", //THE PASSWORD YOU CREATED WHEN YOU MADE YOUR DATABASE
    "dbname":"YOUR_DATABASE_NAME", //THE NAME OF THE DATABASE YOU CREATED
    "port":0
    },
    39. Leave "type" alone
    40. Set "hostname" to localhost or 127.0.0.1
    41. Set "user" to "root"
    42. Set "password" to the password you set eariler
    43. Set "dbname" to "desolationredux"
    44. Leave port alone. 0 = default
    45. Save and exit​
    f) Setting the Configs
    46. Navigate back to your arma_server base directory.
    47. Open config.cfg in your favorite text editor.
    48. Set passwordAdmin, this is the password to login as admin in-game with #login
    49. Set serverCommandPassword, this is for Desolation to lock, unlock and shutdown the server to properly save everything.
    50. Scroll to the bottom of the file and change template to "Desolation.Tanoa" if you want to run Tanoa. The default is Chernarus but that needs extra work.
    51. Save and Exit.
    52. Go back to the base directory of your arma_server
    53. Navigate to @DesolationServer/Config
    54. Open Desolation.cfg in your favorite text editor.
    55. Set ServerCommandPassword to the same password you set in the last file.
    56. Save and exit​
    g) Final touches
    57. You need to grab the keys from Desolation client to get that, so navigate to @DesolationREDUX/Keys
    58. Right-click the key, and click cut
    59. Navigate back to the base directory and go to keys
    60. Paste the key there.
    61. If you are running chernarus there is an extra step down below under OPTIONAL​
    h) Starting the server
    62. The server is designed and hard coded at the moment to shutdown itself every 4 hours. Traditionally servers can be terminated and relaunched through a single batch file. However, to make sure everything is saved, Desolation does it differently. If the serverCommandPassword is correct, at the end of the cycle it will lock the server, kick the players, save all information, then shutdown the server using #shutdown. Therefore, instead of terminating the server with a batch, we must write a batch that detects if the server is running, and if it is not, to relaunch it.
    63. If you are running Tanoa, make a .bat using this:
    Code:
     @echo off
    color 0c
    title DesolationREDUX Monitor
    :Serverstart
    echo Launching DesolationREDUX Tanoa
    cd "C:\<PATH TO ARMA_SERVER>"
    echo DesolationREDUX Server has been started!
    start "Arma3" /min /wait arma3server_x64.exe -port=2302 -cfg=basic.cfg -config=config.cfg -profiles=public_server -autoinit -enableHT -high -LoadMissionToMemory -mod=@DesolationREDUX -serverMod=@DesolationServer
    ping 127.0.0.1 -n 15 >NUL
    echo DesolationRedux Server Shutdown detected... Relaunching!
    ping 127.0.0.1 -n 5 >NUL
    cls
    goto Serverstart 
    64. Once you have saved the .bat to the base directory of your arma_server
    65. Double click it and it should start.
    V. OPTIONAL: Chernarus
    There are a couple more steps involved if you want to install Chernarus, so here ya go.
    1. Open SteamCMD again
    2. Login using your username and password like you did before
    3. Type these two commands:
    CUP_Terrains_Core:
    Code:
    workshop_download_item 107410 583496184
    CUP_Terrains_Maps:
    Code:
    workshop_download_item 107410 583544987
    4. When they are done, look at where it put them, go to to that dirrectory.
    5. Select both, right-click and click "cut"
    6. Go back to the base dirrectory of your arma_server and paste them.
    7. Rename 583496184 @CUP_Terrains_Core and 583544987 @CUP_Terrains_Maps
    8. Move the keys from both mods into the arma keys folder
    9. Modify the start.bat to include CUP
    Code:
     -mod=@DesolationREDUX;@CUP_Terrains_Core;@CUP_Terrains_Maps; 
    If I missed ANYTHING please let me know and I will correct it. And if you need any help you can ask here or ask in the #help channel on Discord.
     
    Last edited: Jul 15, 2017
    Markosson, bazerama, TRoll and 5 others like this.
  2. H4ZM4T

    H4ZM4T New Member

    Joined:
    Feb 28, 2017
    Messages:
    2
    Likes Received:
    0
    Lawson, nice write up. Thanks.
    Question: Do you know if an external IP address can be used instead of "127.0.0.1 or Localhost" to connect DB? I've got a VDS, but cannot run a seperate DB exe within the A3 root. I've been able to set these up under Exile no issues in the .ini DB settings, not clear how in DR.
     
  3. Lawson Zeugin

    Lawson Zeugin New Member

    Joined:
    Dec 22, 2016
    Messages:
    10
    Likes Received:
    8
    I have not tested it, but I don't see why it could not work. You would just have to make sure your database is setup to work remote.
     
  4. Legodev

    Legodev Developer Staff Member

    Joined:
    Jul 18, 2016
    Messages:
    241
    Likes Received:
    94
    Yes you can, i do it my self.
     
  5. TheRealForsvinna

    TheRealForsvinna New Member

    Joined:
    Dec 7, 2016
    Messages:
    2
    Likes Received:
    1

    Line 7. you typed Tarrains instead of Terrains Took me like 20 minutes to figure out what i did wrong ​
     
  6. Spook

    Spook Member

    Joined:
    Jul 11, 2017
    Messages:
    112
    Likes Received:
    12
    Character data are not saved when the Arma 3 Battleye is closed. Please write to setup guide. :)
     
  7. Term

    Term New Member

    Joined:
    May 27, 2017
    Messages:
    1
    Likes Received:
    0
    Epic guide, everyone should start here.
     
  8. Hawkeye

    Hawkeye New Member

    Joined:
    Jul 17, 2017
    Messages:
    12
    Likes Received:
    5
    IF YOUR DATA IS NOT SAVING::::

    d) Injecting the UUID into the database

    29. We need to tell the database what our newly generated UUID is using this command:
    Code:
    INSERT INTO `world`(`uuid`, `name`, `map`) VALUES (CAST(0x00000000000000000000000000000000 AS BINARY)

    I had some issues with this until I realized that the first 2 letters 0x need to be in the statement before your generated UUID.
    e.g. your UUID 67890001234 CAST(0x67890001234 AS BINARY).

    I used phpmyadmin as a test to run this query and all works fine. Previously my data was not saving.

    Just another note I use "AMPPS" (FREE) for my SQL PHP Apache as it has lots of apps easily configured built in to it. I use "Navicat lite" (ALSO FREE) for my database management. DesolationRedux is working on this. As this is the case I see no reason why it would not work with "WAMP" or "XAMP" all available for my favourite price of "FREE" :) as well as Maria of course!
    ----------------------------------------------------------------------------------------------------------------------------

    NOTE THIS IS FOR INFO ONLY YOU DO NOT HAVE TO DO THIS!

    With the config files I like to keep the mod in its own folder so using a command line like

    [arma3server_x64.exe -ip=10.20.300.400 -port=2300 "-config=RED\config.cfg" "-cfg=RED\basic.cfg" "-profiles=RED" -name=RED -enableHT -high -noPause -noSound -cpuCount=2 -maxMem=2047 -mod="@DesolationREDUX;@CUP_Terrains_Core;@CUP_Terrains_Maps;" -serverMod="@DesolationServer;"]

    When you add your files add the basic.cfg and config.cfg to a new folder in this example called RED this keeps all your log files RPT etc separate. It also makes it a lot easier if you want to run multiple maps as you just have a different folder for each map and adjust your command line to suit. e.g RED for chernarus RED2 for tanoa. (You can use any name you want eg ChernoConfig, MYtanoa ... whatever you want.)

    I hope this makes some sense and helps. I have been running arma servers for years now so understand some of the settings.

    Hawkeye
     
    Lawson Zeugin likes this.
  9. DioxideC

    DioxideC Member

    Joined:
    Jul 15, 2017
    Messages:
    40
    Likes Received:
    8
    This interests me as Im running two maps. But ive installed 2 instances of arma with completely separate mods for each e.g.:
    C:\Arma\server\
    C:\Arma2\server\
    Thanks for the info
     
  10. Johan

    Johan New Member

    Joined:
    Jul 30, 2017
    Messages:
    2
    Likes Received:
    0
    Lawson Zeugin, thank you very much for this nice guide.

    I have one question though, after populating the database steps does HeidiSQL has to stay active? There is no step where the database is saved on the disk.
    I assume the database has to be hosted with HeidiSQL each time when i start the server?
    My friend and i both made a server but were not clear what to do with the database, information gets saved without the program on and sometimes information does not get saved with the program on.

    Thank you kindly for any help.
     
  11. Hawkeye

    Hawkeye New Member

    Joined:
    Jul 17, 2017
    Messages:
    12
    Likes Received:
    5
    Short answer YES.

    Longer answer - the database program HeidiSQL, MySql, MariaDB, SQLite or whatever you are using simply stores and retrieves the data sent to it. You have to tell it where to put the data in a format it understands and again you need to use a similar format to retrieve the data.

    When you are running your game server it periodically talks (Transmits or Receives Data) from the database. Therefore the database program has to be running otherwise the Game Server will ask for something and then get a timeout for data which can result in your server crashing or if not your game gets rather boring as you cannot save anything so each restart you start all over again.....:(

    There are known issues with DesolationRedux not saving data. I had a few problems and eventually sorted it I have Taviana working saving and retrieving fully but still need to sort out Chernarus when I have I will put a post to help others.

    Hawkeye
     
  12. Johan

    Johan New Member

    Joined:
    Jul 30, 2017
    Messages:
    2
    Likes Received:
    0
    Hello Hawkeye,

    Thank you very much for the answer to my question.

    What i don't understand now is why the data on my friends server dit saved (weapons, cars, inventory, buildings) while he did not run the program. I told him today he had to turn the program on cause else the making of the database where useless which made it very unclear for us because most of the saving worked for him.
    He did sometimes have situations where stuff did not save, like inventory and cars but overall it worked so we assumed it where a error with saving. I myself had stuff not save while having the database on but this where only a couple of times (only gear and inventory).

    Can you help us understand why for like 90% my friends things did save while not using the database?
    We like to understand the process more.

    Thank you again for your reply.

    Johan
     
  13. Dyanys

    Dyanys New Member

    Joined:
    Jul 28, 2017
    Messages:
    7
    Likes Received:
    1
    Hi I install my server on my new dedicated server and he work very nice but
    I would like to know how I can send messages to the players in the center of their screens and also restart the server properly
    Best Regard
     
  14. Dyanys

    Dyanys New Member

    Joined:
    Jul 28, 2017
    Messages:
    7
    Likes Received:
    1
    I resolved my problem ! thank's for your tutorial !
     
  15. Kryptek

    Kryptek New Member

    Joined:
    Sep 15, 2017
    Messages:
    3
    Likes Received:
    0
    For some reason, whenever my friends join, they're stuck on an A3 APEX loading screen. Other than that, the server runs fine when it's just me
     
  16. enoanot

    enoanot New Member

    Joined:
    Oct 5, 2017
    Messages:
    1
    Likes Received:
    0
    Hello I have a Linux Ubuntu server and have a problem.
    With me comes again and again the error message

    CallExtension 'libredex' could not be found


    I have the file in the main arma server folder, then with config and then with the addons. But the error message still comes
     

Share This Page