Modding Help NPC/Player Directives

Discussion in 'Starbound Modding' started by Omeruin, Jul 24, 2020.

  1. Omeruin

    Omeruin Void-Bound Voyager

    Heya!
    I want to make a head and back item that pulls the color directives from the player or NPC of my modded race (The Nebulac) so that the items can match the "skin color" (nebula color).
    All I know so far is that the item/armor needs to have a status effect with Lua script to do this.
    How would I go about doing that?
    (I uploaded the humanoid body sprite and the back item sprite as well.)

    The .species File (hair color is irrevelant):
    Code:
    {
      "kind" : "nebulac",
        "charCreationTooltip" : {
        "title" : "nebulac",
        "subTitle" : "OO",
        "description" : "These Nebulae are a species of great knowledge and loyalty. They are a peaceful race, only wanting to study technology and various sciences in peace. What is known about the Nebulac race is that they are contained nebulas within humanoid bodies."
      },
     
      "statusEffects" : [ "novakidglow", "nebulacracialeffect" ],
      "humanoidOverrides" : {
        "bodyFullbright" : true
      },
      "nameGen" : [ "/species/nebulacmalenamegen.config:names", "/species/nebulacfemalenamegen.config:names" ],
      "ouchNoises" : [ "/sfx/humanoid/nebulachurt_male1.ogg", "/sfx/humanoid/nebulachurt_female1.ogg" ],
      "charGenTextLabels" : [ "Nebula colour", "Cloud shape", "Shirt", "Legwear", "Eye Colour", "", "Shirt colour", "Legwear colour", "NEBULAC", "Personality" ],
      "skull" : "/humanoid/nebulac/dead.png",
      "effectDirectives" : "?replace=FEFFFFFF=001cbcFF?replace=9bd4ffFF=001696FF?replace=31a6ffFF=001070FF",
      "defaultBlueprints" : {
        "tier1" : [
       
      // Empty Hands
          { "item" : "flagnebulac" },
           
    // Anvil
          { "item" : "nebulactier1head" },
          { "item" : "nebulactier1chest" },
          { "item" : "nebulactier1pants" },
          { "item" : "nebulactier2head" },
          { "item" : "nebulactier2chest" },
          { "item" : "nebulactier2pants" },
          { "item" : "ironshortsword" },
          { "item" : "ironbroadsword" },
          { "item" : "tungstenaxe" },
          { "item" : "tungstenhammer" },
         
    // Anvil 2
          { "item" : "nebulactier3head" },
          { "item" : "nebulactier3chest" },
          { "item" : "nebulactier3pants" },
          { "item" : "nebulactier4head" },
          { "item" : "nebulactier4chest" },
          { "item" : "nebulactier4pants" },
          { "item" : "titaniumdagger" },
          { "item" : "titaniumspear" },
          { "item" : "durasteelbroadsword" },
          { "item" : "durasteelshortsword" },
         
    // Anvil 3
          { "item" : "nebulactier5ahead" },
          { "item" : "nebulactier5achest" },
          { "item" : "nebulactier5apants" },
          { "item" : "nebulactier6ahead" },
          { "item" : "nebulactier6achest" },
          { "item" : "nebulactier6apants" },
          { "item" : "nebulactier5mhead" },
          { "item" : "nebulactier5mchest" },
          { "item" : "nebulactier5mpants" },
          { "item" : "nebulactier6mhead" },
          { "item" : "nebulactier6mchest" },
          { "item" : "nebulactier6mpants" },
          { "item" : "nebulactier5shead" },
          { "item" : "nebulactier5schest" },
          { "item" : "nebulactier5spants" },
          { "item" : "nebulactier6shead" },
          { "item" : "nebulactier6schest" },
          { "item" : "nebulactier6spants" },
          { "item" : "aegisaltpistol" },
          { "item" : "aegisaltbow" },
          { "item" : "feroziumwand" },
          { "item" : "feroziumstaff" },
          { "item" : "violiumshortsword" },
          { "item" : "violiumbroadsword" },
         
    //Novakid Guns
        { "item" : "ironrevolver" },
        { "item" : "ironassaultrifle" },
        { "item" : "tungstenshotgun" },
        { "item" : "tungstenmagnum" },
        { "item" : "titaniumsniperrifle" },
        { "item" : "titaniummachinepistol" },
        { "item" : "durasteelrevolver" },
        { "item" : "durasteelassaultrifle" },
       
    //Tier 1
        { "item" : "nebulacirongun1" },
        { "item" : "nebulacirongun2" },
        { "item" : "nebulacirongun3" },
        { "item" : "nebulacirongun4" },
        { "item" : "nebulacirongun5" },
        { "item" : "nebulacsword1" },
       
    //Tier 2
        { "item" : "nebulactungstengun1" },
        { "item" : "nebulactungstengun2" },
        { "item" : "nebulactungstengun3" },
        { "item" : "nebulactungstengun4" },
        { "item" : "nebulactungstengun5" },
        { "item" : "nebulacsword2" },
       
    //Tier 3
        { "item" : "nebulactitaniumgun1" },
        { "item" : "nebulactitaniumgun2" },
        { "item" : "nebulactitaniumgun3" },
        { "item" : "nebulactitaniumgun4" },
        { "item" : "nebulactitaniumgun5" },
        { "item" : "nebulacsword3" },
       
    //Tier 4
        { "item" : "nebulacdurasteelgun1" },
        { "item" : "nebulacdurasteelgun2" },
        { "item" : "nebulacdurasteelgun3" },
        { "item" : "nebulacdurasteelgun4" },
        { "item" : "nebulacdurasteelgun5" },
        { "item" : "nebulacsword4" },
    
    //Tier 5
    
    //Tier 6
        { "item" : "nebulacsolariumgun1" },
        { "item" : "nebulacstarsword" },
        { "item" : "nebulacstarcannon" },
       
    // Inventor's Table
        { "item" : "nebulacworkbench" },
         
    // Furniture
          { "item" : "nebulacchair1" },
          { "item" : "nebulactable1" },
          { "item" : "nebulactable2" },
          { "item" : "nebulactable3" },
          { "item" : "nebulacdoor1" },
          { "item" : "nebulacdoor2" },
          { "item" : "nebulacbed1" },
          { "item" : "nebulacchair2" },
          { "item" : "nebulacbed2" },
          { "item" : "nebulacsink" },
          { "item" : "nebulactoilet" },
          { "item" : "nebulacbath" },
          { "item" : "nebulacbed3" },
          { "item" : "nebulacwallshelf" },
          { "item" : "nebulaccouch" },
          { "item" : "nebulacsofa" },
          { "item" : "nebulacbench1" },
          { "item" : "nebulacgate1" },
         
    // Lights
          { "item" : "nebulaclight1" },
          { "item" : "nebulactablelamp" },
          { "item" : "nebulacstandinglamp" },
          { "item" : "nebulaclight2" },
          { "item" : "nebulaclight3" },
          { "item" : "nebulaclamppost1" },
         
    // Deco
          { "item" : "nebulacbanner" },
          { "item" : "nebulacwallmonitor" },
          { "item" : "nebulacbigpanel" },
          { "item" : "nebulacmediumpanel" },
          { "item" : "nebulacsmallpanel1" },
          { "item" : "nebulacsmallpanel2" },
          { "item" : "nebulacsmallpanel3" },
          { "item" : "nebulacserver" },
          { "item" : "nebulacconsole1" },
          { "item" : "nebulacconsole2" },
          { "item" : "nebulacconsole3" },
          { "item" : "nebulacconsole4" },
          { "item" : "nebulaccolonydeed" },
          { "item" : "nebulaccurtains1" },
          { "item" : "nebulaccurtains2" },
          { "item" : "nebulaccurtains3" },
          { "item" : "nebulaccurtains4" },
          { "item" : "nebulaccurtains5" },
          { "item" : "nebulaccurtains6" },
          { "item" : "nebulacmirror1" },
          { "item" : "nebulacmirror2" },
          { "item" : "nebulacdatascreen1" },
          { "item" : "nebulacdatascreen2" },
          { "item" : "nebulacdatascreen3" },
          { "item" : "nebulacdatascreen4" },
          { "item" : "nebulacdatascreen5" },
          { "item" : "nebulacdatascreen6" },
          { "item" : "nebulacdatascreen7" },
          { "item" : "nebulacdatascreen8" },
          { "item" : "nebulacdatascreen9" },
          { "item" : "nebulacdatascreen10" },
          { "item" : "nebulacdatascreen11" },
          { "item" : "nebulacdatascreen12" },
          { "item" : "nebulacdatascreen13" },
          { "item" : "nebulacdatascreen14" },
          { "item" : "nebulacdatascreen15" },
          { "item" : "nebulacdatascreen16" },
          { "item" : "nebulaccup1" },
          { "item" : "nebulacbowl1" },
          { "item" : "nebulacstars1" },
          { "item" : "nebulacstars2" },
          { "item" : "nebulacstars3" },
          { "item" : "nebulacstars4" },
          { "item" : "nebulaccomputertower1" },
          { "item" : "nebulacbanner2" },
          { "item" : "nebulacposter1" },
          { "item" : "nebulacfloorsign1" },
          { "item" : "nebulacfloorsign2" },
          { "item" : "nebulacfloorsign3" },
          { "item" : "nebulacfloorsign4" },
          { "item" : "nebulacfloorsign5" },
          { "item" : "nebulacfountain1" },
          { "item" : "nebulactv1" },
          { "item" : "nebulactv2" },
          { "item" : "nebulacplantsmall1" },
          { "item" : "nebulacplantmedium1" },
          { "item" : "nebulacplantlarge1" },
          { "item" : "nebulacdoordeco1" },
          { "item" : "nebulacdoordeco2" },
          { "item" : "nebulacenhancedsupport" },
          { "item" : "nebulachangingtech1" },
          { "item" : "nebulachangingtech2" },
         
    // Storage
          { "item" : "nebulacdesk1" },
          { "item" : "nebulacbookcase" },
          { "item" : "nebulacweaponchest" },
          { "item" : "nebulacsmallchest1" },
          { "item" : "nebulacsmallwoodencrate" },
          { "item" : "nebulaclargewoodencrate" },
          { "item" : "nebulacdresser" },
          { "item" : "nebulacnightstand" },
          { "item" : "nebulacwardrobe" },
          { "item" : "nebulactrashcan" },
          { "item" : "nebulacdisplay" },
          { "item" : "nebulaccabinet1" },
          { "item" : "nebulaccabinet2" },
          { "item" : "nebulacfridge" },
          { "item" : "nebulacshippingcontainer1" },
          { "item" : "nebulacshippingcontainer2" },
          { "item" : "nebulacendtable1" },
          { "item" : "nebulacbookcase2" },
          { "item" : "nebulacdesk2" },
          { "item" : "nebulacdesk3" },
          { "item" : "nebulaclargecrate" },
          { "item" : "nebulacsmallcrate" },
          { "item" : "nebulaccasket1" },
          { "item" : "nebulaccasket2" },
         
    // Ship Objects
          { "item" : "nebulacstoragelocker" },
          { "item" : "nebulacshipdoor" },
          { "item" : "nebulacshiphatch" },
         
    // Blocks
          { "item" : "nebulacconcretematerial" },
          { "item" : "nebulacslopedroof" },
          { "item" : "nebulacwall1" },
          { "item" : "nebulacfence" },
          { "item" : "nebulacplatform" },
          { "item" : "nebulacglassmaterial" },
          { "item" : "nebulaccarpetmaterial" },
          { "item" : "nebulacwall2" },
          { "item" : "nebulacbrickmaterial" },
          { "item" : "nebulacwall3" },
          { "item" : "nebulacwall4material" },
         
    // Spinning Wheel
          { "item" : "nebulaccasualchest" },
          { "item" : "nebulaccasuallegs" },
          { "item" : "nebulacrelaxingchest" },
          { "item" : "nebulacrelaxinglegs" },
          { "item" : "nebulacformalchest" },
          { "item" : "nebulacformallegs" },
          { "item" : "nebulafashionablechest" },
          { "item" : "nebulafashionablelegs" }, 
          { "item" : "nebulaccutechest" },
          { "item" : "nebulachoodiechest" },
    
    //Rail
          { "item" : "nebulacrailtram1" },
         
    // Furnace 1
        { "item" : "hm1" },
        { "item" : "n_as1" }
       
          ]
      },
     
      "altOptionAsUndyColor" : true,
      "hairColorAsBodySubColor" : true,
     
      "genders" : [
        {
           "name" : "male",
          "image" : "/interface/title/nebulacmaleico.png",
          "characterImage" : "/interface/title/nebulacmale.png",
          "hair" : [ "0", "1", "2", "4", "5", "8", "9", "10", "11", "13", "14", "15", "16", "17", "19", "20", "21", "22", "23", "24", "25", "26", "28", "29", "30", "31", "32", "34", "35", "36" ],
          "shirt" : [ "nebulaccasualchest", "nebulacrelaxingchest", "nebulacformalchest", "nebulafashionablechest", "nebulaccutechest", "nebulachoodiechest" ],
          "pants" : [ "nebulaccasuallegs", "nebulacrelaxinglegs", "nebulacformallegs", "nebulafashionablelegs" ],
          "facialHairGroup" : "",
          "facialHair" : [ ],
          "facialMaskGroup" : "",
          "facialMask" : [ ]
        },
        {
          "name" : "female",
          "image" : "/interface/title/nebulacfemico.png",
          "characterImage" : "/interface/title/nebulacfemale.png",
          "hair" : [ "1", "3", "4", "5", "6", "7", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "20", "21", "22", "23", "24", "25", "26", "27", "29", "30", "32", "33", "34", "35", "36" ],
          "shirt" : [ "nebulaccasualchest", "nebulacrelaxingchest", "nebulacformalchest", "nebulafashionablechest", "nebulaccutechest", "nebulachoodiechest" ],
          "pants" : [ "nebulaccasuallegs", "nebulacrelaxinglegs", "nebulacformallegs", "nebulafashionablelegs" ],
          "facialHairGroup" : "",
          "facialHair" : [ ],
          "facialMaskGroup" : "",
          "facialMask" : [ ]
        }
      ],
      "bodyColor" : [
        // Red
        { "001cbc" : "7f0000", "001696" : "660000", "001070" : "4c0000", "000733" : "330000" },
        // Deep Red
        { "001cbc" : "6b0000", "001696" : "510000", "001070" : "380000", "000733" : "1e0000" },
        // Orange
        { "001cbc" : "843a05", "001696" : "6b3005", "001070" : "512505", "000733" : "381a05" },
        // Deep Orange
        { "001cbc" : "662500", "001696" : "4d1a00", "001070" : "330d00", "000733" : "1a0001" },
        // Pink
        { "001cbc" : "820077", "001696" : "68005e", "001070" : "4f0047", "000733" : "35002f" },
        // Deep Pink
        { "001cbc" : "590054", "001696" : "3f003b", "001070" : "260023", "000733" : "0c000b" },
        // Purple
        { "001cbc" : "7219a5", "001696" : "63198b", "001070" : "541972", "000733" : "431958" },
        // Deep Purple
        { "001cbc" : "530073", "001696" : "400059", "001070" : "2e0040", "000733" : "190026" },
        // Bright Blue
        { "001cbc" : "001cbc", "001696" : "001696", "001070" : "001070", "000733" : "000733" },
        // Blue
        { "001cbc" : "00357a", "001696" : "002960", "001070" : "001e47", "000733" : "001633" },
        // Deep Blue
        { "001cbc" : "002866", "001696" : "001e4c", "001070" : "001433", "000733" : "000a19" },
        // Sky Blue
        { "001cbc" : "008282", "001696" : "006868", "001070" : "004f4f", "000733" : "003535" },
        // Sea Green
        { "001cbc" : "006868", "001696" : "004949", "001070" : "003030", "000733" : "001616" },
        // Lime Green
        { "001cbc" : "4c6804", "001696" : "394f03", "001070" : "263502", "000733" : "141c01" },
        // Green
        { "001cbc" : "006d38", "001696" : "00542c", "001070" : "003a1f", "000733" : "002112" },
        // Deep Green
        { "001cbc" : "175e00", "001696" : "104400", "001070" : "0a2b00", "000733" : "041100" },
        // Grey
        { "001cbc" : "797979", "001696" : "606060", "001070" : "464646", "000733" : "2d2d2d" },
        // Black Grey
        { "001cbc" : "5b5b5b", "001696" : "424242", "001070" : "282828", "000733" : "0f0f0f" },
        // Black
        { "001cbc" : "424242", "001696" : "292929", "001070" : "0f0f0f", "000733" : "000000" }
      ],
      "undyColor" : [
        { "f32200" : "f32200", "cc1b00" : "cc1b00", "a51600" : "a51600", "7f1000" : "7f1000" },
        { "f32200" : "ff7f00", "cc1b00" : "cc6600", "a51600" : "a35100", "7f1000" : "7c3e00" },
        { "f32200" : "ffd700", "cc1b00" : "ccad00", "a51600" : "a38a00", "7f1000" : "7c6a00" },
        { "f32200" : "00ff15", "cc1b00" : "00cc14", "a51600" : "00a30d", "7f1000" : "007c0a" },
        { "f32200" : "00ffff", "cc1b00" : "00c8cc", "a51600" : "00a0a3", "7f1000" : "007a7c" },
        { "f32200" : "00bfff", "cc1b00" : "0095cc", "a51600" : "0077a3", "7f1000" : "005b7c" },
        { "f32200" : "006aff", "cc1b00" : "004acc", "a51600" : "0041a3", "7f1000" : "00317c" },
        { "f32200" : "5d00ff", "cc1b00" : "4a00cc", "a51600" : "3b00a3", "7f1000" : "2d007c" },
        { "f32200" : "9400ff", "cc1b00" : "7300cc", "a51600" : "5f00a3", "7f1000" : "48007c" },
        { "f32200" : "ff00ff", "cc1b00" : "cc00c8", "a51600" : "a300a0", "7f1000" : "7c007a" },
        { "f32200" : "ff0094", "cc1b00" : "cc0073", "a51600" : "a3005c", "7f1000" : "7c0046" },
        { "f32200" : "ffffff", "cc1b00" : "cccccc", "a51600" : "a3a3a3", "7f1000" : "7c7c7c" }
      ],
      "hairColor" : [
        { "3100c6" : "ffboa3", "2a00a8" : "fc8469", "260099" : "be424d", "21007f" : "782027" },
        { "3100c6" : "ffebc2", "2a00a8" : "f6b060", "260099" : "b37f34", "21007f" : "6d5013" },
        { "3100c6" : "dfcfb3", "2a00a8" : "c7ae76", "260099" : "94824f", "21007f" : "5a512b" },
        { "3100c6" : "f1eabb", "2a00a8" : "d8d077", "260099" : "a09e4e", "21007f" : "5f6229" },
        { "3100c6" : "dbf4b8", "2a00a8" : "a4d66b", "260099" : "6f9e47", "21007f" : "426d26" },
        { "3100c6" : "b3c89e", "2a00a8" : "82ab5f", "260099" : "547a3c", "21007f" : "2d4f1d" },
        { "3100c6" : "b8f4bb", "2a00a8" : "72dd7e", "260099" : "4aa559", "21007f" : "266535" },
        { "3100c6" : "b8f4d9", "2a00a8" : "72ddb3", "260099" : "4aa586", "21007f" : "266554" },
        { "3100c6" : "b1f1fe", "2a00a8" : "5dd1ec", "260099" : "3491aa", "21007f" : "196072" },
        { "3100c6" : "b5c2fa", "2a00a8" : "758bf8", "260099" : "4a5ba5", "21007f" : "272665" },
        { "3100c6" : "e2b2ff", "2a00a8" : "b374d4", "260099" : "7c4992", "21007f" : "4b2655" },
        { "3100c6" : "fdd8f2", "2a00a8" : "f1afdf", "260099" : "d67ec1", "21007f" : "af579a" },
        { "3100c6" : "f9d9da", "2a00a8" : "eab2b5", "260099" : "cc8288", "21007f" : "a55b61" },
        { "3100c6" : "b8b0a8", "2a00a8" : "967e6e", "260099" : "654d43", "21007f" : "372720" },
        { "3100c6" : "9e9b94", "2a00a8" : "767162", "260099" : "3f3c2e", "21007f" : "1e1400" },
        { "3100c6" : "ffffff", "2a00a8" : "d7d5db", "260099" : "8e8e9b", "21007f" : "6d6d6d" }
      ]
    }
    
     

    Attached Files:

Share This Page