Game Help Files

14.11 Offices

Offices are used to set up automated logistical networks to ship, refine, manufacture, and market commodities. (As a prerequisite to this file, you should read HELP CARGO CONTRACTS, HELP MANUFACTURING, and HELP MARKET).

Offices can be opened on stations, structures, and celestial bodies using the OFFICE OPEN <HERE|location>. Offices cost 15,000 marks to set up. Additional office syntax includes:

OFFICE LIST                          View your Offices.
OFFICE <#|HERE> CLOSE                Permanently close an Office.
OFFICE <#|HERE> INFO                 View info on an office.
OFFICE <#|HERE> UNDESIGNATE          Remove an org affiliation from an Office.
OFFICE <#|HERE> DESIGNATE <org>      Designate Office to an org.
OFFICE <#> TASK ...                  See below
OFFICE SIGNAL ...                    See 'Signals' below.

Most commands can be prepended with FACTION/DYNASTY/CLAN to manage offices that have been designated to an organization where you have the 'Offices' power. Note that designating or undesignating will require you to delete all tasks at the office.

Players can open up to 20 offices and can have multiple offices in the same location. This number can be increased using the Extra Office x4 artifact which stacks up to 5 times, for a final maximum office count of 40 per player. Offices designated to an organization count towards your office limit.

Office tasks
------------

Office tasks give an office at a location a task to perform routinely, given a specified set of criteria. Office tasks come in three varieties:

Shipping: Instruct the office to form a cargo contract to ship local goods to and fro.
Manufacturing: Instruct the office to manufacture local goods in a refinery or autofactory structure.
Marketing: Instruct the office to list local goods for sale on the market.

Each office can have up to 20 tasks, which can be increased by linking the office with the Extra Office Tasks x10 artifact which stacks up to 2 times, for a final maximum task count per office of 40.

Use OFFICE <#> TASK NEW to enter the process of task creation. You will be asked a series of questions. Follow the prompts to set up your task. All task types have a criteria that you can set which the office will make sure is satisfied before the specified action is performed. When a task is performed successfully, the task will persist and the office will continue to periodically check and do the task, ad infinitum.

Additional task-related syntax includes:

OFFICE <#> TASK LIST                 View your Office's current tasks.
OFFICE <#> TASK <#> DELETE           Permanently delete a task.
OFFICE <#> TASK <#> SUMMARY          View a summary of an office task.
OFFICE <#> TASK <#> <ENABLE|DISABLE> Enable/Disable an office task.

These commands can be prepended with FACTION/DYNASTY/CLAN to manage tasks in offices that have been designated to an organization where you have the 'Offices' power.

Sometimes, an office will encounter a Problem when performing a task. There are many potential Problems and, when one comes up, the task will be disabled, you will be notified, and the details of the problem will be available in OFFICE <#> TASK <#> SUMMARY. Depending on the nature of the problem, you may simply choose to ENABLE the task again, or you may have to delete the task and set it up again with stricter criteria.

Note that office tasks, once made, cannot be modified. You must delete the task and remake it if you wish to make modifications, however small. This is necessary due to the large number of parameters that go into defining a task.

Office signals
--------------

Office signals are an optional, advanced feature useful for setting up complex logistical networks. In the task creation wizard, you are able to check whether a custom signal is in the ON or OFF position as a criteria for the task to be performed. You are also able to set a custom signal to the ON or OFF position when the task is successfully performed. Signals have custom names like "sent_qpc" or "do_the_thing". Signals in your or your organization's office network can be viewed using OFFICE SIGNALS. Signals can also be manually modified using OFFICE SIGNAL SET <signal> <ON|OFF>. If a signal has not been initialized (and does not appear in OFFICE SIGNAL LIST) then it is treated as being in the OFF position for the purposes of task criteria checks.

Use cases for office signals
----------------------------

You don't need signals for basic logistical setups, but more complex setups can benefit greatly from them and allow for infinite possibilities!

Use Case #1, handling multiple destinations from the same origin:

Say you have an office at an autofactory making QPCs. Some of those QPCs you want to be sent back to your home station to list on the market, some you want to send to make Modular powercores, and some you want to send to make Sensors. This would require 3 shipping tasks. Rather than needing to set very finnicky and prone-to-error "At least" and "At most" checks, you can do the following:

Task #1: Waits for 100 QPC, sends 30 home. Sets the "sent_qpc_home" signal to ON. Requires the "sent_qpc_home" signal to be OFF.
Task #2: Waits for 100 QPC, sends 30 to autofactory_2. Sets the "sent_qpc_af2" signal to ON. Requires the "sent_qpc_af2" signal to be OFF.
Task #3: Waits for 100 QPC, sends 30 to autofactory_3. Sets the "sent_qpc_af3" signal to ON. Requires the "sent_qpc_af3" signal to be OFF.
Marketing task at home station: Waits for 30 QPC, lists them on market, and sets the "sent_qpc_home" signal to OFF.
Manufacturing task at autofactory_2: Waits for materials, manufactures them into Modular Powercores, and sets the "sent_qpc_af2" signal to OFF.
Manufacturing task at autofactory_3: Waits for materials, manufactures them into Sensors, and sets the "sent_qpc_af3" signal to OFF.

And there we have it! Signal setups could be much more complex if you require it and used to, for instance, delay manufacturing one thing until something else is being manufactured somewhere else! You could also use signals to completely change the behavior of your logistical network when a given signal is ON. For instance, you could have a signal that lets you cut off all battery production manually in one command!

Signal Gates and Conditional Signals
------------------------------------

The above scenario has a potential pitfall. If autofactory_2 or autofactory_3 are waiting on some other commodities which never arrive due to a resource shortage, Task#1 will simply constantly send QPCs home to market!

If your advanced logistics network requires razor precision, look no further than Signal Gates and Conditional Signals!

Signal gates are logic gates that compare two input signals, which can include other signal gates. If you are unfamiliar with logic gates and would like to use these for your Starmourn logistics empire, we recommend doing some independent research on logic gates!

To set up a new signal gate, use the syntax: [FACTION|DYNASTY|CLAN] OFFICE SIGNAL GATE <name> <signal1> <operator> [signal2]. You can use any of the 7 canonical logic gate operators: AND, OR, NAND, NOR, XOR, XNOR, and NOT. Except in the case of NOT, all operators require 2 signal inputs. Here are examples of each:

AND  - Gate is ON if both Signal1 and Signal2 are ON.
OR   - Gate is ON if either Signal1 or Signal2 are ON.
NAND - Gate of OFF if both Signal1 and Signal2 are OFF.
NOR  - Gate is OFF if either Signal1 or Signal2 are ON.
XOR  - Gate is ON if either Signal1 or Signal2 are ON, but not both.
XNOR - Gate is OFF if either Signal1 or Signal2 are ON, but not both.
NOT  - Gate is ON if Signal1 is OFF, Gate is OFF if Signal1 is ON.

Conditional Signals, on the other hand, allow for advanced, ad hoc checks. These have a condition formula of <method or value> <operator> <method or value>. A value is just a number. Operators include all of the standard relational operators: ==, !=, >, <, and <=. Otherwise, there are 4 methods you can use to set up your condition:

Method name     Param 1      Param 2                Description
COMM_QUANTITY   <comm>       <ANYWHERE|location>    Used to check how much of a commodity is present at a location, or anywhere, in the office network. 
MARKET_QUANTITY <comm>       <ANYWHERE|location>    Used to check how much of a commodity is being sold at a location, or anywhere, in the office network.
CYCLE_FEE       <structure>                         Used to check the cycle fee at a structure.
TAX             <structure>                         Used to check the production tax or extortion fee at a structure.

Conditional signals can be defined using [FACTION|CLAN|DYNASTY|CLAN] OFFICE SIGNAL CONDITION <name> <value or method> [method param 1] [method param 2] <operator> <value or method> [method param 1] [method param 2]. For instance OFFICE SIGNAL CONDITION MARKET_SIGNAL MARKET_QUANTITY KINETIC_BATTERY IOTA > 500 would define a new signal called 'market_signal' that would turn ON when you have more than 500 kinetic batteries for sale on the Iota market. Both the left and right sides of the operator can use a method! So you could also do: OFFICE SIGNAL CONDITION DISHEET_CHECK COMM_QUANTITY DISHEET OMNI > COMM_QUANTITY DISHEET IOTA. This would define a new signal called 'disheet_check' that would set to ON if you have more disheet in Omni than you do in Iota.

Conditional signals can be combined with other conditional signals, signal gates, or normal signals using signal gates, to allow for very precise checks in your supply chain!

Signal gates cannot be set directly by tasks, they can only be checked.

Using signal gates, you can accomplish logistics networks of potentially infinite complexity!