-
Notifications
You must be signed in to change notification settings - Fork 517
Cargo Items
Cargo Items on Aurora are loaded in one of two ways:
- Via a JSON file in the config folder
- Via the database.
On the live server the cargo items are loaded via the Database. On your local test-server you can use the config/example/cargo.json file to test cargo items.
Each "cargo item" can contain one or more individual items. For example, you can create a "space suit set" item that contains both the space suit and the helmet. Details about that below.
As cargo items are loaded via the DB it is not possible to add/edit cargo items by editing the code. If you would like items to be added to cargo, fill out the following .csv file and send it to a Head-Admin/-Developer
The following is a example that shows how to add Inaprovaline as a chem bottle and as a chemical dispenser cartridge.
name;supplier;description;categories;price;items;item_mul;access;container_type;groupable;order_by;error_message
inaprovaline bottle;nt;A small bottle. Contains inaprovaline - used to stabilize patients.;["medical"];25;{"inaprovaline bottle":{"path":"/obj/item/reagent_containers/glass/bottle/inaprovaline","vars":[]}};1;0;crate;1;\N;\N
chemical cartridge-inaprovaline;iac;A square plastic cartridge, this one is filled with 500 units of liquid.;["medical"];200;{"chemical cartridge-inaprovaline":{"path":"/obj/item/reagent_containers/chem_disp_cartridge/inaprov","vars":[]}};1;5;crate;1;\N;\N
This CSV contains the following fields:
Name:
The name that should be displayed in the cargo order application
Supplier:
The short name of the supplier that supplies the item.
You can create the same item multiple times with the same name and a different supplier. With that it is possible to create corporate branded-versions of the same item.
Currently the following suppliers exist:
short_name | name | description | tag_line |
---|---|---|---|
nt | NanoTrasen | Your default supplier | Standard NT supplies. Quality assumed, but not garunteed. |
hpi | Haephaestus | Mass produced engineering robotics and security supplies. | We're the Rockefeller of space! |
zhu | Zeng-Hu | Medical and robotics supplies. | We're not saying we sell organs, but that's basically one of our services. |
een | Eckhart's Energy | Engineering and security supplies. | We do more than engine repair! |
get | Getmore Products | Hydroponic and service supplies. | Need supplies for work or home? Get 'em here! |
arz | Arizi Guild | Unathi wares for Unathi clients. | Not Your Ancestors Wine! |
blm | BLAM! Products | Service and Mining products. | BLAM The mess away! (Warning: This tag-line does not promote, encourage, condone, demand, or permit assault with BLAM! based products.) |
iac | Interstellar Aid Corps | Medical products. | We'd be the Red Cross in space, but that would violate copyright. |
zsc | Zharrkov Shipping Company | Tajara xenowear, outdated security supplies. | Exporting the Revolution! |
vfc | Virgo Freight Carriers | Service and miscellaneous products. | Bringing home the groceries. |
bis | Bishop Cybernetics | State of the art cybernetics and augmentation suppliers. | Without compromise. |
xmg | Xion Manufacturing Group | Industrial goods and cybernetics manufacturer | A new world awaits |
npi | Zavodskoi Interstellar | Biological products and cybernetics supplier. | Genetic perfection. |
zra | ZoRa Hive | New and "hip" energy drinks. | Selling redundancy. |
Description:
The description is displayed in the cargo order application and is used to describe what that item is.
Caregories:
The Categories are a JSON-Formated List of the categories the item should appear in.
If you want the item to appear in one category, you would use ["category-name"]
If you want the item to appear in multple categories, you would use ["category-name-1","category-name-2"]
Currently the following Categories exist:
name | display_name | description |
---|---|---|
engineering | Engineering | Engineering Items |
security | Security | Security Items |
medical | Medical | Medical Items |
hydroponics | Hydroponics | Hydroponic Items |
supply | Supply | General Supply Items |
hospitality | Hospitality | Food, Drinks |
science | Science | Toys for Nerds |
operations | Operations | Items required for station operation |
mining | Mining | Mining Items |
Additional categories can be created if needed.
Price:
The price of that item without shuttle/handling-fee
Items:
This row contains the actual items that should be included in the "cargo item". The items are formatted in json as follows. Not that the following example uses # To prefix a comment. THIS IS NOT STANDARD JSON AND NEEDS TO BE REMOVED.
When editing the CSV file, you need to minify the JSON before you use it. -> There are online tools for that.
The key in the json is the name of the actual item that should be displayed on the shipping manifest. The variable path contains the path of the ingame item path of the item that should be added. The variable vars can be used to modify any variable of the item that is spawned in.
Example: Single Item (Proto-Human)
{"A brain dead, generic human clone":{"path":"/mob/living/carbon/human","vars":[]}}
Example: Multiple Items (Janitorial Resupply Set; In JSON Pretty Print)
{
"janitorial cart": {
"path": "/obj/structure/janitorialcart",
"vars": []
},
"mop bucket": {
"path": "/obj/structure/mopbucket",
"vars": []
},
"mop": {
"path": "/obj/item/mop",
"vars": []
},
"trash bag": {
"path": "/obj/item/storage/bag/trash",
"vars": []
},
"space cleaner": {
"path": "/obj/item/reagent_containers/spray/cleaner",
"vars": []
},
"rag": {
"path": "/obj/item/reagent_containers/glass/rag",
"vars": []
},
"wet floor sign 1": {
"path": "/obj/item/clothing/suit/caution",
"vars": []
},
"wet floor sign 2": {
"path": "/obj/item/clothing/suit/caution",
"vars": []
},
"wet floor sign 3": {
"path": "/obj/item/clothing/suit/caution",
"vars": []
},
"cleaner grenade 1": {
"path": "/obj/item/grenade/chem_grenade/cleaner",
"vars": []
},
"cleaner grenade 2": {
"path": "/obj/item/grenade/chem_grenade/cleaner",
"vars": []
},
"cleaner grenade 3": {
"path": "/obj/item/grenade/chem_grenade/cleaner",
"vars": []
},
"soap": {
"path": "/obj/item/soap/nanotrasen",
"vars": []
}
}
item_mul:
Item_mul is a simple multiplicator that can be used to add more of a single item to a set of items.
access:
Access is the numerical access level required for the item. If multiple cargo items with a different access level are ordered, then all of the access levels are required to access the shipping container.
container_type:
The container_type determines the container in which the items should be shipped. Currently the following container types exist:
container_type | description | item_limit |
---|---|---|
crate | Items are shipped in a /obj/structure/closet/crate or /obj/structure/closet/crate/secure if access is not 0 |
40 |
freezer | Items are shipped in a /obj/structure/closet/crate/freezer
|
40 |
box | Items are shipped in a /obj/structure/largecrate or /obj/structure/closet/crate/secure/large if access is not 0 |
5 |
bodybag | Items are shipped in a /obj/structure/closet/body_bag
|
1 |
groupaable:
This is a binary flag (0 or 1) and is used to determine if the item can be grouped together with other items in one order. The following conditions exist for grouping items together in one order:
- They need to be from the same supplier
- They need to use the same container_type
- groupable must be set to 1 on all items
- Te maximum item limit for a container must not be exceeded.
A collection of standards and guidelines applied to the codebase.
Documentation regarding common APIs which speed up feature implementation and should be known by all coders.
- Atom Initialization
- Garbage, Queued Deletion, and Destroy
- Callbacks
- Timers
- Lazy Lists
- Overlays
- Processing APIs
- Common Helpers
- Global Listeners
- Singletons
Documentation for less used APIs that are not often needed.
Documentation regarding our implementation of StonedMC (SMC).
Decrepit or unused systems.
- Dynamic Maps (Not to be confused with the newer away mission implementation.)