Modding Help Interested in trying to create some custom (micro)dungeons for generation

Discussion in 'Starbound Modding' started by IceLizard, Dec 11, 2016.

  1. IceLizard

    IceLizard Seal Broken

    Heya,

    I'm interested in creating some custom structures/ruins/microdungeons/dungeons to generate randomly in my world. I have searched several tutorials about the practice, I notice there is alot of similarity to Cortex Command in the way pixels reference different tiles depending on their specific colour. The other option I've taken a look at, is "Tiled", apparently the newer option to creating dungeons and structures for Starbound. I guess with "Tiled" there is more of a sense of what you are doing rather than assigning colours to a pixelgrid where you are unable to see or clarify (until testing) how your structure/feature appears.

    I'm also wary that some of the tutorials that I've read are either not complete, or are outdated. Would there be a reliable source of knowledge based on this subject which I could refer to in regards to setting up a new microdungeon/dungeon from scratch?

    Another question i would have is; if these microdungeons are added to my game, do they work serverside? Or must clients who connect to me also need to have these dungeon blueprint files? Though I doubt that would be the case, as it's not the same thing as new textures/materials/items, and these structures would be generating on the servers end.

    Thanks in advanced.

    - IceLizard
     
    Last edited: Dec 11, 2016
  2. The | Suit

    The | Suit Agent S. Forum Moderator

    If it uses custom assets - clients would need it.
    Also the Tiled tutorial on Starbounder website is accurate and up to date.
     
    IceLizard likes this.
  3. IceLizard

    IceLizard Seal Broken

    Ah, alright. That's what I thought, thankfully I'm intending to use stock assets for that purpose.

    I see that there are descriptions of some different tiles, some signifying to ignore tilespaces allowing the world generator to fill in with whatever it originally planned, is there also a tiletype to assign the world generator to do that to the foreground, too (with something potentially in the background that the player can discover through excavating the foreground if there is matter there)?

    Also, the Tiled tutorial on Starbounder seems to only refer to missions, would there be a tutorial for microdungeons (ruins and features generated with the world) aswel?

    Thanks for the help.

    Edit: I've also heard about 'anchors', and noticed the layer for it in Tiled, although I'm not entirely sure what these things do/why they are off the grid.

    - IceLizard
     
    Last edited: Dec 12, 2016
  4. IceLizard

    IceLizard Seal Broken

    Alright, so;

    Using one of the provided templates in one of the assets, I've mocked up a simple test house.

    [​IMG]

    Not sure if I've done anything wrong, or what I've done right. One thing that's confusing me are the way 'anchors' don't comply to the tiling grid, yet on the templates + several stock microdungeons, these 'anchors' like "Air" and "So" are slapbang aligned to the grid. Is there a consequence should these anchors not apply to the grid? (I'm still not 100% sure what they do, my assumption is they structure the conditions that a surrounding area needs to meet in order to spawn the microdungeon, but that could be wrong).

    Additionally, I'm not 100% sure where to place this .json file to be read as a 'mod' in order to incorporate this into the world generation. Also, is there anything else needed in order to set this up, like some kind of file in order to 'index' it to the game?

    I would be grateful for help offered to help me understand how to set up dungeons/microdungeons.

    I hope the image I posted here does not exceed acceptable proportions, sorry if so.
     
  5. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Anchors do set rules for generation such as requiring existing tile types or open spaces. I've never really had problems aligning them to the grid though... Are you placing them as objects in an object layer? Otherwise, you could try just cleaning a vanilla .json dungeon and using their anchors as reference... (I can't provide much help as I'm not entirely sure how to help with that problem...)

    The .json file is essentially the replacement of your blockkey and pixelmap. You need an accompanying .dungeon file to read it, however and still need to define the dungeon in the terrestrial.config... Blah, blah, blah.
    You can take a look at how other, newer, vanilla dungeons handle this in their files as well. :)
     
    IceLizard likes this.
  6. IceLizard

    IceLizard Seal Broken

    I'm adding these anchors in the 'anchor' layer, which sortof seems to treat them as 'loose objects'. But aha, thanks for the clarification on anchors setting up rules for generation; I suspected that would be what they would do.

    I guess I could use the stock, .json dungeons too, if I can't find a way to set them up on my own (which I would prefer), although for some ruins/microdungeons/etc, might require some unorthodox placement in order to create something a bit dynamic through shaping those generation rules.

    By blockkey/pixelmap, do you mean the obsolete microdungeon method (charting different specific pixel bits to define what tile should appear where)? That method reminds me alot of Cortex Command, although I can see how it would be less useful for Starbound compared to using Tiled.

    I appreciate your help, hopefully somebody could shed more light on the matter
     
  7. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    When I mean the blockkey/pixelmap, I mean the old method of Starbound dungeons where 1 pixel in a pixel map corresponded to 1 tile in-game; And a similar map was used to map objects onto the map as well.
    I'm not sure what it was called exactly, but it seems like it is what you are referring to in Cortex Command. (I assume...?)



    I think your issue with anchors may be a part of your maps properties. I just opened one of my dungeons, and my anchors all snap tile-by-tile.
    I'm gonna attach a .zip with a .tmx for Tiled I use as a template for new projects.
    Hopefully, it can help somewhat:
     

    Attached Files:

    IceLizard likes this.
  8. IceLizard

    IceLizard Seal Broken

    Cheers, something went right, now the objects snap to grid.

    Also, I just noticed the option under the View tab: "Snap to grid" <- this is probably what I had disabled before.

    Thanks very much for the template, now that i know anchors are 'supposed' to be on the grid, things make much more sense.

    I'll tell you how I got on after I play around some more with it. :confirm:
     
    Inf_Wolf14 likes this.
  9. IceLizard

    IceLizard Seal Broken

    Alright, so I messed with the editor a bit and, as far as I know I have set my test ruin up properly.

    I left the anchors where they are, as I mostly can't think of a better place to put them for this microdungeon example.

    [​IMG]

    And ignore that chair which is floating, it's not a placed object, I simply had the tile selected when i switched back to the 'front layer'.

    If you want, you can take a look at the small .json files if you want to make sure I've put the objects in the right layers (like the doors, and stuff, which are in the object layer).

    Edit: I just realised that the empty cabin lacks those "So" anchors, I guess they are used to mark 'there needs to be something solid on this spot already' in order to meet the spawning/placement conditions.
     

    Attached Files:

  10. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Yeah, I never ended up using those placement rules. :3
    The "Air" generation rules normally fit it to the ground anyways. (Where else will you find that kind of available air besides the surface? ...That's rhetorical, please don't prove me wrong...)

    At least, in my experience, every dungeon I've created has spawned properly on the surface without issue.
     
    IceLizard likes this.
  11. IceLizard

    IceLizard Seal Broken

    Ah,

    I kindof assumed because they were called 'anchors' they were the first part of the ruin to be fabricated, and I thought "So" would help attach it to the ground, so it wouldn't end up in the sky.

    Now I guess I need to set up a .dungeon file (not that I would know how to write one from scratch, but I guess I could just rename some things by using stock .dungeon files). Otherwise, you mentioned that I had to index it for the game to know how to read it? Is there a way to do that without causing assets mismatches with other clients?

    Thanks for the help.

    - IceLizard
     
  12. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Well, "indexing" it would mean adding the dungeon definitions to the appropriate config files to tell the game to spawn it as part of world generation.

    Namely, the terrestrial.config would be one you would probably touch base on.
    I suggest opening up the vanilla one and studying it to understand how the game determines what dungeons to spawn in world gen.



    If you haven't already, you can test your dungeon without those patches, once you set up the .dungeon file, with "/placedungeon" in-game.
    The command ignores world gen ruling as well, so you can just make sure things look as you intended. :)
     
    IceLizard likes this.
  13. IceLizard

    IceLizard Seal Broken

    Been having a look at terrestrial_worlds.config, and recent examples of other peoples' microdungeon mods. Although, after looking at the stock terrestrial_worlds.config file, I can see how dungeons are attributed to specific biomes. If I were to make a seperate .config file with the same name in the mods\mymoddungeonthing folder, how would I expand onto the list of dungeons applicable for a certain biome in a separate file?

    I should mention, I am not Java/lua/any code or programming language savvy D:

    I checked the same config file of another microdungeons mod, which used a .config.patch setup, although I can't understand what this person has done here in order to attribute those dungeons to said biome; what he has done looks different to the stock .config file.

    I am grasping this more than I did initially, though.
     
  14. IceLizard

    IceLizard Seal Broken

    I wanted to see what the microdungeons came accross as when imported into the game and using the /placedungeon command, so I created a temporary mod folder at Starbound\mods\ILExtraDungeons\dungeons\microdungeons\underground, with the .json and .dungeon file included in that directory (not that I know apart from speculating how to structure the folders and where to put the files so Starbound can load them), although now Starbound refuses to launch, and I checked the log and noticed this error:

    [10:29:00.039] [Error] Exception caught loading asset: /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon, (AssetException) Could not read JSON asset /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon
     
  15. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    That section of the log alone doesn't tell us what the error is, however.

    If you can, posting the entire starbound.log will help find the error.
    (Please use [spoiler][/spoiler] tags if you do though. :))



    (Chances are it is a parsing error, the log tells you what line it is, though, so it's usually an easy fix.)
     
    IceLizard likes this.
  16. IceLizard

    IceLizard Seal Broken

    I'll put up the whole log.


    [10:28:55.572] [Info] Root: Preparing Root...
    [10:28:55.575] [Info] Root: Done preparing Root.
    [10:28:55.575] [Info] Client Version 1.1.1 (windows x86_64) Source ID: 82604f6097b124f2ed38ee58a7ae18c51e916dd8 Protocol: 724
    [10:28:55.575] [Info] Root: Scanning for asset sources in directory '..\assets\'
    [10:28:55.575] [Info] Root: Skipping hidden '_Unpacked' in asset directory
    [10:28:55.806] [Info] Root: Scanning for asset sources in directory '..\mods\'
    [10:28:55.807] [Warn] Root: Unrecognized file in asset directory 'mods_go_here', skipping
    [10:28:55.807] [Info] Root: Detected asset source named 'base' at '..\assets\packed.pak'
    [10:28:55.807] [Info] Root: Detected asset source named 'ILExtraDungeons' at '..\mods\ILExtraDungeons'
    [10:28:55.807] [Info] Root: Detected unnamed asset source at '..\assets\user'
    [10:28:55.807] [Info] Loading assets from: '..\assets\packed.pak'
    [10:28:56.120] [Info] Loading assets from: '..\mods\ILExtraDungeons'
    [10:28:56.120] [Info] Loading assets from: '..\assets\user'
    [10:28:56.839] [Info] Assets digest is a9f109db32066cb57180b9e47c127a75bad3a62fa2e52f29531a457f221d1579
    [10:28:56.839] [Info] Root: Loaded Assets in 1.26402 seconds
    [10:28:56.842] [Info] Application: Initializing SDL Video
    [10:28:56.848] [Info] Application: Initializing SDL Joystick
    [10:28:56.879] [Info] Application: Initializing SDL Sound
    [10:28:56.991] [Info] Initialized Steam services
    [10:28:56.991] [Info] Application: Creating SDL Window
    [10:28:57.104] [Info] Application: Enabling VSync with late swap tearing
    [10:28:57.130] [Info] Application: Opened default audio device with 44.1khz / 16 bit stereo audio, 2048 sample size buffer
    [10:28:57.137] [Info] OpenGL version: '4.5.0 NVIDIA 376.09' vendor: 'NVIDIA Corporation' renderer: 'GeForce GTX 860M/PCIe/SSE2' shader: '4.50 NVIDIA'
    [10:28:57.150] [Info] Application: initialization...
    [10:28:57.152] [Info] Root: Loaded Configuration in 0.00101978 seconds
    [10:28:57.156] [Info] Application: renderer initialization...
    [10:28:57.158] [Info] Root: Loaded ImageMetadataDatabase in 6.15812e-06 seconds
    [10:28:57.176] [Info] Application: main update loop...
    [10:28:57.177] [Info] Loading mods from user generated content with id '783742589' from directory 'D:\Steam\steamapps\workshop\content\211820\783742589'
    [10:28:57.177] [Info] Loading mods from user generated content with id '737840198' from directory 'D:\Steam\steamapps\workshop\content\211820\737840198'
    [10:28:57.177] [Info] Loading mods from user generated content with id '733139672' from directory 'D:\Steam\steamapps\workshop\content\211820\733139672'
    [10:28:57.177] [Info] Loading mods from user generated content with id '736083085' from directory 'D:\Steam\steamapps\workshop\content\211820\736083085'
    [10:28:57.177] [Info] Loading mods from user generated content with id '729428991' from directory 'D:\Steam\steamapps\workshop\content\211820\729428991'
    [10:28:57.177] [Info] Reloading to include all user generated content
    [10:28:57.177] [Info] Root: Reloading from disk
    [10:28:57.177] [Info] Root: Writing runtime configuration to '..\storage\starbound.config'
    [10:28:57.206] [Info] Root: Loaded Configuration in 0.000893748 seconds
    [10:28:57.206] [Info] Root: Scanning for asset sources in directory '..\assets\'
    [10:28:57.206] [Info] Root: Skipping hidden '_Unpacked' in asset directory
    [10:28:57.425] [Info] Root: Scanning for asset sources in directory '..\mods\'
    [10:28:57.426] [Warn] Root: Unrecognized file in asset directory 'mods_go_here', skipping
    [10:28:57.426] [Info] Root: Scanning for asset sources in directory 'D:\Steam\steamapps\workshop\content\211820\783742589'
    [10:28:57.426] [Info] Root: Scanning for asset sources in directory 'D:\Steam\steamapps\workshop\content\211820\737840198'
    [10:28:57.427] [Info] Root: Scanning for asset sources in directory 'D:\Steam\steamapps\workshop\content\211820\733139672'
    [10:28:57.427] [Info] Root: Scanning for asset sources in directory 'D:\Steam\steamapps\workshop\content\211820\736083085'
    [10:28:57.427] [Info] Root: Scanning for asset sources in directory 'D:\Steam\steamapps\workshop\content\211820\729428991'
    [10:28:57.430] [Info] Root: Detected asset source named 'base' at '..\assets\packed.pak'
    [10:28:57.430] [Info] Root: Detected asset source named 'ILExtraDungeons' at '..\mods\ILExtraDungeons'
    [10:28:57.430] [Info] Root: Detected asset source named 'WeaponAssembly' at 'D:\Steam\steamapps\workshop\content\211820\783742589\contents.pak'
    [10:28:57.430] [Info] Root: Detected asset source named 'Submarine' at 'D:\Steam\steamapps\workshop\content\211820\737840198\contents.pak'
    [10:28:57.430] [Info] Root: Detected asset source named 'Earth's Finest - Crew Improvements' at 'D:\Steam\steamapps\workshop\content\211820\733139672\contents.pak'
    [10:28:57.430] [Info] Root: Detected asset source named 'Soma Exploration Ship (Apex)' at 'D:\Steam\steamapps\workshop\content\211820\736083085\contents.pak'
    [10:28:57.430] [Info] Root: Detected asset source named 'XS_Mechs' at 'D:\Steam\steamapps\workshop\content\211820\729428991\contents.pak'
    [10:28:57.430] [Info] Root: Detected unnamed asset source at '..\assets\user'
    [10:28:57.430] [Info] Loading assets from: '..\assets\packed.pak'
    [10:28:57.744] [Info] Loading assets from: '..\mods\ILExtraDungeons'
    [10:28:57.745] [Info] Loading assets from: 'D:\Steam\steamapps\workshop\content\211820\783742589\contents.pak'
    [10:28:57.746] [Info] Loading assets from: 'D:\Steam\steamapps\workshop\content\211820\737840198\contents.pak'
    [10:28:57.746] [Info] Loading assets from: 'D:\Steam\steamapps\workshop\content\211820\733139672\contents.pak'
    [10:28:57.746] [Info] Loading assets from: 'D:\Steam\steamapps\workshop\content\211820\736083085\contents.pak'
    [10:28:57.747] [Info] Loading assets from: 'D:\Steam\steamapps\workshop\content\211820\729428991\contents.pak'
    [10:28:57.749] [Info] Loading assets from: '..\assets\user'
    [10:28:58.473] [Info] Assets digest is af905fa564e7ff1bcead5e928803d8892376d60e9067083fc317685edac7ed3f
    [10:28:58.473] [Info] Root: Loaded Assets in 1.26582 seconds
    [10:28:58.502] [Info] Root: Loaded NameGenerator in 0.0289399 seconds
    [10:28:58.511] [Info] Root: Loaded ImageMetadataDatabase in 4.92649e-06 seconds
    [10:28:58.531] [Error] OpenGL errors this frame: GL_INVALID_VALUE
    [10:28:58.638] [Info] Root: Loaded PlantDatabase in 0.135961 seconds
    [10:28:58.794] [Info] Root: Loaded ObjectDatabase in 0.320142 seconds
    [10:28:58.952] [Info] Root: Loaded MonsterDatabase in 0.158159 seconds
    [10:28:58.994] [Info] Root: Loaded NpcDatabase in 0.042124 seconds
    [10:28:58.995] [Info] Root: Loaded StagehandDatabase in 0.00111996 seconds
    [10:28:59.003] [Info] Root: Loaded VehicleDatabase in 0.00760363 seconds
    [10:28:59.006] [Info] Root: Loaded PlayerFactory in 0.00336069 seconds
    [10:28:59.101] [Info] Root: Loaded ProjectileDatabase in 0.462192 seconds
    [10:28:59.103] [Info] Root: Loaded VersioningDatabase in 0.00252975 seconds
    [10:28:59.103] [Info] Root: Loaded EntityFactory in 0.096994 seconds
    [10:28:59.145] [Info] Root: Loaded ParticleDatabase in 0.041587 seconds
    [10:28:59.408] [Info] Root: Loaded MaterialDatabase in 0.304945 seconds
    [10:28:59.413] [Info] Root: Loaded TerrainDatabase in 0.00498479 seconds
    [10:28:59.447] [Info] Root: Loaded BiomeDatabase in 0.0339513 seconds
    [10:28:59.448] [Info] Root: Loaded LiquidsDatabase in 0.000805482 seconds
    [10:28:59.455] [Info] Root: Loaded StatusEffectDatabase in 0.00645617 seconds
    [10:28:59.581] [Info] Root: Loaded DamageDatabase in 0.126727 seconds
    [10:28:59.587] [Info] Root: Loaded EffectSourceDatabase in 0.0050086 seconds
    [10:28:59.590] [Info] Root: Loaded FunctionDatabase in 0.00311806 seconds
    [10:28:59.616] [Info] Root: Loaded TreasureDatabase in 0.0263518 seconds
    [10:29:00.039] [Error] Exception caught loading asset: /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon, (AssetException) Could not read JSON asset /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon
    [0] 13fd33223 Star::captureStack
    [1] 13fd31fae Star::StarException::StarException
    [2] 13fd32098 Star::StarException::StarException
    [3] 13fd42990 Star::AssetException::AssetException
    [4] 1405afbe1 `<lambda_80e152f0e8987fd28e54fe8e75d4e933>::eek:perator()'::`1'::catch$25
    [5] 7fef47fc220 _C_specific_handler
    [6] 7fef47f29b2 _FrameUnwindFilter
    [7] 7718b681 RtlRestoreContext
    [8] 13fd44d8d <lambda_80e152f0e8987fd28e54fe8e75d4e933>::eek:perator()
    [9] 13fd3c38f std::_Invoker_functor::_Call<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [10] 13fd3fdf6 std::invoke<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [11] 13fd3da20 std::_Invoke_ret<std::shared_ptr<Star::Assets::AssetData>,<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [12] 13fd46326 std::_Func_impl<<lambda_80e152f0e8987fd28e54fe8e75d4e933>,std::allocator<int>,std::shared_ptr<Star::Assets::AssetData> >::_Do_call
    [13] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [14] 13fd4ec18 Star::Assets::processAssetData
    [15] 13fd4cbb8 Star::Assets::loadJson
    [16] 13fd4be23 Star::Assets::loadAsset
    [17] 13fd49b1f Star::Assets::doLoad
    [18] 13fd4b09b Star::Assets::getAsset
    [19] 13fd4bb3a Star::Assets::json
    [20] 13fe1d2b1 Star::DungeonDefinitions::DungeonDefinitions
    [21] 140091c55 std::make_shared<Star::DungeonDefinitions>
    [22] 1400968d9 <lambda_408081d78a01ae7d1aa03cae14c1acfa>::eek:perator()
    [23] 14008874f std::_Invoker_functor::_Call<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [24] 14008c886 std::invoke<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [25] 14008a329 std::_Invoke_ret<std::shared_ptr<Star::DungeonDefinitions>,<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [26] 140099346 std::_Func_impl<<lambda_408081d78a01ae7d1aa03cae14c1acfa>,std::allocator<int>,std::shared_ptr<Star::DungeonDefinitions> >::_Do_call
    [27] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [28] 14008e573 Star::Root::loadMemberFunction<Star::DungeonDefinitions>
    [29] 14008cfb9 Star::Root::loadMember<Star::DungeonDefinitions>
    [30] 14009cf72 Star::Root::dungeonDefinitions
    [31] 140088d80 std::_Invoker_pmf_pointer::_Call<std::shared_ptr<Star::BiomeDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [32] 14008c779 std::invoke<std::shared_ptr<Star::TechDatabase const > (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [33] 14008a14c std::_Invoke_ret<std::shared_ptr<Star::Configuration> (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [34] 140088e0e std::_Call_binder<std::_Unforced,0,std::shared_ptr<Star::AiDatabase const > (__cdecl Star::Root::*)(void) __ptr64,std::tuple<Star::Root * __ptr64>,std::tuple<> >
    [35] 1400884ce std::_Binder<std::_Unforced,std::shared_ptr<Star::CollectionDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const>::eek:perator()<>
    [36] 140099172 std::_Func_impl<Star::SwallowReturn<std::_Binder<std::_Unforced,std::shared_ptr<Star::BehaviorDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const> >,std::allocator<int>,void>::_Do_call
    [37] 13fd29fbb <lambda_7b083dc4bdd496712d99e51bb49515b5>::eek:perator()
    [38] 13fd2ade2 Star::WorkerPool::WorkerThread::run
    [39] 13fd2fd0e Star::ThreadImpl::runThread
    [40] 770359cd BaseThreadInitThunk
    [41] 7716a561 RtlUserThreadStart
    Caused by: (JsonParsingException) Cannot parse json file: /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon
    [0] 13fd33223 Star::captureStack
    [1] 13fd31fae Star::StarException::StarException
    [2] 13fd32098 Star::StarException::StarException
    [3] 13fd43770 Star::JsonParsingException::JsonParsingException
    [4] 1405b1048 `Star::Assets::readJson'::`1'::catch$264
    [5] 7fef47fc220 _C_specific_handler
    [6] 7fef47f29b2 _FrameUnwindFilter
    [7] 7718b681 RtlRestoreContext
    [8] 13fd4f21a Star::Assets::readJson
    [9] 13fd44d8d <lambda_80e152f0e8987fd28e54fe8e75d4e933>::eek:perator()
    [10] 13fd3c38f std::_Invoker_functor::_Call<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [11] 13fd3fdf6 std::invoke<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [12] 13fd3da20 std::_Invoke_ret<std::shared_ptr<Star::Assets::AssetData>,<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [13] 13fd46326 std::_Func_impl<<lambda_80e152f0e8987fd28e54fe8e75d4e933>,std::allocator<int>,std::shared_ptr<Star::Assets::AssetData> >::_Do_call
    [14] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [15] 13fd4ec18 Star::Assets::processAssetData
    [16] 13fd4cbb8 Star::Assets::loadJson
    [17] 13fd4be23 Star::Assets::loadAsset
    [18] 13fd49b1f Star::Assets::doLoad
    [19] 13fd4b09b Star::Assets::getAsset
    [20] 13fd4bb3a Star::Assets::json
    [21] 13fe1d2b1 Star::DungeonDefinitions::DungeonDefinitions
    [22] 140091c55 std::make_shared<Star::DungeonDefinitions>
    [23] 1400968d9 <lambda_408081d78a01ae7d1aa03cae14c1acfa>::eek:perator()
    [24] 14008874f std::_Invoker_functor::_Call<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [25] 14008c886 std::invoke<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [26] 14008a329 std::_Invoke_ret<std::shared_ptr<Star::DungeonDefinitions>,<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [27] 140099346 std::_Func_impl<<lambda_408081d78a01ae7d1aa03cae14c1acfa>,std::allocator<int>,std::shared_ptr<Star::DungeonDefinitions> >::_Do_call
    [28] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [29] 14008e573 Star::Root::loadMemberFunction<Star::DungeonDefinitions>
    [30] 14008cfb9 Star::Root::loadMember<Star::DungeonDefinitions>
    [31] 14009cf72 Star::Root::dungeonDefinitions
    [32] 140088d80 std::_Invoker_pmf_pointer::_Call<std::shared_ptr<Star::BiomeDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [33] 14008c779 std::invoke<std::shared_ptr<Star::TechDatabase const > (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [34] 14008a14c std::_Invoke_ret<std::shared_ptr<Star::Configuration> (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [35] 140088e0e std::_Call_binder<std::_Unforced,0,std::shared_ptr<Star::AiDatabase const > (__cdecl Star::Root::*)(void) __ptr64,std::tuple<Star::Root * __ptr64>,std::tuple<> >
    [36] 1400884ce std::_Binder<std::_Unforced,std::shared_ptr<Star::CollectionDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const>::eek:perator()<>
    [37] 140099172 std::_Func_impl<Star::SwallowReturn<std::_Binder<std::_Unforced,std::shared_ptr<Star::BehaviorDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const> >,std::allocator<int>,void>::_Do_call
    [38] 13fd29fbb <lambda_7b083dc4bdd496712d99e51bb49515b5>::eek:perator()
    [39] 13fd2ade2 Star::WorkerPool::WorkerThread::run
    [40] 13fd2fd0e Star::ThreadImpl::runThread
    [41] 770359cd BaseThreadInitThunk
    [42] 7716a561 RtlUserThreadStart
    Caused by: (JsonParsingException) Error parsing json: unexpected character parsing word at 8:37
    [0] 13fd33223 Star::captureStack
    [1] 13fd31fae Star::StarException::StarException
    [2] 13fd3fc0c Star::inputUtf8Json<char * __ptr64>
    [3] 13fd4f21a Star::Assets::readJson
    [4] 13fd44d8d <lambda_80e152f0e8987fd28e54fe8e75d4e933>::eek:perator()
    [5] 13fd3c38f std::_Invoker_functor::_Call<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [6] 13fd3fdf6 std::invoke<<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [7] 13fd3da20 std::_Invoke_ret<std::shared_ptr<Star::Assets::AssetData>,<lambda_80e152f0e8987fd28e54fe8e75d4e933> & __ptr64>
    [8] 13fd46326 std::_Func_impl<<lambda_80e152f0e8987fd28e54fe8e75d4e933>,std::allocator<int>,std::shared_ptr<Star::Assets::AssetData> >::_Do_call
    [9] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [10] 13fd4ec18 Star::Assets::processAssetData
    [11] 13fd4cbb8 Star::Assets::loadJson
    [12] 13fd4be23 Star::Assets::loadAsset
    [13] 13fd49b1f Star::Assets::doLoad
    [14] 13fd4b09b Star::Assets::getAsset
    [15] 13fd4bb3a Star::Assets::json
    [16] 13fe1d2b1 Star::DungeonDefinitions::DungeonDefinitions
    [17] 140091c55 std::make_shared<Star::DungeonDefinitions>
    [18] 1400968d9 <lambda_408081d78a01ae7d1aa03cae14c1acfa>::eek:perator()
    [19] 14008874f std::_Invoker_functor::_Call<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [20] 14008c886 std::invoke<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [21] 14008a329 std::_Invoke_ret<std::shared_ptr<Star::DungeonDefinitions>,<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [22] 140099346 std::_Func_impl<<lambda_408081d78a01ae7d1aa03cae14c1acfa>,std::allocator<int>,std::shared_ptr<Star::DungeonDefinitions> >::_Do_call
    [23] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [24] 14008e573 Star::Root::loadMemberFunction<Star::DungeonDefinitions>
    [25] 14008cfb9 Star::Root::loadMember<Star::DungeonDefinitions>
    [26] 14009cf72 Star::Root::dungeonDefinitions
    [27] 140088d80 std::_Invoker_pmf_pointer::_Call<std::shared_ptr<Star::BiomeDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [28] 14008c779 std::invoke<std::shared_ptr<Star::TechDatabase const > (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [29] 14008a14c std::_Invoke_ret<std::shared_ptr<Star::Configuration> (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [30] 140088e0e std::_Call_binder<std::_Unforced,0,std::shared_ptr<Star::AiDatabase const > (__cdecl Star::Root::*)(void) __ptr64,std::tuple<Star::Root * __ptr64>,std::tuple<> >
    [31] 1400884ce std::_Binder<std::_Unforced,std::shared_ptr<Star::CollectionDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const>::eek:perator()<>
    [32] 140099172 std::_Func_impl<Star::SwallowReturn<std::_Binder<std::_Unforced,std::shared_ptr<Star::BehaviorDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const> >,std::allocator<int>,void>::_Do_call
    [33] 13fd29fbb <lambda_7b083dc4bdd496712d99e51bb49515b5>::eek:perator()
    [34] 13fd2ade2 Star::WorkerPool::WorkerThread::run
    [35] 13fd2fd0e Star::ThreadImpl::runThread
    [36] 770359cd BaseThreadInitThunk
    [37] 7716a561 RtlUserThreadStart
    [10:29:00.047] [Info] Root: Loaded TilesetDatabase in 7.59501e-05 seconds
    [10:29:00.049] [Info] Root: Loaded StatisticsDatabase in 0.0027223 seconds
    [10:29:00.050] [Info] Root: Loaded EmoteProcessor in 0.000107972 seconds
    [10:29:00.056] [Info] Root: Loaded SpeciesDatabase in 0.00674191 seconds
    [10:29:00.070] [Info] Root: Loaded QuestTemplateDatabase in 0.0136542 seconds
    [10:29:00.071] [Info] Root: Loaded AiDatabase in 0.00133795 seconds
    [10:29:00.072] [Info] Root: Loaded TechDatabase in 0.000715163 seconds
    [10:29:00.078] [Info] Root: Loaded CodexDatabase in 0.00581408 seconds
    [10:29:00.164] [Info] Root: Loaded BehaviorDatabase in 0.0854726 seconds
    [10:29:00.166] [Info] Root: Loaded DanceDatabase in 0.00264142 seconds
    [10:29:00.176] [Info] Root: Loaded SpawnTypeDatabase in 0.00964566 seconds
    [10:29:00.178] [Info] Root: Loaded RadioMessageDatabase in 0.00242219 seconds
    [10:29:01.768] [Info] Root: Loaded ItemDatabase in 2.66703 seconds
    [10:29:01.926] [Info] Root: Loaded CollectionDatabase in 1.74769 seconds
    [10:29:01.935] [Error] Application: exception thrown, shutting down: (AssetException) Error loading asset /dungeons/microdungeons/underground/undergroundmicrofeatures.dungeon
    [0] 13fd33223 Star::captureStack
    [1] 13fd31fae Star::StarException::StarException
    [2] 13fd3f20a Star::AssetException::format<Star::AssetPath>
    [3] 13fd4b14b Star::Assets::getAsset
    [4] 13fd4bb3a Star::Assets::json
    [5] 13fe1d2b1 Star::DungeonDefinitions::DungeonDefinitions
    [6] 140091c55 std::make_shared<Star::DungeonDefinitions>
    [7] 1400968d9 <lambda_408081d78a01ae7d1aa03cae14c1acfa>::eek:perator()
    [8] 14008874f std::_Invoker_functor::_Call<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [9] 14008c886 std::invoke<<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [10] 14008a329 std::_Invoke_ret<std::shared_ptr<Star::DungeonDefinitions>,<lambda_408081d78a01ae7d1aa03cae14c1acfa> & __ptr64>
    [11] 140099346 std::_Func_impl<<lambda_408081d78a01ae7d1aa03cae14c1acfa>,std::allocator<int>,std::shared_ptr<Star::DungeonDefinitions> >::_Do_call
    [12] 140097b17 std::_Func_class<std::shared_ptr<Star::TilesetDatabase> >::eek:perator()
    [13] 14008e573 Star::Root::loadMemberFunction<Star::DungeonDefinitions>
    [14] 14008cfb9 Star::Root::loadMember<Star::DungeonDefinitions>
    [15] 14009cf72 Star::Root::dungeonDefinitions
    [16] 140088d80 std::_Invoker_pmf_pointer::_Call<std::shared_ptr<Star::BiomeDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [17] 14008c779 std::invoke<std::shared_ptr<Star::TechDatabase const > (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [18] 14008a14c std::_Invoke_ret<std::shared_ptr<Star::Configuration> (__cdecl Star::Root::*& __ptr64)(void) __ptr64,Star::Root * __ptr64 & __ptr64>
    [19] 140088e0e std::_Call_binder<std::_Unforced,0,std::shared_ptr<Star::AiDatabase const > (__cdecl Star::Root::*)(void) __ptr64,std::tuple<Star::Root * __ptr64>,std::tuple<> >
    [20] 1400884ce std::_Binder<std::_Unforced,std::shared_ptr<Star::CollectionDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const>::eek:perator()<>
    [21] 140099172 std::_Func_impl<Star::SwallowReturn<std::_Binder<std::_Unforced,std::shared_ptr<Star::BehaviorDatabase const > (__cdecl Star::Root::*)(void) __ptr64,Star::Root * __ptr64 const> >,std::allocator<int>,void>::_Do_call
    [22] 13fd29fbb <lambda_7b083dc4bdd496712d99e51bb49515b5>::eek:perator()
    [23] 13fd2ade2 Star::WorkerPool::WorkerThread::run
    [24] 13fd2fd0e Star::ThreadImpl::runThread
    [25] 770359cd BaseThreadInitThunk
    [26] 7716a561 RtlUserThreadStart
    [10:29:01.935] [Info] Application: shutdown...
    [10:29:02.004] [Info] Root: Shutting down Root
    [10:29:02.278] [Info] Application: Destroying SDL Window
    [10:29:02.288] [Info] Application: stopped gracefully


    Thanks again for the help, by the way.
     
  17. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Hmm...:confused:
    This log doesn't seem to actually say anything besides: "Tl;Dr: Something broke, it was this file, game closes now."

    If you want, you can send me your files, and I'll spot-check them for errors and see if I can get 'em working.
     
    IceLizard likes this.
  18. IceLizard

    IceLizard Seal Broken

    This is the example file I have right now, I was planning to add further dungeons once I had figured out how to get these microdungeons working.

    :confirm:
     

    Attached Files:

  19. Inf_Wolf14

    Inf_Wolf14 Parsec Taste Tester

    Hold on. Sorry, my bad. Computer wasn't loading the spoiler with your log properly.
    Sorry, for my failure to properly read the log. :3



    Yup, looking at your files confirm it:
    Code:
    "parts" : [
        {
          "name" : "undrgrndstlgsmd",
          "rules" : [
            [ "maxSpawnCount", [1] ]
          ],
          "def" : [ "tmx", "undrgrndstlgsmd.json" ]
        },   <-----This comma
      ]
    
     
    IceLizard likes this.
  20. IceLizard

    IceLizard Seal Broken

    I think there's still something else wrong with that .dungeon file, as it's still unfortunately crashing. The log mentions this, this time

    Caused by: (JsonParsingException) Error parsing json: bad object, should be '}' or ',' at 8:5

    What would 8:5 be a reference to?

    Mind you, I did remove a handful of other commas which 'looked' to my unsavvy eye that they were similarly out of place, as after removing that comma mentioned above, Starbound still failed to launch with this mod in the mods folder.

    "Sorry, for my failure to properly read the log. :3"

    No problem mate, I'm still grateful of the help regardless.
     
    Inf_Wolf14 likes this.

Share This Page