LuaCombinator 2

by OwnlyMe
Running lua commands on your combinator!
a month ago
0.16 - 0.17
724
Owner: OwnlyMe
Source: N/A
Homepage: N/A
License: CC BY-SA 4.0
Created: a month ago
Latest Version: 0.17.13 (a month ago)
Factorio version: 0.16 - 0.17
Downloaded: 724 times

I'm devoting a lot of time to modding, so I'd be happy about any donations.
https://paypal.me/ownlymods
https://www.patreon.com/OwnlyMods
Donators get early access to feature updates and new mods

Overview:
Don't run this mod on a public server, it's vulnerable to infinite loops
Otherwise you probably won't be able to make it crash as its very sturdy.
You can copy the combinator's state & configuration to other lua combinators, and even blueprint them (only saves the code)
You can access the global[] table to share informations between all your combinators, don't worry, the mod's internal variables all end with a random number so you can't accidentally overwrite one. (global.combinators983, global.guis983, global.signals983)
Try to use the delay variable as much as possible, because if you let many combinators update on every tick it can eat quite some ups. (0.150 ups in 0.17 and 0.120 ups in 0.16 per combinator)
The following events are being occupied by the mod: (don't use them)
on_tick
on_gui_opened
on_gui_click
on_gui_closed
on_entity_settings_pasted
on_built_entity
on_robot_built_entity

Here are a few variables to get you started:
combinator = the entity the script is running on
rednet [] = signals in the red network (read only) (Signal-name -> Value)
greennet [] = same for the green network
output [] = a table with all the signals you are sending to the networks, they are permanent so to remove a signal you need to set its entry to nil, or flush all signals by entering output = {} (creates a fresh table) (Signal-name -> Value)
var [] = a table to store all your combinator's variables between the ticks
delay = the delay in ticks until the next update (to save some ups) (not persistent, needs to be set on each update)

Credits:
Forum: Saving entity custom data to blueprint

examples:
Clock:
var["time"] = (var["time"] or 0 ) + 1
output["signal-A"] =var["time"]
delay=60

Output highest signal:
local function get_highest_signal (signals)
local signal_name, signal_value = nil,0
for name, value in pairs(signals) do
if value > signal_value then
signal_value = value
signal_name = name
end
end
if signal_name then
return signal_name, signal_value
end
end
local red_name, red_value = get_highest_signal(rednet)
local green_name, green_value = get_highest_signal(greennet)
output = {} -- flushing the output signals
if red_name and red_value > green_value then
output[red_name] = red_value
elseif green_name then
output[green_name] = green_value
end

Accumulator charge history
local abc={"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}
for i = 1, 18 do
var[i] = var[i+1]
end
var[19] = greennet["signal-A"]
for i = 1 , 19 do
output["signal-"..abc[i]] = var[i] or 1
end
delay=1316 --1/19 day (25k ticks)

Blueprint String:
0eNrdnVtvG0cShf8Ln+XF9H3GDwvkfr/u4yIQZIlJCEiUQFHZNQL/9yXlbOLtqlPkEWYpo14S2JYozdenqrqm+3T/vnh1/bC826zW28XL3xery9v1/eLlP39f3K9+WV9c7/9u+/puuXi5WG2XN4uzxfriZv+n+5uL6+sX1xc3d4s3Z4vV+mr578XL8Obs4DdeLS9XV8vNi8vbm1er9cX2dvPOB8Q3P50tluvtartavv01Hv/w+nz9cPNqudn9hD8/Z/+Lbi/W23c/6Gxxd3u/+97b9f7H7z7vRRjOFq93/6+7n7H7ju3m9vr81fLXi99Wuy/ffc3Pq+vtcgOe+LfVZvuw+5u/HvrxK178slku14vHT3zYYwvD8A6Cn97+qPXycv+L3O8/L+z/8/a73nmm1dXjA795s6fWPWfUQMvHm+ynu1xtLh9W2/Pdv139+X0/rzb32/OjH3b523Lzevvrav3L2yd+S33xchr2f7q5u9g8on+5+Pv+3x/ul7ufdn27R7rdPCwBi83ySpDI+7FXIYV3AO3/nAG0dBy05ghagdByB60CaPk4aKMjaA1Cix20BKCV46AVR9AmCK120EYArR4HrfqBlgKEljpoBUBrx0FLjqAlCG3soIUBUBuPo5YdUcOVoHTUGoA2HQctOIKGK8FOWp3W0FRtP8U8hlt0xA0Xg9ZhmxC1cBQ1R2LLuBiEft4R0BQ3HNcYDI6w4b5g6qkFRO24zsBREc24HIS+MwioNQjH9QaOElseMba+Cw2oOQjHdQeOmoOM60Hou4OA2oNwXH/gaM5WIsbW9wcBNQjhuA7B0UuPghuE0HcIEXUI4bgWwVEzWirG1rcIAfUI4bgmwdF7yYJLAhRXPK4lcPROrQ5YXH1LEFBPEJ/6dr+8r2/30TQ+xic+aX5fnxRNhmKiVjLyM8RCm38lo3v1jluY2Hd+EU2PYqZAlmcAOc4NsmeDC3/sZ+cRVbBYqFUiDxz7uWTEM4HYJ+uEeupYKY4uArufJlXcZcd+JprgUm+jVuA8CDIrSe8MltAzseSpcxwpji4E2UdrNZY2tSygg5yo1U0PguwDO+HpbOorTUKCTAPF0YUg+1eyFb8ZSmKxHQkyBWrl2IMgq1I9UGD34o2ov0qR4uhBkCJaG16FiVXJAjrIRK3KexCkmBfiniaJbAoFmSmOLgTZl+GGm5rUCzJDQRZqw4MHQY5K9UCB3VelhN5WpEpxdCFIsT0ENzVpULKADrJRm0k8CFKIDDc1qf/aDDmOFEcXguxLTcNNTe4FmWFkT9QuHQ+CFFuYstHV9GUpofdnmdvu5EKRfbiOBsispAEdJLUDyoUgxUZ+3NXknmOGHCPD0YMec89xxE1N7gM7w8BOzNYyFxx7jY3GXHxUtKtzzAxHF3EdlSqMOPbVPaMFhlyYTXsuOIpYxT1N7vVYoB4rw9FFXPctzWjYpHo9FqjHxuyGdMGx19hozMSjol2d48hwdBHXWanBiKOYI6HlhTwx20xdcOzjuuB5eOn1WJAey8BwdBHXop/BqzSl12NBeiyB2b/rgaPQ2GT0M1XRrs4xMhxdxHVVajDi2OeAjBYXSmI2RrvgKOYyeJGm9Mwr1GNmOLqI634ePhkcRU2CeizMjnMXHHuNTYZJdVC0q3OsDEcXcT0qNRjlx762F3iGQWO28rvQY89xwvNwHMYjg82F/ISkMDZcRSbGEuFBbbXPaJMxy84KYv0QDcpa4mIX+KBUWMRRHKsBDyN5qtckvacOjIrqZX2q1yTO+aSvl9fXt/+a6VFRSauc2SQ+Q3SUubOMcHMPeLJa+4a1wvDg3CbpGUjWufNMnzsqXsWoQdl4rYPk7CYuQIrWEi9j1Kbsz9RBcn4TF7EtbLkDnvjXfnLb0IJQ5QwnLiQ5KonvDBZS6fLRQXKOExeSFGbewSCZlESgk+QsJx4kKfZSNryY0YKyR1M/Lo7znLiQpDgGaDCOp+pnQA1JsnGmExeSjEoJQbFdFKePDpJznXiQpIjXEPCKRq1KItBJcrYTF5Lsi3HD3U0ryjZNHSTnO3EhSXGgUMDtTROShMHNGU9cSLIqJQTF9qS4fXSQnPPEhSRFexMwyTYoiUAnyVlPXEhS9H54Uj4OyqZXHSTnPXEhSdHeBLzW0cQ2GihJznzigeQoz881+pus6Fc/2Jlzn3gIbuFxakZ7kxTvlA6Scp+44Nh3NyPubsak7HzVOVLuExeRLZqbiJubUVgsYGRT9hMXgkxK/UCB3RTLj86Rsp+4EKRobYy7ZNqoZAEdJOU/cSFIcZMHno+PTdn7qnOk/CcuBCkaG+PEtVFsSoKRTRlQXAiyKdUDcQyK6UfnSBlQXAhStDXGHUhjVLKADpJyoHgQpNilOuGmZorK7lf94hXKgeJCkGLNxjhxbeoje0KCnCgLigeQQmTBuHNqrIp6dZCUB8VFZAelDCOORfFP6RwpD4oLQYr9aMZJYZO4HGKAiqRcKC4U2ZOc8ILNVJS9xjpHyoXigmNRygeK7Elx/ugcKReKi8gWXY1x5No0KOLVQVI2FBeCFK0z7mpwHFM2FBf6E02MeX0fLCSUEcWF3iatyiLBZcUjBe49pKwoLiQo2xa8FjMlJcwByaeaUcL7atF4dCGAh32iH2V4f58V3gQ3UIaU4RlCJM1+6KBoAIwbHHdiELkJ5xvOkxKegWaee2+rWNoYjMvPhqBtzgYwOV+KC5iy2zSuRBtGbQ8ngEl5U3yEuegGsgVT7qvB1ylT9hQfMIXWrItIh6TpGMDkLCouwnzUSsoZnqcoHisAk3OpeIAptl2GYNz0J+/IxXcLB8qp4iPMRftQLJhiaoTvgA2cWcWFMqNWUmCYF80kBGBShhUXypSBaxzBtS83SlIAMDnPigtlipISjA5IXpCN7ywOlG/FhzLlRdgWTGkpwGFOWVd8wBRaM06SCmHQdAxgcvYVF2FetfoMc+ak+a8ATM7B4gKm7LaNDigO2o5PAJNysfgIc9FtG5eYB3G8V4hYmZSRxQVMqTXj/KkQsqZjHWbkvCwuwnzS6jOEmTQ3FoBJ+Vk8sBT7NEM0GiBxj26ImCXjafER5KL/qUb/E6XhAAc5Y2vxwVIorVoz9lFTMWBJWVtcxHjWajNk2TRnFmDJuFt86FLM143r24M4MSokrEvK4eJCl/KlhcWyaZuUAUvK5OKC5ahVE8gyaN4iwJIxuviIcaG0arGMmooBS8br4oKlOKAsGCeUhSSNCJBlovwuHmJ8ki8sjL5HXFr+uNMWsKQsLy5YBq0ywxivmtMIsGRcLz5iXLBsVt9TNBUDlozzxQdLMVc3rnYPSe6fwbqkvC8uYlx02MliWbVtuYAl43/xoUtBxziwbB/RCnnAkvLAuNBl1WY5UJeD5oUDLCkbjAuWssM25upGRDNOGB8RLboc47w3q65QVhgPmts7X5SyC0WXNcuRDjMzbhgfMhSlollNTdLCHbB8oh9mVjvM/pHn8YdkmPXzE70w8T19UDhVyJQR5jm8YmH2S39F8jCulw/idLqQcaqhjDDPkbfj7HlbZI9swQzafnoAkzLC+FCmmMUaF6SHLHeTwJWQTBlhfChTwMwWzFHbaAtgUkYYH8oUeIwr50NOGnoAkzLC+FBm00rKGZ6kKIYuAJMywrhQpjj5Kxhn0QVxM3iA18+HQhlhXChT7izORudQgrZrGcCkjDA+YEatPsMwr5oHCcCkjDA+wlxozTgHLOSi6RjApIwwPmCKkmIcYRWK3J+DlUkZYXyEuYBZLJhF27UMYFJGGB8wi1afIcxB8yABmJQRxkeYC5iT1QFNmo4BTMoI4wOm6ICMS+qDuGM8VAyTMsL4CHPZbRsw5TlZFYc5ZYTxAXPS6jOEmTUPkg6zUkYYH2EuYE5WB5Q0HQOYjBHGhTDlNs5qNEDywvSKhckYYVzoUlxsHgej/5HHU1WsS8YI44NlFiwNXZamqRiwZIwwPmI8aRMdyHLU7FyAJWOE8cFSzNer0fzI45QaZskYYXzEeBExbrGUG3dwjDNGGB8sR8HSan2ipmLAkjHC+IjxUavMkGXQrHGAJWOEcaFLcQZatM5Ak+dSNciyMUYYH7qUTaTR98h71BuM8cYYYVywlJarZvU9RbNzAZaMEcZHjIu+J1h9T9VUDFgyRhgfuhRz9WYcACCPUWqYJWOE8aHLJHRpsRQxPuIYZ4wwPlhWwdJYp6iTpmLAkjHC+Ijxos1yoC4HzRoHWDJGGB+6FH2PdfaZEdGMEcaHCuW7CaPLMeoKY4RxQS4PWqWA5JJmONJZjowPxkf8TiJ+rZ4ma5oFLP/qaa6Wl6ur5cZ2h7wN7fy3ArD+8SF/Yb1/Atd//C9OSfNscfuwvXvgP/Lu9fmjCeX8583tzflqvfuMPwaDGI39ddP/lc/jXzx6WCL8cliIxid6c9L76c0xHpTy5jzHjVhh7uwn8tk+0t5VjdFIy3P3RhzAmQvgdooA/mH+AP7h/xrA/Ur5wEU4fP02UtYfF8KXDWI+XvhN2xsL0FZO+OMphP/j/ML/cU7hhwPC78fqkPBxWqKcRS6EL7TbpxlL+EnzywG0I+PmcIFWvCgZp6PRysOcJox24nJKOUVO+W7+nPLdjDlF1soeN5lTYN83Ddzo1FOMzvfzj873c2b8fCjjT9To4Ho8Ub4oD2lJWvD6WLAyftHcfgBt5ISfTiH8b+YX/jdzpqVDwt9fb80IHza3E2W7ciF8MVvZK/TYely0fckALdnc5lMI/9v5hf/tnBl/OiT8yAkfzpYmytXlQvj10OTGyvij5lUEaMnmNpxC+F/NL/yv5sz4oy38uL8qmxE+bG4nyjTmQvjyxczxza240/5xlzpAO3LCj6cQ/tfzC//rOYUfD2V8bsHCqMeUJ82D8KX9sU8zlvCT5rRU0caBa25PkvC/mF/3X8yneyWf92mmMLp/9CGBwWEcby5kHwXLo1vbfXZXdtkDspHwGbkgmw5NS6yE0jTvHCCbqIQynCKhfDl/QvlyzkJaDyWUgUsoEQ4O19ie5IXOZ/MPzmdzZvtyaHBGbnAqHJxCDc5JpqCfzz84n885OMOhwcnc4OCCwRgAXRSMeoilVYqbZjoAZBk7oAuy7dCE0SIbNFsmIMs1tSd5i/np/Anl0zkTSj6UUKh1K0v23JrvSZZ8P5l/cD6Zc3AOvWkLkRsctOE8Bsa+6CInTYeEbuSkEDT7CSDLmBk9kG3x0ITRyvZVM+gCstxq7Ul2KXw8f0L5eM6EMh1KKIlLKFj2XFd8kt2yH80/OB/NODghHhqcyg1OhoPDmC9d5KR8SOhWti+aKQSQZayYLsiWQ3MSi+ygWWIBWW6l9iS7kD+cP6F8OGdCOfTePjQuoWDZN2pwTmJu+mD+wflgzsEhk/kI2TNeURcppx3SsZVysIYZ56gHjuNwaIJhccya03lHdvcdq+3yZvf7vbp+WN5tVrtf/Wyxe6T7Rxp1bDGOYRp2bcKb/wB89B38