Basic Campaign
Just a basic, Sandbox-derived gamemode where players can access the spawnmenu to make changes to settings, but cannot spawn anything. Every player will start out with no weapons and cannot enter no-clip. One can access the context menu as well to change his/her player model.
If you have the correct files and have bought the game already, you could even play through all Half-Life 2 campaigns if you have this addon along with the "Half Life 2 Save Menu" addon (found here) and (optionally) the "Level Transition Fix" addon (found here). The "Level Transition Fix" addon is not required, as this gamemode already has its own transition fix built in.
NOTE: In multiplayer, all players must be in a transition trigger for the level to change.
If you would like to play the non-episodic Half-Life 2 campaign with this addon, follow these instructions:
1. Copy and paste the following URL in a web browser (Remove the _): https://_/mega.nz/#!fYxHBTzb!Y1ibrNpAs4RUdSER1rKNg52Uf1_GnzPIlhmdGMtkxJ0
2. Download and extract the contents of the .zip file to your addons directory (C:Program Files (x86)SteamsteamappscommonGarrysModgarrysmodaddons). You may check the file for viruses if you wish.
NOTE 1: You must have Half-Life 2 mounted for this addon to work properly.
NOTE 2: If you have any addons that override in-game sounds, this addon may reverse the effects of the other addon. This cannot be helped.
To control which entities with certain classes are deleted upon transitioning, use the following functions in the "GM:Initialize()" hook. (It is not guaranteed to work when placed directly inside a file’s source code, as the code can be run before any of these functions are defined.):
BasicCampaign.AddClassNoSave(class, key, condition) – Adds an entity class to be scheduled for deletion. The "key" argument acts as an identifier. The "condition" argument can either be a boolean (make "true" to delete the entity), or a function with one argument as an entity in question (return "true" to delete and "false" or "nil" to keep the entity).
BasicCampaign.RemoveClassNoSave(class, key) – Attempts to remove a class blacklist with the specified classname (the "class" argument) and identifier (the "key" argument). Prints an error message if there is no such blacklist.
BasicCampaign.ClassNoSaveExists(class, key) – Checks if a class blacklist with the specified classname and identifier exists.
BasicCampaign.GetClassNoSave(class, key) – Attempts to retrieve the function/boolean value of a class blacklist with the specified classname and identifier. Prints an error message if there is no such blacklist.
Report any bugs/issues in the "Bugs" discussion.