Modding Help Preventing pet from spawning in ship

Discussion in 'Starbound Modding' started by Campaigner, May 29, 2015.

  1. Campaigner

    Campaigner Giant Laser Beams

    Following the guide here, I've been patching my newest mod so that pets do not spawn on ships. Pets have two important things; an anchor point and the item they anchor to. In this case, every pet anchors to their specific player races' tech stations. Here are the Cat and Human examples:

    Cat:

    Code:
    {
      "type" : "petcat",
    
      "categories" : [ "petcat" ],
      "parts" : [ "body" ],
    
      "animation" : "petcat.animation",
    
      "dropPools" : [ ],
    
      "baseParameters" : {
      "persistent" : true,
      "damageTeamType" : "ghostly",
    
      "scripts" : [
      "/monsters/pets/groundPet.lua",
      "/scripts/pathing.lua",
      "/scripts/stateMachine.lua",
      "/scripts/util.lua",
      "/scripts/vec2.lua",
    
      "/monsters/pets/idleState.lua",
      "/monsters/pets/wanderState.lua",
    
      "/monsters/pets/petBehavior.lua",
      "/monsters/pets/actions/followAction.lua",
      "/monsters/pets/actions/inspectAction.lua",
      "/monsters/pets/actions/eatAction.lua",
      "/monsters/pets/actions/sleepAction.lua",
      "/monsters/pets/actions/begAction.lua",
      "/monsters/pets/actions/pounceAction.lua",
      "/monsters/pets/actions/starvingAction.lua"
      ],
    
      "petBehavior" : "petBehavior",
    
      "anchorName" : "humantechstation",
      "petResources" : {
      "sleepy" : 10,
      "hunger" : 60,
      "playful" : 10,
      "curiosity" : 60
      },
      "petResourceDeltas" : {
      "sleepy" : 1,
      "hunger" : 0.5,
      "playful" : 1,
      "curiosity" : 1
      },
    
      "actionParams" : {
      "hungerStarvingLevel" : 80,
      "beg" : {
      "minScore" : 50,
      "cooldown" : 5,
      "distance" : 3,
      "emoteCooldown" : 2
      },
      "follow" : {
      "minScore" : 35,
      "cooldown" : 5,
      "curiosityDelta" : -5,
      "boredTime" : 3
      },
      "inspect" : {
      "minScore" : 20,
      "cooldown" : 2
      },
      "eat" : {
      "minScore" : 0,
      "minHunger" : 40,
      "cooldown" : 0,
      "distance" : 2
      },
      "play" : {
      "minScore" : 20,
      "cooldown" : 2
      },
      "sleep" : {
      "minScore" : 50,
      "minSleepy" : 75,
      "cooldown" : 10
      },
      "starving" : {
      "minScore" : 60,
      "cooldown" : 3
      }
      },
    
      "pathing" : {
      "canOpenDoors" : false
      },
    
      "metaBoundBox" : [-1.625, -2.375, 1.75, 2.0],
      "scale" : 1.0,
    
      "querySurroundingsCooldown" : 1,
    
      "wander" : {
      "wanderTime" : [5, 10],
      "changeDirectionTime" : [5, 10],
      "changeDirectionWait" : [1, 3]
      },
    
      "pounce" : {
      "maxRange" : 10,
      "minRange" : 5
      },
    
      "idle" : {
      "idleTime" : [4, 8],
      "standTime" : 2
      },
    
      "movementSettings" : {
      "collisionPoly" : [ [-0.75, -1], [0.75, -1], [0.75, 0.5], [-0.75, 0.5] ],
    
      "mass" : 1.0,
      "walkSpeed" : 4,
      "runSpeed" : 14,
      "flySpeed" : 15,
      "airForce" : 50.0
      },
    
      "bodyMaterialKind" : "organic",
    
      "knockoutTime" : 0,
      "knockoutEffect" : "blink",
      "deathParticles" : "deathPoof",
    
      "touchDamage" : {
      "poly" : [ [-1.625, -2.375], [1.75, -2.375], [1.75, 2.0], [-1.625, 2.0] ],
      "damage" : 15,
    
      "teamType" : "enemy",
      "damageSourceKind" : "lash",
      "statusEffects" : [ ]
      },
    
      "dropPools" : [ "potreasure" ],
    
      "statusSettings" : {
      "statusProperties" : {
      "targetMaterialKind" : "organic"
      },
    
      "appliesEnvironmentStatusEffects" : false,
      "minimumLiquidStatusEffectPercentage" : 0.1,
    
      "primaryScriptSources" : [
      "/stats/monster_primary.lua"
      ],
      "primaryScriptDelta" : 0,
    
      "stats" : {
      "maxHealth" : {
      "baseValue" : 72
      },
      "protection" : {
      "baseValue" : 1.0
      },
      "healthRegen" : {
      "baseValue" : 0.0
      }
      },
    
      "resources" : {
      "health" : {
      "maxStat" : "maxHealth",
      "deltaStat" : "healthRegen",
      "defaultPercentage" : 100
      },
      "sleepy" : {
      "maxValue" : 100,
      "defaultPercentage" : 10
      },
      "hunger" : {
      "maxValue" : 100,
      "defaultPercentage" : 10
      },
      "playful" : {
      "maxValue" : 100,
      "defaultPercentage" : 10
      },
      "curiosity" : {
      "maxValue" : 100,
      "defaultPercentage" : 10
      }
      }
      },
    
      "mouthOffset" : [0, 0],
      "feetOffset" : [0, -8]
      }
    }
    
    


    Human Tech Station:

    Code:
    {
      "objectName" : "humantechstation",
      "tags" : ["human"],
      "printable" : false,
      "rarity" : "Common",
    
      "interactAction" : "OpenAiInterface",
    
      "category" : "decorative",
      "lightColor" : [61, 88, 102],
      "lightPosition" : [-1, 0],
    
      "description" : "This tech station allows me to communicate with S.A.I.L and enable tech!",
      "shortdescription" : "Tech Station",
      "race" : "human",
    
      "apexDescription" : "A tech station. I can enable tech and talk to S.A.I.L through this.",
      "avianDescription" : "I can use this station to enable tech and talk to S.A.I.L.",
      "floranDescription" : "Floran use thisss for magiccc and talk to sshhip S.A.I.L!",
      "glitchDescription" : "Informative. This tech station allows me to choose tech and talk to S.A.I.L.",
      "humanDescription" : "A tech station. Allows me to communicate with S.A.I.L and enable tech!",
      "hylotlDescription" : "This tech station enables tech and allows me to communicate with S.A.I.L.",
    
      "inventoryIcon" : "humantechstationicon.png",
      "orientations" : [
      {
      "imageLayers" : [ { "image" : "humantechstation.png:<color>.<frame>", "fullbright" : true }, { "image" : "humantechstationlit.png:<color>.<frame>" } ],
      "imagePosition" : [-16, -8],
      "frames" : 8,
      "animationCycle" : 1.0,
    
      "spaceScan" : 0.1,
      "anchors" : [ "background" ]
    
      }
      ],
    
      "scripts" : [
      "/objects/spawner/shipPetSpawner.lua"
      ],
      "scriptDelta" : 20,
      "shipPetType" : "petcat",
      "spawnOffset" : [12, -1]
    }
    
    


    As we can see, the pet spawns with the tech station. Now, following the basic patching guide, I went to remove one line from each of these files. "anchorName" : "humantechstation", from the cat, and "shipPetType" : "petcat", from the tech station. If I understood the guide correctly, this is what I should have for both .patch files;

    monsters/pets/cat/petcat.monstertype.patch
    Code:
    [
    {"op":"remove","path":"/baseParameters/anchorName"}
    ]
    
    objects/ship/humantechstation/humantechstation.object.patch
    Code:
    [
    {"op":"remove","path":"/shipPetType"}
    ]
    
    Unfortunately, doing this does not stop the cat from spawning. I tried this with each pet and tech station, and oddly enough it causes the cat to spawn for each race. I'm at a loss now as to what I should do. I've removed the spawning lines from both files, so it shouldn't be spawning at all. Most of my mods don't use patching, so I can't say I'm experienced in it, but a simple remove command should have done the trick.

    Any ideas on what I should do?
     
  2. The | Suit

    The | Suit Agent S. Forum Moderator

    You didn't need to do any of that.
    Just remove the petspawner.lua script from the tech station.
     
  3. Campaigner

    Campaigner Giant Laser Beams

    Well I feel stupid now, trying to overcomplicate things. Thanks!
     

Share This Page