Actions

Difference between revisions of "Kit (Satellite Dish)"

From Unofficial Stationeers Wiki

m
m
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
[[Category:Machines]]
 +
[[Category:Items]]
 
{{Itembox
 
{{Itembox
 
  | name        = Kit (Satellite Dish)
 
  | name        = Kit (Satellite Dish)
Line 22: Line 24:
 
== Medium Satellite Dish ==
 
== Medium Satellite Dish ==
 
After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to.
 
After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to.
The Medium Satellite Dish currently have 256bit(32Byte) stack memory.
+
The Medium Satellite Dish currently have 256Bytes(32 Addresses) stack memory.
  
 +
<div class="overflowbugx" style="overflow-x:auto;">
 
{| class="wikitable sortable" style="width:50%;"
 
{| class="wikitable sortable" style="width:50%;"
 
! Op_code
 
! Op_code
Line 35: Line 38:
 
! rowspan="3" | 1
 
! rowspan="3" | 1
 
| rowspan="3" | TraderInstruction.WriteTraderData
 
| rowspan="3" | TraderInstruction.WriteTraderData
| rowspan="3" | The dish will flush out metadata(24 Bytes, in continuous of 3 addresses) to the specified starting index. E.g.: if set WRITE_INDEX to 1, then the metadata will span address 1-3. See [[#Metadata_Payloads|Metadata Payload]]s.
+
| rowspan="3" | The dish will write out metadata(24 Bytes, in continuous of 3 addresses) to the specified starting index. E.g.: if set WRITE_INDEX to 1, then the metadata will span address 1-3. See [[#Metadata_Payloads|Metadata Payload]]s.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 48: Line 51:
 
! rowspan="3" | 2
 
! rowspan="3" | 2
 
| rowspan="3" | TraderInstruction.StrongestContactIdHash
 
| rowspan="3" | TraderInstruction.StrongestContactIdHash
| rowspan="3" | todo
+
| rowspan="3" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 1.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 61: Line 64:
 
! rowspan="5" | 3
 
! rowspan="5" | 3
 
| rowspan="5" | TraderInstruction.StrongestContactMetaData
 
| rowspan="5" | TraderInstruction.StrongestContactMetaData
| rowspan="5" | todo
+
| rowspan="5" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 2.
 
| rowspan="5" | 0-31
 
| rowspan="5" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 67: Line 70:
 
|-
 
|-
 
| style="text-align:center;" | 8-15
 
| style="text-align:center;" | 8-15
| SHUTTLE_TYPE
+
| [[#Metadata_Payloads|SHUTTLE_TYPE]].
 
|-
 
|-
 
| style="text-align:center;" | 16-23
 
| style="text-align:center;" | 16-23
| CONTACT_TIER
+
| [[#Metadata_Payloads|CONTACT_TIER]].
 
|-
 
|-
 
| style="text-align:center;" | 24-31
 
| style="text-align:center;" | 24-31
| CONTACTED
+
| [[#Metadata_Payloads|CONTACTED]].
 
|-
 
|-
 
| style="text-align:center;" | 32-63
 
| style="text-align:center;" | 32-63
Line 80: Line 83:
 
! rowspan="4" | 4
 
! rowspan="4" | 4
 
| rowspan="4" | TraderInstruction.StrongestContactSignalData
 
| rowspan="4" | TraderInstruction.StrongestContactSignalData
| rowspan="4" | todo
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 3.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 86: Line 89:
 
|-
 
|-
 
| style="text-align:center;" | 8-23
 
| style="text-align:center;" | 8-23
| WATTS_TO_RESOLVE
+
| WATTS_TO_RESOLVE<br/>See [[Trader#Trader_Tier |WattsToResolve]].
 
|-
 
|-
 
| style="text-align:center;" | 24-39
 
| style="text-align:center;" | 24-39
| LIFETIME
+
| LIFETIME<br/>See [[Trader#Trader_Tier|LifeTime]].
 
|-
 
|-
 
| style="text-align:center;" | 32-63
 
| style="text-align:center;" | 32-63
Line 96: Line 99:
 
! rowspan="4" | 5
 
! rowspan="4" | 5
 
| rowspan="4" | TraderInstruction.WriteTraderBuyData
 
| rowspan="4" | TraderInstruction.WriteTraderBuyData
| rowspan="4" | todo
+
| rowspan="4" | The dish will write out trader buy metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.<br/>If an item contains child items, then it will be expaned inplace.<br/>E.g.: <BuyPayload><BuyPayload><BuyChildPayload><BuyPayload>.<br/>See [[#Buy.2FSell_Payloads|Buy/Sell Payloads]], [[#Buy.2FSell_Child_Payloads|Buy/Sell Child Payloads]].
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 112: Line 115:
 
! rowspan="4" | 6
 
! rowspan="4" | 6
 
| rowspan="4" | TraderInstruction.WriteTraderSellData
 
| rowspan="4" | TraderInstruction.WriteTraderSellData
| rowspan="4" | todo
+
| rowspan="4" | The dish will write out trader sell metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.<br/>If an item contains child items, then it will be expaned inplace.<br/>E.g.: <SellPayload><SellPayload><SellChildPayload><SellPayload>.<br/>See [[#Buy.2FSell_Payloads |Buy/Sell Payloads]], [[#Buy.2FSell_Child_Payloads|Buy/Sell Child Payloads]].
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 128: Line 131:
 
! rowspan="4" | 7
 
! rowspan="4" | 7
 
| rowspan="4" | TraderInstruction.TraderBuyThingData
 
| rowspan="4" | TraderInstruction.TraderBuyThingData
| rowspan="4" | Currently not useful, if wrote to stack, will be cleared per tick.
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 144: Line 147:
 
! rowspan="4" | 8
 
! rowspan="4" | 8
 
| rowspan="4" | TraderInstruction.TraderBuyThingChildData
 
| rowspan="4" | TraderInstruction.TraderBuyThingChildData
| rowspan="4" | todo
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 160: Line 163:
 
! rowspan="4" | 9
 
! rowspan="4" | 9
 
| rowspan="4" | TraderInstruction.TraderBuyGasData
 
| rowspan="4" | TraderInstruction.TraderBuyGasData
| rowspan="4" | todo
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 169: Line 172:
 
|-
 
|-
 
| style="text-align:center;" | 16-47
 
| style="text-align:center;" | 16-47
| GAS_TYPES_BITFLAG
+
| GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]].
 
|-
 
|-
 
| style="text-align:center;" | 48-63
 
| style="text-align:center;" | 48-63
Line 176: Line 179:
 
! rowspan="4" | 10
 
! rowspan="4" | 10
 
| rowspan="4" | TraderInstruction.TraderSellThingData
 
| rowspan="4" | TraderInstruction.TraderSellThingData
| rowspan="4" | Currently not useful, if wrote to stack, will be cleared per tick.
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 192: Line 195:
 
! rowspan="4" | 11
 
! rowspan="4" | 11
 
| rowspan="4" | TraderInstruction.TraderSellGasData
 
| rowspan="4" | TraderInstruction.TraderSellGasData
| rowspan="4" | todo
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 201: Line 204:
 
|-
 
|-
 
| style="text-align:center;" | 16-47
 
| style="text-align:center;" | 16-47
| GAS_TYPES_BIGFLAG
+
| GAS_TYPES_BIGFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]].
 
|-
 
|-
 
| style="text-align:center;" | 48-63
 
| style="text-align:center;" | 48-63
Line 208: Line 211:
 
! rowspan="4" | 12
 
! rowspan="4" | 12
 
| rowspan="4" | TraderInstruction.TraderSellThingChildData
 
| rowspan="4" | TraderInstruction.TraderSellThingChildData
| rowspan="4" | todo
+
| rowspan="4" | This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 224: Line 227:
 
! rowspan="3" | 13
 
! rowspan="3" | 13
 
| rowspan="3" | TraderInstruction.FilterPrefabHashEquals
 
| rowspan="3" | TraderInstruction.FilterPrefabHashEquals
| rowspan="3" | todo
+
| rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching PrefabHash.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 237: Line 240:
 
! rowspan="3" | 14
 
! rowspan="3" | 14
 
| rowspan="3" | TraderInstruction.FilterPrefabHashNotEquals
 
| rowspan="3" | TraderInstruction.FilterPrefabHashNotEquals
| rowspan="3" | todo
+
| rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only not matching PrefabHash.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 250: Line 253:
 
! rowspan="4" | 15
 
! rowspan="4" | 15
 
| rowspan="4" | TraderInstruction.FilterSortingClassCompare
 
| rowspan="4" | TraderInstruction.FilterSortingClassCompare
| rowspan="4" | todo
+
| rowspan="4" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching SortingClass.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 256: Line 259:
 
|-
 
|-
 
| style="text-align:center;" | 8-15
 
| style="text-align:center;" | 8-15
| CONDITION_OPERATION
+
| CONDITION_OPERATION<br/>0: Equals<br/>1: Greater<br/>2: Less<br/>3: Not Equals
 
|-
 
|-
 
| style="text-align:center;" | 16-31
 
| style="text-align:center;" | 16-31
| SORTING_CLASS
+
| SORTING_CLASS<br/>See [[Sorting_Class]].
 
|-
 
|-
 
| style="text-align:center;" | 32-63
 
| style="text-align:center;" | 32-63
Line 266: Line 269:
 
! rowspan="4" | 16
 
! rowspan="4" | 16
 
| rowspan="4" | TraderInstruction.FilterQuantityCompare
 
| rowspan="4" | TraderInstruction.FilterQuantityCompare
| rowspan="4" | todo
+
| rowspan="4" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching Quantity Condition.
 
| rowspan="4" | 0-31
 
| rowspan="4" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 272: Line 275:
 
|-
 
|-
 
| style="text-align:center;" | 8-15
 
| style="text-align:center;" | 8-15
| CONDITION_OPERATION
+
| CONDITION_OPERATION<br/>0: Equals<br/>1: Greater<br/>2: Less<br/>3: Not Equals
 
|-
 
|-
 
| style="text-align:center;" | 16-31
 
| style="text-align:center;" | 16-31
Line 282: Line 285:
 
! rowspan="3" | 17
 
! rowspan="3" | 17
 
| rowspan="3" | TraderInstruction.FilterGasContains
 
| rowspan="3" | TraderInstruction.FilterGasContains
| rowspan="3" | todo
+
| rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only matching Gases.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 288: Line 291:
 
|-
 
|-
 
| style="text-align:center;" | 8-39
 
| style="text-align:center;" | 8-39
| GAS_TYPES_BITFLAG
+
| GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]].
 
|-
 
|-
 
| style="text-align:center;" | 40-63
 
| style="text-align:center;" | 40-63
Line 295: Line 298:
 
! rowspan="3" | 18
 
! rowspan="3" | 18
 
| rowspan="3" | TraderInstruction.FilterGasNotContains
 
| rowspan="3" | TraderInstruction.FilterGasNotContains
| rowspan="3" | todo
+
| rowspan="3" | Filter Operation.<br/>User can append this OP after any TraderInstruction.Write* OP to filter writer's output.<br/>This OP's effective scope is the last Write* OP and before the next Write* OP.<br/>Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.<br/>This Filter narrows Write* OP's output to only not matching Gases.
 
| rowspan="3" | 0-31
 
| rowspan="3" | 0-31
 
| style="text-align:center;" | 0-7
 
| style="text-align:center;" | 0-7
Line 301: Line 304:
 
|-
 
|-
 
| style="text-align:center;" | 8-39
 
| style="text-align:center;" | 8-39
| GAS_TYPES_BITFLAG
+
| GAS_TYPES_BITFLAG<br/>See [[#Gas_Type_BitFlags|Gas_Type_BitFlags]].
 
|-
 
|-
 
| style="text-align:center;" | 40-63
 
| style="text-align:center;" | 40-63
 
| Unused
 
| Unused
 
|}
 
|}
 +
</div>
  
 
=== Metadata Payloads ===
 
=== Metadata Payloads ===
 +
 +
Since Metadata has 3 addresses, so it's referenced here as a 24 bytes(192 bits) payload.
 +
 +
<div class="overflowbugx" style="overflow-x:auto;">
 
{| class="wikitable" style="width:80%;"
 
{| class="wikitable" style="width:80%;"
 
! BitsOffset
 
! BitsOffset
| 0-23
+
| 191-168
| 24-55
+
| 167-136
| 57-63
+
| 135-128
| 64-95
+
| 127-96
| 96-103
+
| 95-88
| 104-111
+
| 87-80
| 112-119
+
| 79-72
| 120-127
+
| 71-64
| 128-151
+
| 63-40
| 152-167
+
| 39-16
| 168-183
+
| 15-8
| 184-191
+
| 7-0
 
|-
 
|-
 
! Contents
 
! Contents
 
| N/A
 
| N/A
 
| [[Trader#ContactTypeID|ContactTypeID]]
 
| [[Trader#ContactTypeID|ContactTypeID]]
| Constant: 2.
+
| OpCode of TraderInstruction.StrongestContactIdHash.
 
| N/A
 
| N/A
 
| Contacted<br/>0: false<br/> 1: true
 
| Contacted<br/>0: false<br/> 1: true
 
| Contact Tier: <br/>0: Close<br/>1: Medium<br/>2: Far
 
| Contact Tier: <br/>0: Close<br/>1: Medium<br/>2: Far
 
| Shuttle Type: <br/>0:None<br/>1: Small(3x3)<br/>2: SmallGas(3x3)<br/>3: Medium(5x5)<br/>4: MediumGas(5x5)<br/>5: Large(6x6)<br/>6: LargeGas(6x6)<br/>7: MediumPlane(7x7, runway:15)<br/>8: LargePlane(9x9, runway:20)
 
| Shuttle Type: <br/>0:None<br/>1: Small(3x3)<br/>2: SmallGas(3x3)<br/>3: Medium(5x5)<br/>4: MediumGas(5x5)<br/>5: Large(6x6)<br/>6: LargeGas(6x6)<br/>7: MediumPlane(7x7, runway:15)<br/>8: LargePlane(9x9, runway:20)
| Constant: 3.
+
| OpCode of TraderInstruction.StrongestContactMetaData.
 
| N/A
 
| N/A
 
| [[Trader#Trader_Tier|LifeTime]]
 
| [[Trader#Trader_Tier|LifeTime]]
 
| [[Trader#Trader_Tier|WattsToResolve]]
 
| [[Trader#Trader_Tier|WattsToResolve]]
| Constant: 4.
+
| OpCode of TraderInstruction.StrongestContactSignalData.
 +
|}
 +
</div>
 +
 
 +
=== Buy/Sell Payloads ===
 +
 
 +
Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.
 +
 
 +
<div class="overflowbugx" style="overflow-x:auto;">
 +
{| class="wikitable" style="width:60%;"
 +
! BitsOffset
 +
| 63-48
 +
| 47-16
 +
| 15-8
 +
| 7-0
 +
|-
 +
! Contents
 +
| N/A
 +
| PrefabHash/GasTypeBitFlag
 +
| Quantity<br/>This value is truncated so it won't be greater than 255 although the trader's Request/Stock is more than 255.
 +
| OpCode<br/>Which OpCode requested this data.
 +
|}
 +
</div>
 +
 
 +
=== Buy/Sell Child Payloads ===
 +
 
 +
Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.
 +
 
 +
<div class="overflowbugx" style="overflow-x:auto;">
 +
{| class="wikitable" style="width:60%;"
 +
! BitsOffset
 +
| 63-48
 +
| 47-16
 +
| 15-8
 +
| 7-0
 +
|-
 +
! Contents
 +
| N/A
 +
| PrefabHash/GasTypeBitFlag
 +
| ChildCount<br/>Counts how many instances of this item appeared as a child item.<br/>Beware it's not quantity, it's just a prefab type count.
 +
| OpCode<br/>If this data is requested by TraderInstruction.WriteTraderBuyData, then it's value is the OpCode of TraderInstruction.TraderBuyThingChildData.<br/>If this data is requested by TraderInstruction.WriteTraderSellData, then it's value is the OpCode of TraderInstruction.TraderSellThingChildData.
 
|}
 
|}
 +
</div>
 +
 +
=== Gas Type BitFlags ===
 +
 +
If the BitFlag equals 0, it's undefined. If the bit at specific offset is 1, it means the gas contains that component.
 +
 +
<div class="overflowbugx" style="overflow-x:auto;">
 +
{| class="wikitable" style="width:60%;"
 +
! BitsOffset
 +
| 16
 +
| 15
 +
| 14
 +
| 13
 +
| 12
 +
| 11
 +
| 10
 +
| 9
 +
| 8
 +
| 7
 +
| 6
 +
| 5
 +
| 4
 +
| 3
 +
| 2
 +
| 1
 +
| 0
 +
|-
 +
! Contents
 +
| PollutedWater
 +
| LiquidHydrogen
 +
| Hydrogen
 +
| LiquidNitrousOxide
 +
| LiquidPollutant
 +
| LiquidCarbonDioxide
 +
| Steam
 +
| LiquidVolatiles
 +
| LiquidOxygen
 +
| LiquidNitrogen
 +
| NitrousOxide
 +
| Water
 +
| Pollutant
 +
| Volatiles
 +
| CarbonDioxide
 +
| Nitrogen
 +
| Oxygen
 +
|}
 +
</div>
 +
 +
Special Gas:
 +
# Bit 0,1 both set to 1, which is Air.
 +
# Bit 0,3 both set to 1, which is Fuel.

Latest revision as of 21:36, 25 March 2025


Kit (Satellite Dish)
ItemKitSatelliteDish.png
Properties
Stacks Yes (10)
Recipe
Created With Electronics Printer
Cost 5g Gold, 10g Copper, 20g Steel, 5g Nickel, 10g Solder
Medium Satellite Dish
StructureSatelliteDish.png
Operation
Power Usage 200W
Construction
Placed with Kit (Satellite Dish)
Placed on Small Grid
Stage 1
Deconstruction
Deconstructed with Hand Drill
Item received Kit (Satellite Dish)

Description[edit]

The Satellite Dish is used together with a Computer fitted with a Motherboard (Communications) to allow Interstellar Communications.

The Satellite Dish must be guided by Satellite Tracking onto a signal and communications may be established once the signal strength is greater than 94%

Medium Satellite Dish[edit]

After "Big Changes Coming: Terrain Preview, Melting Ice, Modding, & Localization" update, Medium Satellite Dish has internal stack like Autolathe, which user can utilize it to give instructions to. The Medium Satellite Dish currently have 256Bytes(32 Addresses) stack memory.

Op_code Name Description Valid Address Bits Bits Description
1 TraderInstruction.WriteTraderData The dish will write out metadata(24 Bytes, in continuous of 3 addresses) to the specified starting index. E.g.: if set WRITE_INDEX to 1, then the metadata will span address 1-3. See Metadata Payloads. 0-31 0-7 Op_code
8-15 WRITE_INDEX
16-63 Unused
2 TraderInstruction.StrongestContactIdHash This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 1. 0-31 0-7 Op_code
8-39 TRADER_ID_HASH
40-63 Unused
3 TraderInstruction.StrongestContactMetaData This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 2. 0-31 0-7 Op_code
8-15 SHUTTLE_TYPE.
16-23 CONTACT_TIER.
24-31 CONTACTED.
32-63 Unused
4 TraderInstruction.StrongestContactSignalData This OpCode indicates the data generated by TraderInstruction.WriteTraderData payload segment 3. 0-31 0-7 Op_code
8-23 WATTS_TO_RESOLVE
See WattsToResolve.
24-39 LIFETIME
See LifeTime.
32-63 Unused
5 TraderInstruction.WriteTraderBuyData The dish will write out trader buy metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.
If an item contains child items, then it will be expaned inplace.
E.g.: <BuyPayload><BuyPayload><BuyChildPayload><BuyPayload>.
See Buy/Sell Payloads, Buy/Sell Child Payloads.
0-31 0-7 Op_code
8-15 WRITE_INDEX
16-23 WRITE_COUNT
24-63 Unused
6 TraderInstruction.WriteTraderSellData The dish will write out trader sell metadatas from the starting address WRITE_INDEX, and write WRITE_COUNT continuous addresses total.
If an item contains child items, then it will be expaned inplace.
E.g.: <SellPayload><SellPayload><SellChildPayload><SellPayload>.
See Buy/Sell Payloads, Buy/Sell Child Payloads.
0-31 0-7 Op_code
8-15 WRITE_INDEX
16-23 WRITE_COUNT
24-63 Unused
7 TraderInstruction.TraderBuyThingData This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 PREFAB_HASH
48-63 Unused
8 TraderInstruction.TraderBuyThingChildData This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 PREFAB_HASH
48-63 Unused
9 TraderInstruction.TraderBuyGasData This OpCode indicates the data generated by TraderInstruction.WriteTraderBuyData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 GAS_TYPES_BITFLAG
See Gas_Type_BitFlags.
48-63 Unused
10 TraderInstruction.TraderSellThingData This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 PREFAB_HASH
48-63 Unused
11 TraderInstruction.TraderSellGasData This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 GAS_TYPES_BIGFLAG
See Gas_Type_BitFlags.
48-63 Unused
12 TraderInstruction.TraderSellThingChildData This OpCode indicates the data generated by TraderInstruction.WriteTraderSellData. 0-31 0-7 Op_code
8-15 QUANTITY
16-47 PREFAB_HASH
48-63 Unused
13 TraderInstruction.FilterPrefabHashEquals Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only matching PrefabHash.
0-31 0-7 Op_code
8-39 PREFAB_HASH
40-63 Unused
14 TraderInstruction.FilterPrefabHashNotEquals Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only not matching PrefabHash.
0-31 0-7 Op_code
8-39 PREFAB_HASH
40-63 Unused
15 TraderInstruction.FilterSortingClassCompare Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only matching SortingClass.
0-31 0-7 Op_code
8-15 CONDITION_OPERATION
0: Equals
1: Greater
2: Less
3: Not Equals
16-31 SORTING_CLASS
See Sorting_Class.
32-63 Unused
16 TraderInstruction.FilterQuantityCompare Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only matching Quantity Condition.
0-31 0-7 Op_code
8-15 CONDITION_OPERATION
0: Equals
1: Greater
2: Less
3: Not Equals
16-31 QUANTITY
32-63 Unused
17 TraderInstruction.FilterGasContains Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only matching Gases.
0-31 0-7 Op_code
8-39 GAS_TYPES_BITFLAG
See Gas_Type_BitFlags.
40-63 Unused
18 TraderInstruction.FilterGasNotContains Filter Operation.
User can append this OP after any TraderInstruction.Write* OP to filter writer's output.
This OP's effective scope is the last Write* OP and before the next Write* OP.
Multple filter OP can be written to the addresses after a Write* OP to group as a "AND" condition.
This Filter narrows Write* OP's output to only not matching Gases.
0-31 0-7 Op_code
8-39 GAS_TYPES_BITFLAG
See Gas_Type_BitFlags.
40-63 Unused

Metadata Payloads[edit]

Since Metadata has 3 addresses, so it's referenced here as a 24 bytes(192 bits) payload.

BitsOffset 191-168 167-136 135-128 127-96 95-88 87-80 79-72 71-64 63-40 39-16 15-8 7-0
Contents N/A ContactTypeID OpCode of TraderInstruction.StrongestContactIdHash. N/A Contacted
0: false
1: true
Contact Tier:
0: Close
1: Medium
2: Far
Shuttle Type:
0:None
1: Small(3x3)
2: SmallGas(3x3)
3: Medium(5x5)
4: MediumGas(5x5)
5: Large(6x6)
6: LargeGas(6x6)
7: MediumPlane(7x7, runway:15)
8: LargePlane(9x9, runway:20)
OpCode of TraderInstruction.StrongestContactMetaData. N/A LifeTime WattsToResolve OpCode of TraderInstruction.StrongestContactSignalData.

Buy/Sell Payloads[edit]

Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.

BitsOffset 63-48 47-16 15-8 7-0
Contents N/A PrefabHash/GasTypeBitFlag Quantity
This value is truncated so it won't be greater than 255 although the trader's Request/Stock is more than 255.
OpCode
Which OpCode requested this data.

Buy/Sell Child Payloads[edit]

Buy/Sell Payloads are 1 address each, so it's referenced here as a 8 bytes(64 bit) payload.

BitsOffset 63-48 47-16 15-8 7-0
Contents N/A PrefabHash/GasTypeBitFlag ChildCount
Counts how many instances of this item appeared as a child item.
Beware it's not quantity, it's just a prefab type count.
OpCode
If this data is requested by TraderInstruction.WriteTraderBuyData, then it's value is the OpCode of TraderInstruction.TraderBuyThingChildData.
If this data is requested by TraderInstruction.WriteTraderSellData, then it's value is the OpCode of TraderInstruction.TraderSellThingChildData.

Gas Type BitFlags[edit]

If the BitFlag equals 0, it's undefined. If the bit at specific offset is 1, it means the gas contains that component.

BitsOffset 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Contents PollutedWater LiquidHydrogen Hydrogen LiquidNitrousOxide LiquidPollutant LiquidCarbonDioxide Steam LiquidVolatiles LiquidOxygen LiquidNitrogen NitrousOxide Water Pollutant Volatiles CarbonDioxide Nitrogen Oxygen

Special Gas:

  1. Bit 0,1 both set to 1, which is Air.
  2. Bit 0,3 both set to 1, which is Fuel.