Nice, thanks!
Does this work as well?
function M100()
    
    local inst = mc.mcGetInstance()
    local input_20 = mc.mcSignalGetHandle(inst, mc.ISIG_INPUT20) -- Get handle for input 20
    local input_20_State = mc.mcSignalGetState(input_20) -- Get input 20 state
    
    if input_20 == 0 then
        wx.wxMessageBox("Could not locate signal!")
    else
        if input_20_State == 1 then --If input_20_State equals 1, then the signal is active.
            wx.wxMessageBox("Signal is already active!")
        else    --If input_20_State does not equal 1, then the signal is inactive.
            --wx.wxMessageBox("Setting input_20 high")
            mc.mcSignalSetState(input_20, 1) 
	    mc.mcSignalWait(inst, mc.ISIG_INPUT21, 1, 0)
        end
    end
end
if (mc.mcInEditor() == 1) then
    M100()
end
Also, just wondering what this is.........  mc.mcSignalSetState(input_20, 1) 
Shouldn't that be turning on an output to fire the raise solenoid?