• Loot Table Compiler

    WolfkillArcadia

    6 comments · 5746 views

    EDIT 20th May 2017: You can now download the new loot table compiler on our download page. 

     

    Hello Inmates,

    The start of this dev blog will be a little bit different as most of you have seen the change in the development team this year. On behalf of the new development team, I’d like to say that we are all honored to have this opportunity given to us by @Eichi, @Vishpala and @Grim. We know we have had a rocky start getting this update out, learning new workflows, and dealing with ArmA, but let me tell you that we are excited to make sure Exile lives on.

    Now, let’s talk about the update.

    One of the major changes in 1.0.3 is the loot table compiler and how loot is handled in game. This change is a two part process, involving changing how the tables are compiled and how ArmA chooses which loot to spawn.

    Before, the loot tables would be compiled and the server would be given an item and its percentage chance to spawn for each category. This put more work on the server, causing loot spawning to take more cycles.

    Now, the loot table compiler does all of the heavy lifting and compiles a list of items to spawn for each category group, then this process is repeated for the items in each category. Instead of using percentages, it uses ratios and weights to handle the likelihood of a category and an item spawning. All the server has to do is select a random category group and then select a random item from that group, the less math the server has to do, the less cycles it takes, the faster the code completes.
     

    Server Owners:
    Please note, CfgLootTables has been renamed to CfgExileLoot. The old config is obsolete and can be removed. Also, since the loot tables have changed, you will be required to recompile your loot tables to work with the new system. 
    Also, if you would like to test out the new loot system before 1.0.3 is released, you can download it from here: Loot Table Compiler 1.0.3 Preview. Please make sure to give us feedback on the new system.

    For more information on how the compiler works, please visit the Loot Compiler Wiki page: Here


    21 people like this


    User Feedback


    TLDR: loot will spawn faster, better server performance, all server owners will have to redo their loot tables :D

    6 people like this

    Share this comment


    Link to comment
    Share on other sites

    Does this work on 64bit, had an error and server would not unlock. Error in expression Exile server system thread I think it was. I will make a post in server side problems later after Im back from work.  Thanks

    Share this comment


    Link to comment
    Share on other sites

    I can't get this to work. After adding the newly compiled loottable and the 3 overwrites, I can't join in.

    This error shows up in server rpt:

    16:47:19 Error in expression <thread_threadAdjust.sqf"
    if (ExileSystemThreadDelays isEqualTo []) th>
    16:47:19   Error position: <ExileSystemThreadDelays isEqualTo []) th>
    16:47:19   Error Undefined variable in expression: exilesystemthreaddelays
    16:47:19 File exile_server\code\ExileServer_system_thread_threadAdjust.sqf, line 12
    16:47:19 Error in expression <hreadID = param [4, false];
    _threadId = ExileSystemThreadID;
    if(_pushBackThreadI>
    16:47:19   Error position: <ExileSystemThreadID;
    if(_pushBackThreadI>
    16:47:19   Error Undefined variable in expression: exilesystemthreadid
    16:47:19 File exile_server\code\ExileServer_system_thread_addTask.sqf, line 18

     

    Clientside I just get to the point where i see some grass (like you do 1-2 seconds before spawning in). It stays there. Infistar says "Waiting for client to be ready". I can't bring up the game menu with ESC and infistar menu doesn't work either.

     

    Am I doing this correctly? I have added the following 3 lines inside my CfgExileCustomCode:

    ExileServer_system_lootManager_dropItem = "ExileServer_system_lootManager_dropItem.sqf";
    ExileServer_system_lootManager_initialize = "ExileServer_system_lootManager_initialize";
    ExileServer_system_process_postInit = "ExileServer_system_process_postInit";

     

    and placed CfgExileLoot.hpp inside exile_server_config.pbo, then deleted the entire CfgLootTables class and added #include "CfgExileLoot.hpp".

    Share this comment


    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