Zhenpo 10 Posted September 13, 2013 (edited) Then in your mission init.sqf, somewhere before you want to use the functions do this:call compile preProcessFile "\iniDB\init.sqf"; Sorry but these instructions don't really explain anything, are you saying the mission has its own init.sqf that I need to put "call compile preProcessFile "\iniDB\init.sqf";" in? or the actual init.sqf file in the pbo source folder? the mission doesn't have its own init.sqf file... Or can this not be used on mp missions such as wasteland? Would be nice if someone actually posted instructions on how to install this on a rented server with wasteland since none of the wasteland maps have a init.sqf file :/ Edited September 14, 2013 by Zhenpo Share this post Link to post Share on other sites
genesis92x 810 Posted September 24, 2013 I just wanted to say thank you for this wonderful addon. My mission is dependent on this addon, thank you so much! @Zhenpo you need to incorporate it within your own mission init.sqf....You might want to brush up on some scripting. iniDB will save the information you want saved just fine - but you have to define it, label it, and then know how to recall it when needed and THEN deal with any client/server side issues after that. Share this post Link to post Share on other sites
loki 1 Posted October 3, 2013 i made a small demo for anyone who needs one. http://forums.bistudio.com/showthread.php?166048-iniDB-demo-gear Share this post Link to post Share on other sites
pawelkpl 29 Posted October 3, 2013 (edited) thx loki, but I can't get it to work, I made step by step installation proces but can't see any action menu to save or load data for player. I do have @inidb mod and I can see server is running that mod. I load your test mission but I cant see any action menu, no file is created in db folder. Is cba needed ? I made it working but only when I host mission from game. If I start dedicated server sav/load action menu does not show... ---------- Post added at 05:11 PM ---------- Previous post was at 03:36 PM ---------- Sorry but these instructions don't really explain anything, are you saying the mission has its own init.sqf that I need to put "call compile preProcessFile "\iniDB\init.sqf";" in? or the actual init.sqf file in the pbo source folder? the mission doesn't have its own init.sqf file...Or can this not be used on mp missions such as wasteland? Would be nice if someone actually posted instructions on how to install this on a rented server with wasteland since none of the wasteland maps have a init.sqf file :/ +1 , I can't get it , how it can call init.sqf in iniDB if there is no such a file in it ? As post above test mission works in editor and if hosted from a game. If mission starts on dedicated server it does simply not work. Loki can you help us pls... Edited October 3, 2013 by PawelKPL Share this post Link to post Share on other sites
na_palm 19 Posted October 3, 2013 @PawelKPL: the missing init.sqf you are searching for is inside @iniDB/addons/iniDB.pbo When you open it with PBOManager or another program , thats literally the same as telling ArmA with -mod=@iniDB to load it, you see it. Share this post Link to post Share on other sites
pawelkpl 29 Posted October 3, 2013 @PawelKPL:the missing init.sqf you are searching for is inside @iniDB/addons/iniDB.pbo When you open it with PBOManager or another program , thats literally the same as telling ArmA with -mod=@iniDB to load it, you see it. ahh OK , but why I can't get it to work on dedi server, It works in editor and if test mission is hosted in game. Any help ? Share this post Link to post Share on other sites
na_palm 19 Posted October 3, 2013 Without knowing your missions init.sqf where you should execVM it, it is only wild guessing but maybe you put the command in a block thats only called on clients within "!isServer" scope? Share this post Link to post Share on other sites
pawelkpl 29 Posted October 4, 2013 Without knowing your missions init.sqf where you should execVM it, it is only wild guessing but maybe you put the command in a block thats only called on clients within"!isServer" scope? It is the Loki demo mission , download link 3 posts above. It works in editor but not on the dedicated server.:( Share this post Link to post Share on other sites
na_palm 19 Posted October 4, 2013 after a quick look i think that this way of implementation is working on SP missions only. As soon as you use a dedicated put all persistance work (load, save and checks) on the server. You could download some Wasteland missions with iniDb enabled and look at their implementation, its strait forward. Share this post Link to post Share on other sites
pawelkpl 29 Posted October 4, 2013 after a quick look i think that this way of implementation is working on SP missions only.As soon as you use a dedicated put all persistance work (load, save and checks) on the server. You could download some Wasteland missions with iniDb enabled and look at their implementation, its strait forward. What I need is save players score in domination xeno mission, nothing more... Share this post Link to post Share on other sites
Scerius 10 Posted October 5, 2013 Just initialize iniDB in the init.sqf file. Then, add a function on the server that accepts the player as an argument and extract his score there. Once you have his score, just use the iniDB_write function to save it to the database. You can do this many different ways. First, you can just use a while loop and monitor everything from time to time, using the sleep command to slow the processing down a bit. Or you could use something like a publicVariableEventHandler and whenever the client score changes it will automatically be sent to the server and have your save script executed that way. There's many different ways to implement it, the choice is yours. Just break up the problem into smaller pieces and go from there. I would start just by making sure iniDB is initialized. Then make a test script to see if it can save anything properly for you. Once you get that working, then you can work on sending the client info to the server, any info, just make a test case if needed. All that is needed now is to save that to the database and you are done. Share this post Link to post Share on other sites
Scerius 10 Posted October 8, 2013 (edited) Been a few days, guessing you either don't care anymore (not likely), have it figured out (hopefully), or are still trying to figure it out (likely). Just in case, here is a more detailed procedure (in it's simplest form, I believe). -------------- Add to file "init.sqf" in MPMissions/YourMissionName.Map folder: //initialize database system if(isServer) then { call compile preProcessFileLineNumbers "\iniDB\init.sqf"; }; Create a new script, call it "runDatabase.sqf" for this example. It's purpose will be to run the database save loop. You can add whatever fields you want to save, but for this example we will just save the name of the player and their score. //runDatabase.sqf // //Author: Scerius //Description: Performs the database save loop. //Usage: [] spawn "runDatabase.sqf" while{true} do { //only run script every 30 seconds sleep 30; //save player data { _playerUID = getPlayerUID _x; ["myDatabaseFile", _playerUID, "Name", name _x] call iniDB_write; ["myDatabaseFile", _playerUID, "Score", score _x] call iniDB_write; } forEach playableUnits; }; *Note that this file has nothing to do with the client, and does NOT need to be on their machine. In fact, none of any of the code in this post should ever be executed on the client. You don't even need to include it in the mission pbo either since the client will never use it. Once that file has been created, you need to call it somewhere. Probably the best place would be the same mission init.sqf file as mentioned above, after the server has been fully intialized. You need to use the spawn command to execute it becuase it contains a sleep command. Again, make sure only the server will execute this script. //run database save loop if(isServer) then { [] spawn runDatabase.sqf; }; Also, I believe the code needs to be compiled with the compile keyword before it can be spawned. I will show that here. You will want to place this line where all the other server functions are compiled (it is just the same as when we compiled the /iniDB/init.sqf file, except we also called it at the same time as compiling it in that case). //compile functions compile preProcessFileLineNumbers "runDatabase.sqf"; Hope this makes sense, good luck. Edited October 8, 2013 by Scerius Corrected some typo's Share this post Link to post Share on other sites
loki 1 Posted October 10, 2013 (edited) forgot about this.. my demo works just fine.. if you want it to work on a dedicated.. you only have to add publicVariables. set them.. and get them. if you don't know about publicVariables and locality... you will have problems trying to maintain such a system in your mission. EDIT: some resources http://community.bistudio.com/wiki/addPublicVariableEventHandler http://community.bistudio.com/wiki/setVariable http://community.bistudio.com/wiki/getVariable http://community.bistudio.com/wiki/6thSense.eu:EG#Locality Edited October 10, 2013 by Loki Share this post Link to post Share on other sites
pawelkpl 29 Posted October 10, 2013 Been a few days, guessing you either don't care anymore (not likely), have it figured out (hopefully), or are still trying to figure it out (likely).Just in case, here is a more detailed procedure (in it's simplest form, I believe). -------------- Add to file "init.sqf" in MPMissions/YourMissionName.Map folder: //initialize database system if(isServer) then { call compile preProcessFileLineNumbers "\iniDB\init.sqf"; }; Create a new script, call it "runDatabase.sqf" for this example. It's purpose will be to run the database save loop. You can add whatever fields you want to save, but for this example we will just save the name of the player and their score. //runDatabase.sqf // //Author: Scerius //Description: Performs the database save loop. //Usage: [] spawn "runDatabase.sqf" while{true} do { //only run script every 30 seconds sleep 30; //save player data { _playerUID = getPlayerUID _x; ["myDatabaseFile", _playerUID, "Name", name _x] call iniDB_write; ["myDatabaseFile", _playerUID, "Score", score _x] call iniDB_write; } forEach playableUnits; }; *Note that this file has nothing to do with the client, and does NOT need to be on their machine. In fact, none of any of the code in this post should ever be executed on the client. You don't even need to include it in the mission pbo either since the client will never use it. Once that file has been created, you need to call it somewhere. Probably the best place would be the same mission init.sqf file as mentioned above, after the server has been fully intialized. You need to use the spawn command to execute it becuase it contains a sleep command. Again, make sure only the server will execute this script. //run database save loop if(isServer) then { [] spawn runDatabase.sqf; }; Also, I believe the code needs to be compiled with the compile keyword before it can be spawned. I will show that here. You will want to place this line where all the other server functions are compiled (it is just the same as when we compiled the /iniDB/init.sqf file, except we also called it at the same time as compiling it in that case). //compile functions compile preProcessFileLineNumbers "runDatabase.sqf"; Hope this makes sense, good luck. Thank You very much for your help, I' still learn new things and last week was trying to solve other problems but such a database is a dream for me. I will try it and let you know how I'm doing. best regards , Pawel Share this post Link to post Share on other sites
giallustio 770 Posted October 11, 2013 I'm having some troubles. I'm using this fnc to save a lot of data: ["BTC_war_storm", "mission", "state", [_players,_data,_cities,_fobs,_vehicles,BTC_veh_under_repair,_ammo]] call iniDB_write; Here what i have in the db: [mission] state="[[["=BTC= Col.Giallustio",[[14671.5,16718,0.00143814],["U_B_CombatUniform_mcam_vest","V_PlateCarrierGL_rgr","G_Tactical_Clear","H_HelmetB_paint","",[],[[],[]],["arifle_MX_Hamr_pointer_F","hgun_P07_F"],["","acc_pointer_IR","optic_Hamr"],[],["","",""],["ItemMap","ItemCompass","ItemWatch","ACRE_PRC343_ID_1","ItemGPS","NVGoggles"],["FirstAidKit","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","SmokeShell"],["30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_caseless_mag_Tracer","30Rnd_65x39_caseless_mag_Tracer","16Rnd_9x21_Mag","16Rnd_9x21_Mag","HandGrenade","HandGrenade","SmokeShellGreen","SmokeShellBlue","SmokeShellOrange","Chemlight_green","Chemlight_green"],"arifle_MX_Hamr_pointer_F",0,[["30Rnd_65x39_caseless_mag",30],["16Rnd_9x21_Mag",16],[],[["30Rnd_65x39_caseless_mag",30],["30Rnd_65x39_caseless_mag",30],["30Rnd_65x39_caseless_mag",30]],[["30Rnd_65x39_caseless_mag",30],["30Rnd_65x39_caseless_mag",30],["30Rnd_65x39_caseless_mag_Tracer",30],["30Rnd_65x39_caseless_mag_Tracer",30],["16Rnd_9x21_Mag",16],["16Rnd_9x21_Mag",16]],[]]]]]],[[2013,7,6,12,2]],[],[[16067.6,18816.7,-3.12652]],[["B_MRAP_01_hmg_F",[14611.8,16648,-0.0142174],43.9485,0,[[14611.8,16648,0.149012],43.9485]],["B_MRAP_01_hmg_F",[14617.9,16642.2,-0.0144157],43.9485,0,[[14617.9,16642.2,0.149012],43.9485]],["B_APC_Tracked_01_rcws_F",[14676.6,16720.2,-0.0495262],316.074,0,[[14664.1,16583.1,0],43.949]],["B_MRAP_01_F",[14616.3,16695.5,0.00504303],133.233,0,[[14616.3,16695.5,0.149014],133.233]],["B_MRAP_01_F",[14610.6,16689.3,0.0179176],133.323,0,[[14610.6,16689.3,0.149014],133.323]],["B_MRAP_01_gmg_F",[14604.8,16683,-0.0271816],133.323,0,[[14604.9,16683,0.148991],133.323]],["B_MRAP_01_gmg_F",[14599.1,16676.8,-0.0241508],133.323,0,[[14599.1,16676.8,0.148991],133.323]],["B_Truck_01_medical_F",[14690.3,16795.7,-0.0314827],225.472,0,[[14690.3,16795.7,0.114967],225.471]],["B_MRAP_01_hmg_F",[14605.6,16653.8,-0.0290718],43.9485,0,[[14605.6,16653.8,0.149012],43.9485]],["B_MRAP_01_hmg_F",[14599.5,16659.6,-0.0178318],43.9485,0,[[14599.5,16659.6,0.149012],43.9485]],["B_Heli_Light_01_armed_F",[14863.9,16760.9,0.000230789],222.008,0,[[14863.9,16760.9,0],222.008]],["B_Heli_Light_01_armed_F",[14884.3,16744,0.000230789],222.008,0,[[14884.3,16744,0],222.008]],["B_Truck_01_ammo_F",[14992.9,16832.6,-0.00921059],257.59,0,[[14992.9,16832.6,0.114967],257.589]],["B_Truck_01_fuel_F",[14958.4,16852.9,0.00165367],79.5846,0,[[14958.4,16852.9,0.138281],79.6562]],["B_Truck_01_medical_F",[14964.2,16827.7,-0.00213432],79.6778,0,[[14964.2,16827.7,0.115086],79.6765]],["B_Truck_01_Repair_F",[14986.7,16858.3,-0.0102444],257.59,0,[[14986.7,16858.3,0.114967],257.589]],["B_Truck_01_ammo_F",[15018.9,16838.9,-0.0097065],257.59,0,[[15018.9,16839,0.114967],257.589]],["B_Truck_01_fuel_F",[14932.8,16847.2,-0.0126324],79.6999,0,[[14932.9,16847.2,0.120163],79.6739]],["B_Truck_01_medical_F",[14938.3,16822.1,-0.0213604],79.6878,0,[[14938.3,16822.1,0.115845],79.6769]],["B_Heli_Transport_01_camo_F",[14749.5,16804.8,0.000822067],222.783,0,[[14749.5,16804.8,0],222.783]],["B_Heli_Transport_01_camo_F",[14785.6,16772.8,0.000822067],222.783,0,[[14785.6,16772.8,0],222.783]],["B_Heli_Transport_01_camo_F",[14821.8,16742.4,0.000822067],222.783,0,[[14821.8,16742.4,0],222.783]],["B_Heli_Light_01_F",[14777.6,16834.8,0.000230789],222.783,0,[[14777.6,16834.8,0],222.783]],["B_Heli_Light_01_F",[14797.1,16816.9,0.000230789],222.783,0,[[14797.1,16816.9,0],222.783]],["B_Heli_Attack_01_F",[14575.6,16311.7,0.00170898],134.079,0,[[14575.6,16311.7,0.0011425],134.079]],["B_Heli_Attack_01_F",[14611.2,16346.2,0.00119591],130.221,0,[[14611.2,16346.2,0.000106812],130.221]],["B_Boat_Armed_01_minigun_F",[15390.6,15824.5,4.57028],173.938,0,[[15390.6,15824.4,0],173.935]],["B_Boat_Armed_01_minigun_F",[15380.1,15823.6,4.30213],173.938,0,[[15380.1,15823.5,0],173.935]],["B_Boat_Armed_01_minigun_F",[15368.3,15822.5,4.10022],173.938,0,[[15368.3,15822.5,0],173.935]],["B_Boat_Armed_01_minigun_F",[15355.9,15820.9,4.99675],173.938,0,[[15355.9,15820.8,0],173.935]],["B_Heli_Transport_01_camo_F",[14858,16709.7,0.000822067],222.783,0,[[14858,16709.7,0],222.783]],["B_Heli_Light_01_F",[14816.9,16799.3,0.000230789],222.783,0,[[14816.9,16799.3,0],222.783]],["B_Heli_Light_01_F",[14836.1,16781.7,0.000230789],222.783,0,[[14836.1,16781.7,0],222.783]],["JS_JC_FA18E",[14703.1,16445.1,-0.000425339],133,0,[[14703.1,16445.1,0.0589752],0.0204243]],["JS_JC_FA18E",[14680.9,16423.9,-0.000646591],133,0,[[14680.9,16423.9,0.0576954],359.998]],["JS_JC_FA18F",[14657.9,16401.6,-0.000570297],133,0,[[14657.9,16401.6,0.0450802],360]],["B_Truck_01_Repair_F",[15012.6,16864.6,-0.0105286],257.59,0,[[15012.6,16864.6,0.114967],257.589]],["B_MRAP_01_hmg_F",[14586.8,16648,-0.0239277],43.9485,0,[[14586.8,16648,0.149012],43.9485]],["B_MRAP_01_hmg_F",[14592.9,16642.2,-0.021471],43.9485,0,[[14592.9,16642.2,0.149012],43.9485]],["B_APC_Tracked_01_CRV_F",[14707.3,16542.3,-0.0513],46.2791,0,[[14707.3,16542.3,0],46.279]],["B_MRAP_01_hmg_F",[14599.2,16636.4,-0.0238228],43.9485,0,[[14599.2,16636.4,0.149012],43.9485]],["B_MBT_01_arty_F",[14700.8,16550.5,0.0311909],43.9486,0,[[14700.8,16550.6,0],43.949]],["B_MRAP_01_hmg_F",[14605.3,16630.6,-0.0148315],43.9485,0,[[14605.3,16630.6,0.149012],43.9485]],["B_MBT_01_cannon_F",[14683.1,16565.8,0.00945663],43.9488,0,[[14683.1,16565.8,0],43.949]],["B_MBT_01_arty_F",[14694.2,16557.7,0.0311871],43.9486,0,[[14694.2,16557.7,0],43.949]],["B_MBT_01_cannon_F",[14675.6,16572,0.00945663],43.9488,0,[[14675.7,16572,0],43.949]],["B_APC_Wheeled_01_cannon_F",[14621,16623.4,0.0332565],43.9481,0,[[14621,16623.4,0.112127],43.9485]],["B_APC_Wheeled_01_cannon_F",[14628.4,16616,0.0332489],43.9481,0,[[14628.4,16616,0.112127],43.9485]],["B_APC_Tracked_01_rcws_F",[14645.5,16600.5,-0.0533485],43.9486,0,[[14645.5,16600.5,0],43.9485]],["B_APC_Tracked_01_rcws_F",[14654.6,16591.8,-0.0533485],43.9486,0,[[14654.6,16591.8,0],43.9485]],["B_APC_Wheeled_01_cannon_F",[14636.4,16609.5,0.0331516],43.9482,0,[[14636.5,16609.5,0.112127],43.9485]],["B_Truck_01_transport_F",[16058.8,18844.9,0.0316086],318.017,0,[[14904.9,16810.6],0]]],[],[]]" How i load it: if (isClass(configFile >> "cfgPatches" >> "iniDB")) then { call compile preProcessFile "\iniDB\init.sqf"; _db_array = ["BTC_war_storm", "mission", "state"] call iniDB_read; BTC_load_db = []; BTC_load_db = call compile _db_array; if (count BTC_load_db > 0) then {BTC_load_db call BTC_server_load;}; }; Sadly it doesn't work. Here my .rpt: 16:27:29 Error in expression <s select 0; _type = _this select 1; if(_type == "ARRAY") then { _string = call > 16:27:29 Error position: <_type == "ARRAY") then { _string = call > 16:27:29 Error Undefined variable in expression: _type 16:27:29 Error in expression <_type = _this select 3; _data = [_data, _type] call iniDB_Datarizer; }; _data }> 16:27:29 Error position: <_type] call iniDB_Datarizer; }; _data }> 16:27:29 Error Undefined variable in expression: _type 16:27:29 Error in expression <aseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_case> 16:27:29 Error position: <"30Rnd_65x39_case> 16:27:29 Error Missing "" 16:27:29 Error in expression <aseless_mag","30Rnd_65x39_caseless_mag","30Rnd_65x39_case> 16:27:29 Error position: <"30Rnd_65x39_case> 16:27:29 Error Missing "" 16:27:29 Error in expression <_db = call compile _db_array; if (count BTC_load_db > 0) Any help? Share this post Link to post Share on other sites
na_palm 19 Posted October 11, 2013 hi Giallustio, seems to be the same problem i have had to solve. iniDB_read seems to read only fields/vars up to a lenght of 511 chars. The 512th char breaks it -> maybe has to do with the format command, but havent looked deeper in it. As an easy fix you can make sure to split lenghtly "container vars" up in smaller parts and it will work. In my case it was an magazine array i got from a ammo box to save. Ended up to save each magazine in an own field and now it works as intended. greetings Na_Palm Share this post Link to post Share on other sites
giallustio 770 Posted October 11, 2013 Thank you! I'll check it as soon as i can! ---------- Post added at 03:33 PM ---------- Previous post was at 03:08 PM ---------- Nope, it doesn't fix the problem! Share this post Link to post Share on other sites
na_palm 19 Posted October 11, 2013 ok looked into your output a bit. And think i found the bug. Also one i had to figure out but have forgot about it.... :( if you use iniDBwrite to write in an initially existing file it simply overwrites its contents char by char. If you use for ex. NP++ to check the bracketing, hope its the right word?!, you will find the error there... so make sure to not write multiple times in the same file if there is a chance that the content of your last write is greater as the content of the current write command. My solution was to put a time stamp in the file name and after closeing the server delete all files but the one with the greatest time stamp and then remove the time stamp from the file name to dont have to change the sysntax each time i restart the server... Share this post Link to post Share on other sites
giallustio 770 Posted October 11, 2013 Could you highlight the error in the array? It seems correct to me. Share this post Link to post Share on other sites
na_palm 19 Posted October 11, 2013 Have had closed the editor after posting and now after recopying it in the sole bracketing seems alright, maybe i had only a part of it copied... sorry cant replicate it now. But as i follow the bracketing now, also it is ok, it looks to be a bit odd to me... can't explain it better. Maybe split it up so it is not a pain........ to try to follow it in the output... Share this post Link to post Share on other sites
giallustio 770 Posted October 11, 2013 Ok, more tests done. It seems to be a limit of 511 chars as you suggested! Does anyone know how to remove it? Share this post Link to post Share on other sites
firefly2442 6 Posted October 11, 2013 Ok, more tests done.It seems to be a limit of 511 chars as you suggested! Does anyone know how to remove it? @inidb/examples/dll source/Ini_DB/Ini_DB/dllmain.cpp - line 37 - char trueValue[512] = {0}; I'm guessing it's related to this? The callExtension limit is 16 KB IIRC so it might be prudent to change that. Dunno, just a guess. Share this post Link to post Share on other sites
pawelkpl 29 Posted October 12, 2013 (edited) Been a few days, guessing you either don't care anymore (not likely), have it figured out (hopefully), or are still trying to figure it out (likely).Just in case, here is a more detailed procedure (in it's simplest form, I believe). -------------- Add to file "init.sqf" in MPMissions/YourMissionName.Map folder: //initialize database system if(isServer) then { call compile preProcessFileLineNumbers "\iniDB\init.sqf"; }; Create a new script, call it "runDatabase.sqf" for this example. It's purpose will be to run the database save loop. You can add whatever fields you want to save, but for this example we will just save the name of the player and their score. //runDatabase.sqf // //Author: Scerius //Description: Performs the database save loop. //Usage: [] spawn "runDatabase.sqf" while{true} do { //only run script every 30 seconds sleep 30; //save player data { _playerUID = getPlayerUID _x; ["myDatabaseFile", _playerUID, "Name", name _x] call iniDB_write; ["myDatabaseFile", _playerUID, "Score", score _x] call iniDB_write; } forEach playableUnits; }; *Note that this file has nothing to do with the client, and does NOT need to be on their machine. In fact, none of any of the code in this post should ever be executed on the client. You don't even need to include it in the mission pbo either since the client will never use it. Once that file has been created, you need to call it somewhere. Probably the best place would be the same mission init.sqf file as mentioned above, after the server has been fully intialized. You need to use the spawn command to execute it becuase it contains a sleep command. Again, make sure only the server will execute this script. //run database save loop if(isServer) then { [] spawn runDatabase.sqf; }; Also, I believe the code needs to be compiled with the compile keyword before it can be spawned. I will show that here. You will want to place this line where all the other server functions are compiled (it is just the same as when we compiled the /iniDB/init.sqf file, except we also called it at the same time as compiling it in that case). //compile functions compile preProcessFileLineNumbers "runDatabase.sqf"; Hope this makes sense, good luck. Hi Scerius; I'm trying to get it to work, so basically xeno domination mission has preinit.sqf and init.sqf file, so: 1. I put: //inidb initialization if(isServer) then { call compile preProcessFileLineNumbers "\iniDB\init.sqf"; }; //functions compile compile preProcessFileLineNumbers "runDatabase.sqf"; in preinit file, 2. then I've created runDatabase.sqf file and saved in main folder of domination mission. 3. In init file I put: //run database save loop if (isServer) then { [] spawn runDatabase.sqf; }; What I get is one error: http://img703.imageshack.us/img703/8894/uo8q.jpg any idea ? thx in advance , pawel Edited October 12, 2013 by PawelKPL Share this post Link to post Share on other sites
giallustio 770 Posted October 12, 2013 I think it's execVM "rundatabase.sqf" and not spawn. If i'm not wrong, i think there's an error in the iniDB_read fnc. Should be: if((count _this) > 3) then { _type = _this select 3; _data = [_data, _type] call iniDB_Datarizer; }; Not: if((count _this) > 2) then { _type = _this select 3; _data = [_data, _type] call iniDB_Datarizer; }; Share this post Link to post Share on other sites
setman 12 Posted October 12, 2013 Hi, I don't have anything in my missions folders, I am running Got Wasteland sandbox. Don't see where to put the call compile preProcessFile "\iniDB\init.sqf"; Thanks Share this post Link to post Share on other sites