Custom Data
So you want custom data on your server but every time you update you have to copy things back in place. Gets annoying especially when you may not be familiar with the OS you’re working on. Well, let’s make that easy for you shall we?
Shared Folder
First we need to make a common shared folder for all of our units, maps, etc:
cd ~
mkdir -p shared/boards shared/images shared/mechfiles shared/scenarios shared/forcegenerator shared/mapgen shared/names shared/rat shared/sounds
First we make sure we’re inside our home directory (assuming this is also where you have megamek installed at). Then we create each of the subfolder’s inside of a central shared folder. Place any custom for each inside of these respective folders.
Linking Shared Folder to Stable
There are 2 ways we can do this.
1) We can manually link each folder every time we update MegaMek. 2) We can create a script to do the hard work for us.
Let’s keep this easy and just write a script to handle this. Lucky for you, the hard part has been done below.
Note: Only have to create this once. Can skip this part if it’s already there.
cd ~
nano update-links.sh
Use your favorite text editor here, I personally prefer Nano. Copy the below lines into the editor, exit and save.
Again, we are assuming you will be running this from your home folder with MegaMek installed and running under it. Replace
stable
with whatever folder name you are using.
#!/bin/sh
# This script will link up each folder under `shared` to it's place under
# the `stable` folder for use with MegaMek as a dedicated server.
ln -s ~/shared/boards ~/stable/data/boards/custom
ln -s ~/shared/images ~/stable/data/images/custom
ln -s ~/shared/mechfiles ~/stable/data/mechfiles/custom
ln -s ~/shared/scenarios ~/stable/data/scenarios/custom
ln -s ~/shared/forcegenerator ~/stable/data/forcegenerator/custom
ln -s ~/shared/mapgen ~/stable/data/mapgen/custom
ln -s ~/shared/names ~/stable/data/names/custom
ln -s ~/shared/rat ~/stable/data/rat/custom
ln -s ~/shared/sounds ~/stable/data/sounds/custom
All this is doing is taking whatever you have in the shared folder and
symbolic linking them to a custom
folder under each respective area.
This way all your shared data stays in one place and all you have to do
is run a single command during updates to re-link them all up.
But this alone with work. On *nix based system, there is a permission for scripts that needs to be enabled so it can run with minimal fuss. To do so, run the following command in the same directory that the script is in:
chmod +x ./update-links.sh
This adds the Execute
bit to the file so that all you have to do is type
./update-links.sh
for it to run.
Once this is done, make sure to restart MegaMek so that it sees the new files.
sudo systemctl restart megamek.service
sudo systemctl status megamek.service
So long as everything shows up as running, you’re custom units are installed.
Note: You are responsible for making sure your custom files work with newer versions of MegaMek. Test them locally on your machine BEFORE uploading or linking them.