Alien Swarm: Reactive Drop

Alien Swarm: Reactive Drop

91 ratings
Uploading an Add-on to the Workshop
By Ben Lubar
This guide walks you through uploading your first add-on to the Reactive Drop Workshop.
   
Award
Favorite
Favorited
Unfavorite
Required files for campaigns
Co-op and Deathmatch campaigns require some configuration files:

resource/campaigns/your_campaign_name_goes_here.txt is the most important. Here's an example with comments:

"GAME" { // The name that will be chosen in the mission chooser and on leaderboards. "CampaignName" "My First Campaign" // This is shown when selecting a campaign to switch to from the lobby. "CampaignDescription" "This is a description of my campaign's story that will make people want to play it! It should be about three to five sentences long. Obviously, you'd put something less self-referential here for your real campaign file." // The icon of the campaign. This starts in materials/vgui, so this refers to a file named materials/vgui/swarm/campaigns/my_first_campaign_icon.vmt. "ChooseCampaignTexture" "swarm/campaigns/my_first_campaign_icon" // The name of your credits file. This example refers to a file named resource/my_first_campaign_credits.txt. "CustomCreditsFile" "resource/my_first_campaign_credits" // The first mission in the campaign file is not part of the campaign. It is shown on the map between missions. "MISSION" { "MissionName" "Atmospheric Entry" "MapName" "dropzone" // LocationX and LocationY are from 0 to 1023. "LocationX" "481" "LocationY" "877" // Make sure your first mission in the campaign file links to your real first mission. "Links" "my_first_campaign_map_1" "LocationDescription" "Atmospheric Entry" "ShortBriefing" "Atmospheric reports show nominal weather patterns at this location. Dropship Bloodhound will enter atmosphere at these co-ordinates and proceed to primary objective." } // Put each mission in your campaign in order: "MISSION" { // Name used on the map screen between missions. This should be short, like "Landing Bay" or "Spaceport". "MissionName" "Dental Lab" // Name of the map file, without .bsp. "MapName" "my_first_campaign_map_1" // Position of the mission on the map screen shown between missions from 0 to 1023. "LocationX" "275" "LocationY" "856" // This adjusts the amount of health and damage aliens have. It can be from -2 to 2. "DifficultyModifier" "0" // Map names of neighbours, without .bsp. "Links" "dropzone my_first_campaign_map_2" // This name and description are shown when the previous mission is complete on the campaign map screen. "LocationDescription" "Dental Lab" "ShortBriefing" "We have unexplained interference in the denture-making facility on Vernon-12. Be advised that aliens may bite." // Leave this as 1 unless you want to hide the mission until the previous mission has been completed. "AlwaysVisible" "1" // Leave this as 0 unless two marines are required for your mission (for example, when marines need to split up). "NeedsMoreThanOneMarine" "0" } "MISSION" { // Name used on the map screen between missions. This should be short, like "Cargo Elevator" or "Bridge". "MissionName" "Dark Plateau" // Name of the map file, without .bsp. "MapName" "my_first_campaign_map_2" // Position of the mission on the map screen shown between missions from 0 to 1023. "LocationX" "300" "LocationY" "736" // This adjusts the amount of health and damage aliens have. It can be from -2 to 2. "DifficultyModifier" "0" // Map names of neighbours, without .bsp. "Links" "my_first_campaign_map_1 my_first_campaign_map_3" // This name and description are shown when the previous mission is complete on the campaign map screen. "LocationDescription" "Dark Plateau" "ShortBriefing" "We have reports of suspicious activity at the Dark Plateau research facility. We need to stop whatever's in there from getting out." // Leave this as 1 unless you want to hide the mission until the previous mission has been completed. "AlwaysVisible" "1" // Leave this as 0 unless two marines are required for your mission (for example, when marines need to split up). "NeedsMoreThanOneMarine" "0" } "MISSION" { // Name used on the map screen between missions. This should be short, like "Timor Station" or "Wastelands". "MissionName" "Garbage Dump" // Name of the map file, without .bsp. "MapName" "my_first_campaign_map_3" // Position of the mission on the map screen shown between missions from 0 to 1023. "LocationX" "370" "LocationY" "630" // This adjusts the amount of health and damage aliens have. It can be from -2 to 2. "DifficultyModifier" "0" // Map names of neighbours, without .bsp. "Links" "my_first_campaign_map_2" // This name and description are shown when the previous mission is complete on the campaign map screen. "LocationDescription" "Garbage Dump" "ShortBriefing" "Our sensors are picking up an infestation in an underground garbage disposal facility. Partaking in useless garbage fills you with determination." // Leave this as 1 unless you want to hide the mission until the previous mission has been completed. "AlwaysVisible" "1" // Leave this as 0 unless two marines are required for your mission (for example, when marines need to split up). "NeedsMoreThanOneMarine" "0" } // Optional stuff: // texture used on the campaign screen for the map "CampaignTextureName" "swarm/Campaign/JacobCampaignMap" // these textures are overlaid on top of the campaign map in order "CampaignTextureLayer1" "swarm/Campaign/JacobCampaignMap_Haze" "CampaignTextureLayer2" "swarm/Campaign/JacobCampaignMap_SnowNear" "CampaignTextureLayer3" "swarm/Campaign/JacobCampaignMap_SnowFar" // searchlights (optional, max of 4) // angle: 0 is right, 90 is up, 180 is left, 270 is down "Searchlight1X" "217" "Searchlight1Y" "860" "Searchlight1Angle" "80" "Searchlight2X" "263" "Searchlight2Y" "751" "Searchlight2Angle" "100" "Searchlight3X" "92" "Searchlight3Y" "446" "Searchlight3Angle" "90" "Searchlight4X" "580" "Searchlight4Y" "266" "Searchlight4Angle" "90" }

For each mission, you need a file named resource/overviews/your_bsp_name_goes_here.txt. The Valve Developer Community Wiki has a guide on how to create overview files.

Campaigns show credits at the end, so you should have a file with the name listed in CustomCreditsFile in the campaign file that looks like this:

"Credits" { // These lines must be in this order! "show_credits_logo" "1" // The logo shown at the top of the end-of-campaign credits. This example refers to materials/vgui/swarm/credits/my_first_campaign_logo.vmt. "custom_logo" "swarm/credits/my_first_campaign_logo" // Each line of your credits should be written like this, including blank lines: "asw_credits_" "My First Campaign" "asw_credits_" "" "asw_credits_" "- Mapping -" "asw_credits_" "Casimer the Adequately Skilled" "asw_credits_" "Dmitriy" "asw_credits_" "" "asw_credits_" "- Textures -" "asw_credits_" "Mad Orange" "asw_credits_" "" "asw_credits_" "- Special Thanks -" "asw_credits_" "Valve Software" "asw_credits_" "The Reactive Drop team" "asw_credits_" "My dentist Greg" "asw_credits_" "Metronome the cat" }

Of course, you also need the BSP file for each mission and any custom assets, like sounds, textures, models, and particles.
Required files for challenges
Challenges require a file named resource/challenges/your_challenge_name_goes_here.txt to show up on the menu. Here's what the official ASBI challenge description looks like at the time of this guide:

"CHALLENGE" { "name" "ASBI" "description" "Significantly increases difficulty by increasing aliens' speed and number, adding more frequent hordes, and forcing hardcore friendly fire." "convars" { "asw_horde_override" "1" "asw_wanderer_override" "1" "rd_ready_mark_override" "1" "asw_sentry_friendly_fire_scale" "1" "asw_marine_ff_absorption" "0" } }

Challenges that modify Onslaught mode alien selection should include a file named resource/alien_selection_your_challenge_name_goes_here.txt. See the resource/alien_selection.txt file that comes with Alien Swarm: Reactive Drop for a description and examples of how to make an alien selection file.

Challenges with custom scripting can add a file named scripts/vscripts/challenge_your_challenge_name_goes_here.nut. Alien Swarm: Reactive Drop uses Squirrel as its scripting language. How to write a Squirrel script for an add-on is outside of the scope of this guide.
Making a VPK
Now that you have your files laid out in a folder, you need to pack them into a VPK, or Valve PacK file.

In Steam, right click on Alien Swarm: Reactive Drop and select Properties. On the Local Files tab, click Browse Local Files.... Double click on the bin folder and find vpk.exe. Drag your add-on folder onto vpk.exe and a VPK file with the same name as your folder should appear.

Important things to note:

Alien Swarm: Reactive Drop uses VPK version 1, which only allows one dot per filename. This is especially important for models: make sure you only have a .dx90.vtx so it doesn't get overridden by one of the other vtx files.

VPK files can be opened by freely available tools such as GCFScape. Any file you put into the VPK will be accessible to anyone who downloads your add-on.

All add-ons share the same filename space, along with the game. This means that if your add-on includes a different file with the same name as a file in another add-on, one of the two add-ons will likely break. It is important that any file you create specifically for your add-on has a unique name. This can be as simple as putting the name of your campaign in the name of a texture file, and so on.
Publishing a Workshop add-on
From the main menu, click Workshop and then Manage. At the bottom of the screen, click Create New Add-on.

Select the placeholder add-on you just created and click Edit. There are three important things you need to add:

  • Enter a title at the top. If your add-on is a campaign or a challenge, a good title is the name of your campaign or challenge.
  • Select a JPEG image to be the preview icon for your add-on. The image must be one megabyte or less, and should be 16:9 (for example, 1920 by 1080) or it will be stretched in various places. Choose a screenshot that looks interesting even when scaled down to the size of an icon, but that is also detailed enough to look good on your add-on's Workshop page.
  • Select your VPK. There is no size limit for VPKs uploaded to the Workshop, but some common accidentally included filenames are blocked from being selected.

You can also add a description for your Workshop page, although you can edit it later from the website. You don't need to add tags like "Campaign" or "Challenge" as these are automatically managed by the Workshop upload tool. If your add-on was previously released for Alien Swarm and you have a change log, you can put it in the description for your first version on the Workshop. Otherwise, you can leave the change log blank for the first version.

When you're ready to upload, click Submit. A progress bar will appear while your add-on is uploaded to the Workshop. Afterwards, the Workshop page on the website will open in the Steam Overlay or your web browser.

New add-ons are marked as private by default, and can only be seen by you and administrators of the Steam Hub for Reactive Drop. You can change privacy settings on the right side of the Workshop page.
Next steps
Before your add-on can be seen by other Reactive Drop players, you need to set its visibility to Public or Friends Only and accept the Steam Workshop legal agreement. Both of these actions can be done from your add-on's page on the Steam Workshop website.

You can upload additional screenshots and add YouTube videos to your Workshop page on the website. In addition to being shown to people browsing the workshop, screenshots are also used by the leaderboard website for mission icons.

If your add-on uses content from another add-on on the Workshop, you can add it as a required item and it will automatically be installed when your add-on is subscribed.

If you worked with another player to make the add-on, you can give them credit by adding them as a contributor.
19 Comments
Fox 26 Aug, 2023 @ 12:50pm 
i understood about -13% of that
thanks:aurip:
berry 28 Jun, 2022 @ 2:40am 
kitty guide will migrate to valve development wiki so if this guide is not right just wait
Hagon Wyvon 18 Oct, 2021 @ 6:48am 
Amazing good job pal
Hardcore Games™ 28 Jun, 2020 @ 7:46am 
nice, thanks
七街浪友 25 Feb, 2020 @ 2:57am 
在哪里订阅
羡羡 23 May, 2019 @ 1:14am 
nice
Captain Pentium 17 Jun, 2018 @ 3:19pm 
Thanks! This has been most useful.
Umbrakinz 21 Feb, 2018 @ 10:57am 
Nice Game
Pulptenks 11 Feb, 2018 @ 7:29pm 
lol... cant understand nothing from this guide, look like something for experienced people :Zayten:
katty 12 Jan, 2018 @ 7:13pm 
Can I friend you and we can play togeather? (Your costom map xD)