Mesecons speed advices

From Pandorabox
Revision as of 08:51, 10 October 2022 by Snow (talk | contribs) (→‎Spacing)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

This article exists to provide advices on the speed of Mesecons mod devices. Please add your ideas to discussion so we have easily-readable list of solutions.

Be sure to read Mesecons guidelines

Generic advice

  • Please try to make your device as simple as it needs to be.
  • Check how your device uses system resources with "/mesecons_hud on" and try to minimize the use.
  • Long LuaController code tends to be slower than short one, if there's no cycles. If you can, simply use interrupt with a given time and basic logic.

Sample switcher code

    interrupt(2)
    port.b = pin.d
    port.d = not pin.d

Wire lengths

Each mesecon wire changes its style when switching. It means changing the database and interacting with client, plus lots of Lua processing. By minimizing wire lengths, you minimize the processing delay your device adds and vice versa, so please use shorter wires.

Digiline wires partially help. In general, digiline devices are less active and you can speed up some processing using digiline injectors instead of stackwise ones, at least currently.

Spacing

Mesecons devices work after player approaches them and stop when player leaves. When you make a device, you want to put it far away enough from others to avoid too many things working at the same time.

There's a concept of mapblocks, not a certain block of the map, but a cube containing a number of normal blocks(nodes). It's 16(X) x 16(Y) x 16(Z) nodes. It's best to put the whole device inside one mapblock.

You can see the mapblock you are at with "/mesecons_hud on". Or using the "/postool" HUD.

See also:

- Mesecons Guidlines

- postool

- Mesecons Tutorial

- Mesecons Debug