Difference between revisions of "Common YOLOL"
Line 18: | Line 18: | ||
:Generator=100-:Battery_1/100 goto 1 | :Generator=100-:Battery_1/100 goto 1 | ||
===namrog84's Alternative=== | |||
The above scripts suffer a flaw that some might have noticed, they attempt to scale the generator linearly between 0 and 10,000 battery to have generator match them from 0% to 100%. E.g. at 50%(5000) battery the generators go to 50% only to KEEP UP with the drain. But won't actually recharge them to max. | |||
The below math might look at first glance to be the same. However, it is subtly different. If battery is at 9000, then generators will go to 100% (and will be at 100% for anything below 9000). However when batteries are at 9500 the generators will be at 50%. But then by 9950 batteries, generator will be 5% and will eventually hit 0 or near 0 when at full charge. | |||
:FuelChamberUnitRateLimit=1000-:StoredBatteryPower/10 goto 1 | |||
==Settable on/off Generator flag== | ==Settable on/off Generator flag== |
Revision as of 09:33, 16 August 2021
Standard Generator Script (Basic YOLOL Chip)
Note: This script will require enough batteries on the ship to act as a buffer for the generator spool up time.
Default Fields
:FuelChamberUnitRateLimit=100-:StoredBatteryPower/100 goto 1
Non Default Fields
Note: This version of the script assumes either "GeneratorUnitRateLimit" or "FuelChamberRateLimit" (preferably the latter) are renamed to "limit", and at least one battery exists on the network with it's "StoredBatteryPower" field renamed to "bat".
:limit=100-:bat/100 goto 1
Tutorial Laborer
Note: The Laborer has renamed field names by default so this version will work for the tutorial ship.
:Generator=100-:Battery_1/100 goto 1
namrog84's Alternative
The above scripts suffer a flaw that some might have noticed, they attempt to scale the generator linearly between 0 and 10,000 battery to have generator match them from 0% to 100%. E.g. at 50%(5000) battery the generators go to 50% only to KEEP UP with the drain. But won't actually recharge them to max. The below math might look at first glance to be the same. However, it is subtly different. If battery is at 9000, then generators will go to 100% (and will be at 100% for anything below 9000). However when batteries are at 9500 the generators will be at 50%. But then by 9950 batteries, generator will be 5% and will eventually hit 0 or near 0 when at full charge.
:FuelChamberUnitRateLimit=1000-:StoredBatteryPower/10 goto 1
Settable on/off Generator flag
c=(c<1)*(:Battery_1<5000)+c*(:Battery_1<9999) :Gen=c*22+0.001 goto 1
Fitting this code on the Laborer Module requires renaming at least one device. (here the Generator was renamed Gen)
5000 and 9999 are the start-charging and stop-charging levels. 22 is just enough charge to run the stock two box thrusters.
Awesome Generator Script (Basic YOLOL Chip)
This YOLOL script is inspired by the standard generator script and is further optimized. You can set from which amount of stored battery power the generator should generate less compared to the stored battery power.
It is assumed that specific YOLOL fields are renamed:
Ship Part | Old YOLOL field name | New YOLOL field name |
---|---|---|
Every Fuel Chamber | FuelChamberUnitRateLimit | Gen |
One Rechargeable Battery | StoredBatteryPower | Bat |
Depending on the amount of batteries and the amount of generators, a higher or lower value can be used for the variable "a" in the script. A too high value leads to the fact that the algorithm cannot find an optimal balance for the FuelChamberUnitRateLimit/Gen.
Awesome Generator Script
// Variables for Tweaking a = 9500 // If Battery Amount is lower than this, Gen is 100% // Static variables and precalculation c = 10000 // Max Stored Battery Power d = 100 // 100% e = (c-a)/d // Final Generator Scriptline :Gen=((:Bat<a)*d)+((:Bat>a)*((:Bat-c)*-1)/e) goto 9
Awesome Generator Script with On/Off Button and Minimum Power Production
If the battery consumption is very high and the amount of rechargeable batteries is not enough until the generator produces enough power, you should consider using the following version of the script.
Use a Hybrid-Button with the following field names and values configured:
Name | Value |
---|---|
On | 0 |
ButtonOnStateValue | 1 |
ButtonOffStateValue | 0 |
ButtonStyle | 1 |
The variable b can be used to set the minimum amount of power that the generators should generate. A too low value, can lead to the fact that the generators do not provide enough power yet and the batteries are already discharged. A too high value leads to the fuel rod consumption during standstill being too high.
// Variables for Tweaking a = 9500 // If Battery Amount is lower than this, Gen is 100% b = 10 // If Button is On, Gen will be at least this much // Static variables and precalculation c = 10000 // Max Stored Battery Power d = 100 // 100% e=(c-a)/d f=(d/b) // Final Generator Scriptline :Gen=:On*(((:Bat<a)*d)+((:Bat>a)*(((:Bat-c)*-1)+(:Bat-a)/f)/e)) goto 9
Receiver Signal Display
Using a display named Nav
if :SignalStrength>0 then goto2 else :Nav="No Signal" goto1 end :Nav=:Message+"\n"+(1000000-:SignalStrength)/1000+" km" goto1
Single lever forward/backward script (Basic YOLOL Chip)
Note: This script assumes you have a center lever bound to FcuForward
Default device fields
:FcuBackward=-:FcuForward goto 1
Material Point Scanner Script
Note: Additionally to two output panels for "Material" and "Volume" and two buttons to toggle "Active" and "Scan" install a third button and rename "ButtonState" to "Next" and set its "ButtonStyle" to 1.
:Material=:Material :Volume=:Volume :Index=(:Index+:Next)*(:Index<:ScanResults) :Next=0 goto 1
Continuous Material Point Scanner Script
Note: This is a modified version of the above script
:Material=:Material :Volume=:Volume :Index=(:Index+:Next)*(:Index<:ScanResults) :Next=1 //pause :Scan=1 goto 1
This page is a WIP. Please contribute to it!