[Info] Zombies Mode Modding

We have tried several solutions to get rid of this problem, but none of them worked.

You can make zombies super heavy to get rid of players buildings walls of afk players, until darkflow fixes this issue.

nzombie_base{
  _override:b=yes
nphys__mass:r=6000.0
}

I want this to make it so that left players wont be a lag issue

Server lag is caused by large maps+ large player numbers, small map+large player number doesn’t cause server lag. (it didn’t for me)

what if i disable hitPointsAlwaysDown so that people dies if they dont have medkit and they can respawn?

Idk how hitPointsAlwaysDown work and cant test in single player.
But is there a thing i can modify in custom_profile so that any damage always down people if they own a medkit and they are allowed to revive themselves.

I ask here because i would like to have self-revive enabled. Its kind of annoying to need teammates to revive u. The respawn also counts as self-revive because u actually need to survive that 10 seconds before reinforcements arrive

what if i disable hitPointsAlwaysDown so that people dies if they dont have medkit and they can respawn?

Then you can die by getting shot, or meeled. Then you lose all equipment.

hitPointsAlwaysDown makes the character invincible when downed. You can disable this, but that makes you vurnelable in a downed state too.

I ask here because i would like to have self-revive enabled

enlisted_visible_base_soldier{
  _override:b=yes
  paid_loot__points:i=150
  hitpoints__canBeRevivedByTeammates:b=no //self explanatory
  hitpoints__downedTimer:r=300.0  //how much time you can spend in downed state before dying
  hitpoints__alwaysDowned:b=no  //when set to yes, you cannot die while downed.
  hitpoints__deathHpThreshold:r=-25.0 //HP amount when downed
  hitpoints__alwaysAllowRevive:b=yes // This would allow you to revive even without medkit. Does not work
  hitpoints__downedKillChanceBase:r=0.0 //chance of getting killed instead of getting downed when receiving damage greater than current HP
  hitpoints__killDownedByMeleeHit:b=no //can be killed by melee hit when downed 
  hitpoints__downedKillWhenBurning:b=no // can be killed by fire damage when downed
  bodyCleanupTime:r=2.0 //time it takes to remove corpses
  human_inventory__canSelfRevive:b=no //allow self revive
  "canReviveWithoutItem:tag"{
  }
  "canBeUsedOutOfInventory:tag"{
  }
  "still_obstacles__disable:tag"{
  }
}

This is what i have tried, but doesn’t work, doesn’t solve the afk player issue.

1 Like

thx, but i will try it after i have fix the server crash issue

Because we can’t use custom entities on single players because we are not connected to the servers.

I might have found a solution to zombies AFKing

nzombie_base{
  _override:b=yes
zombie__findClosestTargetDist:r=100.0
}

I need to check if this will cause any issue with server overload when 100 zombie are doing that together

Maybe this code will help

zombie__findTargetCooldown:r=4.0

Zombies 'afk"-ing is only a problem for armored zombies (zombies with weapon). Melee zombies tend to work fine. nzombie_xxx affects melee zombies only.

I also added this code to the base armored zombie too in hopes of fixing that

And, somehow in my case, normal melee zombie(mostly uber-engineer and that uber-pilot) also afk on higher rounds when my map has max players. And some zombie afk randomly too. My map is not big, its just a pacific warehouse and spawn are close

How do we make zombie unnable to capture zone when they are the third team?

If you have this line in your codes somewhere remove it. Zombies should neither go for cap zones nor being able to capture it by default
image

3 Likes

@Enginya

One of the last small patch has made animations on zombies to slow down. This doesn’t effect speed or mass of zombies, only has visual effect.

There are no visible changes that are relevant to animations in the files and i believe it needs developer’s attention to fix this issue.


So here is the difference between the zombies.blk from the top of this thread, and the latest datamine. (left is old, right is new)
  • They fixed a typo in localization, irrelevant to the anim slowness problem:

  • Changed entity names:

  • Missing group for sounds:

  • Changed entity name:

  • A few changes to some weapons:

  • Changes to tank:

zombies_from_april.txt (112.4 KB)
zombies_blk_2024.06.22.txt (112.2 KB)

Wait so they changed some tank stuff. It might be why my custom tanks are crashing the game

1 Like

Custom tanks now work once more with the help of @Bazsi37
I tried to make the flak panzer 4 wirbelwind work with this code. And it kind of worked but little bit overpowered and only one gun fires:

wirbelwind_ai_vehicle_tank{
  bodyCleanupTime:r=5.0
  _use:t="ai_vehicle_tank_fixed_objective"
  _use:t="base_flpz_iv_wirbelwind"
  paid_loot__pointsForKill:i=500
  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="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"
    }
	
	"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"

      "turretNames:array"{
        turret:t="turret_01"
		turret:t="turret_02"
		turret:t="turret_03"
		turret:t="turret_04"
      }
    }

	"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"

      "loaderTurretNames:array"{
        turret:t="turret_01"
		turret:t="turret_02"
		turret:t="turret_03"
		turret:t="turret_04"
      }
    }
	"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"

      "loaderTurretNames:array"{
        turret:t="turret_01"
		turret:t="turret_02"
		turret:t="turret_03"
		turret:t="turret_04"
      }
    }
    "seats:object"{
      attachNode:t="machine_gunner"
      locName:t="vehicle_seats/radioman"
      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="machine_gunner"
    }	
  }
}
base_flpz_iv_wirbelwind{
  _override:b=yes

  gunner_cam_limit__useCockpitDir:b=yes
  commanderCockpitFpsCamMaxAngle:p2=40.0, 5.0
}
flpz_iv_wirbelwind_turret_01_20mm_flak38{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=20
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=200.0
  }
}
flpz_iv_wirbelwind_turret_02_20mm_flak38{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=20
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=200.0
  }
}
flpz_iv_wirbelwind_turret_03_20mm_flak38{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=20
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=200.0
  }
}
flpz_iv_wirbelwind_turret_04_20mm_flak38{
  _override:b=yes

  _group{
    _tags:t="server"
    tank_turret_ai__maxBurstCount:i=20
    tank_turret_ai__longPauseWaitTime:r=0.0
    tank_turret_ai__attackDist:r=200.0
  }
}

wirbelwind_spawner{
  _use:t="zombie_ai_vehicle_tank_spawner"
  zombie_ai_vehicle_tank_spawner__template:t="wirbelwind_ai_vehicle_tank"
}

Does the turrent rotate on the wirbelwind?

The difference between the game-crashing codes is the _group part in the first entity:

_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
  }

The new code that we found are:

ai_vehicle_tank__thinkState:i=1
ai_vehicle_tank__waitTimesUpdatePath:r=1000000.0

and removed old code here:

ai_vehicle_tank__pathFindingState:i=1

So thats what i have found!
I hope my contribution to the community can be useful for everyone to create their own ai tanks!

It does!
However the gun can shoot at you even if its not directly pointed at you:


That white line you see is the round fired at me and you can also see that the turret is not pointing at me

We will investigate this effect. Thanks for reporting.

1 Like

Please lock thid thread. It’s continued here: [Info] - Zombies 2.0

@Bigote0070

Closed per op Request

1 Like