Left 4 Dead 2

Left 4 Dead 2

[VScript] Custom Survivor Takeover - CST
 This topic has been pinned, so it's probably important
ChapCanai  [developer] Aug 8 @ 7:05pm
profiles cfg stuff
Where are the profile cfgs?:
Left 4 Dead 2\left4dead2\ems\custom_survivor_takeover\profiles\{name}.cfg
  • After loading any map at least once, there should be some default presets.

enabled = true
  • Allow them to appear (true) or not (false).

takeovers = ["@random"]
  • Who to choose to takeover.
  • You can put player names (eg. Thelegend27) but bots_only need to be false. (case sensitive)
  • If you put a name like "Bill", it will find for the first existing survivor named "Bill" and takeover him.

  • If you put a model path like "models/survivors/survivor_namvet.mdl", it will find for the existing survivor with Bill's model.

    Nick's model is "models/survivors/survivor_gambler.mdl"
    Rochelle's model is "models/survivors/survivor_producer.mdl"
    Coach's model is "models/survivors/survivor_coach.mdl"
    Ellis' model is "models/survivors/survivor_mechanic.mdl"
    Bill's model is "models/survivors/survivor_namvet.mdl"
    Zoey's model is "models/survivors/survivor_teenangst.mdl"
    Louis' model is "models/survivors/survivor_manager.mdl"
    Francis' model is "models/survivors/survivor_biker.mdl"

  • If you put "@clone", it will find for the models that have duplicates and pick one of them. This is mainly used for 9+ survivors using VSSM, because that is when clones start to spawn.
  • If you put "@random", it will just choose anyone who is not yet taken over.
  • Same with "@random_bot" and "@random_human"
  • If you put "@all", it will just choose all survivors who are not yet taken over.
  • Same with "@all_bots" and "@all_humans"

  • Takeover priority order: Model > Name > "@clone" > "@random_human" > "@random_bot" > "@random" > "@all_humans" > "@all_bots" > "@all"

random_models = ["models/survivors/survivor_css_urban.mdl", "models/survivors/survivor_css_gign.mdl", "models/survivors/survivor_css_gsg9.mdl"]
  • The file path to the survivor model (mdl) that will takeover.
  • You can put multiple models for RNG

random_names = ["Alpha", "Bravo", "Charlie"]
  • The display name for the characters
  • You can put multiple names for RNG

random_voice_names = ["Cliffe"]
  • This is for talkers, whose voice to use
  • NamVet is bill, TeenGirl is zoey, Manager is louis, Biker is francis, Gambler is nick, Producer is Rochelle, Coach is coach, Mechanic is ellis.
  • aka context name
  • For the context: "who"
  • You can put multiple for RNG

survivor_slot = "anon"
  • Whose vgui, viewmodel arms, and vanilla survivor bot name to use

  • You can put a number (without quotes)
  • In survivor set 1: 0 is bill, 1 is zoey, 2 is louis, 3 is francis.
  • In survivor set 2: 0 is nick, 1 is rochelle, 2 is coach, 3 is ellis, 4 is bill, 5 is zoey, 6 is francis, 7 is louis.
  • You can also put negative one (-1), for letting the script pick a custom slot.

  • You can also put a string (with quotes) (case insensitive)
  • Bill is "bill" or "namvet"
  • Zoey is "zoey" or "teenangst" or "teengirl"
  • Louis is "louis" or "manager"
  • Francis is "francis" or "biker"
  • Nick is "nick" or "gambler"
  • Rochelle is "rochelle" or "producer"
  • Coach is "coach"
  • Ellis is "ellis" or "mechanic"
  • "anon" basically just means neither of them, for letting the script pick a custom slot.

  • Only custom slots can allow the bot to show their custom display names, but their internal name will be "Survivor". It will also make their vgui blank and first person viewmodel arms invisible.
  • Currently, custom slots are only 8, 9, 19, 20, 21, 22
  • If there are other positive numbers that won't crash the game, feel free to let me know
  • I think 10 to 18, and 23 and above will crash the game, -139 and below will also crash the game, but thats just a theory. I added a safeguard to hopefully prevent that

takeover_chance = 100.0
  • What is the percent chance for the custom character to takeover

takeover_models_blacklist = ["models/survivors/survivor_namvet.mdl"]
  • Which model should never be taken over

takeover_names_blacklist = ["ChapCanai", "Nick"]
  • Whose player name should never be taken over

map_names_blacklist = ["c1m1_hotel", "c8m1"]
  • Which map(s) they should never appear in

If you want to add new custom characters
Last edited by ChapCanai; Aug 8 @ 7:40pm
< >
Showing 1-3 of 3 comments
ChapCanai  [developer] Aug 8 @ 7:37pm 
Example profile:
{
enabled = true
takeovers = ["@random"]
random_models = ["models/survivors/survivor_replica_soldier_1.mdl", "models/survivors/survivor_replica_soldier_2.mdl", "models/survivors/survivor_replica_soldier_3.mdl", "models/survivors/survivor_replica_soldier_4.mdl", "models/survivors/survivor_replica_soldier_5.mdl", "models/survivors/survivor_replica_soldier_6.mdl", "models/survivors/survivor_replica_soldier_7.mdl", "models/survivors/survivor_replica_soldier_8.mdl", "models/survivors/survivor_replica_soldier_9.mdl", "models/survivors/survivor_replica_soldier_10.mdl"]
random_names = ["[Alpha]", "[Bravo]", "[Charlie]", "[Delta]", "[Echo]", "[Foxtrot]", "[Golf]", "[Hotel]", "[India]", "[Juliet]", "[Kilo]", "[Lima]", "[Mike]", "[November]", "[Oscar]", "[Papa]", "[Quebec]", "[Romeo]", "[Sierra]", "[Tango]", "[Uniform]", "[Victor]", "[Whiskey]", "[Xray]", "[Yankee]", "[Zulu]"]
random_voice_names = ["Replica"]
survivor_slot = "anon"
takeover_chance = 100
takeover_models_blacklist = ["models/survivors/survivor_not_for_this.mdl"]
takeover_names_blacklist = ["not_for_this_name"]
map_names_blacklist = ["not_for_this_map_name"]
}
Last edited by ChapCanai; Aug 8 @ 7:44pm
kouga Aug 8 @ 11:47pm 
you're seriously amazing, you know that?
ChapCanai  [developer] Aug 9 @ 12:58am 
Thanks
< >
Showing 1-3 of 3 comments
Per page: 1530 50