VoidExpanse/modding

From AtomicTorchWiki
Revision as of 06:50, 15 August 2014 by Atomic-admin (talk | contribs)

Overview

VoidExpanse was designed to have great modding potential. Almost every aspect of game can be modified and extended. There are no hardcoded scripts and in-game logics, everything you see in VoidExpanse now was created as a "core" mod. This concept is similar to early GameBryo versions.

Package files

All game data is loaded from two types of files: ".cpk" and ".mpk"

".cpk" files are so called core packages, basically foundation of the game. The game cannot run without a core package which contains all in-game assets and logic. But ".mpk" files on the other hand are "mod packages", which can be added on top of the core package file to add new features or content, or to change something that is already present in the game.

Now, the modding itself consists of two essential parts:

  • Assets modding - where you can change graphics, or add new ships, or new quests, and basically extend the game content in any way.
  • Scripting - creating new mechanics that were not present in the game.

Assets modding

All objects in the game are assets. They are, basically, XML files, which are located in "[MOD]/data/..." folders. For example, if you want to add a new item or a ship - it'll be asset modding.

Let's take a look at ship hull "shuttle". Hull of this ship is presented in "data/items/hulls/hull_shuttle.xml". This file includes all information needed for the game to make this hull work: weapons slots, model, textures, blinks, engine trails, physics, etc.

Basically, to add a new ship all that you need is to add one more hull items to "data/items" folder of your mod. And model with textures, of course. To make ship adding easy, we've created a special tool - [Physics Adjuster], which is quite easy to use.

Core Mod / Adding Ships

Scripting

Scripting is the most important and essential part of the game. Everything - from galaxy creation to damage and prices calculations - are scripted and moddable.

More information on scripting is in Scripting section of this wiki.