I good while back I had an interesting idea about electricity while in physics class... that idea was pretty out there and very unusable. I revised and refined the electric system over and over in my head for about a year and this is what I came up with.
Electricity in powder toy is based on the material that the spark conducts through, which in itself is very realistic but we have very limited control over the electricity itself, by assigning two new variables or reassigning old ones to the spark we can add a variable for heat loss which will kill the spark if left too long requiring repeaters but the default for this variable will be 0 which is powder toys current setting, it lasts forever with no death. The variable for this would be heat loss. Much of this has been discussed here in my first idea post https://powdertoy.co.uk/Discussions/Thread/View.html?Thread=16490
The second variable would be the speed that spark passes through conductive materials, giving it a faster conduction or a slower conduction value that belongs to the spark itself rather than the materials it passes through. This would be known as Voltage.
A third variable that I have been mulling over in my head is the magnitiude of which a spark activates a powered material, this would be Wattage. A spark with a high Wattage would make powered materials react either faster or stronger with powered void accepting more into it, the RAY elements shooting farther, Powered clone emitting more, piston potentially pushing further etc... If left at default it uses the default powder toy magnitudes or the magnitudes users set. If users set properties and use magnitudes the magnitudes would act as a modifier to the user properties, not the other way around.
A new property system that wouldn't interfere with the python/lua scripting also came to mind where if you select an element with the RMB (right mouse button) and right click on an element of the same type that has already been placed, it brings up a simple electronics menu. For example battery would have the Starting voltage for the spark it creates, the starting wattage, and the heat loss value, if left at deafault, the normal powder toy spark is created. If the value of one of them is decreased, only that value decreases and the spark could slow, or have a lower magnitude as heat loss would not have a negative value. If a value for one of them was increased, heat loss would be activated depending on the value of increase (a high increase drains the spark faster), The spark would conduct faster, or the magnitude of its effect on powered materials would increase.
This system allows more variability and control over electricity for the user and does not require a seperate mode to function. The addition of the menu is optional and another method can be used, it seems simple for new users to grasp and having a background in coding isn't necessary. The property tool can also be used but for freedom of scripting I personally suggest a new menu or new variables assigned to electroniocs that can be altered.
At any rate, give this some feedback, the idea is still rough and i'd like to see what others think!
GL bud. This could break saves if implemented.