Tutorial Custom(ish) UIs

Discussion in 'Starbound Modding' started by Dragovorn, Mar 21, 2014.

  1. Dragovorn

    Dragovorn Space Hobo

    Welcome to my FIRST Mod Making Tutorial! (Keep unhelpful comments to yourselves please)

    But anyway, as the title specifies we are going to learn how to make a Custom(ish) UI! It took me a while to figure this out and I want to help others expand their mods further as well! But anyway there are some basic things your going to need to know! These are 9 steps to make a Custom(ish) UI

    1) Basic JSON Understanding
    2) Know How To Troubleshoot
    3) File Hunting :zzz: (The most annoying part)
    4) Working Ctrl + C & Ctrl + V Keys

    Step 1:

    Navigate over to /Starbound/assets/interface/windowconfig and then hunt for the file called craftingtable.cfg open that file and COPY everything in it. Then create a new file and paste everything in there.

    Step 2:
    Now open your mod folder. Then create a new folder INSIDE of it call it interface. Then inside of interface make a file called windowconfig.

    Step 3:
    Edit your new pasted code in the new file. Should look something like this:
    Code:
    {
      "paneLayout" : {
        "panefeature" : {
          "type" : "panefeature",
          "keyDismissable" : true,
          "persistent" : true
        },
        "background" : {
          "type" : "background",
          "fileHeader" : "/interface/crafting/craftingheader.png",
          "fileBody" : "/interface/crafting/craftingbody.png",
          "fileFooter" : "/interface/crafting/craftingfooter.png"
        },
        "close" : {
          "type" : "button",
          "base" : "/interface/inventory/x.png",
          "hover" : "/interface/inventory/xhover.png",
          "press" : "/interface/inventory/xpress.png",
          "position" : [322, 261]
        },
        "windowtitle" : {
          "type" : "title",
          "title" : "  *CRAFTING TABLE NAME HERE*",
          "subtitle" : "  A CUSTOM CRAFTING TABLE UI",
          "position" : [-5, 252],
          "icon" : {
            "type" : "image",
            "file" : "/interface/crafting/craftingtable.png",
            "position" : [0, -20],
            "zlevel" : -1
          }
        },
        "lblSchematics" : {
          "type" : "label",
          "position" : [88, 243],
          "hAnchor" : "mid",
          "value" : "SCHEMATICS"
        },
        "lblProducttitle" : {
          "type" : "label",
          "position" : [265, 243],
          "hAnchor" : "mid",
          "value" : "PRODUCT"
        },
        "spinCount" : {
          "type" : "spinner",
          "position" : [202, 40],
          "upOffset" : 34
        },
        "tbSpinCount" : {
          "type" : "textbox",
          "position" : [214, 40],
          "textAlign" : "center",
          "maxWidth" : 15,
          "regex" : "x?\\d{0,3}",
          "hint" : ""
        },
        "lblAmountInput" : {
          "type" : "image",
          "file" : "/interface/crafting/amount.png",
          "position" : [208, 39],
          "zlevel" : -3
        },
        "lbllvlSort" : {
          "type" : "image",
          "file" : "/interface/crafting/organizelevelhigher.png",
          "position" : [123, 232],
          "zlevel" : -3
        },
        "btnCraft" : {
          "type" : "button",
          "base" : "/interface/button.png",
          "hover" : "/interface/buttonhover.png",
          "position" : [274, 38],
          "caption" : "Craft"
        },
        "btnFilterHaveMaterials" : {
          "type" : "button",
          "base" : "/interface/crafting/checkboxnocheck.png",
          "baseImageChecked" : "/interface/crafting/checkboxcheck.png",
          "checkable" : true,
          "checked" : false,
          "position" : [26, 84]
        },
        "lblProduct" : {
          "type" : "label",
          "position" : [51, 83],
          "hAnchor" : "left",
          "value" : "MATERIALS AVAILABLE"
        },
    
        "scrollArea" : {
          "type" : "scrollArea",
          "rect" : [5, 93, 174, 231],
          "children" : {
            "itemList" : {
              "type" : "list",
              "schema" : {
                "selectedBG" : "/interface/crafting/craftableselected.png",
                "unselectedBG" : "/interface/crafting/craftablebackground.png",
                "spacing" : [0, 1],
                "memberSize" : [156, 20],
                "listTemplate" : {
                  "background" : {
                    "type" : "image",
                    "file" : "/interface/crafting/craftablebackground.png",
                    "position" : [0, 0],
                    "zlevel" : -1
                  },
                  "itemName" : {
                    "type" : "wraplabel",
                    "position" : [21, 11],
                    "hAnchor" : "left",
                    "width" : 116,
                    "value" : "Replace Me"
                  },
                  "itemIcon" : {
                    "type" : "itemslot",
                    "position" : [1, 1],
                    "callback" : "null"
                  },
                  "level" : {
                    "type" : "label",
                    "position" : [138, 9],
                    "hAnchor" : "mid",
                    "value" : "Lvl. 100"
                  },
                  "moneyIcon" : {
                    "type" : "image",
                    "position" : [126, 1],
                    "file" : "/interface/money.png"
                  },
                  "priceLabel" : {
                    "type" : "label",
                    "position" : [138, 1],
                    "hAnchor" : "left",
                    "value" : "0"
                  },
                  "notcraftableoverlay" : {
                    "type" : "image",
                    "file" : "/interface/crafting/notcraftableoverlay.png",
                    "position" : [0, 0],
                    "zlevel" : 1
                  }
                }
              }
            }
          }
        },
        "description" : {
          "type" : "widget",
          "position" : [190, 50],
          "size" : [140, 220]
        },
        "filter" : {
          "type" : "textbox",
          "position" : [56, 68],
          "hint" : "Search",
          "maxWidth" : 70,
          "escapeKey" : "close",
          "enterKey" : "filter",
          "focus" : true
        },
        "categories" : {
          "type" : "radioGroup",
          "toggleMode" : true,
          "buttons" : [
            {
              "position" : [19, 45],
              "baseImage" : "/interface/crafting/blocks.png",
              "baseImageChecked" : "/interface/crafting/blocksSelected.png",
              "data" : {
                "filter" : [ "materials" ]
              }
            },
            {
              "position" : [39, 45],
              "baseImage" : "/interface/crafting/armor.png",
              "baseImageChecked" : "/interface/crafting/armorSelected.png",
              "data" : {
                "filter" : [ "armors" ]
              }
            },
            {
              "position" : [59, 45],
              "baseImage" : "/interface/crafting/weapons.png",
              "baseImageChecked" : "/interface/crafting/weaponsSelected.png",
              "data" : {
                "filter" : [ "weapons" ]
              }
            },
            {
              "position" : [79, 45],
              "baseImage" : "/interface/crafting/items.png",
              "baseImageChecked" : "/interface/crafting/itemsSelected.png",
              "data" : {
                "filter" : [ "consumables" ]
              }
            },
            {
              "position" : [99, 45],
              "baseImage" : "/interface/crafting/smith.png",
              "baseImageChecked" : "/interface/crafting/smithSelected.png",
              "data" : {
                "filter" : [ "tools" ]
              }
            },
            {
              "position" : [119, 45],
              "baseImage" : "/interface/crafting/objects.png",
              "baseImageChecked" : "/interface/crafting/objectsSelected.png",
              "data" : {
                "filter" : [ "objects" ]
              }
            },
            {
              "position" : [139, 45],
              "baseImage" : "/interface/crafting/other.png",
              "baseImageChecked" : "/interface/crafting/otherSelected.png",
              "data" : {
                "filter" : [ "other" ]
              }
            }
          ]
        },
        "rarities" : {
          "type" : "radioGroup",
          "toggleMode" : true,
          "buttons" : [
            {
              "position" : [8, 232],
              "baseImage" : "/interface/crafting/sortcommon.png",
              "baseImageChecked" : "/interface/crafting/sortcommonselected.png",
              "data" : {
                "rarity" : [ "common" ]
              }
            },
            {
              "position" : [14, 232],
              "baseImage" : "/interface/crafting/sortuncommon.png",
              "baseImageChecked" : "/interface/crafting/sortuncommonselected.png",
              "data" : {
                "rarity" : [ "uncommon" ]
              }
            },
            {
              "position" : [20, 232],
              "baseImage" : "/interface/crafting/sortrare.png",
              "baseImageChecked" : "/interface/crafting/sortrareselected.png",
              "data" : {
                "rarity" : [ "rare" ]
              }
            },
            {
              "position" : [26, 232],
              "baseImage" : "/interface/crafting/sortlegendary.png",
              "baseImageChecked" : "/interface/crafting/sortlegendaryselected.png",
              "data" : {
                "rarity" : [ "legendary" ]
              }
            }
          ]
        }
      },
      "tooltip" : {
        "panefeature" : {
          "type" : "panefeature",
          "keyDismissable" : true,
          "persistent" : true
        },
        "itemList" : {
          "position" : [2, 3],
          "type" : "list",
          "schema" : {
            "spacing" : [0, 0],
            "memberSize" : [125, 25],
            "listTemplate" : {
              "itemName" : {
                "type" : "wraplabel",
                "position" : [22, 10],
                "hAnchor" : "left",
                "width" : 116,
                "value" : "Golden Moustache"
              },
              "itemIcon" : {
                "type" : "itemslot",
                "position" : [1, 1],
                "callback" : "null"
              },
              "count" : {
                "type" : "label",
                "position" : [118, 0],
                "hAnchor" : "right",
                "value" : "19/99"
              }
            }
          }
        }
      }
    }
    

    Step 4:
    Now for customizing it a little eh? Find this line of code:
    Code:
    "title" : "  CRAFTING TABLE",
    

    Around line 23
    You can change that to anything you want that will change the Large Text at the top of the Crafting Table's UI
    Now find
    Code:
    "subtitle" : " Crafting... But with a Table"
    
    This is the small gray text below the header in your Crafting UI
    There is one more customize capability but I'll leave that up to you to find.

    Step 6:
    Now, save this file you created in /Starbound/mods/YOURMODNAME/interface/windowconfig and name it YOURCRAFTINGTABLEConfig.config, That should do it for the file.

    Step 7:
    Now, if you have created your Custom Crafting Table Item/Block/Intractable you may remember a line of code that reads this:
    Code:
    "config" : "/interface/windowconfig/craftingtable.config",
    
    Right? well instead of that go ahead and change it to:
    Code:
    "config" : "/interface/windowconfig/YOURCUSTOMUIFILENAMEHERE.config",
    

    Step 8:
    Provide feedback! Did you find this helpful, have any bugs? Found a typo? Want me to fix something/post a screenshot? Or just like talking? Speak out below!

    Step 9:
    PROFIT!
     
  2. StarxStone

    StarxStone Void-Bound Voyager

    thank you so much for this
     
  3. AtomicPegasus

    AtomicPegasus Scruffy Nerf-Herder

    I can't find the file called: craftingtable.cfg, is itcrafting table .config? I don't think there is a craftingtable.cfg file in my windowconfig folder. please help!
    I'm lost! :(
     
  4. Nexus Of Chaos

    Nexus Of Chaos Parsec Taste Tester

    you do know this is from 2014 right? the game was most likely in ALPHA back then. please avoid necroposting
     
    DrPvtSkittles likes this.
  5. AtomicPegasus

    AtomicPegasus Scruffy Nerf-Herder

    Sorry, I forgot to check the date, also, why isn't there a much more recent tutorial on this? It would be super helpful to learn about.
     

Share This Page