Post news RSS Mapbase v4.3 released

Mapbase's v4.3 update has been released. This update expands some existing features and makes Mapbase more stable in preparation for the MP port and an upcoming mapping competition.

Posted by on

Mapbase Version 4.3

Mapbase v4.3 Release Build

Mapbase Release Build


Changelist:

Game:

- Added some of Tony Sergi's missing Source 2007 fixes (contributed by Kris)
- Fixed issues with angled/updating sky_camera save/restore
- Fixed Mapbase crashing when Steam isn't running (reported by Cvoxulary)
- Fixed NPCs being unable to unholster weapons
- Disabled r_hunkalloclightmaps by the request of various users (apparently this completely removes the "Engine hunk overflow" error and allows for really high-res lightmaps)
- Added keyvalue to set LOS mask on combine_mine
- Added +USE bounding box limiter to prop_interactable
- Fixed npc_antlionguard NPC_TranslateActivity not hooking into base class (allows for VScript manipulation)
- Added various unused antlion guard activities to npc_antlionguard AI, allowing for usage as registered activities

Files/Scripts:

- Mounted sourcetest Lost Coast content in gameinfo.txt + added VPK with Mapbase shaders to accommodate
- Changed gameinfo.txt on Mapbase mods to use a new mapbase_shared inclusion method

- Fixed issues with certain HL2 VMTs having $basetexturetransform2 left over and suffering consequences because Mapbase restores it

VScript:

- Fixed major issues with level transitions and save/restore due to certain classes not being registered (contributed by reductor)
- Added ability to disable VScript in a map (and fixed a few potential complications from disabling VScript)

- Added "ClientCommand" hook for VScript to allow handling of unknown console commands (suggested by krassell)
- Added "PlayerRunCommand" hook for VScript to control player movement (suggested by krassell)
- Added new button-related script functions for players (GetButtons, DisableButtons, etc.)
- Added CUserCmd accessor in VScript for the "PlayerRunCommand" hook
- Added tons of VScript functions to CBaseAnimating related to bodygroups, sequences, etc.
- Added VScript functions to players for getting user ID and player name, similar to logic_playerinfo
- Added a few L4D2 script functions missing from the ASW SDK (suggested by 1upD)
- Added "Localize" singleton with a single "GetTokenAsUTF8" function for getting localization strings
- Added "GetWaterLevel" function for VScript
- Exposed "Ignite" to VScript for controlling how a fire starts
- Made clientside VScript only initialize after world is spawned in order to receive serverside script language in time

Compile Tools:

- Added VBSP "-skyboxcubemap" parameter to enable skybox default cubemaps + "-defaultcubemapres" to control their resolution (suggested by Totterynine)


Compared to the previous update (v4.2), this update has tons of important changes with various purposes and improvements. Funnily enough, a lot of these issues were only discovered right after v4.2 was released.

The timing of this update was planned in advance to occur before July 18th due to an upcoming HL2 mapping competition--Map Labs Atom #4--using Mapbase for the first time. This update could've been released earlier, but we wanted to let it "simmer" so we could wait for more bugs to be reported and fixed, as some critical issues have been discovered and fixed in this update.

For example, it was recently discovered that VScript had an extreme game-breaking issue: Backwards level transitions always crashed. This was because some classes were not properly registered in VScript and didn't save/restore correctly, causing a crash. This is fixed now, but before it was fixed, I was worried that it wouldn't be fixed in time for the next update (I thought we would have to overhaul the way VScript is saved!) and I decided to add the ability to disable VScript on a map-by-map basis just in case. As of this article, there are no remaining known issues with VScript which would warrant disabling it entirely, but it's a good nuclear option for if another huge regression issue like that pops up.


This update includes important changes gameinfo.txt. These changes are important because mods directly using Mapbase sourcemod folders will eventually have to change their gameinfo.txt to match the new setup.

This is because it was recently discovered that Lost Coast content exists in the sourcetest folder of Source SDK Base 2013 SP, just like HL2/EP1/EP2 content. Some mods (e.g. Map Labs) utilize this and require it to be mounted in gameinfo.txt. It would be possible to just add Lost Coast to the gameinfo for these particular mods, but for Mapbase, this content would just be using the regular shaders by default and other Mapbase users would also be missing out on these additional stock assets.

In addition to mounting Lost Coast content from Source 2013, this update will add a new VPK in mapbase_hl2 containing Lost Coast materials running on the new shaders. Since Mapbase mods would be drawing from this VPK whether they actually have Lost Coast assets mounted or not, these gameinfo changes should be reflected across all mods directly relying on Mapbase sourcemods. No major ill-effects are expected in mods which don't do this except for maybe having a bunch of new Lost Coast VMTs (from the custom shader VPK) with missing textures (which would be in the actual Lost Coast VPK), but since we're changing the gameinfo file system now, we've decided to include another gameinfo change which may be important for the MP port.

Before this update, mapbase_shared was mounted using a catch-all asterisk to mount all content within it. However, this could cause issues if a MP branch of Mapbase--e.g. mapbase_hl2dm--had to use non-HL2-specific MP files. These could be mounted in a separate mapbase_shared_mp folder, but that would just make Mapbase seem much more complicated, especially if we do more things similar to this in the future. As a result, mapbase_shared content is now mounted manually and should be reflected in mod folders. This change may end up being more important than the Lost Coast content depending on when the MP branch is released and where it puts its content (and what that content is).


This update contains other important changes as well. Recently, a certain Mapbase user (Kris) told me the story about Tony Sergi's Source 2007 changes. I wasn't aware of these changes before and I was shocked to hear about them. Most of them are MP-related fixes, but some of them are general-purpose and have been included in this update.

Tony Sergi was the official maintainer of the SDK branch of Source 2007. I've been told he wasn't a Valve employee as much that he was some sort of contractor, but some of his own code and fixes were included in the main Source 2007 SDK you can get on Steam. However, when Valve created Source 2013, they used a different branch which didn't contain Tony Sergi's fixes.

Most of Tony Sergi's changes are MP-related and fix a bunch of prediction issues and conflicts with code designed for SP, but some of the changes are valid with SP alone and are technically already a part of Source 2007 SP mods anyway. Some of his fixes were coincidentally already addressed in Mapbase as well! Tony Sergi's changes in this update include fixes for various oversights, flag conflicts, muzzle flash code, etc.


There are many other changes in this update which I could also dedicate multiple paragraphs to, but I'm kind of on a timer and I don't want this article to be too long.

It still looks like v5.0 could be the MP branch, but we'll probably see a v4.4 before we get to that point. It's funny how we're breaking so many Mapbase update norms with the v4 set of updates instead of going forward with the next full version for the MP branch of Mapbase.

As a final feature mention for this article, some new player hooks have been added to VScript which will allow mappers to control player commands and add new console command handling. I created this short video about it:


If you find any issues with this update, please report them here, on the Discord server, or on the repo's "Issues" page.

Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.