Skip to content
LegendaryGuard edited this page May 28, 2023 · 14 revisions

Developed and maintained by Mario and TimePath.

The modpack was TimePath's experiment to split "custom" features into a secluded codebase.
It makes it used to create games based on the Xonotic template.

The modpack build works using a submodule from 'xonotic-data.pk3dir' from the official gamelogic development repository.

Uses update.sh and build.sh shell script files.

You can create mods from the modpack like:

quake_mod_sample prydon_mod_sample suwa_moriya_64_mod_sample

How submodule works, update.sh and build.sh

Uses 'update.sh' to obtain the content of 'gmqcc', 'xonotic-data.pk3dir' in 'xonotic' folder and 'csprogs' in '.cache' folder. Clearly, needs gmqcc to be able to compile, this means that 'build.sh' calls gmqcc to compile the code.

Submodule and update.sh

The submodule of this modpack was created using:

git submodule add https://gitlab.com/xonotic/xonotic-data.pk3dir xonotic

The submodule in the repository is used when need to update the code from 'xonotic-data.pk3dir', to do this if you've a fork or a copy of SMB modpack repository, you'll have to update using (note: in your local computer, you should have used 'update.sh' to download fully the content of 'xonotic-data.pk3dir' in 'xonotic' folder):

git submodule update --remote --merge

It'll update the content where is in the official gamelogic development repository in your modpack repository.

Inside 'update.sh', there is a line:

git submodule update --init --depth 100

Means that when you use 'update.sh' with this line, the submodule content will be downloaded in your local computer where you've cloned the modpack repository.

To run 'update.sh' script, you should go to the current directory where is this script and execute:

./update.sh

Commit with submodule

Additionally, after done git submodule update --remote --merge, if you want to commit:

git status
git add xonotic
git commit -m "Update submodule xonotic test"
git push origin master #depends what origin and what branch of repository you're using to do your commits

build.sh

'build.sh' compiles all repository code using gmqcc if already downloaded from 'update.sh', looks inside 'mod' folder the similar contents of 'xonotic-data.pk3dir/qcsrc' where there are: 'client', 'common', 'menu' and 'server' folders.

What this does is relate the directory path to the submodule 'xonotic' directory inside the 'qcsrc' folder. Thanks to this, makes possible to look at the 'mod' folder having to relate the submodule directory 'xonotic/qcsrc'.

To run 'build.sh' script, you should go to the current directory where is this script and execute:

./build.sh

For speed up compilation, you can run with:

ZIP=: ./build.sh

That executes without compression (without getting csprogs-*.pk3 file).

Clone this wiki locally