Desperate to get zombie ai tanks working in custom matches

So you know, custom zombie tanks crash servers.
But i am sure there is something i did not do. (Still no idea why it crashes :frowning: )
This topic is here for discussion when anything related to custom ai tanks(not limited to zombie mode).

We shall discuss here about the present and future of AI tanks should anything come up.

And i have found this thing


@Devenddar see if it is new or i was blind

I have noticed an odd behaviour in mod editor


The crew will say “Yes sir” for some reason
Idk if its the cause for the crash but it might be a hint


and then my editor crashed too

1fe30daae1.zip (757.1 KB)
Crash report if anyone knows how to read (its plain text btw)

findings:
The game dies if the first tank of the wave is the third or above tank(excluding the base event tank)

I have tried to swap the types of tank but it still crashes when tank no.3 spawns.

Forgot to dump my custom tank code. Here it is…

type_95_ha_go_ai_vehicle_tank{

  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium"
  _use:t="ai_aircraft_crew_ger"
  
  bodyCleanupTime:r=30 
  
  paid_loot__pointsForKill:i=150
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

"vehicle_seats__seats:shared:array"{

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="commander"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.02, -0.72, -0.07]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_95_ha_go_gunner_cockpit"
      hatchRotationAxis:p3=1.7, 0.0, 0.0
	  directTurretControl:b=yes
	  
      "turretNames:array"{
        turretNames:t="turret_01"
      }

      "hatchNodes:array"{
        node:t="hatch_01"
        node:t="hatch_02"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_95_ha_go_driver_cockpit"
    }

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="machine_gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machine_gunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_95_ha_go_machinegunner_cockpit"
	  directTurretControl:b=yes

      "turretNames:array"{
        turret:t="turret_02"
      }
    }
  }


  }


jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_95_ha_go_turret_01_37mm_type_94{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_95_ha_go_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

ha_go_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="type_95_ha_go_ai_vehicle_tank"
}

jp_type_98_ta_se_ai_vehicle_tank{
  bodyCleanupTime:r=30.0
  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_98_ta_se_common"
  _use:t="ai_aircraft_crew_ger"
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

  "vehicle_seats__seats:shared:array"{

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="commander"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[0.966096, -0.15643, -0.205346] [0.153012, 0.987682, -0.032523] [0.207904, -6.44228e-08, 0.978131] [-0.28, -0.25, 0.04]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=no
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_98_ta_se_gunner_cockpit"
      directTurretControl:b=yes
      maxPosWithOpenHatch:r=0.0
      hatchRotationAxis:p3=0.0, 0.0, 0.0
      cameraOffset:p3=-0.6, 0.15, 0.0
      canLoadInHatch:b=yes
      isHoldGunModeAllowed:b=no
      useHatchEffectors:b=yes

      "hatchNodes:array"{
        node:t="bone_camera_gunner"
      }

      "hatchTurretNames:array"{
        turret:t="turret_01"
      }

      "turretNames:array"{
        turretNames:t="turret_01"
      }

      "effectors:object"{
        r.hand:t="righthand_3"
        l.hand:t="lefthand_3"
        r.foot:t="pedal_rfoot_3"
        l.foot:t="pedal_lfoot_3"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.42, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=no
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cockpitTemplate:t="jp_type_98_ta_se_driver_cockpit"
      seatAnimUpper:t="drive_passenger"
      seatAnimLower:t="drive_passenger"

      "effectors:object"{
        r.hand:t="righthand_1"
        l.hand:t="lefthand_1"
        r.foot:t="pedal_rfoot_1"
        l.foot:t="pedal_lfoot_1"
      }
    }

    "seats:object"{
      name:t="loader"
      locName:t="vehicle_seats/loader"
      attachNode:t="loader"
      shouldHideOwner:b=no
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[0.945413, 0.0174524, 0.325499] [0.00624701, 0.997447, -0.0716251] [-0.325909, 0.0697467, 0.942864] [-0.25, -0.3, -0.15]]
      seatComponent:t="isDriver"
	  nextSeat:t="main_gunner"
      receiveDamageFromDMPart:t="loader"

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }

      "effectors:object"{
        r.hand:t="righthand_2"
        r.foot:t="pedal_rfoot_2"
        l.foot:t="pedal_lfoot_2"
      }
    }
  }
}

jp_type_98_ta_se_gunner_cockpit{
  _use:t="base_gunner_cockpit"
  animchar__res:t="ba_11_gunner_char"
  cockpit__offset:p3=-0.407955, 0.260143, 0.384339

  "cockpit__visibleVehicleNodeNames:list<t>"{
    node:t="gun_barrel"
    node:t="bone_gun"
    node:t="bone_turret"
    node:t="@root"
  }

  "cockpit__slitNodeNames:list<t>"{
    slit:t="cam_front_right"
  }

  "cockpit__slitForwardOffset:list<r>"{
    slit:r=0.22
  }

  "cockpit__slitIsGun:list<b>"{
    slit:b=yes
  }

  "cockpit__attachNodeNames:list<t>"{
    node:t="bone_gun"
  }

  "cockpit__attachNodeIndices:list<i>"{
  }

  "cockpit__slitZoom:array"{

    "slit:list<r>"{
      zoom:r=1.44
      zoom:r=2.5
    }
  }

  "cockpit__slitZoomTime:list<r>"{
    slit:r=0.05
  }

  "cockpit__slitTemplates:list<t>"{
    slit:t="jp_ring"
  }

  "cockpit__slitEids:list<eid>"{
  }
}

jp_type_98_ta_se_driver_cockpit{
  _use:t="base_driver_cockpit_no_slits"
  animchar__res:t="bt_7_driver_char"
  cockpit__offset:p3=0.116888, -0.362939, -0.00775526

  "cockpit__visibleVehicleNodeNames:list<t>"{
  }

  "cockpit__slitForwardOffset:list<r>"{
    slit:r=0.1
  }

  "cockpit__slitIsGun:list<b>"{
    slit:b=no
  }

  "cockpit__slitNodeNames:list<t>"{
    slit:t="cam_front"
  }
}
jp_type_98_ta_se_common{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_98_ta_se_turret_01_20mm_type98{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=3
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

ta_se_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="jp_type_98_ta_se_ai_vehicle_tank"
}

jp_type_97_chi_ha_ai_vehicle_tank{
  bodyCleanupTime:r=30.0
  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_97_chi_ha_pacific_premium"
  _use:t="ai_aircraft_crew_ger"
  paid_loot__pointsForKill:i=250
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

  "vehicle_seats__seats:shared:array"{

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_97_chi_ha_gunner_cockpit"

      "turretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_97_chi_ha_driver_cockpit"
    }

    "seats:object"{
      name:t="commander"
      locName:t="vehicle_seats/commander"
      attachNode:t="commander"
      shouldHideOwner:b=yes
      maxPosWithOpenHatch:r=1.2
      hatchRotationAxis:p3=1.8, 0.0, 0.0
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.1, -1.1, 0.0]]
      seatComponent:t="isDriver"
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_turret"
      cockpitTemplate:t="jp_type_97_chi_ha_commander_cockpit"
      isHoldGunModeAllowed:b=no

      "hatchNodes:array"{
        node:t="hatch_04"
        node:t="hatch_05"
      }

      "hatchTurretNames:array"{
        turret:t="turret_03"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machinegunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_97_chi_ha_machinegunner_cockpit"

      "turretNames:array"{
        turret:t="turret_02"
      }
    }
  }
}

jp_type_97_chi_ha_pacific_premium{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_97_chi_ha_turret_01_57mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_97_chi_ha_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

chi_ha_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="jp_type_97_chi_ha_ai_vehicle_tank"
}


jp_type_2_ho_i_ai_vehicle_tank{
  bodyCleanupTime:r=30.0
  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_2_ho_i_common"
  _use:t="ai_aircraft_crew_ger"
  paid_loot__pointsForKill:i=350
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

  "vehicle_seats__seats:shared:array"{

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_2_ho_i_gunner_cockpit"

      "turretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_2_ho_i_driver_cockpit"
    }

    "seats:object"{
	  directTurretControl:b=yes
      name:t="commander"
      locName:t="vehicle_seats/commander"
      attachNode:t="commander"
      shouldHideOwner:b=yes
      maxPosWithOpenHatch:r=1.2
      hatchRotationAxis:p3=1.9, 0.0, 0.0
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.05, -0.8, 0.18]]
      seatComponent:t="isDriver"
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_turret"
      cockpitTemplate:t="jp_type_2_ho_i_commander_cockpit"

      "hatchNodes:array"{
        node:t="hatch_05"
        node:t="hatch_04"
      }

      "hatchTurretNames:array"{
        turret:t="turret_03"
      }
    }

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machinegunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_2_ho_i_machinegunner_cockpit"

      "turretNames:array"{
        turret:t="turret_02"
      }
    }

    "seats:object"{
      attachNode:t="loader"
      locName:t="vehicle_seats/loader"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isPassenger"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="loader"
      cameraNodeName:t="bone_camera_driver"

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }
  }
}
jp_type_2_ho_i_common{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_2_ho_i_turret_01_75mm_type_99{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_2_ho_i_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

type_2_ho_i_turret_03_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

ho_i_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="jp_type_2_ho_i_ai_vehicle_tank"
}

jp_type_3_chi_nu_ai_vehicle_tank{

  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_3_chi_nu_pacific_yellow_stripes_battlepass_premium"
  _use:t="ai_aircraft_crew_ger"
  
  bodyCleanupTime:r=30 
  
  paid_loot__pointsForKill:i=500
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

"vehicle_seats__seats:shared:array"{

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_3_chi_nu_gunner_cockpit"

      "turretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_3_chi_nu_driver_cockpit"
    }

    "seats:object"{
      name:t="commander"
      locName:t="vehicle_seats/commander"
      attachNode:t="commander"
      shouldHideOwner:b=yes
      maxPosWithOpenHatch:r=1.2
      hatchRotationAxis:p3=1.7, 0.0, 0.0
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.1, -0.4, 0.05]]
      seatComponent:t="isDriver"
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_turret"
      cockpitTemplate:t="jp_type_3_chi_nu_commander_cockpit"

      "hatchNodes:array"{
        node:t="hatch_05"
        node:t="hatch_04"
      }

      "hatchTurretNames:array"{
        turret:t="turret_03"
      }
    }

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machinegunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_3_chi_nu_machinegunner_cockpit"

      "turretNames:array"{
        turret:t="turret_02"
      }
    }

    "seats:object"{
      attachNode:t="loader"
      locName:t="vehicle_seats/loader"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isPassenger"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="loader"
      cameraNodeName:t="bone_camera_driver"

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }
    }
}


jp_type_3_chi_nu_pacific_yellow_stripes_battlepass_premium{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}


type_3_chi_nu_turret_01_75mm_type_3{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_3_chi_nu_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

type_3_chi_nu_turret_03_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

chi_nu_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="jp_type_3_chi_nu_ai_vehicle_tank"
}

halftrack_m13_ai_vehicle_tank{

  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="us_halftrack_m13_common"
  _use:t="ai_aircraft_crew_ger"
  
  bodyCleanupTime:r=30 
  
  paid_loot__pointsForKill:i=250
  vehicle_seats__restrictToTeam:i=3
  ai_aircraft_crew__soldier_template:t="zombie_ai_vehicle_tank_crew_member"

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    ai_vehicle_tank__pathFindingState:i=1
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

	"vehicle_seats__seats:shared:array"{

    "seats:object"{
	  directTurretControl:b=yes
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[0.90628, 0.4227, 8.74272e-16] [-0.4227, 0.906281, 5.83326e-09] [2.4657e-09, -5.28653e-09, 1.00001] [-0.21, -0.3, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=no
      receiveDamageFromDMPart:t="gunner"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="us_halftrack_m13_gunner_cockpit"
      directTurretControl:b=yes
      cameraOffset:p3=-0.35, 0.2, 0.0
      maxPosWithOpenHatch:r=0.0
      hatchRotationAxis:p3=0.0, 0.0, 0.0
      canLoadInHatch:b=yes
      isHoldGunModeAllowed:b=no
      useHatchEffectors:b=yes

      "turretNames:array"{
        turretNames:t="turret_01"
        turretNames:t="turret_02"
      }

      "hatchTurretNames:array"{
        turret:t="turret_01"
        turret:t="turret_02"
      }

      "hatchNodes:array"{
        node:t="hatch_01"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
        turret:t="turret_02"
      }

      "effectors:object"{

        "l.hand:object"{
          rel_tm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.0, -0.0, 0.0]]
          node:t="lefthand_2"
        }

        "r.hand:object"{
          rel_tm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.0, -0.0, 0.0]]
          node:t="righthand_2"
        }

        "l.foot:object"{
          rel_tm:m=[[1.0, -0.000134336, 0.00109565] [0.000133743, 1.0, 0.000674367] [-0.00109572, -0.000674196, 0.999999] [-0.02948, -0.0187607, 0.00164175]]
          node:t="pedal_lfoot_2"
        }

        "r.foot:object"{
          rel_tm:m=[[0.999999, 3.96237e-06, 0.00119497] [-4.91767e-06, 1.0, 0.000759456] [-0.00119502, -0.000759482, 0.999999] [-0.0288086, -0.0186996, -0.000524521]]
          node:t="pedal_rfoot_2"
        }
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.07, 0.21, -0.15]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=no
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cockpitTemplate:t="us_halftrack_m13_driver_cockpit"
      seatAnimUpper:t="drive_passenger"
      seatAnimLower:t="drive_passenger"

      "effectors:object"{

        "l.hand:object"{
          rel_tm:m=[[0.808712, -0.032106, -0.587329] [0.571561, 0.278741, 0.771765] [0.138934, -0.95983, 0.243772] [0.0898285, 0.0626068, -0.117208]]
          node:t="lefthand_1"
        }

        "r.hand:object"{
          rel_tm:m=[[0.457613, -0.734383, -0.501273] [0.536842, 0.67761, -0.502639] [0.708796, -0.0390896, 0.704329] [0.0498199, 0.0408497, 0.0346947]]
          node:t="righthand_1"
        }

        "l.foot:object"{
          rel_tm:m=[[0.978776, 0.185353, 0.0874309] [-0.177178, 0.979724, -0.0935323] [-0.102995, 0.0760563, 0.99177] [-0.0876465, 0.0129089, 0.0589943]]
          node:t="pedal_lfoot_1"
        }

        "r.foot:object"{
          rel_tm:m=[[0.916721, 0.39311, -0.0713319] [-0.389451, 0.919087, 0.0600619] [0.0891712, -0.0272797, 0.995643] [-0.0805817, 0.0190582, -0.018856]]
          node:t="pedal_rfoot_1"
        }
      }
    }

    "seats:object"{
      name:t="machine_gunner"
      locName:t="vehicle_seats/commander"
      attachNode:t="commander"
      shouldHideOwner:b=no
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.12, 0.36, 0.11]]
      seatComponent:t="isPassenger"
      isHoldGunModeAllowed:b=no
      receiveDamageFromDMPart:t="commander"
      seatAnimUpper:t="drive_passenger"
      seatAnimLower:t="drive_passenger"
      canPlaceManually:b=yes

      "effectors:object"{

        "l.hand:object"{
          rel_tm:m=[[-0.0140025, -0.992501, 0.121439] [0.999274, -0.0095886, 0.0368515] [-0.0354104, 0.121867, 0.991914] [-0.208267, -0.674889, -0.117278]]
          node:t="lefthand_3"
        }

        "r.hand:object"{
          rel_tm:m=[[0.512722, 0.185274, -0.838326] [0.215913, 0.917232, 0.334765] [0.830962, -0.352646, 0.430281] [-0.151245, -0.0606141, 0.0719528]]
          node:t="righthand_3"
        }

        "l.foot:object"{
          rel_tm:m=[[0.988051, 0.152243, 0.024008] [-0.150694, 0.98695, -0.0567607] [-0.0323361, 0.0524647, 0.9981] [-0.104599, -0.033783, 0.0100501]]
          node:t="pedal_lfoot_3"
        }

        "r.foot:object"{
          rel_tm:m=[[0.959544, 0.273328, 0.067583] [-0.273181, 0.961893, -0.0115871] [-0.0681747, -0.00734403, 0.997647] [-0.0914841, -0.0504913, 0.00846291]]
          node:t="pedal_rfoot_3"
        }
      }
    }
  }
}
us_halftrack_m13_common{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}


halftrack_m13_turret_01_12_7mm_m2_hb_user_machinegun_for_m15{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=250
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

halftrack_m13_turret_02_12_7mm_m2_hb_user_machinegun_for_m15{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=250
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

m13_mgmc_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="halftrack_m13_ai_vehicle_tank"
}



There are many tanks i wanted to add but i only used the first 3 tanks and the game just refuses to work

1 Like

@Devenddar
Ping you here as its 12pm of Friday in my region (idk about urs because your country is quite wide)

1 Like

@Devenddar any clue how to fix this yet?

yea some issues is deep inside the code… maybe need more test to figure it if can be handle by our players

before that we can only circumvent these problems in some roundabout ways

But that definitely did not happen before the stronger than steel update.
I mean the server don’t even have a lag spike when 20 ha-go are spawning, let alone 1 tank spawning

1 Like

yes some times new update breaks things… Many break cases were happened before I’m also very troubled by this :sob:

@Bazsi37’s post allowed me to check the game codes (which i can finally get my hands on).

And i noticed that there are something missing in the _group part from the code i got from @Devenddar


The one on the left (notepad++.exe) is the code i have in my map.
The one on the right (notepad.exe) is the code that @Bazsi37 posted.

My guess is this. This thing is the now working code

ai_vehicle_tank__thinkState:i=1
ai_vehicle_tank__waitTimesUpdatePath:r=1000000.0

And this is why server crashes:

ai_vehicle_tank__pathFindingState:i=1
1 Like

22 days later, i am once try to fix this issue with custom tanks!

I will share all the codes i used to accomplish custom ai tanks to the public once its completely working

I hope to see PVE tank battles with player profiles that spawn tanks. Or a working war thunder match in enlisted (with enlisted repair system)

1 Like

Alright testing with this tank codes

type_95_ha_go_ai_vehicle_tank{

  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium"
  
  
  destroyIfNoCrewLeft:b=yes
  bodyCleanupTime:r=30 
  
  paid_loot__pointsForKill:i=150
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }

  _group{
    _tags:t="server"
    //ai_vehicle_tank__pathFindingState:i=1
	ai_vehicle_tank__thinkState:i=1
    ai_vehicle_tank__waitTimesUpdatePath:r=1000000.0
    ai_vehicle_tank__allowCrewExiting:b=no
    zombie_ai_vehicle_tank__timeToDestroy:r=900.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

"vehicle_seats__seats:shared:array"{

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="commander"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.02, -0.72, -0.07]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_95_ha_go_gunner_cockpit"
      hatchRotationAxis:p3=1.7, 0.0, 0.0
	  directTurretControl:b=yes
	  
      "turretNames:array"{
        turretNames:t="turret_01"
      }

      "hatchNodes:array"{
        node:t="hatch_01"
        node:t="hatch_02"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_95_ha_go_driver_cockpit"
    }

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="machine_gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machine_gunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_95_ha_go_machinegunner_cockpit"
	  directTurretControl:b=yes

      "turretNames:array"{
        turret:t="turret_02"
      }
    }
  }


  }


jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_95_ha_go_turret_01_37mm_type_94{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_95_ha_go_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

ha_go_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="type_95_ha_go_ai_vehicle_tank"
}

Also i removed the codes _use:t=“ai_aircraft_crew_ger” and ai_aircraft_crew__soldier_template:t=“zombie_ai_vehicle_tank_crew_member” that @Devenddar provided, and the extra crew presence problem is fixed (the zombie_ai_tank_vehicle entity does not have the “zombie_ai_vehicle_tank_crew_member” in _use tags i don’t think)


OMG! IT IS FIXED!!!
@Bazsi37 you have become the savior of the community!
@Devenddar @tommyZZM we can now finish what we started and make more chaos!

2 Likes

Ha-Go code here:

type_95_ha_go_ai_vehicle_tank{

  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium"

  bodyCleanupTime:r=5.0 
  
  paid_loot__pointsForKill:i=100
  vehicle_seats__restrictToTeam:i=3

  "dontCreateNphysObstacle:tag"{
  }

  "zombie:tag"{
  }
  destroyIfNoCrewLeft:b=yes
  _group{
    _tags:t="server"
	ai_vehicle_tank__thinkState:i=1
    ai_vehicle_tank__waitTimesUpdatePath:r=1000000.0
    ai_vehicle_tank__allowCrewExiting:b=no
    zombie_ai_vehicle_tank__timeToDestroy:r=900.0
    zombie_ai_vehicle_tank__destroyAtTime:r=0.0
    ai_vehicle_tank__ignoreBattleArea:b=yes
  }

"vehicle_seats__seats:shared:array"{

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/gunner"
      attachNode:t="commander"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.02, -0.72, -0.07]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="commander"
      cameraNodeName:t="bone_camera_gunner"
      cockpitTemplate:t="jp_type_95_ha_go_gunner_cockpit"
      hatchRotationAxis:p3=1.7, 0.0, 0.0
	  directTurretControl:b=yes
	  
      "turretNames:array"{
        turretNames:t="turret_01"
      }

      "hatchNodes:array"{
        node:t="hatch_01"
        node:t="hatch_02"
      }

      "loaderTurretNames:array"{
        turret:t="turret_01"
      }
    }

    "seats:object"{
      name:t="driver"
      locName:t="vehicle_seats/driver"
      seatOwnsEntityControl:b=yes
      attachNode:t="driver"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.25, 0.0]]
      seatComponent:t="isDriver"
      nextSeat:t="main_gunner"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="driver"
      cameraNodeName:t="bone_camera_driver"
      cameraOffset:p3=0.15, -0.0, -0.0
      cockpitTemplate:t="jp_type_95_ha_go_driver_cockpit"
    }

    "seats:object"{
      name:t="main_gunner"
      locName:t="vehicle_seats/additional_gunner"
      attachNode:t="machine_gunner"
      ignoreAttachNodeRotation:b=yes
      attachTm:m=[[1.0, 0.0, 0.0] [0.0, 1.0, 0.0] [0.0, 0.0, 1.0] [-0.25, -0.5, 0.0]]
      seatComponent:t="isGunner"
      nextSeat:t="driver"
      shouldHideOwner:b=yes
      receiveDamageFromDMPart:t="machine_gunner"
      cameraNodeName:t="root"
      cockpitTemplate:t="jp_type_95_ha_go_machinegunner_cockpit"
	  directTurretControl:b=yes

      "turretNames:array"{
        turret:t="turret_02"
      }
    }
  }


  }


jp_type_95_ha_go_14th_inf_div_peleliu_pacific_battlepass_premium{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}

type_95_ha_go_turret_01_37mm_type_94{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=0
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=40.0
  }
}

type_95_ha_go_turret_02_7_7mm_type_97{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=19
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=100.0
  }
}

ha_go_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="type_95_ha_go_ai_vehicle_tank"
}
1 Like

This is mod editor on latest test server 0.6.0.22:


They have fixed the ai tank not shooting under a roof issue

I told my AI to attack the ha-go. And he one tapped it. It is very realiable

1 Like

To whom this may concern:
My mod is updated to the latest test server and work in local game mode.
You can try out the new guns and the new tanks in it!
https://sandbox.enlisted.net/post/QnDgaK4E7O5QKAxD/manifest/17/

Btw i dont think its in game before?