Modding Help Repeatable Quests?

Discussion in 'Starbound Modding' started by magewish4, Dec 13, 2016.

  1. magewish4

    magewish4 Pangalactic Porcupine

    I'm trying to add generated quests to my mod and I'm having a little trouble figuring them out. For example: I want a random quest to fetch XX erchius fuel. Could anyone point me to any information on the quest generation system? Or another mod that adds generated quests so I can see how its done?
     
  2. lazarus78

    lazarus78 The Waste of Time

    Why not just see how the game does it itself? Pick apart the generated quests that Chucklefish made.
     
  3. bk3k

    bk3k Oxygen Tank

    Not near enough mods add quests(the more the better IMO), some of those are outdated :( and fewer do generated quests to my knowledge.

    Off the top of my head, FU touches on this. But yeah vanilla is probably the best resource for this. Poke around /quests/ and you might be able to accomplish what you want with a copied/renamed quest template combined with maybe patching in new locations to /quests/generated/locations.config. You might not even need much if any new LUA depending on what you're doing.

    If you have specific questions, I'd be glad to (attempt) help.
     
  4. magewish4

    magewish4 Pangalactic Porcupine

    I've been picking at the generated quests, but it's all so interconnected that it's hard to find a good place to start. It seems like the hat quests are the least interconnected- they don't seem to rely on the relationship system and are a one quest long chain.
    I originally added questlocations to my dungeons but started getting s bunch of errors I could never figure out. Also, some quests were weird on the stations (random monsters, kidnapping). They might work if I change the text, but I'd still like to add more quests that are specific to my stations
     
  5. bk3k

    bk3k Oxygen Tank

    Those errors probably are relevant. I'm pretty sure the locations refer to microdungeons that might make up your dungeon. For example the outpost is a dungeon with microdungeons. That's how shops go from closed to open. But if could be a particular hallway, room, etc. I could be a microdungeon that added a chair.
     
  6. magewish4

    magewish4 Pangalactic Porcupine

    No, the errors were related to how I defined the locationType. It was not recognized by the questlocation script and failing. I've scrapped the questlocations for this version of the stations because I was focusing on getting the events to work and I don't like having random kidnappers spawn in the teleporter room anyways.
     
  7. magewish4

    magewish4 Pangalactic Porcupine

    So, I almost have a working quest, using the hat quest as a template.

    [​IMG]
    [​IMG]


    Unfortunately I'm stuck unable to turn in the final item. The problem is that the quests use specific npc behaviors to recognize that the item has been given to them. In the hats quest it looks like this:
    Code:
        // Player -> Quest Giver
        "wearClothingNotification" : "wearHelmet",
        // Quest Giver -> Player
        "clothingAcceptedEventName" : "helmetWorn",
    
    This won't work because I'm trying to give the npc an item that can't be worn. I tried replacing the notifications with the ones from gift.generated, but that doesn't seem to be working. I don't understand how the behaviors work very well. :/
    Code:
        // Player -> Quest Giver
        "wearClothingNotification" : "provideGift",
        // Quest Giver -> Player
        "clothingAcceptedEventName" : "giftObjectAdded",
    
    Anyone have any ideas on how I can get the quest to finish?
     
  8. magewish4

    magewish4 Pangalactic Porcupine

    Yay! I got it working! I'm just gonna drop the .zip here - the text is pretty wonky right now, but if anyone wants to use this to add generated quests, be my guest.
    Next up, figuring out how to add repeatable dungeon quests like the vaults to my stations :yeahhhh:
     

    Attached Files:

  9. magewish4

    magewish4 Pangalactic Porcupine

    Arg. I'm getting this error:
    Code:
    [12:02:22.300] [Info] Quest generator broke: [string "/scripts/questgen/generator.lua"]:89: (AssetException) Error loading asset /quests/generated/questpools/arena.config
    The line of code its pointing to is
    Code:
            local pool = root.assetJson("/quests/generated/questpools/"..poolName..".config")
    So it looks like a JSON formatting error, but I've run the file through JSONLint an not found anything. Here's the file if anyone has any ideas:

    Code:
    {
      "ends" : [
        [8.0, "arena1"],
        [8.0, "arena2"],
        [8.0, "arena3"]
      ],
    
      "quests" : {
        "arena1" : {
          "templateId" : "farena1.generated",
          "difficulty" : 0.1,
          "participants" : {
            "questGiver" : {
            }
          },
    
          "preconditions" : [
          ],
          "postconditions" : [
          ]
        },
        "arena2" : {
          "templateId" : "farena2.generated",
          "difficulty" : 0.1,
          "participants" : {
            "questGiver" : {
            }
          },
    
          "preconditions" : [
          ],
          "postconditions" : [
          ]
        },
        "arena3" : {
          "templateId" : "farena3.generated",
          "difficulty" : 0.1,
          "participants" : {
            "questGiver" : {
            }
          },
    
          "preconditions" : [
          ],
          "postconditions" : [
          ]
        }
      }
    
    }
    
     
  10. lazarus78

    lazarus78 The Waste of Time

    It looks like the Lua script that controls the quest generating is failing (at line 89) because the JSON config is not giving it some of the information it needs. The JSON might be formatted correctly, but if it doesnt have all the information that the script expects, it will crap out.
     
  11. bk3k

    bk3k Oxygen Tank

    The JSON seems formatted perfectly(from a JSON standards perspective).
    1. Your log doesn't indicate a LUA error out on
    Code:
    local pool = root.assetJson("/quests/generated/questpools/"..poolName..".config")
    right? Because if it did mention that line, then I'd say poolName isn't generated properly.

    But if no error there, your JSON isn't formatted the way it expects, is missing information it needs. Could I see the code that you are feeding 'pool' too? Probably in that zip file, right?

    --edit--
    So not in the zip file. I'd want to see it.

    Another possible lead. The files you used as a basis, I'm assuming you looked at them in SB 1.1.1, right? Check if the files you used for a basis just changed in 1.2.0.

    Also your log might have other clues hiding amid the cryptic text.
     
    Last edited: Dec 17, 2016
  12. magewish4

    magewish4 Pangalactic Porcupine

    So, here's the full log. I might be missing something, because all I can get from it is that it is having problems loading the JSON file arena.config:

    Code:
    [23:25:22.329] [Info] Root: Preparing Root...
    [23:25:22.333] [Info] Root: Done preparing Root.
    [23:25:22.333] [Info] Client Version 1.2.0 (windows x86_64) Source ID: c67120ea110b15bff5591775b5c8e7ccb7e0e56e Protocol: 729
    [23:25:22.333] [Info] Root: Scanning for asset sources in directory '..\assets\'
    [23:25:23.259] [Info] Root: Scanning for asset sources in directory '..\mods\'
    [23:25:23.259] [Warn] Root: Unrecognized file in asset directory 'mods_go_here', skipping
    [23:25:23.263] [Info] Root: Detected asset source named 'base' at '..\assets\packed.pak'
    [23:25:23.263] [Info] Root: Detected unnamed asset source at '..\mods\stupidquests'
    [23:25:23.263] [Info] Root: Detected unnamed asset source at '..\assets\user'
    [23:25:23.263] [Info] Loading assets from: '..\assets\packed.pak'
    [23:25:24.057] [Info] Loading assets from: '..\mods\stupidquests'
    [23:25:24.059] [Info] Loading assets from: '..\assets\user'
    [23:25:25.835] [Info] Assets digest is 489c20df6198b5dcb4d2828dd8a024f41327f816c55dfd8ddbfd206049aed2bd
    [23:25:25.835] [Info] Root: Loaded Assets in 3.50119 seconds
    [23:25:25.839] [Info] Application: Initializing SDL Video
    [23:25:25.845] [Info] Application: Initializing SDL Joystick
    [23:25:25.857] [Info] Application: Initializing SDL Sound
    [23:25:25.973] [Info] Initialized Steam services
    [23:25:25.974] [Info] Application: Creating SDL Window
    [23:25:26.180] [Info] Application: Enabling VSync with late swap tearing
    [23:25:26.233] [Info] Application: Opened default audio device with 44.1khz / 16 bit stereo audio, 2048 sample size buffer
    [23:25:26.247] [Info] OpenGL version: '4.3.0 - Build 20.19.15.4531' vendor: 'Intel' renderer: 'Intel(R) HD Graphics 4400' shader: '4.30 - Build 20.19.15.4531'
    [23:25:26.280] [Info] Application: initialization...
    [23:25:26.286] [Info] Root: Loaded Configuration in 0.00384585 seconds
    [23:25:26.292] [Info] Application: renderer initialization...
    [23:25:26.319] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:25:26.322] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:25:26.322] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:25:26.329] [Info] Root: Loaded ImageMetadataDatabase in 0.000414349 seconds
    [23:25:26.423] [Info] Application: main update loop...
    [23:25:26.431] [Info] Loading mods from user generated content with id '729429063' from directory 'C:\Program Files (x86)\Steam\steamapps\workshop\content\211820\729429063'
    [23:25:26.431] [Info] Reloading to include all user generated content
    [23:25:26.431] [Info] Root: Reloading from disk
    [23:25:26.432] [Info] Root: Writing runtime configuration to '..\storage\starbound.config'
    [23:25:26.515] [Info] Root: Loaded Configuration in 0.0016593 seconds
    [23:25:26.515] [Info] Root: Scanning for asset sources in directory '..\assets\'
    [23:25:27.235] [Info] Root: Scanning for asset sources in directory '..\mods\'
    [23:25:27.237] [Warn] Root: Unrecognized file in asset directory 'mods_go_here', skipping
    [23:25:27.249] [Info] Root: Scanning for asset sources in directory 'C:\Program Files (x86)\Steam\steamapps\workshop\content\211820\729429063'
    [23:25:27.306] [Info] Root: Detected asset source named 'base' at '..\assets\packed.pak'
    [23:25:27.306] [Info] Root: Detected unnamed asset source at '..\mods\stupidquests'
    [23:25:27.306] [Info] Root: Detected asset source named 'Felins' at 'C:\Program Files (x86)\Steam\steamapps\workshop\content\211820\729429063\contents.pak'
    [23:25:27.306] [Info] Root: Detected unnamed asset source at '..\assets\user'
    [23:25:27.306] [Info] Loading assets from: '..\assets\packed.pak'
    [23:25:28.388] [Info] Loading assets from: '..\mods\stupidquests'
    [23:25:28.393] [Info] Loading assets from: 'C:\Program Files (x86)\Steam\steamapps\workshop\content\211820\729429063\contents.pak'
    [23:25:28.424] [Info] Loading assets from: '..\assets\user'
    [23:25:29.996] [Info] Assets digest is a62c93063e3681f00aa6805a42572917ed1a2cca0635b95d09bce655910921aa
    [23:25:29.997] [Info] Root: Loaded Assets in 3.48105 seconds
    [23:25:30.004] [Info] Root: Loaded ImageMetadataDatabase in 6.46233e-06 seconds
    [23:25:30.017] [Info] Root: Loaded NameGenerator in 0.019999 seconds
    [23:25:30.023] [Error] OpenGL errors this frame:  GL_INVALID_VALUE
    [23:25:30.292] [Info] Root: Loaded PlantDatabase in 0.274506 seconds
    [23:25:31.146] [Info] Root: Loaded ObjectDatabase in 1.14818 seconds
    [23:25:31.268] [Info] Root: Loaded ProjectileDatabase in 0.975339 seconds
    [23:25:31.449] [Info] Root: Loaded NpcDatabase in 0.181264 seconds
    [23:25:31.453] [Info] Root: Loaded StagehandDatabase in 0.00377324 seconds
    [23:25:31.468] [Info] Root: Loaded VehicleDatabase in 0.0152256 seconds
    [23:25:31.482] [Info] Root: Loaded PlayerFactory in 0.0136317 seconds
    [23:25:31.617] [Info] Root: Loaded MonsterDatabase in 0.471577 seconds
    [23:25:31.622] [Info] Root: Loaded VersioningDatabase in 0.00475285 seconds
    [23:25:31.622] [Info] Root: Loaded EntityFactory in 0.140534 seconds
    [23:25:31.821] [Info] Root: Loaded ParticleDatabase in 0.197945 seconds
    [23:25:32.260] [Info] Root: Loaded MaterialDatabase in 0.638054 seconds
    [23:25:32.272] [Info] Root: Loaded TerrainDatabase in 0.0114585 seconds
    [23:25:32.334] [Info] Root: Loaded BiomeDatabase in 0.0619665 seconds
    [23:25:32.335] [Info] Root: Loaded LiquidsDatabase in 0.00120047 seconds
    [23:25:32.361] [Info] Root: Loaded StatusEffectDatabase in 0.0260667 seconds
    [23:25:32.891] [Info] Root: Loaded DamageDatabase in 0.529279 seconds
    [23:25:32.909] [Info] Root: Loaded EffectSourceDatabase in 0.0178661 seconds
    [23:25:32.924] [Info] Root: Loaded FunctionDatabase in 0.0156556 seconds
    [23:25:33.008] [Info] Root: Loaded TreasureDatabase in 0.0839799 seconds
    [23:25:33.621] [Info] Root: Loaded DungeonDefinitions in 0.612779 seconds
    [23:25:33.621] [Info] Root: Loaded TilesetDatabase in 8.325e-05 seconds
    [23:25:33.635] [Info] Root: Loaded StatisticsDatabase in 0.0138404 seconds
    [23:25:33.636] [Info] Root: Loaded EmoteProcessor in 0.000299928 seconds
    [23:25:33.661] [Info] Root: Loaded SpeciesDatabase in 0.0254034 seconds
    [23:25:33.732] [Info] Root: Loaded QuestTemplateDatabase in 0.0703793 seconds
    [23:25:33.735] [Info] Root: Loaded AiDatabase in 0.00364133 seconds
    [23:25:33.738] [Info] Root: Loaded TechDatabase in 0.00245721 seconds
    [23:25:33.771] [Info] Root: Loaded CodexDatabase in 0.032918 seconds
    [23:25:34.685] [Info] Root: Loaded BehaviorDatabase in 0.914003 seconds
    [23:25:34.690] [Info] Root: Loaded DanceDatabase in 0.00475893 seconds
    [23:25:34.703] [Info] Root: Loaded SpawnTypeDatabase in 0.0126521 seconds
    [23:25:34.708] [Info] Root: Loaded RadioMessageDatabase in 0.00511664 seconds
    [23:25:36.299] [Info] Root: Loaded ItemDatabase in 4.68081 seconds
    [23:25:36.498] [Info] Root: Loaded CollectionDatabase in 1.79063 seconds
    [23:25:36.980] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:28:20.380] [Info] UniverseServer: Acquiring universe lock file
    [23:28:20.421] [Info] UniverseServer: Loading settings
    [23:28:20.428] [Info] UniverseServer: Starting UniverseServer with UUID: 7607883997a35d433054b5759a7e7cbd
    [23:28:20.450] [Info] UniverseServer: Logged in player 'Yolotli' locally
    [23:28:20.450] [Info] UniverseServer: Logged in account '<anonymous>' as player 'Yolotli' from address local
    [23:28:20.475] [Info] UniverseServer: Spawning player at ship
    [23:28:20.475] [Info] UniverseServer: Client 'Yolotli' <1> (local) connected
    [23:28:20.498] [Info] UniverseClient: Joined server as client 1
    [23:28:20.562] [Info] UniverseServer: Loading client ship world ClientShipWorld:5a1671dea070a1c48b3884451e9254ca
    [23:28:21.806] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:28:21.806] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:28:21.806] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:28:21.820] [Info] detected maximum OpenGL texture size 16384, using atlasNumCells 256
    [23:28:21.821] [Info] Setting steam rich presence connection as steam id 76561198057904437
    [23:28:21.824] [Info] UniverseServer: Warping player 1 to ClientShipWorld:5a1671dea070a1c48b3884451e9254ca
    [23:28:21.848] [Info] UniverseServer: Flying player 1 ship to starter world
    [23:28:21.850] [Info] Searching for new randomized starter world
    [23:28:31.540] [Info] UniverseServer: Found randomized starter world at 659844242:-564333848:-220456481:7:2
    [23:28:31.586] [Info] UniverseServer: Creating celestial world 659844242:-564333848:-220456481:7:2
    [23:28:31.919] [Info] Placing dungeon naturalcave
    [23:28:32.005] [Info] Generating dungeon naturalcave
    [23:28:32.006] [Info] Placing dungeon at (1785, 675)
    [23:28:32.444] [Warn] Failed to place dungeon object: metalbarrel1 direction: 0 position: (1802, 496)
    [23:28:32.445] [Warn] Failed to place dungeon object: metalbarrel1 direction: 1 position: (1710, 497)
    [23:28:32.476] [Warn] Failed to place dungeon object: metalbarrel1 direction: 1 position: (1743, 529)
    [23:28:32.934] [Info] Placing dungeon gardengate
    [23:28:33.416] [Info] Generating dungeon gardengate
    [23:28:33.417] [Info] Placing dungeon at (157, 675)
    [23:28:33.536] [Info] Protected dungeonIds for world set to (1)
    [23:28:36.309] [Info] UniverseServer: Arriving ship for player 1 at 659844242:-564333848:-220456481:7:2
    [23:28:36.344] [Info] UniverseServer: Stopping idle world CelestialWorld:659844242:-564333848:-220456481:7:2
    [23:29:43.568] [Info] UniverseServer: Loading celestial world 659844242:-564333848:-220456481:7:2
    [23:29:44.486] [Info] UniverseServer: Warping player 1 to CelestialWorld:659844242:-564333848:-220456481:7:2
    [23:29:44.500] [Info] Client received world stop packet, leaving: Removed
    [23:29:44.529] [Info] UniverseServer: Stopping idle world ClientShipWorld:5a1671dea070a1c48b3884451e9254ca
    [23:29:50.912] [Info] Chat: <server> Admin privileges now given to player Yolotli
    [23:30:03.685] [Error] Exception caught loading asset: /quests/generated/questpools/arena.config, (AssetException) Could not read JSON asset /quests/generated/questpools/arena.config
    [0] 7ff707764083 Star::captureStack
    [1] 7ff707762e0e Star::StarException::StarException
    [2] 7ff707762ef8 Star::StarException::StarException
    [3] 7ff707773650 Star::AssetException::AssetException
    [4] 7ff708015281 `<lambda_80e152f0e8987fd28e54fe8e75d4e933>::operator()'::`1'::catch$25
    [5] 7fffc679c220 _C_specific_handler
    [6] 7fffc67929b2 _FrameUnwindFilter
    [7] 7fffd114a193 RtlCaptureContext
    [8] 7ff707775a4d <lambda_80e152f0e8987fd28e54fe8e75d4e933>::operator()
    [9] 7ff70776d2bf std::_Invoker_functor::_Call<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [10] 7ff707770ab6 std::invoke<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [11] 7ff70776e950 std::_Invoke_ret<std::shared_ptr<Star::Assets::AssetData>,<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [12] 7ff707776f26 std::_Func_impl<<lambda_80e152f0e8987fd28e54fe8e75d4e933>,std::allocator<int>,std::shared_ptr<Star::Assets::AssetData> >::_Do_call
    [13] 7ff707ae3ad7 std::_Func_class<std::shared_ptr<Star::CodexDatabase> >::operator()
    [14] 7ff70777f768 Star::Assets::processAssetData
    [15] 7ff70777d648 Star::Assets::loadJson
    [16] 7ff70777c8b3 Star::Assets::loadAsset
    [17] 7ff70777a5af Star::Assets::doLoad
    [18] 7ff70777bb2b Star::Assets::getAsset
    [19] 7ff70777c5ca Star::Assets::json
    [20] 7ff707d8f076 Star::LuaBindings::RootCallbacks::assetJson
    [21] 7ff707d82154 std::_Invoker_functor::_Call<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [22] 7ff707d85036 std::invoke<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [23] 7ff707d82ba4 std::_Invoke_ret<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [24] 7ff707d82812 std::_Call_binder<std::_Unforced,0,1,Star::Json (__cdecl*const)(Star::Root * __ptr64,Star::String const & __ptr64),std::tuple<Star::Root * __ptr64,std::_Ph<1> > const ,std::tuple<Star::String && __ptr64> >
    [25] 7ff707d80b33 std::_Binder<std::_Unforced,Star::Json (__cdecl&)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 & __ptr64,std::_Ph<1> const & __ptr64>::operator()<Star::String>
    [26] 7ff707d8bdba <lambda_859f04ab1d9377192727f867a8cd2ac1>::operator()
    [27] 7ff707d8149f std::_Invoker_functor::_Call<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [28] 7ff707d84aa0 std::invoke<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [29] 7ff707d83799 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [30] 7ff707d8e42b std::_Func_impl<<lambda_859f04ab1d9377192727f867a8cd2ac1>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [31] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [32] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [33] 7ff7076bb2d8 luaD_precall
    [34] 7ff7076d4081 luaV_execute
    [35] 7ff7076bb5bb luaD_rawrunprotected
    [36] 7ff7076bb8df lua_resume
    [37] 7ff7076b863f auxresume
    [38] 7ff7076b8318 luaB_coresume
    [39] 7ff7076bb2d8 luaD_precall
    [40] 7ff7076d4081 luaV_execute
    [41] 7ff7076bb5bb luaD_rawrunprotected
    [42] 7ff7076bb8df lua_resume
    [43] 7ff7077c2109 Star::LuaEngine::resumeThread<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [44] 7ff7077c197f Star::LuaThread::resume<enum Star::NodeStatus,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [45] 7ff7077c4e6f Star::BehaviorState::runAction
    [46] 7ff7077c5ad0 Star::BehaviorState::runNode
    [47] 7ff7077c628d Star::BehaviorState::runSequence
    [48] 7ff7077c5009 Star::BehaviorState::runComposite
    [49] 7ff7077c5ae6 Star::BehaviorState::runNode
    [50] 7ff7077c5ce8 Star::BehaviorState::runParallel
    [51] 7ff7077c5032 Star::BehaviorState::runComposite
    [52] 7ff7077c5ae6 Star::BehaviorState::runNode
    [53] 7ff7077c5952 Star::BehaviorState::runDynamic
    [54] 7ff7077c503d Star::BehaviorState::runComposite
    [55] 7ff7077c5ae6 Star::BehaviorState::runNode
    [56] 7ff7077c4678 Star::BehaviorState::run
    [57] 7ff707d54e88 <lambda_d726f61d7c683ceed1f1c83766b65574>::operator()
    [58] 7ff707d506af std::_Invoker_functor::_Call<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [59] 7ff707d51590 std::invoke<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [60] 7ff707d50a19 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [61] 7ff707d5514b std::_Func_impl<<lambda_d726f61d7c683ceed1f1c83766b65574>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [62] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [63] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [64] 7ff7076bb2d8 luaD_precall
    [65] 7ff7076d4081 luaV_execute
    [66] 7ff7076bade3 luaD_call
    [67] 7ff7076bb5bb luaD_rawrunprotected
    [68] 7ff7076baff0 luaD_pcall
    [69] 7ff7076b1504 lua_pcallk
    [70] 7ff707739300 Star::LuaEngine::pcallWithTraceback
    [71] 7ff7079053ae Star::LuaEngine::callFunction<float>
    [72] 7ff707908f44 Star::LuaFunction::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [73] 7ff707908dd1 Star::LuaBaseComponent::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [74] 7ff70790dabc Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [75] 7ff70790da2c Star::LuaActorMovementComponent<Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> > >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [76] 7ff7079bba2c Star::Npc::update
    [77] 7ff707c9cb9e <lambda_5251ea3b435705ab973fc9e3a86aa323>::operator()
    [78] 7ff707899657 Star::EntityMap::updateAllEntities
    [79] 7ff707cbd602 Star::WorldServer::update
    [80] 7ff707cc50c2 Star::WorldServerThread::update
    [81] 7ff707cc4b28 Star::WorldServerThread::run
    [82] 7ff707760bae Star::ThreadImpl::runThread
    [83] 7fffd09a8364 BaseThreadInitThunk
    [84] 7fffd11070d1 RtlUserThreadStart
    Caused by: (AssetException) No such asset '/quests/generated/questpools/arena.config'
    [0] 7ff707764083 Star::captureStack
    [1] 7ff707762e0e Star::StarException::StarException
    [2] 7ff70777fcd4 Star::Assets::read
    [3] 7ff70777fd4b Star::Assets::readJson
    [4] 7ff707775a4d <lambda_80e152f0e8987fd28e54fe8e75d4e933>::operator()
    [5] 7ff70776d2bf std::_Invoker_functor::_Call<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [6] 7ff707770ab6 std::invoke<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [7] 7ff70776e950 std::_Invoke_ret<std::shared_ptr<Star::Assets::AssetData>,<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [8] 7ff707776f26 std::_Func_impl<<lambda_80e152f0e8987fd28e54fe8e75d4e933>,std::allocator<int>,std::shared_ptr<Star::Assets::AssetData> >::_Do_call
    [9] 7ff707ae3ad7 std::_Func_class<std::shared_ptr<Star::CodexDatabase> >::operator()
    [10] 7ff70777f768 Star::Assets::processAssetData
    [11] 7ff70777d648 Star::Assets::loadJson
    [12] 7ff70777c8b3 Star::Assets::loadAsset
    [13] 7ff70777a5af Star::Assets::doLoad
    [14] 7ff70777bb2b Star::Assets::getAsset
    [15] 7ff70777c5ca Star::Assets::json
    [16] 7ff707d8f076 Star::LuaBindings::RootCallbacks::assetJson
    [17] 7ff707d82154 std::_Invoker_functor::_Call<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [18] 7ff707d85036 std::invoke<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [19] 7ff707d82ba4 std::_Invoke_ret<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [20] 7ff707d82812 std::_Call_binder<std::_Unforced,0,1,Star::Json (__cdecl*const)(Star::Root * __ptr64,Star::String const & __ptr64),std::tuple<Star::Root * __ptr64,std::_Ph<1> > const ,std::tuple<Star::String && __ptr64> >
    [21] 7ff707d80b33 std::_Binder<std::_Unforced,Star::Json (__cdecl&)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 & __ptr64,std::_Ph<1> const & __ptr64>::operator()<Star::String>
    [22] 7ff707d8bdba <lambda_859f04ab1d9377192727f867a8cd2ac1>::operator()
    [23] 7ff707d8149f std::_Invoker_functor::_Call<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [24] 7ff707d84aa0 std::invoke<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [25] 7ff707d83799 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [26] 7ff707d8e42b std::_Func_impl<<lambda_859f04ab1d9377192727f867a8cd2ac1>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [27] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [28] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [29] 7ff7076bb2d8 luaD_precall
    [30] 7ff7076d4081 luaV_execute
    [31] 7ff7076bb5bb luaD_rawrunprotected
    [32] 7ff7076bb8df lua_resume
    [33] 7ff7076b863f auxresume
    [34] 7ff7076b8318 luaB_coresume
    [35] 7ff7076bb2d8 luaD_precall
    [36] 7ff7076d4081 luaV_execute
    [37] 7ff7076bb5bb luaD_rawrunprotected
    [38] 7ff7076bb8df lua_resume
    [39] 7ff7077c2109 Star::LuaEngine::resumeThread<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [40] 7ff7077c197f Star::LuaThread::resume<enum Star::NodeStatus,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [41] 7ff7077c4e6f Star::BehaviorState::runAction
    [42] 7ff7077c5ad0 Star::BehaviorState::runNode
    [43] 7ff7077c628d Star::BehaviorState::runSequence
    [44] 7ff7077c5009 Star::BehaviorState::runComposite
    [45] 7ff7077c5ae6 Star::BehaviorState::runNode
    [46] 7ff7077c5ce8 Star::BehaviorState::runParallel
    [47] 7ff7077c5032 Star::BehaviorState::runComposite
    [48] 7ff7077c5ae6 Star::BehaviorState::runNode
    [49] 7ff7077c5952 Star::BehaviorState::runDynamic
    [50] 7ff7077c503d Star::BehaviorState::runComposite
    [51] 7ff7077c5ae6 Star::BehaviorState::runNode
    [52] 7ff7077c4678 Star::BehaviorState::run
    [53] 7ff707d54e88 <lambda_d726f61d7c683ceed1f1c83766b65574>::operator()
    [54] 7ff707d506af std::_Invoker_functor::_Call<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [55] 7ff707d51590 std::invoke<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [56] 7ff707d50a19 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [57] 7ff707d5514b std::_Func_impl<<lambda_d726f61d7c683ceed1f1c83766b65574>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [58] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [59] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [60] 7ff7076bb2d8 luaD_precall
    [61] 7ff7076d4081 luaV_execute
    [62] 7ff7076bade3 luaD_call
    [63] 7ff7076bb5bb luaD_rawrunprotected
    [64] 7ff7076baff0 luaD_pcall
    [65] 7ff7076b1504 lua_pcallk
    [66] 7ff707739300 Star::LuaEngine::pcallWithTraceback
    [67] 7ff7079053ae Star::LuaEngine::callFunction<float>
    [68] 7ff707908f44 Star::LuaFunction::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [69] 7ff707908dd1 Star::LuaBaseComponent::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [70] 7ff70790dabc Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [71] 7ff70790da2c Star::LuaActorMovementComponent<Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> > >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [72] 7ff7079bba2c Star::Npc::update
    [73] 7ff707c9cb9e <lambda_5251ea3b435705ab973fc9e3a86aa323>::operator()
    [74] 7ff707899657 Star::EntityMap::updateAllEntities
    [75] 7ff707cbd602 Star::WorldServer::update
    [76] 7ff707cc50c2 Star::WorldServerThread::update
    [77] 7ff707cc4b28 Star::WorldServerThread::run
    [78] 7ff707760bae Star::ThreadImpl::runThread
    [79] 7fffd09a8364 BaseThreadInitThunk
    [80] 7fffd11070d1 RtlUserThreadStart
    [23:30:03.865] [Info] Quest generator broke: [string "/scripts/questgen/generator.lua"]:89: (AssetException) Error loading asset /quests/generated/questpools/arena.config
    [0] 7ff707764083 Star::captureStack
    [1] 7ff707762e0e Star::StarException::StarException
    [2] 7ff70776feca Star::AssetException::format<Star::AssetPath>
    [3] 7ff70777bbdb Star::Assets::getAsset
    [4] 7ff70777c5ca Star::Assets::json
    [5] 7ff707d8f076 Star::LuaBindings::RootCallbacks::assetJson
    [6] 7ff707d82154 std::_Invoker_functor::_Call<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [7] 7ff707d85036 std::invoke<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [8] 7ff707d82ba4 std::_Invoke_ret<Star::Json (__cdecl*const & __ptr64)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 const & __ptr64,Star::String>
    [9] 7ff707d82812 std::_Call_binder<std::_Unforced,0,1,Star::Json (__cdecl*const)(Star::Root * __ptr64,Star::String const & __ptr64),std::tuple<Star::Root * __ptr64,std::_Ph<1> > const ,std::tuple<Star::String && __ptr64> >
    [10] 7ff707d80b33 std::_Binder<std::_Unforced,Star::Json (__cdecl&)(Star::Root * __ptr64,Star::String const & __ptr64),Star::Root * __ptr64 & __ptr64,std::_Ph<1> const & __ptr64>::operator()<Star::String>
    [11] 7ff707d8bdba <lambda_859f04ab1d9377192727f867a8cd2ac1>::operator()
    [12] 7ff707d8149f std::_Invoker_functor::_Call<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [13] 7ff707d84aa0 std::invoke<<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [14] 7ff707d83799 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_859f04ab1d9377192727f867a8cd2ac1> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [15] 7ff707d8e42b std::_Func_impl<<lambda_859f04ab1d9377192727f867a8cd2ac1>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [16] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [17] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [18] 7ff7076bb2d8 luaD_precall
    [19] 7ff7076d4081 luaV_execute
    [20] 7ff7076bb5bb luaD_rawrunprotected
    [21] 7ff7076bb8df lua_resume
    [22] 7ff7076b863f auxresume
    [23] 7ff7076b8318 luaB_coresume
    [24] 7ff7076bb2d8 luaD_precall
    [25] 7ff7076d4081 luaV_execute
    [26] 7ff7076bb5bb luaD_rawrunprotected
    [27] 7ff7076bb8df lua_resume
    [28] 7ff7077c2109 Star::LuaEngine::resumeThread<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [29] 7ff7077c197f Star::LuaThread::resume<enum Star::NodeStatus,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,unsigned __int64,float>
    [30] 7ff7077c4e6f Star::BehaviorState::runAction
    [31] 7ff7077c5ad0 Star::BehaviorState::runNode
    [32] 7ff7077c628d Star::BehaviorState::runSequence
    [33] 7ff7077c5009 Star::BehaviorState::runComposite
    [34] 7ff7077c5ae6 Star::BehaviorState::runNode
    [35] 7ff7077c5ce8 Star::BehaviorState::runParallel
    [36] 7ff7077c5032 Star::BehaviorState::runComposite
    [37] 7ff7077c5ae6 Star::BehaviorState::runNode
    [38] 7ff7077c5952 Star::BehaviorState::runDynamic
    [39] 7ff7077c503d Star::BehaviorState::runComposite
    [40] 7ff7077c5ae6 Star::BehaviorState::runNode
    [41] 7ff7077c4678 Star::BehaviorState::run
    [42] 7ff707d54e88 <lambda_d726f61d7c683ceed1f1c83766b65574>::operator()
    [43] 7ff707d506af std::_Invoker_functor::_Call<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [44] 7ff707d51590 std::invoke<<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [45] 7ff707d50a19 std::_Invoke_ret<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,<lambda_d726f61d7c683ceed1f1c83766b65574> & __ptr64,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>
    [46] 7ff707d5514b std::_Func_impl<<lambda_d726f61d7c683ceed1f1c83766b65574>,std::allocator<int>,Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::_Do_call
    [47] 7ff70773230d std::_Func_class<Star::Variant<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,Star::LuaVariadic<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> > >,Star::LuaEngine & __ptr64,unsigned __int64,Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData> * __ptr64>::operator()
    [48] 7ff7077313a4 <lambda_a03bcae4599b53751a446949639a4d5e>::operator()
    [49] 7ff7076bb2d8 luaD_precall
    [50] 7ff7076d4081 luaV_execute
    [51] 7ff7076bade3 luaD_call
    [52] 7ff7076bb5bb luaD_rawrunprotected
    [53] 7ff7076baff0 luaD_pcall
    [54] 7ff7076b1504 lua_pcallk
    [55] 7ff707739300 Star::LuaEngine::pcallWithTraceback
    [56] 7ff7079053ae Star::LuaEngine::callFunction<float>
    [57] 7ff707908f44 Star::LuaFunction::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [58] 7ff707908dd1 Star::LuaBaseComponent::invoke<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [59] 7ff70790dabc Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [60] 7ff70790da2c Star::LuaActorMovementComponent<Star::LuaUpdatableComponent<Star::LuaWorldComponent<Star::LuaBaseComponent> > >::update<Star::Variant<Star::Empty,bool,__int64,double,Star::String,Star::LuaTable,Star::LuaFunction,Star::LuaThread,Star::LuaUserData>,float>
    [61] 7ff7079bba2c Star::Npc::update
    [62] 7ff707c9cb9e <lambda_5251ea3b435705ab973fc9e3a86aa323>::operator()
    [63] 7ff707899657 Star::EntityMap::updateAllEntities
    [64] 7ff707cbd602 Star::WorldServer::update
    [65] 7ff707cc50c2 Star::WorldServerThread::update
    [66] 7ff707cc4b28 Star::WorldServerThread::run
    [67] 7ff707760bae Star::ThreadImpl::runThread
    [68] 7fffd09a8364 BaseThreadInitThunk
    [69] 7fffd11070d1 RtlUserThreadStart
    [23:30:36.833] [Info] UniverseClient: Client disconnecting...
    [23:30:36.916] [Info] Client received world stop packet, leaving: Removed
    [23:30:36.922] [Info] UniverseServer: Client 'Yolotli' <1> (local) disconnected for reason: 
    [23:30:36.925] [Info] UniverseServer: Stopping idle world CelestialWorld:659844242:-564333848:-220456481:7:2
    [23:30:37.517] [Info] UniverseServer: Stopping UniverseServer
    [23:30:37.560] [Info] Clearing steam rich presence connection
    [23:30:40.621] [Info] Application: quit requested
    [23:30:40.621] [Info] Application: quitting...
    [23:30:40.622] [Info] Application: shutdown...
    [23:30:40.834] [Info] Root: Shutting down Root
    [23:30:41.585] [Info] Application: Destroying SDL Window
    [23:30:41.594] [Info] Application: stopped gracefully
    


    And attached is the mod as it is right now with this error. I'm spawning the 'questy' npc to test these quests - he should be randomly giving me one of the three floran arena quests.
     

    Attached Files:

  13. magewish4

    magewish4 Pangalactic Porcupine

    *headdesk* Found the problem - the mod folder was inside another folder with the same name, so none of the pathing was correct. Off to find new and fun ways to break the quests now...
     
  14. bk3k

    bk3k Oxygen Tank

    I noticed
    Caused by: (AssetException) No such asset '/quests/generated/questpools/arena.config'
    but scrolling down you found the reason.
    Good if the mystery was solved.
     
  15. Tremerion

    Tremerion Existential Complex

    For a repeatable quest you need this line in .questemplate file:
    "ephemeral" : true
    true - repeatable, false - one time
     
    bk3k likes this.
  16. magewish4

    magewish4 Pangalactic Porcupine

    Thanks! This helps a lot. I'm also trying to hook my quests into the random quest generation - looks like for the most part they do work like regular quests, but the ephemeral line might explain why some of my test have not been working.
     
  17. Arsakes

    Arsakes Phantasmal Quasar

    How is this thing going?
    Did you figured out how the generation works? For example what links quest givers and the place where quest happens? (in case of kill_npcs for exmaple, there's location picked where enemy is spawned).

    How the whole generation is triggered?
     
  18. magewish4

    magewish4 Pangalactic Porcupine

    Been super busy so I haven't done too much on it recently, but here's what I've been able to figure out.

    The quests are triggered by a script on the npcs. It can be configured in the .npctype file. Here's an example of quest configurations:

    Code:
        "questGenerator" : {
    //These are the questpools it draws from. They are found in /quests/generated/questpools/
          "pools" : ["arena","connectors"],
    
          // Set this to true if the npc can participate in quests
          "enableParticipation" : true,
        
    // Not sure exactly what this does. 
          "queryCooldown" : 60,
    
    // For quests that require an NPC to figure out a chain of quests (do the favor to get the item to build the thing, etc) each part has a cost. This limits the overall cost of the quest chain
          "maxPlanCost" : 5,
    
          // The probability that, in any given 30 second chunk of time where the
          // NPC is not offering a quest, this NPC will attempt to generate one.
          "chance" : 0.8,
          "maxBoostedChance" : 0.5,
    
          // Every 30 seconds, decide whether to generate a quest and if so, spend
          // the rest of the 30s window trying to generate it.
          "timeLimit" : 10,
    
          // Don't generate new quests if there are already more than <nearbyQuestLimit>
          // questmanager stagehands nearby, within a <nearbyQuestRange> tile range.
          "nearbyQuestLimit" : 10,
          "nearbyQuestRange" : 5,
          "questCountRange" : [1, 11],
        
    // This is used for npcs to graduate into crewmembers
          "graduation" : {
            "nextNpcType" : [
              [1, "crewmemberengineer"],
              [1, "crewmembermechanic"]
            ]
          }
        },
    


    The pools list the types of quests that this npc can do. 'ends' sets quests that end a questchain - although it can be a questchain of one quest (like the kidnapping quest).

    The preconditions are where you find quest requirements and variables for the quest - including locations! questlocations are a type of stagehand that are placed in dungeons and set pieces. They register themselves... somewhere? You can set a quest to get a questlocation on the planet by adding it to the preconditions. Here's the preconditions from the kidnapping quest:

    Code:
          "preconditions" : [
            ["findLocation", "spawnPoint", "locationTags", 50, -1], // gets a questlocation, referred to as spawnpoint
            ["isNpcThreat", "threatTags", "enemy"], // gets an enemy npc from the isNpcThreat pool, found in npcthreats.config
            ["tagSetContains", "locationTags", {"literal":"friendly"}], // requires that locationtags include the friendly tag
            ["tagSubset", "locationTags", "threatTags"], // connects locationtags to threatTags?
    
            ["seededNpcType", "victimNpcType", "species", {"literal":"villager"}, {
              "damageTeamType" : "assistant"
            }], // gets an NPC to rescue
            ["species", "questGiver", "species"] // sets rescuee to be the same species as the questgiver
          ],
    


    Most of this is then referred to in the .questtemplate and associated .lua scripts. Questtemplates have parameters that are sent to the lua script and they generate the text for the generatedd quests.

    Bleh. It's a lot.
    The funny thing is, you can take a NON-generated quest, put it in a questpool with no preconditions and have it pop up as a random quest. I've gotten npcs to give me Nuru's Colosseum quests, but I still have to go find Nuru to get teleported to the colosseum.
     
    xaliber and bk3k like this.
  19. Arsakes

    Arsakes Phantasmal Quasar

    Thanks a LOT man, one last thing i need is auto - start of random generated quest when player approaches quest giver (again its about invasion)
     
  20. bk3k

    bk3k Oxygen Tank

    Possibly you want in your questtemplate
    Code:
      "canBeAbandoned" : false,
      "invisible" : true,
    I think invisible quests just happen(no dialog accepting them). I haven't tested that fact. But I think that would be the most appropriate for invasions.

    I'm curious what sort of invasions you have in mind. I'm thinking of making an addon to the Shipyard Rebuilt mod to add invasions. Something like FTL pirates attacking (would require something like the longer ship travel mod) or invasion after dropping out of FTL instead. I might even have a microdungeon spawn(hull breach pods) etc that you need to go wreck to stop the spawns.

    Colonies could use some invasion events too.

    _____________________

    As for the THIS actual mod, I notice some people mention invaders are over-whelming the stations. Perhaps give them some standing turrets? You could have them wired such that after the invaders get to a point(console etc), an invisible sensor detects them and shuts the turrets down. So invaders have a progression.

    Possibly a customized turret object with stun projectiles that don't damage much? Or regular turrets. I dunno. You could accomplish this with regular gates available in vanilla, or if you wanted a custom turret script(such that you only need to add the turrets for simplicity sake), let me know.

    Also an idea for a random event... bar fights. I'd really like to add a bar to my own mod eventually(optional dungeon rollout).
     
    xaliber likes this.

Share This Page