Module:GameData

function gsplit( text, pattern, plain ) local s, l = 1, text:len return function if s then local e, n = text:find( pattern, s, plain ) local ret if not e then ret = text:sub( s ) s = nil elseif n < e then -- Empty separator! ret = text:sub( s, e ) if e < l then s = e + 1 else s = nil end else ret = e > s and text:sub( s, e - 1 ) or '' s = n + 1 end return ret end end, nil, nil end

function split( text, pattern, plain ) local ret = {} for m in gsplit( text, pattern, plain ) do   ret[#ret+1] = m  end return ret end

function trim( s, charset ) charset = charset or '\t\r\n\f ' s = s:gsub( '^[' .. charset .. ']*(.-)[' .. charset .. ']*$', '%1' ) return s end

return { MasterParam = { Unit = mw.text.jsonDecode( mw.title.new( 'Data:Game/MasterParam/Unit' ):getContent ) }, unit = split( mw.title.new( 'Data:Game/unit' ):getContent, '\n' ) }