Modding Help How can I add custom dialogues for my custom race?

Discussion in 'Starbound Modding' started by Zefnoly, Oct 13, 2016.

  1. Zefnoly

    Zefnoly Void-Bound Voyager

    Tried google but found only threads where this topic was unanswered. I'm working on a custom race (Fizarians) and I would love some guidance to how I can add this.

    Also I might consider to give them custom furniture you can craft. What I wonder is if it is possible to like add a new sort of furniture type that can attract my race to colony deeds and like, And how to even make them NPC's that can do that at all.
     
  2. lazarus78

    lazarus78 The Waste of Time

    You should start by looking at how the game does it for its own races. 90% of the time, just copy what the game already does will get you what you want. The game is the best resource for examples on how to do things.
     
  3. The | Suit

    The | Suit Agent S. Forum Moderator

    <race>Description

    race = race name as per species file.
    Follow format of other races in existing objects.

    Remember always patch when editing existing files.
     
  4. Errors4l

    Errors4l Spaceman Spiff

  5. C0bra5

    C0bra5 Oxygen Tank

    Going by the title of this thread, you will have to patch it into the converse.config in the dialogs folder.
    Before you do anything, You have to know about a particularly annoying bug with the way the dialog options are currently handled by the game. If you try to create custom lines for when you species interact with npcs of any species, their "generic" dialog options will override the custom lines. so you have to use a patch that moves all the "generic" options to the "default" option, I've included the patch I use in my modpack if you want an example.

    Code:
    [
        //This makes the mod compatible with the other mods, like my modpack, that also moves
        //the "generic" options to the "default" options. The "test" operator just makes sure
        //it hasn't been moved yet by checking if the element exists.
    
        //Note:
        //The inverse isn't necessary in this case since it it's set to false by default,
        //but specifying it makes it easier to when you go back to check how things works in the future.
        [
            { "op" : "test", "path" : "/converse/apex/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/apex/generic", "path" : "/converse/apex/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/hylotl/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/hylotl/generic", "path" : "/converse/hylotl/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/avian/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/avian/generic", "path" : "/converse/avian/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/human/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/human/generic", "path" : "/converse/human/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/floran/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/floran/generic", "path" : "/converse/floran/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/glitch/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/glitch/generic", "path" : "/converse/glitch/default" }
        ],
        [
            { "op" : "test", "path" : "/converse/novakid/generic", "inverse" : false },
            { "op" : "move", "from" : "/converse/novakid/generic", "path" : "/converse/novakid/default" },
        ]
    ]
    


    As for the attracting race specific tenants, you can also specify that by making custom tenants that are of your modded species, to make it easier for your users to get your race specifically, i recommend adding 0.1 to the vanilla race specific tenant priorities, but keep in mind that doing so will also override the tenant priority making it so that instead of creating a pool only your species will be able to spawn even if there is some furniture that is related to an other species. And if you want to do it to the max, you will also want to create a version of each type of tenants that spawns your race.

    To make sure your tenants are spawning, your objects will need to include a colony tag that is unique to your mod, for species related tag, the convention is to make the tag the name of your race. I've included an example from my modpack.

    Code:
    {
      "name": "chef_ponex", //by convention, [tenant type]_[species]
      "priority": 4, //Base Priority for species specific
    
      "colonyTagCriteria": {
        "light" : 1,
        "door" : 1,
        "ponex" : 8, //this means that a total of 8 blocks have to be occupied by one or many
                     //objects that has the colony tag "ponex"
        "cooking" : 8
      },
    
      "tenants": [
        {
          "spawn": "npc",
          "species": ["ponex"],//here you set what kind of species the tenant will be.
          "type": "chefmerchanttenant", //this is the npctype id that the tenant will be,
                                        //the default tenants are of type "generictenant"
          "overrides": {
          }
        }
      ],
    
      "rent": {
        "periodRange" : [900.0, 1800.0], // this is the rent when paid with pixels, so if your species
                                        //is greedy or charitable you can reflect it here
        "pool" : "merchantGift" //This is the treasure pool used for the rent items,
                                //You can create one or use a pre existing one, they are all in the treasure folder
      }
    }
    
    
     
    The | Suit likes this.
  6. Zefnoly

    Zefnoly Void-Bound Voyager

    Thanks for your replies. Will look into it. I'm working on the new Fizarian race mod, which are mammalian species with a reptile appearance on their body shape. And I really want to do it well with this.
     
  7. ButchJohn

    ButchJohn Aquatic Astronaut

    I hope that when it's finished I can check it out.
     
  8. projectmayhem

    projectmayhem Spaceman Spiff

    This post is 4 years old. If the author hasn't posted it yet... I dont think its coming lol
     

Share This Page