Hi everyone,
I write here for keyboard implementation on Lua, because I searched a lot on Visionaire forum but unfortunately the unique Lua script I found does not work properly (my version is 5.0.9). I tried different combinations of way borders (>=2 polygons) and way points (points joint as a spiderweb) but every time i run the game (editor or build) character movement is quite always different and wrong (sometimes there is no movement, other times character can walk over the border). Does it exist a working Lua script for controlling movements character by keyboard/controller? Thank you for your support 

I copy Simon Lua script below:
function keyboardHandler(eventType, character, keycode, modifiers) 
    if eventType==eEvtKeyUp then
        print('key up: ' .. keycode)
        keycode = keycode % 1073741824
        if keycode == 80 then -- left
            charmove_x = 0
        elseif keycode == 79 then -- right
            charmove_x = 0
        elseif keycode == 81 then -- down
            charmove_y = 0
        elseif keycode == 82 then -- up
            charmove_y = 0
        end
        createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y},25)
        if keycode == 113 then  -- Q
          startAction("Objects[Bicchiere].Actions['Low_Profile' eseguito]")
        end
        if keycode == 119 then  -- W
          startAction("Objects[Bicchiere].Actions['High_Profile' eseguito]")
        end
    elseif eventType==eEvtKeyDown then
        print('key pressed: ' .. keycode)
        keycode = keycode % 1073741824
        if keycode == 80 then -- left
            charmove_x = -100
        elseif keycode == 79 then -- right
            charmove_x = 100
        elseif keycode == 81 then -- down
            charmove_y = 100
        elseif keycode == 82 then -- up
            charmove_y = -100
        end
        createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y},25)       
    elseif eventType==eEvtControllerKeyUp then
        print('controller up: ' .. keycode)
        if keycode == 1000001 then --controller key A up
            createEvent('eEvtMouseLeftButtonDown')
            createEvent('eEvtMouseLeftButtonUp')
--              createEvent('eEvtKeyDown',{x=0,y=0},eKeyEscape,0)
        end
    elseif eventType==eEvtControllerKeyDown then
        print('controller down: ' .. keycode)
        if keycode == 1000001 then --controller key A down
        end
    elseif eventType==eEvtControllerAxis then
        if string.match(character, 'RIGHTX') then
            mouse_x = keycode
            createEvent('eEvtControllerAxisMouseMove', {x=mouse_x, y=mouse_y}, 19, 9)
        elseif string.match(character, 'RIGHTY') then
            mouse_y = keycode
            createEvent('eEvtControllerAxisMouseMove', {x=mouse_x, y=mouse_y}, 19, 9)
        elseif string.match(character, 'LEFTX') then
            charmove_x = keycode
            createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y}, 25)
        elseif string.match(character, 'LEFTY') then
            charmove_y = keycode
            createEvent('eEvtControllerAxisCharacterMove', {x=charmove_x, y=charmove_y}, 25)
        end
      end
  return false
end
registerEventHandler('keyEvent', 'keyboardHandler')