Discovery Gaming Community
Commodity creation tutorial - Printable Version

+- Discovery Gaming Community (https://discoverygc.com/forums)
+-- Forum: Discovery Development (https://discoverygc.com/forums/forumdisplay.php?fid=7)
+--- Forum: Discovery Developers Forum (https://discoverygc.com/forums/forumdisplay.php?fid=183)
+---- Forum: Freelancer Modding Tutorials (https://discoverygc.com/forums/forumdisplay.php?fid=36)
+---- Thread: Commodity creation tutorial (/showthread.php?tid=472)

Pages: 1 2


Commodity creation tutorial - Igiss - 12-27-2005

This is a tutorial that will help everyone willing to participate in creation of commodities for Discovery mod. Or, to be more precise, not commodities but trading routes for those. If you will do good, then your routes will be included into the final version of Discovery - after my checks and modifications, of course.

I.

Trading routes for new Discovery commodities (well, most of them) is located in a Goods.xml file that you will find in Discovery mod folder root. This file is processed by FLMM - information from it is extracted into market_commodities.ini file in Freelancer/DATA/EQUIPMENT folder. This file contains information about trading routes in Freelancer - what bases sell and buy certain things and what is their price on each base.

The structure of Goods.xml and market_commodities.ini is similar - each have separate sections with lists of commodities for bases. Difference is that xml file has xml syntax, and does not contain all Freelancer bases (only the most important ones, around 50% of bases total). If you need to add commodities to bases that were not yet listed in Goods.xml, you are free to do so.

Entry for each base/planet in Goods.xml looks like this:

<data file="data\equipment\market_commodities.ini" method="sectionappend]
<section>
[BaseGood]
base = Li01_01_base
</section>
<source>
MarketGood = commodity_marijuana, 0, -1, 0, 0, 1, 2.16000
MarketGood = commodity_passengers, 0, -1, 150, 500, 0, 1.20000
MarketGood = commodity_mlieutenant, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mcaptain, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mgeneral, 0, -1, 0, 0, 1, 0.80000
</source>
</data>


This part:

[BaseGood]
base = Li01_01_base


indicates to what base will the main part be appended. Each base in Freelancer has a number like this. I will further provide full list of bases for reference.

This part:

MarketGood = commodity_marijuana, 0, -1, 0, 0, 1, 2.16000
MarketGood = commodity_passengers, 0, -1, 150, 500, 0, 1.20000
MarketGood = commodity_mlieutenant, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mcaptain, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mgeneral, 0, -1, 0, 0, 1, 0.80000

is the main one. It adds actual new commodities that the base Li01_01 will be buying and selling. This section will not replace any existing original commodities, but rather amend the original commodity list.

II.

Ok, let's go in for some more details. Look at this entry:

MarketGood = commodity_passengers, 0, -1, 150, 500, 0, 1.20000

"MarketGood = " is the start of any commodity line.
"commodity_passengers" is the name of your commodity.
"0" - don't change.
"-1" - reputation needed to buy or sell. Do not change, it must be -1.
"150, 500, 0, " - This part indicates if the commodity is for sale or to buy.

150, 500, 0, means that commodity is sold on the base.
0, 0, 1, means that base buys the commodity.

If the commodity is sold, the base will buy it for the same price it sells it. If base only buys the commodity, you won't be able to buy the commodity from it - only sell.

"1.20000" - it's the last number. It indicates the price of commodity. If commodity is sold (150, 500, 0,), it will be buying and selling price. If the commodity is only bought (0, 0, 1,), it will be only buying price.

The number indicates the difference between base price for each commodity (which is fixed) and price on the particular base.

III.

So, you probably wonder where is the commodity itself? Well, the name, base price and icon for commodity are specified in two other ini files that Goods.xml does not modify. To keep it simplier for you, I'd better do those entries myself.

So, what should you do?

1) Make up a name for your commodity. For example, Armchairs.

1a) You may make some kind of description that will be displayed along with the commodity in-game, or leave this part to me. 2) Make up some a commodity id. For armchairs it should be "commodity_armchairs".

3) Specify the base price. Note that base price is the price for which all bases that you do not specify will buy your commodity, so do not make your base price high! For example, for cardamine it's 300.

You don't need to edit any files for the first three, just send me text.

Then open Goods.xml and start editing.

4) In Goods.xml, start creating trade routes by setting the commodity for sale and to buy on different bases for different prices.

For each base you are interested in, add commodity_armchairs entry to the list of new commodities, like this:

MarketGood = commodity_marijuana, 0, -1, 0, 0, 1, 2.16000
MarketGood = commodity_passengers, 0, -1, 150, 500, 0, 1.20000
MarketGood = commodity_mlieutenant, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mcaptain, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_mgeneral, 0, -1, 0, 0, 1, 0.80000
MarketGood = commodity_armchairs


Then decide whether it will be bought or sold. There must be more places where you can sell the commodity than where you can buy it! Note that maximum prices should be only for selling - no player will buy commodity for the maximum price.

If you want armchairs to be sold on Li01_01 (which is Manhattan, by the way), add appropriate numbers to the armchairs entry:

MarketGood = commodity_armchairs, 0, -1, 150, 500, 0,

If you want Manhattan only to buy armchairs, add other numbers:

MarketGood = commodity_armchairs, 0, -1, 0, 0, 1,

All bases where there's no entry for armchairs will buy them for the base price, and won't sell them. This is why it's very important to set base price with care.

If you want armchairs to be sold or bough by Manhattan, than you want price to be different from base price. So, you need to decide what this price will be exactly.

For example, base price on armchairs is 200. Then, if you set 0.9 as a price modifier:

MarketGood = commodity_armchairs, 0, -1, 150, 500, 0, 0.9

Manhattan will sell armchairs for 180.

DO NOT reduce sell price far below 1! It will cause players to buy the commodity and sell them at nearby bases, where price remains unmodified and much higher. For example, you add 0,1 price modifier to Manhattan and don't add entry for Trenton Outpost. This will cause players to buy armchairs for 20 on Manhattan and sell them for 200 on Trenton. To avoid this, you'll have to reduce prices on armchairs all around Liberty, which is hard to do.

It's a better idea to set low base price and add price modifiers ABOVE 1, thus multiplying buy and sell cost of any commodity.

For example, that's how you make a specific base buy armchairs for 300 credits:

MarketGood = commodity_armchairs, 0, -1, 0, 0, 1, 1.5

5) Trade routes creation

If you want good trade routes (which you should want, otherwise your editing will never be used in the mod), you should think about the area or areas where the commodity will be produced, and where prices on it will be low, and areas of high demand where prices will be high. Areas of production are areas where players will buy your commodity. Areas of demand will be places where they sell them. It's better to make versatile prices to make trading more interesting, so that fewer bases have same price. The longer and more dangerous is the route, the more money difference you can make.

Avoid short and profitable routes. All routes with profit 1000 per unit and above must be long, 5-6 systems to pass or even more.

Prices within one system, especially for bases close together, must have minimum difference.



Commodity creation tutorial - Igiss - 12-29-2005

LIBERTY BASES

New York

Li01_01_Base - Planet Manhattan
Li01_02_Base - Planet Pittsburgh
Li01_03_Base - Battleship Missouri
Li01_04_Base - Benford Station
Li01_05_Base - Ithaca Research Station
Li01_06_Base - Trenton Outpost
Li01_07_Base - Norfolk Shipyard
Li01_08_Base - Newark Station
Li01_09_Base - West Point Military Academy
Li01_10_Base - Detroit Munitions
Li01_11_Base - Fort Bush
Li01_12_Base - Buffalo Base
Li01_13_Base - Rochester Base
Li01_14_Base - Baltimore Shipyard
Li01_15_Base - Battleship Osiris SP ONLY

California

Li02_01_Base - Planet Los Angeles
Li02_02_Base - California Minor
Li02_03_Base - Battleship Yukon
Li02_04_Base - Willard Research Station
Li02_05_Base - San Diego Border Station
Li02_06_Base - Alcatraz Depot

Colorado

Li03_01_Base - Planet Denver
Li03_02_Base - Battleship Rio Grande
Li03_03_Base - Ouray Base
Li03_04_Base - Pueblo Station

Texas

Li04_01_Base - Planet Houston
Li04_02_Base - LPI Huntsville
Li04_03_Base - Battleship Mississippi
Li04_04_Base - Beaumont Base
Li04_05_Base - LPI Sugarland
Li04_06_Base - Battleship Osiris SP ONLY

Alaska

Li05_01_Base - Prison Station Mitchell


BRETONIA BASES

New London

Br01_01_Base - Planet New London
Br01_02_Base - Southampton Shipyard
Br01_03_Base - Battleship Suffolk
Br01_04_Base - Waterloo Station
Br01_05_Base - Canterbury Station
Br01_06_Base - Thames Outpost
Br01_07_Base - Kensington Ship Platform
Br01_08_Base - Trafalgar Base

Manchester

Br02_01_Base - BPA Newgate
Br02_02_Base - Birmingham Station
Br02_03_Base - Sheffield Station
Br02_04_Base - Liverpool Border Station
Br02_05_Base - Kingston Border Station

Cambridge

Br03_01_Base - Planet Cambridge
Br03_02_Base - Cambridge Research Station
Br03_03_Base - Battleship Norfolk
Br03_04_Base - Cardiff Mining Facility

Leeds

Br04_01_Base - Planet Leeds
Br04_02_Base - Stokes Mining Station
Br04_03_Base - Battleship York
Br04_04_Base - Glasgow Outpost
Br04_05_Base - LD-14
Br04_06_Base - Durham Border Station

Dublin

Br05_01_Base - Battleship Hood
Br05_02_Base - Mining Station Glorious
Br05_03_Base - Graves Station
Br05_04_Base - Battleship Essex
Br05_05_Base - Arranmore Base

Edinburgh

Br06_01_Base - Luxury Liner Shetland
Br06_02_Base - Aberdeen Border Station
Br06_03_Base - Islay Base
Br06_04_Base - Perth Station


KUSARI BASES

New Tokyo

Ku01_01_Base - Planet New Tokyo
Ku01_02_Base - Narita Outpost
Ku01_03_Base - Yokohama Shipyard
Ku01_04_Base - Roppongi Station
Ku01_05_Base - Shinagawa Station
Ku01_06_Base - Shinjuku Station
Ku01_07_Base - Kabukicho Depot
Ku02_01_Base - Fuchu Prison
Ku02_02_Base - Battleship Myoko
Ku02_03_Base - Deshima Station
Ku02_04_Base - Planet Junyo
Ku02_05_Base - Ohashi Border Station

Kyushu

Ku03_01_Base - Planet Kyushu
Ku03_02_Base - Tsushima Depot
Ku03_03_Base - Battleship Nagumo
Ku03_04_Base - Nansei Research Complex
Ku03_05_Base - Kagoshima Depot

Honshu

Ku04_01_Base - Planet Honshu
Ku04_02_Base - Osaka Storage Facility
Ku04_03_Base - Yukawa Shipyard
Ku04_04_Base - Kansai Research Station
Ku04_05_Base - Aomori Station
Ku04_06_Base - Akita Border Station

Hokkaido

Ku05_01_Base - Battleship Matsumoto
Ku05_02_Base - Ainu Depot
Ku05_03_Base - Chugoku Gate Con Site
Ku05_04_Base - Sapporo Station

Chugoku

Ku06_01_Base - Kyoto Base

Tohoku

Ku07_01_Base - Ryuku Base
Ku07_02_Base - Tekagis Base


RHEINLAND BASES

New Berlin

Rh01_01_Base - Planet New Berlin
Rh01_02_Base - Oder Shipyard
Rh01_03_Base - The Ring
Rh01_04_Base - Bonn Station
Rh01_05_Base - Dortmund Station
Rh01_06_Base - Essen Station
Rh01_07_Base - Brandenburg Border Station
Rh01_08_Base - Kreuzberg Depot

Hamburg

Rh02_01_Base - Planet Hamburg
Rh02_02_Base - Battleship Westfalen
Rh02_03_Base - Vierlande Prison
Rh02_04_Base - Alster Shipyard
Rh02_05_Base - Altona Station
Rh02_06_Base - L?beck Border Station
Rh02_07_Base - Battleship Osiris SP ONLY

Stuttgart

Rh03_01_Base - Planet Stuttgart
Rh03_02_Base - Planet Baden Baden
Rh03_03_Base - Freiburg Station
Rh03_04_Base - Ulm Border Station
Rh03_05_Base - Konstanz Border Station
Rh03_06_Base - Darmstadt Depot

Frankfurt

Rh04_01_Base - Planet Holstein
Rh04_02_Base - Mainz Storage Facility
Rh04_03_Base - Mannheim Station
Rh04_04_Base - Fulda Border Station
Rh04_05_Base - Bruchsal Base

Dresden

Rh05_01_Base - Leipzig Station
Rh05_02_Base - Bautzen Station
Rh05_03_Base - Pirna Border Station
Rh05_04_Base - Vogtland Base


INDEPENDENT WORLDS BASES

Bering

Iw01_01_Base - Pacifica Base
Iw01_02_Base - Freeport 2

Hudson

Iw02_01_Base - Barrow Base
Iw02_02_Base - Dawson Base
Iw02_03_Base - Battleship Osiris SP ONLY

Magellan

Iw03_01_Base - Freeport 4
Iw03_02_Base - Mactan Base

Cortez

Iw04_01_Base - Planet Curacao
Iw04_02_Base - Montezuma Base

Kepler

Iw05_01_Base - Ames Research Station
Iw05_02_Base - Nome Base

Galileo

Iw06_01_Base - Leiden Base
Iw06_02_Base - Padua Base


BORDER WORLDS BASES

Omega-3

Bw01_01_Base - Planet Sprague
Bw01_02_Base - Freeport 1
Bw01_03_Base - Rugen Station
Bw01_04_Base - Douglas Station
Bw01_05_Base - Baxter Research Station

Omega-5

Bw02_01_Base - Cadiz Base
Bw02_02_Base - Ronneburg Base

Omega-7

Bw03_01_Base - Freistadt Base
Bw03_02_Base - Briesen Mining Facility
Bw03_03_Base - Elbich Mining Facility

Omega-11

Bw04_01_Base - Solarius Station
Bw04_02_Base - Freital Base

Sigma-13

Bw05_01_Base - Gas Miner Naha
Bw05_02_Base - Helgoland Station
Bw05_03_Base - Yanagi Depot

Sigma-17

Bw06_01_Base - Planet Kurile
Bw06_02_Base - Atka Research Station

Sigma-19

Bw07_01_Base - Luxury Liner Hawaii
Bw07_02_Base - Gas Miner Ogashawa

Tau-23

Bw08_01_Base - Cali Base
Bw08_02_Base - Tau-31 Gate Con Site
Bw08_03_Base - Java Station

Tau-29

Bw09_01_Base - Nago Station
Bw09_02_Base - Shinkaku Station
Bw09_03_Base - Freeport 6

Tau-31

Bw10_01_Base - Planet Harris
Bw10_02_Base - Holman Outpost


EDGE WORLDS BASES

Tau-37

Ew01_01_Base - Freeport 10
Ew01_02_Base - Falkland Base

Omicron Beta

Ew02_01_Base - Ruiz Base

Omicron Theta

Omega-41

Ew03_01_Base - Leon Base
Ew03_02_Base - Freeport 5

Ew04_01_Base - Freeport 9

Unknown

Ew06_01_Base - Planet Primus
Ew06_02_Base - Planet Gammu

Omicron Order

St01_01_Base - Planet Toledo

Omicron Delta

St04_01_base - Yaren Base


HISPANIA BASES

Omicron Alpha

Hi01_01_Base - Planet Malta

Omicron Gamma

Hi02_01_Base - Planet Crete
Hi02_02_Base - Tripoli Shipyard


Commodity creation tutorial - Igiss - 01-11-2006

Commodity creating tutorial (complete) from LancersReactor forums:

http://lancersreactor.com/t/forum/topic.as...Editing&M=False

NavMap:
http://lancersreactor.com/t/flsystems/map.asp


Commodity creation tutorial - Dab - 01-11-2006

O_O :shok: Well I have resspect for anyone willing to make new commodities....


Commodity creation tutorial - xit - 01-19-2006

I wouldn't mind trying it, already got ideas for three new commodities. :)


Commodity creation tutorial - Dormat1 - 04-02-2007

I Have been looking through the commdities list and code trying to put together a comprehensive commodities list with buy & sell prices for all bases and systems (i'm about 60% complete) but there are a few entries that I cant match to a base, There are several I cant find in the codes the following are just 2 examples:

Li01_hgn01_base
Br01_hgn01_base


Any help would be appreciated

(This project is keeping me sane in the middle of the desert)

v/r
Nuclear Nightmare
AKA Dormat1


Commodity creation tutorial - Panzer - 04-02-2007

Uhh, wow, didn't expect it to be so... complex, ah well, worth a shot



Commodity creation tutorial - Zyreal - 05-01-2007

What governs if the commodity is contraband? I know it must have some way to specify it on a faction basis... I thought it had to do with "commodities_per_faction", but it almost seems like that file is useless...

Nevermind on the contraband file, found it...still curious about commodities_per_faction though


Commodity creation tutorial - Commodore - 05-05-2007

off topic question: Why is there BS Osiris in... texes, hudson, and... NY I can understand. But texas and hudson?


Commodity creation tutorial - DJRWolf - 05-05-2007

Did you list the Discovery bases? I noticed in California that Riverside Station is not listed. Also did not see Freeport 11 in Delta. Have not checked for others.