Orch Star

Orch Star

Not enough ratings
Editor Advanced
By Hybris and 1 collaborators
This guide describes features of the Editor which allow for more detailed scenarios, such as Custom Functions and Dialog.
   
Award
Favorite
Favorited
Unfavorite
Custom Functions
Use Cases
With a few exceptions such as the Tutorial labels, all custom behaviour seen in the official Campaign and Skirmish scenarios was created in the public Editor. Custom functions are a powerful tool for you to customise your scenario. Here are some examples of behaviour you can create:
  • Win Conditions - You can create custom objectives by triggering victory when any condition is reached. You can also track objectives using gauges or dialogue.
  • Activate Dialog - You can present dialog for specific, or all, players using different dialog characters. Adjust display time, response options, and create conversation trees.
  • Show Title text - As an alternative to dialog, you can also present the player with any information with the same style as the Title displayed when the scenario starts.
  • Call Reinforcements - You can trigger reinforcement nodes for different players to swing battles.
  • Destroy Planets - You can even destroy planets or other nodes in violent explosions!
How does it work?
Custom functions are created using nodes and connections, like a flowchart. Similar to flowcharts, the basic principle is that each function has a Start node which emits a signal when the game begins. The signal then passes on to each connected node which either passes on, blocks, or destroys the signal. Since the signal passes on to all connected nodes, it can split up into multiple signals along the way. There are 3 different node types: Conditions, Actions and Branches:

Note: You can also place Empty nodes, which always passes along the signal.

Conditions evaluate a condition when reached by a signal. There are multiple condition types, eg. Timer, Random Chance and Node Status. If the condition is reached (evaluates to True), the signal is passed to all connected nodes. If not, the signal is either blocked until the condition is reached or terminated, depending on the setting for the Condition node.

Actions perform an action when reached by a signal. Actions always perform their action and cannot pass along the signal; if you want to continue the function, connect a new node next to the Action. Examples of actions are: Call Reinforcements, Trigger Victory and Start Dialog.

Branches are used to manipulate signals, and mostly used for more advanced behaviours. If you're familiar with programming, you'll likely recognise the Branch nodes: Else, Or, And and Random. Random is the simplest; it passes the signal on to a random outgoing connection. The other branches work in conjunction with condition nodes to check multiple conditions at the same time, or to add alternative signal routes when conditions fail (as implied by their names.)

I will not go through all available nodes here since whenever you select a node, its documentation is shown in the right-hand window.
Custom Ruleset
First off, custom functions are not allowed in scenarios with the default Deathmatch ruleset,
since the ruleset is intended for pure, unscripted deathmatches as the name implies. Instead, change the ruleset to Custom under Edit→Globals. Open the Custom Functions window under Edit→Custom Functions to get started.


The Custom Functions Window
An image of the Custom Functions window is shown to the right. This is the Victory Conditions function generated by the Deathmatch ruleset; it triggers a victory for a team whenever all opposing teams have 0 ships and nodes (planets) left. The center of the image is the function itself; notice how nodes are branching out from the leftmost Start node. This example also shows all types of nodes: Branches (yellow), Conditions (white), Actions (purple) and Empty (green).

You can add, remove and rename functions in the menu at the top. It is recommended to separate each behaviour into its own function to keep them concise and easy to test. The checkbox near the top, Start Function Immediate, makes the function activate immediately instead of once a player arrives at a planet. Near the bottom is a slider to zoom in/out of the function, and a button to return to the origin (the Start node.)
Story Events
If you've already started browsing the available function nodes, you've probably noticed the Compare Story Event condition and Set Story Event action. Both nodes require you to select a Story Event before proceeding. To create Story Events, select Edit→Story Events to open the Story Events window.

You can use story events to keep track of any value you want. You could use them to count how many seconds have passed, or how many seconds have passed while Player 1 has controlled planet A. The possibilities are really only limited by the condition nodes available.

Story events are essentially variables; named values which you can modify and compare during the game. When creating a story event, start by giving it a unique name. Then select one of the two different value types; Integer or Boolean. Integers are for numeric values, while Booleans only have two states, True or False. Once the story event has the correct type, give it a start value and it is ready to use.

Another function node related to story events is the Set Gauge action. This action is used to create, configure and destroy arbitrary UI gauges. Gauges are always tied to a story event with the Integer type, and automatically updated as the connected story event changes.

For example, to create a timer, start by creating a story event named Timer. Give it type Integer and start value 60. In a custom function, set a repeating Timer condition to decrement the Timer story event using the Set Story Event action. Then, use the Set Gauge action to create the gauge connected to the Timer with interval 0 to 60 and display format Time (mm:ss). Now, you should have a working 1-minute timer in your scenario!
Controls
Before you start hammering away function nodes, let's go over the controls for custom functions.
  • Left Mouse Button
    • Click Nothing - Create new Empty node.
    • Click Node - Select node to open edit options.
    • Hold and Drag Nothing - Select area of nodes. While multiple nodes are selected, you can move and remove them together like a single node.
    • Hold Brief and Drag Node - Creates a connection from node. Release button on another node to complete the connection between two nodes.
    • Hold Long and Drag Node - Move node.
  • Right Mouse Button
    • Click Node - Delete node.
    • Click Connection - Delete connection.
    • Hold and Drag Nothing - Move your view of the function.
  • Scroll Wheel
    • Click Node - Duplicate node.
    • Hold and Drag Nothing - Move your view of the function.
Dialog
Dialog Actors
All in-game dialog is read by Dialog Actors. The actors are represented by a holographic bust as well as a name and a title. Start by opening the Dialog Actors window under Edit→Dialog Actors to create your own actors. At the top of the Dialog Actors window is a dropdown of all actors available in this scenario. Select the actor you want to edit, or create a new one using the button below.

Start by selecting the Visuals tab. Select different actor bust models using the first dropdown. The actor preview should update as you edit the visuals. Once you've found a fitting model, use the Color field to specify the actor's color. Both the hologram and the text boxes used whenever this actor is reading dialog uses this color. You can either use a Team's color or specify a unique color for actors.

Then, select the Name tab and give the actor a fitting Name and Title. These are displayed in the box directly below the actor whenever the actor reads dialogue.















Dialog Action
Once you have an actor to read your dialog, you can create the dialog action. Dialog is triggered using the Custom Functions in the Start Dialog action. Note: If you don't know how to use the Custom Functions, see the Custom Functions chapter.

Although dialog can be triggered at any time using the Custom Functions, start by attaching a Start Dialog action directly to the Start node to quickly test your Dialog Actor. As a helpful side note, an inverted Dialog is displaying condition is often useful when you want to delay your dialog until any previous dialog has been cleared.

To start writing the dialog, press the Edit Dialog button while the Start Dialog action is selected. Here, you can also change which Teams should see the dialog, as well as add an optional descriptive label only seen in the Custom Functions window.

Writing Dialog
Pressing the Edit Dialog button as instructed in the previous part opens the Dialog Conversation window. Think of this as expanding the contents of the Start Dialog action node. Here, you can create dialog entries and connect them as you would create nodes and connections in the Custom Functions window. As seen in the image to the left, the interface is very similar to that of the Custom Functions window, with a graph to the left and a menu to the right while a node is selected.

Dialog entries can be of two different types; Messages or Choices. A message is a simple dialog message, while a choice is a message with response options attached at the end. You can change entry type at the top of the right-hand menu. Below the entry type are options for the message itself. Select which Dialog Actor should read the message, then write the message text itself.

You can also change the speed at which the message is read, the delay until the message is automatically cleared, and whether the user is allowed to pause the delay by hovering over the message. Immediately below the message text box is a Signal field. This field is optional, and allows you to send a named signal once the message is cleared. This signal can be caught with the Dialog Signal custom function condition. The signal system is also used by the responses when using the Choice dialog entry type to allow you to script different in-game events depending on the player's chosen response.

Dialog in Multiplayer Scenarios
When choosing which teams should see the dialog, the most common Display Team options of dialog actions are [All] and specific teams. [All] displays the dialog to all teams, where each player individually controls their own dialog. Choosing a specific team or [Local Player] (the host, useful in single-player scenarios) works in the same way, except only one team is shown the dialog. [Shared] works similar to [All] in that all players are shown the same dialog. The difference between the two are that when using [Shared], dialog entries are individually controlled by a single player and synchronised to all other players.

When using the [Shared] Display Team option, use the Controlling Team field of dialog entries to determine which player controls the dialog entry. Controlling an entry means making dialog choices or dismissing messages. If the [Shared] Display Team option is not used, this field has no effect and can be left at [Local Player].
Additional Details
Planet Lore
As you may have seen while playing the Orch Star campaign, planets and other celestial bodies show a description when scanned. To write a description for a planet, select it to bring up its menu. Under the Story and Description headers, press the Edit Description button to bring up a text box with the planet's current description. Edit this text to set the planet's description. You can also write description for stars in the same way.

You can also add arbitrary statistics such as population to planets. These are accessed in the same menu, below the Description header. You can add any number of statistics here, just keep in mind the text should fit the scanner's text box!

Planet Visuals
The Editor Basics guide describes how to change the model and physical properties of planets themselves. However, you can also add rings and satellites such as moons to planets by right-clicking them and selecting the appropriate dropdown item.

Planets can only have one ring, which can be edited using the same dropdown as they are created in. Satellites are edited by selecting them in the world. While selected, both visual items should bring up a menu of options to the right.

Planet Gameplay Statistics
Sometimes when creating scenarios, you want some planets to be tougher than others. To achieve this, you can edit two variables: the time required to capture the planet and the planet's defence system. Capture time is located at the top of the planet's menu together with a flag to disable capture entirely.

You can also add Defence systems to planets. Settings for this can be found at the bottom of the planet's menu. Change Cannon Type to change the type and visuals of the cannons. Defend Situations determines if the cannons should be active while the planet is defending against attackers, while the planet is being captured, or both cases. Defence Strength determines how effective the defence cannons are at damaging attacking ships, and Spin Speed is for the speed of the cannons' visual spin, which works in the same way as planets' spin.








Adding Spells
To give a team access to spells, open the Team window for that team (see Editor Basics: Adding Gameplay: Editing Teams) and find the entry for Spells. Select a spell in the dropdown, then press Add Spell to add the spell to that team's list of available spells. Spells can be removed from the list by pressing the spell's [-] sign. All spells in this list will be added to the team's spell-caster ships.