[Outdated] The Proper Way to Install Mods

Discussion in 'Starbound Modding' started by SethKipz, Dec 8, 2013.

Thread Status:
Not open for further replies.
  1. WolfGang

    WolfGang Phantasmal Quasar

    Would this allow for "elderscrolls" style load orders?

    where mods can overwrite other mods? Maybe even in the long run let mods declare dependencies?
    :):):):):) plz plz plz
     
  2. Xuhybrid

    Xuhybrid Scruffy Nerf-Herder

    jSON would need to be object oriented but its just a storage language, not a programming language.
     
  3. Vagrant0

    Vagrant0 Void-Bound Voyager

    Technically that already exists.

    The last entry in assetSources takes precedence over any previous ones.
     
  4. Doc Honcho

    Doc Honcho Big Damn Hero

    My idea is to have mods contain partial definitions of any existing data files modified and the compiler/modloader could merge them with the existing data.

    For example, Mod x needs to add blueprints to player.config. it includes something like the following json fragment named player.config.fragment
    Code:
    {
      "defaultBlueprints": {
        "add": [
          { "item": "mywidget" },
          { "item": "anotherwidget" }
        ],
        "replace": [
          {"item.coppersword": "mybalancedcoppersword" }
        ]
      }
    }
    
    The compiler first loads the default data files, then all mods. It can then modify the default data structures according to the mods, report conflicts, etc. The compiler then emits json files with the modded data.

    There are still some aspects to consider, and I don't have a proof of concept just yet, but I can't think of any technical reasons why this method shouldn't work, at least until some official method is released.

    Edit: changed fragment filename
     
  5. flyingmoose

    flyingmoose Scruffy Nerf-Herder

  6. Monomer

    Monomer 2.7182818284590...

    Did a quick look through this thread here and didn't see an answer to my particular question so I'll share it:

    This method makes sense for object additions/modifications, recipes, etc. When adding new surfaceBiomes (aka planet types), however, celestial.config must be updated to include your new surface biome in the universe generation for a particular sector. Has anyone found a way to add new surfaceBiomes to the game without modifying that (critical) base file, or is that the only way as of now?
     
  7. Doc Honcho

    Doc Honcho Big Damn Hero

    I'll check it out later, but might want to consider using something other than c#, it's windows only and the game is multiplatform.
     
  8. flyingmoose

    flyingmoose Scruffy Nerf-Herder

    Actually C# runs just fine on Linux via MONO I'll only be supporting windows at release however for ease of finding any early bugs.
     
  9. SethKipz

    SethKipz Aquatic Astronaut

    Just throw it in your file the same way you would a playerconfig change. It has the same problem as changes to playerconfig in that only one active mod can have a different version of it currently.
     
  10. Nightmares

    Nightmares Scruffy Nerf-Herder

    How did you set up the folder hierarchy? Remember everything that comes after the /assets folder needs to be mirrored in your mod folder.
     
  11. Nightmares

    Nightmares Scruffy Nerf-Herder

    Did you try doing it in the same manor one would modify the player.config file?
     
  12. Monomer

    Monomer 2.7182818284590...

    Based on what SethKipz said I believe what you suggest should work! Thanks for the replies.
     
  13. mvx

    mvx Tentacle Wrangler

    what's the purpose of putting recipes into recipes/starter/etc if you have to state it in player.config?
     
  14. Xuhybrid

    Xuhybrid Scruffy Nerf-Herder

    Organisation.
     
  15. mvx

    mvx Tentacle Wrangler

    Thanks :D
     
  16. SethKipz

    SethKipz Aquatic Astronaut

    The recipe files are the actual recipes.

    Adding the stuff to the player.config tells the game which recipes should be unlocked when.
     
  17. mvx

    mvx Tentacle Wrangler

    Ah, at first glance I assumed that putting things inside /recipes/starter/* meant that it was unlocked at the start.
     
  18. kitsunespirit

    kitsunespirit Cosmic Narwhal

    When I try this I get an error stating:

    Asset backed exception: asset database ...mods/mininghelm is missing.

    So I still need to put the code inside config files for character and universe and so on? I'm using the Felin race mod, Empress New Clothes, Charcoal and Mining Helm.

    This is what the bootstrap file looks like after I modded it:

    Code:
    {
      "assetSources" : [
        "../assets",
        ".../mods/charcoal",
        ".../mods/empressnewclothes",
        ".../mods/felin",
        ".../mods/mininghelm"
      ],
      "storageDirectory" : ".."
    }
     
  19. Afflicted One

    Afflicted One Phantasmal Quasar

    Either you misplaced the mininghelm mod folder, or the folder was named differently.

    I find that it's easier to just set your bootstrap file up like this:
    Code:
    {
      "assetSources" : [
        "../assets",
        "../mods"
      ],
      "storageDirectory" : ".."
    }
    That way you don't have to go back and edit it every time you get a new mod, and it's easier to stay organized.

    Edit: also, I'm pretty sure that there is no practical reason to have your bootstrap set up that way, since the mods are still calling to the assets folder. It's just creating unnecessary dependencies.
     
  20. kitsunespirit

    kitsunespirit Cosmic Narwhal

    I noticed I had 3 periods instead of just two in my code, and the game starts up without any errors messages, but then it just sits there at the Loading screen.
     
Thread Status:
Not open for further replies.

Share This Page