• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

OTClient otcv8 autodapter error -windows 10

Jeyci

Banned User
Joined
May 6, 2023
Messages
289
Solutions
3
Reaction score
36
Auto updater is not working and is ginvinf me this error when i go to updater.php file
Lua:
Warning: Attempt to read property "version" on null in C:\xampp\htdocs\updater-windows\updater.php on line 32

Warning: Attempt to read property "build" on null in C:\xampp\htdocs\updater-windows\updater.php on line 33

Warning: Attempt to read property "os" on null in C:\xampp\htdocs\updater-windows\updater.php on line 34

Warning: Attempt to read property "platform" on null in C:\xampp\htdocs\updater-windows\updater.php on line 35

Warning: Attempt to read property "args" on null in C:\xampp\htdocs\updater-windows\updater.php on line 36

Warning: Undefined array key "" in C:\xampp\htdocs\updater-windows\updater.php on line 37

Fatal error: Uncaught ValueError: RecursiveDirectoryIterator::__construct(): Argument #1 ($directory) cannot be empty in C:\xampp\htdocs\updater-windows\updater.php:46 Stack trace: #0 C:\xampp\htdocs\updater-windows\updater.php(46): RecursiveDirectoryIterator->__construct('') #1 {main} thrown in C:\xampp\htdocs\updater-windows\updater.php on line 46

maybe could be because i have not given permission chmod 777 in this folder. in spite that im the adminsitrator in this session and whole pc.
there exists an equivalent of chmod 777 for windows 10? i have given updater.php folder and file full control is there another way?

my ports are open

my init.lua
Lua:
-- CONFIG   -- https://github.com/GalaxyCLDev/TFS-1.3/blob/main/shopwithoutfit.lua#L1 shop file working mounts y otros thread https://otland.net/threads/storage-outfit.285556/page-2#post-2729258
--APP_NAME = "otclientv8"
APP_NAME = "ForgottenNot"  -- important, change it, it's name for config dir and files in appdata
APP_VERSION = 860       -- client version for updater and login to identify outdated client
DEFAULT_LAYOUT = "black" -- on android it's forced to "mobile", check code bellow

-- If you don't use updater or other service, set it to updater = ""
--Services = {
  --website = "http://************", -- currently not used
  --updater = "http://xxxx.online/updater/updater.php",
  --stats = "",
  --crash = "http://************/api/crash.php",
  --feedback = "http://************/api/feedback.php",
 -- status = "http://************/api/status.php"
--}
-- If you don't use updater or other service, set it to updater = ""
Services = {
  website = "http://************", -- currently not used
  updater = "http://xxxx.ddns.net/updater-windows/updater.php",
  updater = "",
  stats = "",
  crash = "",
  feedback = "",
  status = ""
}
-- Servers accept http login url, websocket login url or ip:port:version
Servers = {
meuserver= "xxxxx.ddns.net:7171:860"
}


--Server = "ws://************:3000/"
--Server = "ws://127.0.0.1:88/"
--USE_NEW_ENERGAME = true -- uses entergamev2 based on websockets instead of entergame
ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list

g_app.setName("ForgottenNot")
--g_app.setName("OTCv8")
-- CONFIG END

-- print first terminal message
g_logger.info(os.date("== application started at %b %d %Y %X"))
g_logger.info(g_app.getName() .. ' ' .. g_app.getVersion() .. ' rev ' .. g_app.getBuildRevision() .. ' (' .. g_app.getBuildCommit() .. ') made by ' .. g_app.getAuthor() .. ' built on ' .. g_app.getBuildDate() .. ' for arch ' .. g_app.getBuildArch())

if not g_resources.directoryExists("/data") then
  g_logger.fatal("Data dir doesn't exist.")
end

if not g_resources.directoryExists("/modules") then
  g_logger.fatal("Modules dir doesn't exist.")
end

-- settings
g_configs.loadSettings("/config.otml")

-- set layout
local settings = g_configs.getSettings()
local layout = DEFAULT_LAYOUT
if g_app.isMobile() then
  layout = "mobile"
elseif settings:exists('layout') then
  layout = settings:getValue('layout')
end
g_resources.setLayout(layout)

-- load mods
g_modules.discoverModules()
g_modules.ensureModuleLoaded("corelib")
 
local function loadModules()
  -- libraries modules 0-99
  g_modules.autoLoadModules(99)
  g_modules.ensureModuleLoaded("gamelib")

  -- client modules 100-499
  g_modules.autoLoadModules(499)
  g_modules.ensureModuleLoaded("client")

  -- game modules 500-999
  g_modules.autoLoadModules(999)
  g_modules.ensureModuleLoaded("game_interface")

  -- mods 1000-9999
  g_modules.autoLoadModules(9999)
end

-- report crash
if type(Services.crash) == 'string' and Services.crash:len() > 4 and g_modules.getModule("crash_reporter") then
  g_modules.ensureModuleLoaded("crash_reporter")
end

-- run updater, must use data.zip
if type(Services.updater) == 'string' and Services.updater:len() > 4
  and g_resources.isLoadedFromArchive() and g_modules.getModule("updater") then
  g_modules.ensureModuleLoaded("updater")
  return Updater.init(loadModules)
end
loadModules()
updater.php
Code:
-- CONFIG   -- https://github.com/GalaxyCLDev/TFS-1.3/blob/main/shopwithoutfit.lua#L1 shop file working mounts y otros thread https://otland.net/threads/storage-outfit.285556/page-2#post-2729258
--APP_NAME = "otclientv8"
APP_NAME = "ForgottenNot"  -- important, change it, it's name for config dir and files in appdata
APP_VERSION = 860       -- client version for updater and login to identify outdated client
DEFAULT_LAYOUT = "black" -- on android it's forced to "mobile", check code bellow

-- If you don't use updater or other service, set it to updater = ""
--Services = {
  --website = "http://************", -- currently not used
  --updater = "http://xxxxxx/updater/updater.php",
  --stats = "",
  --crash = "http://************/api/crash.php",
  --feedback = "http://************/api/feedback.php",
 -- status = "http://************/api/status.php"
--}
-- If you don't use updater or other service, set it to updater = ""
Services = {
  website = "http://************", -- currently not used
  updater = "http://xxxx.ddns.net/updater-windows/updater.php",
  updater = "",
  stats = "",
  crash = "",
  feedback = "",
  status = ""
}
-- Servers accept http login url, websocket login url or ip:port:version
Servers = {
meuserver= "xxxxx.ddns.net:7171:860"
}


--Server = "ws://************:3000/"
--Server = "ws://127.0.0.1:88/"
--USE_NEW_ENERGAME = true -- uses entergamev2 based on websockets instead of entergame
ALLOW_CUSTOM_SERVERS = false -- if true it shows option ANOTHER on server list

g_app.setName("ForgottenNot")
--g_app.setName("OTCv8")
-- CONFIG END

-- print first terminal message
g_logger.info(os.date("== application started at %b %d %Y %X"))
g_logger.info(g_app.getName() .. ' ' .. g_app.getVersion() .. ' rev ' .. g_app.getBuildRevision() .. ' (' .. g_app.getBuildCommit() .. ') made by ' .. g_app.getAuthor() .. ' built on ' .. g_app.getBuildDate() .. ' for arch ' .. g_app.getBuildArch())

if not g_resources.directoryExists("/data") then
  g_logger.fatal("Data dir doesn't exist.")
end

if not g_resources.directoryExists("/modules") then
  g_logger.fatal("Modules dir doesn't exist.")
end

-- settings
g_configs.loadSettings("/config.otml")

-- set layout
local settings = g_configs.getSettings()
local layout = DEFAULT_LAYOUT
if g_app.isMobile() then
  layout = "mobile"
elseif settings:exists('layout') then
  layout = settings:getValue('layout')
end
g_resources.setLayout(layout)

-- load mods
g_modules.discoverModules()
g_modules.ensureModuleLoaded("corelib")
 
local function loadModules()
  -- libraries modules 0-99
  g_modules.autoLoadModules(99)
  g_modules.ensureModuleLoaded("gamelib")

  -- client modules 100-499
  g_modules.autoLoadModules(499)
  g_modules.ensureModuleLoaded("client")

  -- game modules 500-999
  g_modules.autoLoadModules(999)
  g_modules.ensureModuleLoaded("game_interface")

  -- mods 1000-9999
  g_modules.autoLoadModules(9999)
end

-- report crash
if type(Services.crash) == 'string' and Services.crash:len() > 4 and g_modules.getModule("crash_reporter") then
  g_modules.ensureModuleLoaded("crash_reporter")
end

-- run updater, must use data.zip
if type(Services.updater) == 'string' and Services.updater:len() > 4
  and g_resources.isLoadedFromArchive() and g_modules.getModule("updater") then
  g_modules.ensureModuleLoaded("updater")
  return Updater.init(loadModules)
end
loadModules()
 
Last edited:
up. not working is there a way to enable this in windows 10? in linux we have to use the command chmod 777 or similar how to do this in windows 10? maybe is because of this that's not working
 
Back
Top