Draconic Control

You are watching the page for more advanced topics. If you're simply interested in the control program itself, you can return here.

Manual shutdown

Once the reactor has been started, it can not simply be shut down manually. If you still do so, the reactor will most likely explode.
Why is that?
When the reactor is shutting down it stops outputting energy, but the reaction itself will continue until the saturation has reached 99% or higher. Since the reaction will still be active, the containment needs to be powered. However since the reactor stops outputting energy, the containment can not be maintained and will subsequently fail. BOOM!
So what to do?
Before you shut down the reactor, make sure there is at least 800 million RF stored in the energy storage your reactor is feeding its containment off. If you have enough RF stored, it is safe to stop the reactor using one of the following methods:
  1. If you're using the GUI, hit the health-display repeatedly and the controller will shutdown the reactor.
  2. You can use
    draconic_control shutdown
    will shut down all connected reactors.
  3. Open the reactors GUI and shut down the reactor.
In either case, make sure to wait until the reactor has completely cooled off before breaking anything. If you don't: BOOM!

Tweaking

Ok, wow. You like to experiment, huh? I like you :)
Welcome to the tweaking guide! The controller offers different variables that allow changing its behaviour: Sweet, huh? But there is one problem: As you may know (or will find out soon), Draconic Evolution Reactors easily have runtimes of multiple days up and in some cases up to weeks in real time. Testing different parameters and measuring them is a pain. Also your stuff may blow up and even in creative that's annoying. Fortunately I've written a simulator which you may want to take a look at.

DC Simulator

The DC Simulator is a small command-line program written in C++ that simulates a Draconic Reactor controlled by my controller algorithm. As it's a command-line program, knowing how to use one may prove to be of help.

If you run it without any arguments, the program will tell you how to run it: Usage:
DC Simulator for Controller v1.4.2 (DE 2.0.10.194)
Usage: draconic_simulator.exe <parameter>=<value>...
For more information please use: draconic_simulator.exe help
You'll notice that most arguments map to the configurable parameters. Note that panic_temp_base refers to the TEMPERATURE_LIMIT parameter.
The fuel_in_ingots argument accepts the fuel in ingots or "max", which refers to 72 ingots. You can also go higher for fun but those simulations are basically useless. Also note that there is no real sanity checking on the arguments so you can easily crash the simulation by inputting garbage. The quiet parameter allows you to disable the console output during simulation which greatly increases simulation speed (useful if doing a couple of test runs). At the end of a simulation the program will print a summary of everything:
>draconic_simulator.exe fuel=max drainback=1.1 panic_temp_base=10000 throttle_temp=8115 target_sat=0.1 ticks_between_control=20 throttle_exp=0.12 panic_exp_base=2.79 throttle_sat=0.58 burn_rft=2000000 quiet
DC Simulator for Controller v1.4 (DE 2.0.10.194)
Simulating...

Reactor shut down after 10916126 ticks ( 6 days 7:36:46.300 ).
Reactor shutdown took 1165526 ticks ( 0 days 16:11:16.300 ).
State:        COOLING
Temperature:  2001 ░C
Field Charge: [  9.13%]   9134397.42 / 100000000.00
Saturation:   [100.00%]    999999777 /   1000000000

Field Input:  1511.02 RF/t
Field drain:  1373.00 RF/t
Fuel left:    60.43 mB (0.58%)
Fuel usage:   0.00 nB/t
Generation:   1.00 RF/t


RF Generated: 1.85319e+13 ( over generation time: 1.90059e+06 RF/t | over total runtime: 1.69767e+06 RF/t )
RF required for shutdown: 5.64036e+09 ( 0.030% of total generation )
RF/t peak: 3.487e+06 RF/t
RF/t drain peak: 6.368e+05 RF/t

Want to try it out? You can download it here:

64bit Windows 32bit Windows Visual C++ Redistributable
One last note: The programs output does not fit into terminals prior to Windows 10. On older Windows versions you may want to run it in PowerShell to avoid troubles.

Presets

Below you can find a few presets. The stat summary refer to runs with max fuel unless noted otherwise.

Default

Average output1.107 MRF/t
...not including shutdown1.14288 MRF/t
Peak output2.035 MRF/t
Energy yield2.32517 TRF
Total runtime12 days 3:43:30.050
Shutdown phase9:09:32.050
reactors = {
	{
		reactorAddress = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
		fluxGateDrainbackAddress = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
		fluxGateOutputAddress = "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ",
		drainback = 1.25,
		targetSaturation = 0.5,
		throttleSaturation = 0.90,
		throttleTemperature = 8000,
		throttleExponent = 2.5,
		limitTemperature = 9000,
		limitExponent = 6,
		burnConversion = 0,
		burnRFt = 0
	}
}

My max RF/t config (needs retweaking but works)

Average output1.69767 MRF/t
...not including shutdown1.90059 MRF/t
Peak output3.487 MRF/t
Energy yield1.85319 TRF
Total runtime6 days 7:36:46.300
Shutdown phase16:11:16.300

This configuration is optimized for runs with max fuel. If you don't intend to run your reactor with max fuel, set "burnRFt = 0". Instead, you may want to try "burnConversion = 0.41".
reactors = {
	{
		reactorAddress = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
		fluxGateDrainbackAddress = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
		fluxGateOutputAddress = "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ",
		drainback = 1.1,
		targetSaturation = 0.10,
		throttleSaturation = 0.56,
		throttleTemperature = 8115,
		throttleExponent = 0.12,
		limitTemperature = 10000,
		limitExponent = 2.79,
		burnConversion = 0,
		burnRFt = 2000000
	}
}

Breeder

Average output591 KRF/t
...not including shutdown534 KRF/t
Peak output1.398 MRF/t
Energy yield768 MRF
Total runtime19:57:11.050
Shutdown phase1:54:11.050

This configuration will run the reactor as inefficiently as (somewhat sanely) possible. You will get about 1 chaos shard per day. Only extract the big chaos fragments from the reactor when refuling to speed up the next cycle (= Extract 7 big fragments, put back in 7 blocks of awakened draconium - leave the nuggets in there).
reactors = {
	{
		reactorAddress = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
		fluxGateDrainbackAddress = "YYYYYYYY-YYYY-YYYY-YYYY-YYYYYYYYYYYY",
		fluxGateOutputAddress = "ZZZZZZZZ-ZZZZ-ZZZZ-ZZZZ-ZZZZZZZZZZZZ",
		drainback = 1.175,
		targetSaturation = 0.07,
		throttleSaturation = 0.09,
		throttleTemperature = 9000,
		throttleExponent = 100,
		limitTemperature = 10000,
		limitExponent = 0.5,
		burnConversion = 0,
		burnRFt = 0
	}
}

Disclaimer, Copyright and other stuff.

First things first: I'm not responsible for any exploding reactors or computers. As always: Use this program at your own risk. If Draconic Evolution gets changed/rebalanced, the controller may easily yield explosive results.
Because of this I do not allow anyone to redistribute my code. If you want to tell someone about this, send him or her a link to this page as you'll always be able to get the latest version from here.
If you want to use parts of my code for whatever purpose you are permitted to do so if you credit me.
If you have any questions, you can contact me on JABBER (JID/xyfreak@tenyx.de), Twitch (XyFreak) or Twitter (XyFreak1).

Core elements for the design of this website have shamelessly been plaged from ffmpeg.org.