Modding Help Custom Pet as a Quest Reward; how?

Discussion in 'Starbound Modding' started by Campaigner, Dec 13, 2016.

  1. Campaigner

    Campaigner Giant Laser Beams

    I'm wracking my brain trying ti figure this out. I just got back into modding, since a sizeable update is coming soon, and I wanted to do something with pets and quests. I want to make a quest reward the player with a filled capture pod that contains a specific pet that is already named and has its own description (through my own monstertype file), but I'm stuck at the quest part. I took a look at the generated quest "capture_pet.questtemplate", but it only lists the reward as a capture pod. The associated script for this questtemplate also doesn't make sense to me, so I can't figure out what to do.

    The quest I'm aiming to make goes like this;

    1. Talk to a specific NPC
    2. Go to another NPC
    3. Return to original NPC
    4. Collect item for original NPC
    5. Trade item for pet
    6. NPC disappears forever/until Universe is deleted

    I've got steps 1 through 4 done, and I'm sure I can figure out step 6 based on Outpost things like the bear miners, but I can't figure out how to make the reward a specific pet in a capture pod. Anyone have any ideas?
     
  2. magewish4

    magewish4 Pangalactic Porcupine

    Currently, a filled capture pod with a generated monster has the following parameters:

    { name = filledcapturepod,
    count = 1,
    parameters = {
    tooltipFields = {
    objectImage = {
    1 = {
    position = { 1 = 0.0, 2 = 0.0 },
    transformation = {
    1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 },
    2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 },
    3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } },
    fullbright = false,
    image = /monsters/generated/ground/smallbiped/arms/imp/smallimpbarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d,
    color = { 1 = 255, 2 = 255, 3 = 255 }
    },
    2 = {
    position = { 1 = 0.0, 2 = 0.0 },
    transformation = {

    1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 },
    2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 },
    3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } },
    fullbright = false,
    image = /monsters/generated/ground/smallbiped/tail/thick/smallthicktail.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d,
    color = { 1 = 255, 2 = 255, 3 = 255 }
    },
    3 = {
    position = { 1 = 0.0, 2 = 0.0 },
    transformation = {
    1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 },
    2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 },
    3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 }
    },
    fullbright = false,
    image = /monsters/generated/ground/smallbiped/body/fuzzy/smallfuzzychest.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d,
    color = { 1 = 255, 2 = 255, 3 = 255 }
    },
    4 = {
    position = { 1 = 0.0, 2 = 0.0 },
    transformation = {
    1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 },
    2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 },
    3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 }
    },
    fullbright = false,
    image = /monsters/generated/ground/smallbiped/head/boredbug/smallboredbughead.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d,
    color = { 1 = 255, 2 = 255, 3 = 255 }
    },
    5 = {
    position = { 1 = 0.0, 2 = 0.0 },
    transformation = {
    1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 },
    2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 },
    3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 }
    },
    fullbright = false,
    image = /monsters/generated/ground/smallbiped/arms/imp/smallimpfarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d,
    color = { 1 = 255, 2 = 255, 3 = 255 }
    }
    },
    subtitle = Unknown
    },
    podUuid = 6f77751b688ab8645005ac7a293121e9,
    pets = {
    1 = {
    collisionPoly = {
    1 = { 1 = -0.80000001192093, 2 = -2.2000000476837 },
    2 = { 1 = -0.40000000596046, 2 = -2.5999999046326 },
    3 = { 1 = 0.40000000596046, 2 = -2.5999999046326 },
    4 = { 1 = 0.80000001192093, 2 = -2.2000000476837 },
    5 = { 1 = 0.80000001192093, 2 = -0.40000000596046 },
    6 = { 1 = 0.40000000596046, 2 = 0.0 },
    7 = { 1 = -0.40000000596046, 2 = 0.0 },
    8 = { 1 = -0.80000001192093, 2 = -0.40000000596046 }
    },
    status = {
    resources = { health = 0.56591701507568, stunned = 0.0 },
    stats = { attack = 10.0, knockbackStunTime = 0.25, healthRegen = 0.0, defense = 0.0, protection = 0.0, knockbackThreshold = 24.0, powerMultiplier = 1.0, maxHealth = 21.599998474121 },
    resourceMax = { health = 21.599998474121 },
    effects = { },
    dead = false
    },
    config = {
    type = smallbiped,
    parameters = {
    level = 1.0,
    familyIndex = 0,
    aggressive = true,
    seed = 16839467606460975948
    }
    },
    portrait = { 1 = { position = { 1 = 0.0, 2 = 0.0 }, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, fullbright = false, image = /monsters/generated/ground/smallbiped/arms/imp/smallimpbarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, color = { 1 = 255, 2 = 255, 3 = 255 } }, 2 = { position = { 1 = 0.0, 2 = 0.0 }, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, fullbright = false, image = /monsters/generated/ground/smallbiped/tail/thick/smallthicktail.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, color = { 1 = 255, 2 = 255, 3 = 255 } }, 3 = { position = { 1 = 0.0, 2 = 0.0 }, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, fullbright = false, image = /monsters/generated/ground/smallbiped/body/fuzzy/smallfuzzychest.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, color = { 1 = 255, 2 = 255, 3 = 255 } }, 4 = { position = { 1 = 0.0, 2 = 0.0 }, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, fullbright = false, image = /monsters/generated/ground/smallbiped/head/boredbug/smallboredbughead.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, color = { 1 = 255, 2 = 255, 3 = 255 } }, 5 = { position = { 1 = 0.0, 2 = 0.0 }, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, fullbright = false, image = /monsters/generated/ground/smallbiped/arms/imp/smallimpfarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, color = { 1 = 255, 2 = 255, 3 = 255 } } },
    description = Some indescribable horror
    }
    },
    inventoryIcon = /items/active/unsorted/filledcapturepod/filledcapturepodicon.png,
    currentPets = { 1 = { portrait = { 1 = { position = { 1 = 0.0, 2 = 0.0 }, image = /monsters/generated/ground/smallbiped/arms/imp/smallimpbarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, fullbright = false, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, color = { 1 = 255, 2 = 255, 3 = 255 } }, 2 = { position = { 1 = 0.0, 2 = 0.0 }, image = /monsters/generated/ground/smallbiped/tail/thick/smallthicktail.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, fullbright = false, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, color = { 1 = 255, 2 = 255, 3 = 255 } }, 3 = { position = { 1 = 0.0, 2 = 0.0 }, image = /monsters/generated/ground/smallbiped/body/fuzzy/smallfuzzychest.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, fullbright = false, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, color = { 1 = 255, 2 = 255, 3 = 255 } }, 4 = { position = { 1 = 0.0, 2 = 0.0 }, image = /monsters/generated/ground/smallbiped/head/boredbug/smallboredbughead.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, fullbright = false, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, color = { 1 = 255, 2 = 255, 3 = 255 } }, 5 = { position = { 1 = 0.0, 2 = 0.0 }, image = /monsters/generated/ground/smallbiped/arms/imp/smallimpfarm.png:jump?replace;be1b00=be005e;ffca8a=fad086;f32200=ff26ba;dc1f00=ff0083;a38d59=b2a025;d9c189=e8e63a;f7e7b2=fefebb;951500=95004a;735e3a=5b553d;e0975c=e48c37;a85636=a56220;6f2919=68320d, fullbright = false, transformation = { 1 = { 1 = 1.0, 2 = 0.0, 3 = -21.0 }, 2 = { 1 = 0.0, 2 = 1.0, 3 = -21.0 }, 3 = { 1 = 0.0, 2 = 0.0, 3 = 1.0 } }, color = { 1 = 255, 2 = 255, 3 = 255 } } }, podUuid = 6f77751b688ab8645005ac7a293121e9, collisionPoly = { 1 = { 1 = -0.80000001192093, 2 = -2.2000000476837 }, 2 = { 1 = -0.40000000596046, 2 = -2.5999999046326 }, 3 = { 1 = 0.40000000596046, 2 = -2.5999999046326 }, 4 = { 1 = 0.80000001192093, 2 = -2.2000000476837 }, 5 = { 1 = 0.80000001192093, 2 = -0.40000000596046 }, 6 = { 1 = 0.40000000596046, 2 = 0.0 }, 7 = { 1 = -0.40000000596046, 2 = 0.0 }, 8 = { 1 = -0.80000001192093, 2 = -0.40000000596046 } }, status = { resources = { health = 0.56591701507568, stunned = 0.0 }, stats = { attack = 10.0, powerMultiplier = 1.0, healthRegen = 0.0, defense = 0.0, knockbackThreshold = 9.0, protection = 0.0, knockbackStunTime = 0.25, maxHealth = 21.599998474121 }, effects = { }, resourceMax = { health = 21.599998474121 }, dead = false }, persistent = false, description = Some indescribable horror, config = { type = smallbiped, parameters = { level = 1.0, familyIndex = 0, aggressive = true, animationParts = { head = smallrhinohead }, seed = 16839467606460975948 } } } },
    description = Some indescribable horror,
    podItemHasPriority = false
    }
    }

    That's a lot of info. Take a look at the code for the empty capture pod when it spawns the filled capture pod - that should give you an idea of how to generate your pod.
     
    bk3k likes this.
  3. Campaigner

    Campaigner Giant Laser Beams

    Man, I spent yesterday off and on trying to figure that out, but that's way over my head. I think I'll just forget about a quest-given pet, because quite frankly I'm too stupid to understand this.

    I checked the capture pod files, but I don't think I understood how it made a filled pod.
     

Share This Page