Tutorial How to Report Mod Errors & Fixing Most Problems Yourself v1.1

Discussion in 'Starbound Modding' started by The | Suit, Feb 4, 2014.

  1. The | Suit

    The | Suit Agent S. Forum Moderator



    When you are excitedly making a mod - there is a high chance of making errors. Regardless of how many features a computer has it essentially is a dumb machine. It can't translate what you want it to do - only translate exact phrases.

    With that said - errors tend to be quite common and many people many not even know the first step of solving it. But surprisingly enough most errors reported now are extremely simple mistakes you can find and fix your self.

    The first thing we should learn when it comes to errors
    STARBOUND.LOG

    is your wife / lover / husband / mistress / your universe / your salvation, and for all you Apexs out there - your Minikong.
    You will find starbound.log in your root starbound directory

    Windows
    Code:
    [C:\Program Files (x86)\Steam\steamapps\common\Starbound\storage\]
    Mac
    Code:
    /Users/USER/Library/Application Support/Steam/*/Starbound.app/Contents/MacOS/starbound/storage/
    Linux
    Code:
    ~/.local/share/Steam/SteamApps/common/Starbound/storage/starbound.log
    *Note it maybe found here also.
    Code:
    \storage\ 
    [​IMG]


    Right click and open with notepad++
    If you don't have notepad++ it is essential. Because of how it breaks down the lines to make problem solving that much fundamentally easier
    http://notepad-plus-plus.org

    HOW TO USE STARBOUND.LOG
    ==========================
    One important thing to keep in mind - some items are loaded as the game loads, some items require to be initialized through some sort of action before it is reported in starbound.log Even if the game crashes on startup. An error will be written in the log.

    In case of missing items - or incorrect graphics - missing graphics - etc. Craft the item first - or open the window in which the item is supposed to be crafted in. This will load all the associated items with that object. If it a specific biome for a planet type. Go to a NEVER VISITED BEFORE planet of that biome. This is because planets do not generate new items once created.

    Once you tried to "Initialize" that object. Only check the starbound.log.

    When you open the Starbound.log you need to look for a specific error. You may find many errors that do not make much sense. Instead read through the entire thing carefully. Look for any references such as JSON - LUA - getitem("something") - these are the errors which will hold the most value to you.

    In the case of JSON errors you will see something like :

    Json is unable to parse "[File name]" expecting "[something" at [ L: S ]
    The [L: S] is in reference to L = Line # [Shown in Notepad++] and S= Space.

    So if it gave the error at [20:5] It would be on the 20th line and 5th space.
    It is also a good idea to check up on the line previous just in case.

    So check your entire log for such errors, and correct each one.
    Then you should be able to solve 90% of common issues.

    IMPORTANT DETAILS

    • Commas are not required in the last dataset of an array
    • Comma is only required in the close bracket if another dataset follows it
    • Comma is only required in the higher tier closing brackets that follows in succession if another dataset follows after it
    • If no dataset is after the last line, no more commas are required.
    • All numbers are no longer allowed to be enclosed in Quotes " " since Furious Koala
    • [True and False] statements are no longer allowed to be enclosed in Quotes since Furious Koala.
    • As of [ Enraged Koala ] ObjectType : "Interactive" is no longer used."objectType" : "loungeable", is now used for any object which can be "sit" on.
    • As of Enraged Koala Material ID modding has changed. Now it is explict now you must do the following
    • New Merge system implemented August 2014 - now uses patch system as opposed to old merge.

    Common Errors and Their Meanings

    Code:
    Error: Could not load /items/tools/steelpickaxeicon.png asset, attempting to use default.
    AssetException: No such asset '/items/tools/bobaxe.png'
    The Asset is missing - you either did not add it. The Spelling is wrong, or you added the file to the wrong location. The error message details where the game is looking for the file and the exact name of the file it is looking for.

    Code:
    Error: Could not instantiate item '[iceback, 1, {}]'. ItemException: No such item 'iceback'
      ... (3)
    This is a Reference error - the item name declared in the file it is referring to does not exist. Spelling and Capitalization is extremely important

    Code:
    Error: VariantException: No such key in Variant::get(“paneLayout”)
    008341FC (/Users/builder/starbound-slave/releasebuilder-windows/build/source/core/StarVariant.hpp:13)
    ... (3)
    GUI Error - you created a GUI (config file) which is being referenced which doesn't exist or has an issue. Check any item which you recently created which has a GUI interface, and make sure that interface file exists.

    Code:
    Error: Could not load /quests/tutorial/humantutorial.questtemplate asset, attempting to use default.
    AssetException: Could not read variant asset /quests/tutorial/humantutorial.questtemplate
    caused by: JsonParsingException: Cannot parse json file: /quests/tutorial/humantutorial.questtemplate
    caused by: JsonParsingException: Error parsing json: bad array, should be ‘,’ or ‘]’ at 13:16
    The file humantutorial.questtemplate has a parsing error. It is saying on line 13 space 16 it is missing an ending notation or closing notation. Sometimes this isn't the case, you may actually be missing it on the line before. So double check.

    Code:
    Error: VariantException: Variant not a list of size 2 in variantToVec2F
    When doing merge you forgot to overwrite an item with a bracket [ ]


    Code:
    Error: Could not load /objects/generic/shipserver/shipserver.png:default asset, attempting to use default.
    AssetException: No such frame default in frames spec /objects/generic/shipserver/shipserver.frames
    In this error the object will load - but the object image will be missing. Otherwise working perfectly and will appear as a 1x1 pixel image

    The methodology of how the frame is giving "names" doesn't associate with the object file. Check the object file where it calls the image for example - it will be under orientations as "Image" or "dualImage" it has to have 2 naming protocols either
    • "dualImage" : example.png:<color>.<frame>" (if there is color variation)
    • "dualImage" : "example.png:default.<frame>" (if no color variation
    the word "default" can be replaced with the naming protocol you wrote in as the "name" in the frames file which has a proceeding number following it. But either way it needs either color or name before the <frame> to designate which "frame #" to use.





    Words of Wisdom
    Severed Skull
    Code:
    Something else to note, that the log is written to in REAL TIME. 
    It does not just flush the output once the game closes.
    You can open up starbound.log, play the game, wait for
    something to mess up, then IMMEDIATELY go back to
    the starbound.log in N++. 99% of the time you will get a
    notification saying "This file has been modified, would
    you like to reload it?" to which you should say yes.
    Alternatively you can go to File -> Reload From Disk

    The Lone Gamer
    Code:
    A json parser is a huge help when it quickly spotting
    mistakes while editing. It’ll easily find syntax that you might miss
    even if you know what to look out for. Seriously, comma misuse
    has been my main source of problems. Here is a json parser I’ve been using
    http://json.parser.online.fr/
    

    The Lone Gamer
    Code:
    There's also another common issue I notice showing up
    from time to time. When people are making custom weapons,
    they'll change values and then notice back in game, nothing has
    changed. For whatever reason, the game seems to keep an unique
    copy of each weapon, even if they are of the same item ID. Basically
    you won't see changes reflected in any weapons you modified unless
    you get/craft a new one. I don't know what other item types act like
    this, but I know changes to something like armor will automatically
    update without you needing a new copy.
    ==============================

    JSON PARSERS [ TO CHECK YOUR CODE]
    http://jsonlint.com/ [ Recommended by Severed Skullz ]
    http://json.parser.online.fr/ [ Recommended by The Lone Gamer ]

    JSON PATCH PARSER
    http://json-schema-validator.herokuapp.com/jsonpatch.jsp [ NanoPi ]
    ==============================

    ** NOTICE **
    JSON Parsers will report an error with Comment tags. Comment tags in file are demarcated by // or /* */
    The ENTIRE comment should be removed - before using a Json Parser. Or it will give you an error. Comment tags are NOT supported in JSON interpreters. Hence - you should remove them before using one to check your code.

    After reading this you should be able to tackle about 90% of common issues yourself.
    If your still having issues- after reading this - post the associated files mentioned in the starbound.log and the starbound.log error file.
     

    Attached Files:

    Last edited: Aug 27, 2016
  2. intervencion

    intervencion Existential Complex

    Great tutorial :D
     
  3. Something else to note, that the log is written to in REAL TIME. It does not just flush the output once the game closes. You can open up starbound.log, play the game, wait for something to mess up, then IMMEIDATELY go back to the starbound.log in N++. 99% of the time you will get a notification saying "This file has been modified, would you like to reload it?" to which you should say yes. Alternatively you can go to File -> Reload From Disk
     
    intervencion likes this.
  4. intervencion

    intervencion Existential Complex

    Thanks ^^
     
    Ἄνουβις likes this.
  5. TheLoneGamer

    TheLoneGamer Scruffy Nerf-Herder

    I learned most of what was said here over time, but this is very helpful since so many threads relate to these common errors. It even taught me what something like 34:7 means which I didn’t know before.

    A json parser is a huge help when it quickly spotting mistakes while editing. It’ll easily find syntax that you might miss even if you know what to look out for. Seriously, comma misuse has been my main source of problems. Here is a json parser I’ve been using…

    http://json.parser.online.fr/

    I don’t think it helps with numbers or true/false statements in quotes, but otherwise it can save you a lot of trouble before you start the game and have to check the log file.
     
    The | Suit likes this.
  6. For me it's: ~/.local/share/Steam/SteamApps/common/Starbound/starbound.log
     
    intervencion likes this.
  7. The | Suit

    The | Suit Agent S. Forum Moderator

    Thankyou
     
  8. TheLoneGamer

    TheLoneGamer Scruffy Nerf-Herder

    There's also another common issue I notice showing up from time to time. When people are making custom weapons, they'll change values and then notice back in game, nothing has changed. For whatever reason, the game seems to keep an unique copy of each weapon, even if they are of the same item ID. Basically you won't see changes reflected in any weapons you modified unless you get/craft a new one. I don't know what other item types act like this, but I know changes to something like armor will automatically update without you needing a new copy.

    I could see this expanding to a FAQ since so many of the same common mistakes are made by people starting out.
     
    The | Suit likes this.
  9. I like jsonlint.com better but that's a matter of preference.
     
  10. The | Suit

    The | Suit Agent S. Forum Moderator

    Added new documented error code Vec2F
     
  11. The | Suit

    The | Suit Agent S. Forum Moderator

    Updated - Guide Rewrote part of it - and added a notice about Comments with Json Parsers
     
  12. The | Suit

    The | Suit Agent S. Forum Moderator

    Updated Guide to add new error message + solution
    Error : Unable to find Frame
     
  13. Mfernflower

    Mfernflower Orbital Explorer

    I like to use jsonlint for smaller errors in smaller fragments of code. and json.parser.online.fr for the bigger errors in bigger chunks of code.
     
  14. The | Suit

    The | Suit Agent S. Forum Moderator

    Addded note on Material ID changes for enraged
     
  15. Armed Mosquito

    Armed Mosquito Existential Complex

    Woot thanks so much this is very useful for many people reporting errors to me with not to much knowledge on how to do this part properly so we can help debug them! Thank you!
     
  16. The | Suit

    The | Suit Agent S. Forum Moderator

    Link to JSON Patch Parser added
    Updated changes to current code.
     
  17. nigadoach

    nigadoach Yeah, You!

    Good afternoon, my little English xD Sorry, I present this error

    Code:
    Error: Access violation detected at 0x6bedda99 (Read of address 0x6d69547c)
    Error: Stack Trace...
      SignalHandlerImpl::sehTrampoline()
      Direct3DCreate9
      Direct3DCreate9Ex
      Renderer::renderTriangles(ByteArray, unsigned int, void*, LightingMode)
      TilePainter::renderQuads(Renderer, DynamicArray<TilePainter::Quad>, Vector<float, 2u>, Vector<float, 2u>, float)
      TilePainter::renderLiquid(WorldCamera, Renderer)
      WorldPainter::render()
      ClientApplication::render()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    The only way to fix it is achieved and adding compatibility windows 7 in windows 8.1, but this gives me the game go slow, open another solution for this problem?
    the version that I have of the game is Rampaging Koala
     
  18. The | Suit

    The | Suit Agent S. Forum Moderator

    This thread is actually for mod issues.
    Your issue relates to the game it self

    Your should post here instead.
    http://community.playstarbound.com/index.php?forums/support/

    You should post your starbound.log with your dxdiag report also.

    Open DirectX Diagnostic Tool by clicking the Start button [​IMG], typing dxdiag in the Search box, and then pressing ENTER.

    There will be an option to save log on screen. Create a new thread at the link above.
     
  19. nigadoach

    nigadoach Yeah, You!

    Ok Ty ^^
     

Share This Page