# Can drivers span more than one line?

Is it possible to write Multi-line drivers? As I understand it, drivers just assign the given statement to a variable, so you couldn't have _expressions (which don't evaluate to anything) in there. Is there some way to go around this? If so, how?

• yes you can ( it was called pydriver) here blender.stackexchange.com/a/27056/5113 – Chebhou Jul 16 '15 at 23:11
• @Chebhou is there a list of all the expressions that can be used in drivers like frame, floor, min, max? – Denis Jul 16 '15 at 23:20
• @denis yes i'll add the link – Chebhou Jul 16 '15 at 23:21
• Mostly-joking answer: github.com/csvoss/onelinerizer – wchargin Nov 5 '17 at 17:56

Although the expression is one line you can call a complex function in that line, you have to define and add this function to the driver's namespace before using it.

here's an example function and how it's added to the Driver's namespace ( from the DOC ) :

import bpy

def driverFunc(val):

return val * val    # return val squared

bpy.app.driver_namespace['driverFunc'] = driverFunc    # add function to driver_namespace


To see the already availabe functions and properties type bpy.app.driver_namespace[' in the python console and hit Ctrl+space