Wiki/Manual on github
github Repository Page
Small Pre-released part of next Update:
Just for info: i am currently working on an bigger Update where i add a bunch new functionality and also seperate essential and non-essential parts of this Project into diffrent Mods - and i confirmed that this Optional Mod greatly improves Ship Behavior if they turn high up or down because it removes their usual Angular Limitations. Since its a non-essential part to improve general Behavior i am hereby releasing it as seperate Optional Mod for now.
https://www.dropbox.com/s/junfqsjl8nfxc ... on.7z?dl=1
What this Script is currently:
Currently implemented is a Manager-based Trading Script for Stations and a rewritten Architect both making use of the Framework which is the Core of this Project.
Common Features for all Employees:
-> Command queue for arbitary Commands
-> Dialogue Tree rewritten from Scratch (with focus on consistency)
Manager Features:
-> As usual the Manager does regular tries in Zonetrading, but also gets Order Requests from his Trading Ships and sends them getting his desired Wares.
-> This is done by using each Ships Trade Order List, so the Player can always see what each of his Ships is up to.
(the menu item to clear this List is available, but the Player can not clear it or remove Trade Orders - this is intentional)
-> Also the Manager knows about priorities and takes ordered but not yet delivered Wares into account, but wont lock up if a priority item is unavailable.
-> He can also Mine Gasses/Liquids locally without relying on Mining Ships (needs Gas Collector Drones though)
-> He may also send Ships to Mine instead of Trading if they are equipped for it.
-> In Addition now Energy Cargo Bays can Store Fuel Cells which makes them excellent Delivery Ships for them (also affects Station Cargo)
-> The Manager will use this by buying Fuel Cells and the Captains will refuel from their Homebase instead of Travelling to Fuel Stations
-> In Addition all Ships use an own set of Movement Scripts for Navigation, see changes compared to Vanilla here
Architect Features:
-> in addition to the usual Icon-In-Space method you can also contact the Architect to build anywhere (if you give him a sector or cluster she will pick a permanent zone inside there randomly)
-> Orders for extending a Station are queue-able
-> and you can also shedule detaching the CV freeing it up for another Station
-> Also the Architect will transfer everything which is useful for the completed Station from his CV when a build Step is done (Manager, DO, Specialists, Transport Drones (all but 20), Gas Collectors)
Captain:
-> Currently not much implemented, just enough to fulfill his superiors Orders.
-> you can give him a "Fly to.." Order in his Orderlist though
-> also some Settings for his Jump Behavior are available (always jump to beacon, always jump to a random Object in the Taget Sector, or decide yourself if its the former or latter)
-> you can also tell the Ship to do some independent Trading (experimental feature, mostly untested)
==> IMPORTANT NOTE: There is currently no way to revert Architects, Captains and Managers back to Vanilla Behavior. You can remove them using the Integrated Debug Commands and assign a new one with Vanilla behavior though
How to use (Manager only):
-> Assign a Manager to a Station
-> Talk with him and use the Menu Item "Convert to UT CAC | 1"
-> Now give him some Money (hint: fastest way when you now talk to him is 5 - 5 - 5 (Personal Settings - Money - Give wanted Money)
-> also give him some Trading/Mining Ships by
A) telling the captain he shall work for the Manager or
B) talk to the Manager and use 4 - 1 (Subordinate Managment - Take all Ships in Player Squad) (ships added with this method will inherit the managers log debug behavior)
- - note that Ships not useable by the Manager will not be accepted by the Manager and therefore be without Superior then, but otherwise remain unchanged
How to use (Architect + Manager):
-> you can activate the Architect part by having a Manager on the Skunk, flying nearby the CV (nearer than 10km) and telling him to go to the nearby CV and convert it
-> the Architect can now either use the usual way of building a Station (via Icons in Space) or you can contact him to build in a certain Area (His/Your current Zone or select it from Map)
-> then you should give the Manager on board of the CV enough Money for Station Construction AND Initial Ressource aquiring (if construction began he will have an Option to give enough Money for both in his Personal / Budget Options)
-> after the Build Order was given you can also add additional Orders to extend the Station immediately afterwards or detach the the CV (note: you can still add build orders after the detach order, but those will simply exit immediately when processed)Additional
hints when using Architect/Manager Combi:
-> dont forget to give the Architect some Ships (when doesnt matter) - he will pass them to the Manager who will send them first for aquiring Build Materials and, after the initial build is complete, to get Ressources (and buildmaterials when he has enough for production)
-> you can also park Specialists and an DO on the CV and they will be transferred to the Station when a build step is complete and the Station can use them.
-> when a Build Step is complete the CV will transfer all but 20 Transport Drones from its Hangar to the Station - so you can basically equip it with them before you even decided what station to build Wink
-> in addition i added the possibility to add Scoop Collectors to a CV when building it - these will also be transferred to the Station (because my Manager knows how to use them Wink )
NOTE: function to re-equip the CV with Drones on a Shipyard is not included yet.
Planned Short-term additions/changes:
-> Usage of Fight Ships for Station Defence or Escorts of Trading Ships
-> Apporiate Equipping of Ships for their Jobs (Mining Ships will gett Mining Drones if they have none for example)
Planned Mid-term additions
-> Adding Experience Gain to NPCs for certain activities added in a very basic way
-> Usage of this Experience by the Scripts added in some parts, but will be extended
-> Better useable Dialogue Trees for Player NPCs with more Functions than currently
Planned Long-Term Additions/Changes
-> make Fight Ships seperate from Stations as beginning for Managing Fleets
-> make the Scripts also available to the Player for his direct Subordinates for better Control
- - Better usage of emergency calls: you can tell all NPCs in how bad the Situation must become to call the superior for assistance (btw: no outstanding Orders and no useful stuff to do is the "worst" possible situation)
Planned Long-Long-term goal
-> full Fleet Management, more Control of what Ship will do what and when based on Order Lists (similiar to Trade Lists, but with more functions) so you can plan your invasion for days in detail just to see everything fall apart on first contact
-> completely new Scripts for everything, written from Scratch
-> all of this is also used by NPCs, not just for Player assets
-> completely rewritten Dialogue Trees for everyone (or at least for Player-owned NPCs)
Technical Info: internally used Command Structure (the core of it all - over-complicated for stuff like Trade runs, but opens many possibilities)
With this Script package i am using a diffrent Approach for managing Orders to Objects (not the usual "each Ship runs a main Script depending on its Job" but a more generic approach):
-> Similiar to Trade Orders all NPCs use a Command queue (this.$orderlist) which is basically a list of tables
where each table entry (called $order or $params from here, depending on context) defines an Order to be executed and the table Values are the params to it,
which can be named freely with the exeption of currently one entry:
$order.$script (or a param named 'script')
this Value defines the Script Name to be executed for this Order and therefore the param name will always be the same as the script Name.
-> this is done by making a base script for each entity type which basically
A) sets up Variables (like this.$orderlist),
B) stupidly goes through the this.$orderlist and
C) if this.$orderlist is empty checks which default behavior makes most sense currently to add it to this.$orderlist (and may contact the superior for new Orders)
-> All scripts called with this also require a param named 'params' - it is the aforementoined $order/$params table passed to the script instead of Parameters because we cannt define them dnyamically when calling a Script. You can still use the usual params, but they all have to be optional (=have a default value) to avoid unnecesary Errors to the debuglog
You have to set all params from the Table first before doing anything else (or directly work with the table for small stuff)
-> Another difference to all current Scripts is the requirement that all $order s MUST end at some point to allow continuation with another Order
(best is to make run time as short as needed, like for Trading just execute a single Trade run and exit - and if you need to do more trades just add them further entries to this.$orderlist )
if you need endless loops either just exit at regular intervals and before that add yourself to the end of the this.$orderlist (just add $params to its end to execute your current command with the same params as currently) or check regluary if this.$orderlist.{2}? has been added and terminate to allow the other script to run (and maybe add yourself to the this.$orderlist again; this method is not good because this way the default/fallback orders like refueling or rearming may never be reached, so try to avoid it.)
or
you can also modify this table if you want certain values to persist or want to change certain params for the next run. (or add diffrent Orders, like my Mining Script does when done mining - it lets the trading Script do the unloading)