Database Files for VS

Need help testing contributed art or code or having trouble getting your newest additions into game compatible format? Confused by changes to data formats? Reading through source and wondering what the developers were thinking when they wrote something? Need "how-to" style guidance for messing with VS internals? This is probably the right forum.
Post Reply
Zeog
ISO Party Member
ISO Party Member
Posts: 453
Joined: Fri Jun 03, 2005 10:30 am
Location: Europe

Database Files for VS

Post by Zeog »

I would like to understand some of the VS configuration and database internals. There are many files in SVN that seem to be somehow configurating the behaviour of VS.

In particular, I'd like to know what the following files actually do, if they are used at all, are just remains of a former version or maybe unintendedly committed.

Cargo/Upgrades/Weapons/Turrets/Ships (all mangled)
a) ./stats/vegastrike.xls
b) ./units/units.csv
c) ./units/units_working.sxc
d) ./master_parts_list.csv
e) ./master_parts_list.xml
f) ./weapons_list.xml
g) ./documentation/unitstats.csv

Factions:
h) ./stats/factioninfo.csv
i) ./stats/factions.csv
j) ./factions.xml

As far as I've found out:
d) master_parts_list.csv stores for every item in VS a key, its category, volume, mass and price, the path to the cargo item picture and a description

about the rest I'm not completely sure. :?
Kangaroo
Venturer
Venturer
Posts: 543
Joined: Sun Jan 22, 2006 9:55 am
Location: Baltic States
Contact:

Post by Kangaroo »

Weapon_list.xml - contains stats about all weapons and missiles in VS
There are no stupid people on Earth; they are only alternatively thinking.
dandandaman
Artisan
Artisan
Posts: 1270
Joined: Fri Jan 03, 2003 3:27 am
Location: Perth, Western Australia
Contact:

Re: Database Files for VS

Post by dandandaman »

a) ./stats/vegastrike.xls

Ignore.

b) ./units/units.csv

Contains all the config information for the units that are spawned in game, VERY IMPORTANT!!!

c) ./units/units_working.sxc

Just something to help me with part of the rebalance. Ignore.

d) ./master_parts_list.csv

Contains the configuration information for all items able to be sold, VERY IMPORTANT.

e) ./master_parts_list.xml

An xml copy of the above, deprecated.

f) ./weapons_list.xml

Contains the weapon information for all the weapons possible, VERY IMPORTANT.

g) ./documentation/unitstats.csv

Ignore.

h) ./stats/factioninfo.csv

Ignore.

i) ./stats/factions.csv

Ignore.

j) ./factions.xml

Contains the configuration for factions, relationships/comms etc, VERY IMPORTANT.


If you want more detailed info, let me know and I'll post it up! :-)

Dan
"Computers are useless. They can only give you answers."
-- Pablo Picasso
Zeog
ISO Party Member
ISO Party Member
Posts: 453
Joined: Fri Jun 03, 2005 10:30 am
Location: Europe

Post by Zeog »

Perfectly, thank you much! :D
Do you mind if I remove the superfluous files (those labeled with "deprecated" and "ignore") from SVN then?

One more question: I'm inluding Silverain's upgrades and weapons pictures into SVN. The image paths are stored in the master_parts_list.cvs and including them works fine. For weapons, however, I find it very difficult. There are many more weapons listed in the master parts list than available in game. Some weapons are also listed with some properties in the units.cvs and some are also listed in weapons_list.xml. Which list in the authorative one?
(It's somewhat hard to find out since everything is spread accross these files. For example in units.cvs many upgrades have a directory string "./factions/upgrades/..." (from the "/units/" directory). But a directory /units/factions/upgrades/... does not exist!) :?
JumpinDuck
Trader
Trader
Posts: 19
Joined: Fri Mar 17, 2006 2:17 pm

Post by JumpinDuck »

I'd like to tweak missile capacity of ships. It seems to me that the units.csv file should have all the ships' stats, but it's very confusing, many numbers and little explanation for them. So can someone please just give me an example of a line/part of a line that affects missile capacity?

P.S.

Also if someone would be so kind and tell me which file is responisble (and a line too if file is a jungle :)) for determining how much space does a missile use within the missile capacity. Because while a ship can mount, say, 16 dumbfires per launcher, it can mount only 1 friend/foe missile, making such practically unusable.
private_lock
Explorer
Explorer
Posts: 13
Joined: Sat Mar 25, 2006 4:31 pm
Location: Germany
Contact:

Post by private_lock »

Hello dandandaman!
  1. First I thank you for this clear statement. It was what I was hunting the forum for :-) Please consider making this thread sticky because more people might find the explanations quite useful!
  2. Was it a political decision to abandon those XML-formats or was it just to tedious to edit them compared to the *.csv?

    Will the ./weapons_list.xml and ./factions.xml also get transformed to *.csv? What about the ./universe/milky_way.xml and all those *.system?
  3. There are quite a lot more XML files in the units directory:

    ./units/admonisher/admonisher
    ./units/admonisher/admonisher.blank
    ./units/admonisher/admonisher.template
    ./units/aelar/aelar
    ./units/aelar/aelar.blank
    ./units/aelar/aelar.template

    Do I get you right, that all those are deprecated too???

    Actually the ./units/units.csv contains equivalent data.

    If so, this should be indicated in http://vegastrike.sourceforge.net/phpwi ... tUnitFiles
  4. Regarding the contents of ./units/units.csv What is the 'Cargo' column good for? Why do some bases have a hard wired Contraband/Pilot in their cargo hold? And imagine a Pilot off 367 metric tons :-) To me the whole column seem utterly superfluous.
  5. The Cargo_Import column has many duplicate entries where this redundancy introduces a source of errors. Perhaps one could imagine an import tag to indicate, that 'starfortress.blank' and 'starfortress.template' are exactly the same as 'starfortress'.
  6. Anyway I still didn't get the use for those template and blank copies ...

    Actually they differ in the preset of upgrades. But then I would consider it streight forward to have a single base ship with basic statistics. In addition the 'Upgrades' column would be enhanced to this format:

    {VARIANT(string);PRICE(percentage);FIXED(boolean);{filename(string);mountoffset(int);subunoffset(int)}}

    And the new shield levels and such stuff will be derived from the according upgrades. The total price calculates as the sum of all subcomponents multiplied by the second parameter to simulate the discount for beeing such a good customer and taking the ship as is.

    This would also open the door to some randomly preassembled ships, like with a realworld car dealer.

    BTW. can I sell upgrades, that came via the 'Upgrades' column or are those hardwired into the ship? If they are not in the normal ship-dealers upgrades, am I prevented from installing a second shield? Will the effects of several shields add up?

    To me it would be more natural to have a third flag indicating whether a preset was fixed or not. Fixed items appear in gray in the upgrade-screen and never show a button. This allows to verify, they are there and view their statistics. It is obvious to the user, why he cannot buy another shield.

    In addition those preinstalled components might suffer damage and can be repared that way.

    All in all I would consider this a mayor step in reducing redundancy, since this system guarantees consitent data. All values are calculated by taking the base and modifying it through exactly one merged level of upgrades (preinstalled or bought later).
  7. Once I fly a ship with Cargo_Import and a Dock, will computer AI controlled ships be able to land on my 'dodo' and trade 'Fuels/Crude' and 'Compressed_Gasses'? Will this affect my balance and hold volume?


Hello JumpinDuck!

First make a backup copy of units/units.csv, then open it with your favourite spreadsheet program, I take OpenOffice Calc.

It will offer an import-dialog for items seperated by commata ','

Goto the far left to column CX that reads 'Mounts', the line below is the format of values to expect:

{type(string);ammo(int);volume(meters);SIZE(string);x(meters);y(meters);z(meters);
xyscale(meters);zscale(meters);forex(meters);forey(meters);forez(meters);
upx(meters);upy(meters);upz(meters);functionality(percentage);maxfunctionality(percentage)}

For the "llama.begin" 's 6 mounts this is:

{;;;LIGHT MEDIUM SPECIAL;1.01200;-6.80000e-2;3.40800;;;;;;;;;1;1}
{Tractor;;;LIGHT MEDIUM PECIAL;-0.964000;-6.80000e-2;3.40800;;;;;;;;;1;1}
{Laser;;;LIGHT;0.380000;0.176000;1.07600;;;;;;;;;1;1}
{Laser;;;LIGHT;-0.336000;0.176000;1.07600;;;;;;;;;1;1}
{dumbfire;16;48;LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;0;0;0;;;;;;;;;1;1}
{dumbfire;16;48;LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;0;0;0;;;;;;;;;1;1}

If you match the corresponding columns you get these three types of mounts (two of every kind):

Code: Select all

{type(string);                {;
ammo(int);                    ;
volume(meters);               ;
SIZE(string);                 LIGHT MEDIUM SPECIAL;
x(meters);                    1.01200;
y(meters);                    -6.80000e-2;
z(meters);                    3.40800;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

{type(string);                {Laser;
ammo(int);                    ;
volume(meters);               ;
SIZE(string);                 LIGHT;
x(meters);                    0.380000;
y(meters);                    0.176000;
z(meters);                    1.07600;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

{type(string);	              {dumbfire;
ammo(int);                    16;
volume(meters);               48;
SIZE(string);                 LIGHT-MISSILE MEDIUM-MISSILE SPECIAL-MISSILE;
x(meters);                    0;
y(meters);                    0;
z(meters);                    0;
xyscale(meters);              ;
zscale(meters);               ;
forex(meters);                ;
forey(meters);                ;
forez(meters);                ;
upx(meters);                  ;
upy(meters);                  ;
upz(meters);                  ;
functionality(percentage);    1;
maxfunctionality(percentage)} 1}

Most interesting to you will be the volume(meters) and the SIZE(string).

Another way would be to locate your favourite missile in the weapons_list.xml

Code: Select all

<Missile name="AdvTorpedo" mountsize="heavy-missile">
  <Energy rate="0" refire="20" locktime="4" /> 
  <Damage rate="80000" phasedamage="65000" longrange="1" radius="250" radialspeed="800" /> 
  <Distance speed="850" pulsespeed="15" range="1000000" detonationrange="60" volume="100" /> 
  <Appearance file="torpedo" soundwav="missile_3.wav" /> 
</Missile>
The mountsize="heavy-missile" along with the volume="100" is what normally prevents Llama's form having those :-) Normally, you know ...

If you don't want your abuse also to be exploited by the computer, you should think of how common your ships-type is in the universe compared to how many AI-controlled ships will be able to load the forged missiles. Perhaps it is best, if you tweak both files to meet somewhere in the middle.

HTH
private_lock
Privateer Ferrius
Venturer
Venturer
Posts: 538
Joined: Tue Mar 21, 2006 12:54 am
Location: Delta Prime
Contact:

Post by Privateer Ferrius »

The XML files are no longer used for new ships, but compatability with it is kept for older ship models. Should you wish, you CAN create new ship entries using XML, however. It just wouldn't be following the new standard ;)
Cmdr. Micheal Ferrius (Ret.)
Retired Confederate Pilot

For Hire!
Post jobs to the BBS!

Tengoku de omachi shite imasu
loki1950
The Shepherd
Posts: 5841
Joined: Fri May 13, 2005 8:37 pm
Location: Ottawa
Contact:

Post by loki1950 »

quick caveat about spreadsheets progs and csv files don't use Exel it borks the file on saveing :twisted:

Enjoy the Choice :)
Privateer Ferrius
Venturer
Venturer
Posts: 538
Joined: Tue Mar 21, 2006 12:54 am
Location: Delta Prime
Contact:

Post by Privateer Ferrius »

OpenOffice works fine, though :)
Cmdr. Micheal Ferrius (Ret.)
Retired Confederate Pilot

For Hire!
Post jobs to the BBS!

Tengoku de omachi shite imasu
www2
Venturer
Venturer
Posts: 537
Joined: Sat May 14, 2005 10:51 am
Location: milkyway->the sol system->earth->Europe->The Nederland->Soud Holland->Leiden
Contact:

Post by www2 »

@private_lock and @dandandaman

i work on this part op the projet...
only is in the multiplay/mmog area...

link for my projet (on the forum)
http://vegastrike.sourceforge.net/forum ... php?t=6542
All Your Base Are Belong To Us
dandandaman
Artisan
Artisan
Posts: 1270
Joined: Fri Jan 03, 2003 3:27 am
Location: Perth, Western Australia
Contact:

Post by dandandaman »

private_lock:

man that's a lot of questions! sorry bout the delay, but here's some answers...

a) I'll get it wiki-ised I think instead... but ya, that's stuff that really needs to be covered somewhere

b) two main reasons ... first was that it was hard to batch-balance everything when it was in seperate files, and the second that loading and parsing tons of seperate xml files was a bit of a slowdown, so having one .csv file already loaded when it came to launching units sped things up a bit

c) Yup, all the xml unit files are deprecated. But no, that page need not be updated as it is in the old wiki. The new wiki has this incomplete page instead:
http://vegastrike.sourceforge.net/wiki/ ... _units.csv

d) Cargo make sure that the unit is launched with that cargo in its hold already (I believe). Why Pilots? Dunno...

e) .blanks and .templates aren't going to exist for much longer....well, i hope....so this shouldn't be a problem

f) sounds mighty similar to the plan!

g) Your hold volume, yes .. your balance...good question!

Dan
"Computers are useless. They can only give you answers."
-- Pablo Picasso
drvoke
Merchant
Merchant
Posts: 57
Joined: Wed Jan 25, 2006 9:22 pm
Location: Albuquerque
Contact:

Post by drvoke »

dandandaman wrote:d) Cargo make sure that the unit is launched with that cargo in its hold already (I believe). Why Pilots? Dunno...
Isn't this so that when you blow up a ship, it ejects a pilot pod along with the cargo?
My poems crush bones into powder,
You mumble like a coward,
I'm Mos Def, you need to speak louder!
(Speed Law)
dandandaman
Artisan
Artisan
Posts: 1270
Joined: Fri Jan 03, 2003 3:27 am
Location: Perth, Western Australia
Contact:

Post by dandandaman »

drvoke wrote:Isn't this so that when you blow up a ship, it ejects a pilot pod along with the cargo?
That's the result ... but why, on bases, it'd be the plan I don't know :-)

Dan
"Computers are useless. They can only give you answers."
-- Pablo Picasso
private_lock
Explorer
Explorer
Posts: 13
Joined: Sat Mar 25, 2006 4:31 pm
Location: Germany
Contact:

Post by private_lock »

Hello drvoke and thanks to dandandaman

d) Following this philosophy in 0.4.3 only very few units could eject a pilot:
Starfortress, Vitik and Yavok in different flavours... In addition, only Llama.begin will blow out some upgrades. Since there are definitely more pilots swirling around in the void, this cannot be the only source. Moreover I wonder if those units are automatically detected for carrying contraband.

When I bought a new ship the other day, I noticed some new cargo I hadn't bought, including some mission-cargo for dump because I definitely had no mission going on. Strange!

f) Now I consider myself being really intelligent for coming up with the same idea as you guys :-)

g) So far I didn't notice any AI docking with me ... How will I find out? I never noticed someone requesting a clearence from me ...

When granting clearence it would be logic to treat the situation the same way, as if I initiated the docking myself in putting me into the 'base screens' for the other ship, so that I can trade my cargo myself. No need for a new interface ...

Thats it for now
private_lock
Halleck
Elite
Elite
Posts: 1832
Joined: Sat Jan 15, 2005 10:21 pm
Location: State of Denial
Contact:

Post by Halleck »

Agreed, this info could stand to be in the wiki somewhere. A full breakdown of the data tree would be nice, perhaps as subpages to Development:CVS Tree.
Post Reply