Help, making a king of the hill map in Tunisia

I am very new to modding in this specific game, however i’ve done so in others in the past.

1: How do i smooth terrain? Or flatten Terrain?
( I am having terrible problems trying to flatten, and especially smooth terrain.

2: How do i add a few in-game tanks on the field that can Auto-respawn on their own after being destroyed ( unrelated to team spawn ).

3: How do i make destroyed vehicle entities - despawn

4: How do i make 3 objectives act as a “tug of war - King of the hill” as tickets bleed over time if a team has 2 out of 3 objectives?

  • i tried searching for tutorials, but only found this, which acted as ‘invasion’. So 1 objective gets taken, then goes to the next, and the next. Which isnt what i was looking for.
1 Like

4: How do i make 3 objectives act as a “tug of war - King of the hill” as tickets bleed over time if a team has 2 out of 3 objectives?

So Conquest:

3: How do i make destroyed vehicle entities - despawn

I’m almost sure you can do that with an entities.blk override, @tommyZZM is this possible?

2: How do i add a few in-game tanks on the field that can Auto-respawn on their own after being destroyed ( unrelated to team spawn ).

You can’t do that yet.

1: How do i smooth terrain? Or flatten Terrain?
( I am having terrible problems trying to flatten, and especially smooth terrain.

Terrain painter is terrible. You can use terrain patches to mitigate the problem

3 Likes

Yes this is very important for large scale battles.

It will avoid having too many things on the map that wastes server performance

To do this, I replace dead entities with entity__recreateToOnDeath and add additional properties to the wreckage

// automatically wipe out destroyed tank wreckage

big_action_wreck_gameobj{
  _extends:t="base_gameobj"
  _extends:t="bonfire_effect_no_occluders"
  _extends:t="fire_timings"
  // _extends:t="big_action_vehicle_builded_no_shred"
  _extends:t="dead_entity"
  _use:t="base_gameobj"
  _use:t="bonfire_effect_no_occluders"
  _use:t="fire_timings"
  // _use:t="big_action_vehicle_builded_no_shred"
  _use:t="dead_entity"
  animchar__res:t="t_26_1940_char"
  collres__res:t="t_26_1940_collision"
  effect__name:t="fire_tank_small_cmps_fx"
  fire_source__startTime:r=0.0
  fire_source__fullForceTime:r=30.0
  fire_source__maxFullForceTime:r=39.0
  fire_source__fadeTime:r=5.0
  fire_source__scale:r=1.29
  phys_obj_net_phys__blk:t="%ugm/data/units/fixtures/wreck_gameobj.blk"
  pair_collision__tag:t="collidableToPhysObj"
  item__name:t="received/armory"
  ri_extra__hasCollision:b=no

  "fire_source:tag"{
  }

  "zombieTriggerable:tag"{
  }

  "dmgzone__burningOffender:eid"{
  }

  "attach_decorators__entities:list<eid>"{
  }

  "attach_decorators__templates:array"{
  }
}

big_action_wreck_vehicle_civil{
  _extends:t="willys_mb"
  _extends:t="bonfire_effect_no_occluders"
  _extends:t="fire_timings"
  _extends:t="big_action_vehicle_builded_no_shred"
  _extends:t="dead_entity"
  _use:t="willys_mb"
  _use:t="bonfire_effect_no_occluders"
  _use:t="fire_timings"
  _use:t="big_action_vehicle_builded_no_shred"
  _use:t="dead_entity"
  animchar__res:t="pv_gaz_67_char"
  collres__res:t="pv_gaz_67_collision"
  effect__name:t="fire_tank_small_cmps_fx"
  fire_source__startTime:r=0.0
  fire_source__fullForceTime:r=20.0
  fire_source__maxFullForceTime:r=23.0
  fire_source__fadeTime:r=6.0
  fire_source__scale:r=1.29
  item__name:t="received/vehicle"
  ri_extra__hasCollision:b=no

  "fire_source:tag"{
  }

  "zombieTriggerable:tag"{
  }

  "dmgzone__burningOffender:eid"{
  }

  "ammo_stowage__stowageTemplates:shared:list<t>"{
  }

  "dm_phys_parts__ammo:array"{
  }

  "dm_phys_parts__tracks:array"{
  }

  "attach_decorators__entities:list<eid>"{
  }

  "attach_decorators__templates:array"{
  }
}

envir_destr_big_action_wreck_tank_effect{
  _extends:t="destruction_effect_base"
  _extends:t="on_appear_sound"
  _use:t="destruction_effect_base"
  _use:t="on_appear_sound"

  _group{
    _tags:t="render"
    effect__name:t="envir_destr_buildings_med_cmps_fx"
  }

  _group{
    _tags:t="sound"
    on_appear_sound__path:t="env_effects/object_crash/metal_mid"
  }
}

big_action_wreck_tank{
  _extends:t="replicating"
  _extends:t="big_action_vehicle_builded_no_shred"
  _extends:t="base_vehicle"
  _extends:t="animchar"
  _extends:t="bonfire_effect_no_occluders"
  _extends:t="fire_timings"
  _extends:t="base_tank"
  _extends:t="dead_entity"
  _extends:t="big_action_simple_unlimited_item_dropper"
  _extends:t="big_action_fortification_build"
  _use:t="replicating"
  _use:t="big_action_vehicle_builded_no_shred"
  _use:t="base_vehicle"
  _use:t="animchar"
  _use:t="bonfire_effect_no_occluders"
  _use:t="fire_timings"
  _use:t="base_tank"
  _use:t="dead_entity"
  _use:t="big_action_simple_unlimited_item_dropper"
  _use:t="big_action_fortification_build"
  building_menu__text:t="wreckage"
  building_destroy__maxTimeToDestroy:r=30.0
  squad:i=-1
  team:i=-1
  animchar__res:t="t_26_1940_char"
  collres__res:t="t_26_1940_collision"
  vehicle_net_phys__blk:t="gamedata/gen/units/tanks/t_26_1940.blk:VehiclePhys"
  particle_phys__blk:t="gamedata/suspension/empty.blk"
  dmg_animchar__res:t="t_26_1940_dmg_char"
  xray_resource__modelName:t="t_26_1940"
  effect__name:t="fire_tank_small_cmps_fx"
  fire_source__startTime:r=0.0
  fire_source__fullForceTime:r=180.0
  fire_source__maxFullForceTime:r=187.0
  fire_source__fadeTime:r=6.0
  fire_source__scale:r=1.29
  item__name:t="received/vehicle"
  ri_extra__hasCollision:b=no
  item_drop_timer__delay:r=180.0

  "unlimitedItemContainer:list<t>"{
    item:t="envir_destr_basic_small_effect"
    item:t="envir_destr_big_action_wreck_tank_effect"
  }

  "humanAdditionalCollisionChecks:tag"{
  }

  "phys_vars__skipVisibilityCheck:tag"{
  }

  "vehicle__isExplosionFatal:b"{
    _tags:t="server"
    value:b=no
  }

  dmg_animchar{
    _tags:t="render"
  }

  _group{
    _tags:t="render"

    "visual_dmg_remap__partIdToNodeIdMain:list<i>"{
    }

    "visual_dmg_remap__partIdToNodeIdDmg:list<i>"{
    }

    "visual_dmg_remap__partIdToNodeIdDstr:list<i>"{
    }

    "visual_dmg_remap__collNodeIdToNodeIdMain:list<i>"{
    }

    "visual_dmg_remap__collNodeIdToNodeIdDmg:list<i>"{
    }

    "visual_dmg_remap__collNodeIdToNodeIdDstr:list<i>"{
    }
  }

  _group{
    _tags:t="input"

    "vehicle__steerTips:list<t>"{
      tip:t="Vehicle.Brake"
      tip:t="Vehicle.Accel"
      tip:t="Vehicle.Steer"
      tip:t="Vehicle.Throttle"
    }
  }

  _group{
    _tags:t="render"
    burnt_tank_overlay_res:t="burnt_tank_overlay"
    burnt_tank_overlay_var:t="burnt_tank_camo"

    "burnt_tank_overlay:SharedTexHolder"{
    }
  }

  _group{
    _tags:t="render"
    highlight_collision__color:p4=1.0, 0.0, 0.0, 1.0

    "highlight_collision__nodes:list<i>"{
    }
  }

  cockpit_animchar_res_preload{
    _tags:t="gameClient"
  }

  "animchar__objTexReplace:object"{
  }

  "animchar__objTexSet:object"{
  }

  "attach_decorators__templates:array"{
  }

  "attach_decorators__entities:list<eid>"{
  }

  "fire_source:tag"{
  }

  "zombieTriggerable:tag"{
  }

  "dmgzone__burningOffender:eid"{
  }
}

big_action_wreck_tank_100s{
  _extends:t="big_action_wreck_tank"
  _use:t="big_action_wreck_tank"
  fire_source__fullForceTime:r=80.0
  fire_source__maxFullForceTime:r=100.0
}

base_tank{
  _override:b=yes
  entity__recreateToOnDeath:t="big_action_wreck_tank"
  push_object__energyScale:r=390.0

  "canUseRespawnbaseSubtypes:list<t>"{
    subtype:t="default"
  }
}

base_movable_cannon{
  _override:b=yes
  _extends:t="destroy_inactive_vehicle"
  _use:t="destroy_inactive_vehicle"
  inactiveDeleteTimer:r=360.0
  inactiveTimer:r=0.0
  destroyTimerCheckDistance:r=20.0
  entity__recreateToOnDeath:t="big_action_wreck_tank_100s"
  fire_source__scale:r=1.0
  push_object__energyScale:r=270.0
}

base_bike_common{
  _override:b=yes
  entity__recreateToOnDeath:t="big_action_wreck_vehicle_civil"
  fire_source__scale:r=1.0
  fire_source__fullForceTime:r=50.0
  fire_source__maxFullForceTime:r=60.0
}

Note that in the beta version of the game, the _extends:t= keyword was renamed to _use:t. In order to be compatible with both old and new versions, I have currently filled in two keywords

1 Like

Thank you @Bazsi37 and Thank you @tommyZZM, im working on the map now, its working out pretty nicely. Now i just need to figure out why my bots are acting dumb and not going through navmesh

3 Likes

Did they completely ignore it and run into walls/objects? Or something another?
Is NavMesh displayed after that you enabled it in Toolbox? If not then make sure that you set battle area and only then do Rebuild NavMesh.

1 Like

Hi there, i set up everything as tutorial showed, however my bots refuse to move and stay standing at the spawn point. Am i missing something?

I rebuilt navmesh too, and even set up battle area? :thinking:

One other question

1: When i place a Light_chandelier_a entity, as lighting in the scene, after restart, it seems to have deleted itself? Why?

2: When i place a Scene_ladder in the scene, it also deleted itself, so now the ladders wont work. So i have to replace a “Scene_ladder” to make ladders work.

Am i doing something wrong?

1 Like

Hi there, i set up everything as tutorial showed, however my bots refuse to move and stay standing at the spawn point. Am i missing something?

I rebuilt navmesh too, and even set up battle area?

Bots will only move if there is an objective.

When i place a Light_chandelier_a entity, as lighting in the scene, after restart, it seems to have deleted itself? Why?

It’s related to this i think: Gaijin.net // Issues a bug.

Scene ladder may suffer from the same problem.

1 Like

Maybe you edit capzone__onlyTeamCanCapture or capzone__mustBeCapturedByTeam properties in capture points (they’re by default -1)? Did you rebuild after that you set up battle area? What navMesh displays?

Probably no :frowning:
There is one problem with unbaked/removed rendinsts. If you put lights and ladders to area where you did rendinst unbake/remove then they will always disappears when game loading.

If you plan to make them indestructible then you can put base_spot_light and add changes to properties from your light_chandelier_a, but since base_spot_light isn’t omni_light then it may will not contains all light_chandelier_a features.

My map is * Kinda ready * :sweat_smile:

Theres a few things i wanted to add, such as random artillery explosions, and… the bots are just dumb as hell and dont want to use trenches. But alas, i guess this will do.

Now how do i upload and play online lol

Thank you for the replies and all the help.

I do have one final question,

  • How do i add random cinematic artillery shelling on the field that causes small amounts of damage?

Also this is the map
https://sandbox.enlisted.net/post/bwZHfZrKo2bqw0EJ/
Tunisia cover 2

1 Like

Probably you can do it using benchmark_artillery_strike.

Maybe would be much better if you set artilleryStrikeSpawnPeriod to very high value (for example to 999999?) and also create unique artillery template based on artillery_he. This template you can add only using entities.blk (some basic info). There is some code for entities.blk:

custom_artillery{
  _extends:t="artillery_he"
  _use:t="artillery_he"

  artillery__name:t="custom_artillery"
  artillery__shotsCount:i=999999
  artillery__dispersion:r=175
  artillery__adjustmentDispersion:r=250
  artillery_zone__radius:r=0
  sphere_zone__radius:r=0
}

(Zone radius set to 0 for hide artillery in minimap and probably disable any effects to ai).

And then you need just add this custom artillery name inside artilleryStrikeTemplate property that inside benchmark_artillery_strike entity.

If you don’t want to see random artillery then you can edit radius (dispersion properties) properties and cooldowns between shots (probably timeBetweenShots and timeBetweenAdjustmentsShots).

1 Like

hi, and again, thank you so very much for your help!

Its not that the npc’s are getting stuck, its apparently that bots - or the navmesh creates a ‘preferred’ way around obstacles. Which is not exactly what i wanted.

in my map, i have trenches, and the bots appear to prefer going through areas with least obstacles, ( which is fine ). However, in the multiplayer, i noticed that it then becomes too easy for players to constantly just shoot in the same direction where the navmesh has designated a waypoint.

So i ask,
is there some way i can directly edit the navmesh waypoints, so to force bots to use trenches and to attack objectives that way?

Thanks again!

1 Like

Sadly, but nope. Currently time you can’t edit navmesh waypoints. But you can a bit disable bots to go some area. Just need put some rendinsts that block path (and maybe save). And then do rebuild navmesh. After all remove these rendinsts. Should a bit help, but bots still probably will be use same parts.

1 Like