This project is about bringing Nomads back as playable faction via featured mod and make a serious attempt to integrate them into the main game.
We can use all the help we can get :
To play the coop campaign see the coop missions repository here.
Be sure to visit our discord server here where you can help out, comment or simply keep up with progress on the mod. Everyone is welcome!
Nomads is designed to be run as a featured mod on the Forged Alliance Forever client.
To play Nomads online, simply go to the Find games tab on the client, and select the mod from the featured mod list, then host a game!
To play Nomads offline, a little more setup is required.
C:\ProgramData\FAForever\bin\
(note: not program files) and find ForgedAlliance.exe
C:\ProgramData\FAForever\bin\ForgedAlliance.exe /init init_nomads.lua /log C:\ProgramData\FAForever\logs\offlineNomads.log
Nomads uses Github for development, which makes it easy to update and collaborate on the code. To make it easy to contribute, you need to set up the code on your computer first.
You need to get local copies of the FAF and Nomads code, as well as a way to look through them easily and make changes. This section will get you everything you need to be able to edit nomads code, and even upload your changes to github.
Congratulations, you now have everything you need to start contributing! Do check the sections below on how to set up your game to run automatically with your changes, and how to get them to the Nomads team so they can be integrated.
View our Technical docs inside the docs
directory of this repo.
You should have a local copy of the code - both FAForever/fa and Nomads-Project/nomads - on your computer. Now you'll want to set up your test environment, i.e. running the game based on your local copies.
Inside of the nomads repository is an init_devnomads.lua
file that you need to copy inside C:\ProgramData\FAForever\bin\
You will need to open the file and edit the file paths to match the locations of where you put the local copies of the code. The lines are at the start of the file, so you can't miss them.
dev_path = 'E:\\GITS\\fa'
corresponds to the path to the FA repositorydev_pathnomads = 'E:\\GITS\\nomads'
corresponds to the path to the Nomads repositoryInside the same folder, C:\ProgramData\FAForever\bin\
, you'll find ForgedAlliance.exe
Make a shortcut for it either by right clicking on the file and putting it in an easily accessable place or right clicking in the folder you want the shortcut to be in and making a new shortcut there. (For example your desktop)
Go into its properties (right click) and change the target:
C:\ProgramData\FAForever\bin\ForgedAlliance.exe /init init_devnomads.lua /EnableDiskWatch /showlog /log C:\ProgramData\FAForever\logs\dev.log
/showlog
then the log window will automaticaly appear. There is an ingame keybind to summon the log window as well. So it depends on your own prefence if you want it from the start or not.
/EnableDiskWatch
will ask FA to reload your changes whenever the file is changed - skipping the need to reload your game.
/log C:\ProgramData\FAForever\logs\dev.log
will save the log in the specified location. Usefull for sharing logs incase of issues.You're finally ready to make changes to the lua code and test them!
The main way of communication on github is done with issues and pull requests.
To make an issue about a bug/possible improvement/new feature/etc, you should go to the original repositories webpage and create an issue there. Don't make issues in your own forked repository unless you don't want anyone to know about them.
When making an issue, you should follow these guidlines:
C:\ProgramData\FAForever\logs
To make a pull request with your changes for a bugfix/possible improvement/new feature/etc, you should go to the original repositories webpage and create a pull request there. Most of the time pull request will be related to an issue and merging it will solve the issue. You can close an issue manually but its a lot easier if it would automaticaly close when the pull request is merged. You can achieve this by adding a keyword and a reference to the issue inside the body of your pull request message.
When making a pull request, you should follow these guidelines:
If something doesn't work: https://xkcd.com/1597/
To run the Map Editor with nomads units you need to do the following steps:
1) Paste nomads_mesh.fx file into effects folder and rename it to mesh.fx
2) Pack effects, env, textures, units folders from this repository into Z_nomad.scd using Winrar or similar (needs to be set as .zip NOT .rar)
3) remove the mesh.fx file from the effects folder of the repository again
4) Paste Z_nomad.scd into Supcom gamedata folder THQ\Gas Powered Games\Supreme Commander\gamedata
5) Go to %USERNAME%\AppData\Local\Gas Powered Games\SupremeCommander\cache
and delete the content of the folder
If you encounter an error like this:
WARNING: Error running OnFrame script in CScriptObject at 10043640: void CLobby.HostGame(self)
expected 1 args, but got 2
stack traceback:
[C]: in function `HostGame'
"\documents\github\fa\lua\ui\lobby\lobby.lua(6310): in function `HostGame'
init_devnomads.lua
you have changed the lines that correspond to the locations of your github repositories for both nomads and FA. Triple-check that you have put in double slashes instead of single slashes everywhere. This is the most common cause of the probleminit_devnomads.lua
from this repository and not init_nomads.lua
If you encounter an error like this:
WARNING: attempt to retrieve annotation from unknown technique NomadsUnit
WARNING: c:\work\rts\main\code\src\libs\gpggal\EffectD3D9.cpp(89) invalid effect technique requested: NomadsUnit
Try to run the shader_cleaner.bat
file to fix it.
You can find this file inside your local copy of Nomads-Project/nomads.
1) extract the nomads loading video from movies/ and put it in the FAForever/movies/ folder
2) replace the init_nomads.lua file in the FAForever/bin/ folder with the version from this repository
3) zip the rest of the repository (except the movie/ folder) and rename the zip to nomads.nmd
4) place the nomads.nmd file in the FAForever/gamedata/ folder