Jump to content

LUA_PATH causes problems with "require"


Rinart73

Recommended Posts

Tested on Windows 10 x64.

If you'll define "LUA_PATH" system variable (for example you installed Lua for some tasks), calling "require" in your ingame scrips may fail.

Ingame Lua will check "LUA_PATH" variable and use it instead of "..steamapps/common/Avorion/". At least this is what happens with mods (maybe because "require" is being called using "pcall"):

 

local ext, err = pcall(require, 'mods/ExtTurretFactory/scripts/entity/merchants/turretfactory')
if not ext then print('Mod: ExtTurretFactory, failed to extend turretfactory.lua!') end

 

module 'mods/ExtTurretFactory/scripts/entity/merchants/turretfactory' not found:
2018-07-20 15-53-31| 	no field package.preload['mods/ExtTurretFactory/scripts/entity/merchants/turretfactory']
2018-07-20 15-53-31| 	no file 'C:\Program Files\Lua\5.2\lua\mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.luac'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file '/data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'data/scripts/lib/mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.lua'
2018-07-20 15-53-31| 	no file 'C:\Program Files (x86)\Steam\steamapps\common\Avorion\bin\mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.dll'
2018-07-20 15-53-31| 	no file 'C:\Program Files (x86)\Steam\steamapps\common\Avorion\bin\loadall.dll'
2018-07-20 15-53-31| 	no file '.\mods/ExtTurretFactory/scripts/entity/merchants/turretfactory.dll'

 

After I removed "LUA_PATH" system variable, everything worked just fine, so it's not mod problem.

So please make ingame Lua ignore "LUA_PATH" variable.

Link to comment
Share on other sites

A super interesting bug. Notice also how it does eventually check paths in your Avorion installation, but then it's looking for DLL files. Weird.

That's normal Lua behaviour. Sadly though you can't use DLL Lua modules in Avorion because Lua is included in exe (no export data).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...