In the article for the Mapbase v3.1 update, I mentioned that it may have been safe to expect v4.0 to involve the MP port unless any other big features needs be released before the MP port is finished. In the time that has passed since that article was published, one big feature was suddenly added to Mapbase. That feature is VScript support.
VScript is a scripting layer Valve introduced in Left 4 Dead 2. Valve has continued to use it for most of their games, including Portal 2, Counter-Strike: Global Offensive, etc.
It can be compared to Gmod’s Lua scripting (and custom scripting in other mods, like Smod) in many ways, but in most of the games which use it, VScript acts as an extension of map logic, providing a way of doing complicated, programmable things in a map without having to use tons of logic entities. VScript typically uses the Squirrel programming language.
Around the beginning of May, someone named reductor opened a PR on Mapbase’s GitHub repo for VScript support in Source 2013. This was done through a custom implementation of Squirrel integration which reductor created himself, as well as tons of code ported from the Alien Swarm SDK. It does not use any leaked code whatsoever.
This hasn’t really been done before because Valve’s implementation of Squirrel was not included in the Alien Swarm SDK, so it had to be remade from scratch. There are still a few incompatibilities and differences with Valve’s original VScript, but reductor’s implementation has everything it needs to make VScript functional in Source 2013.
After this PR was opened, I decided to try expanding the VScript implementation to have more applications in a HL2/Source 2013 setting, similar to how VScript has its own specific purposes in Valve’s games. There’s an article on Mapbase’s wiki dedicated to documenting these expansions and explaining how VScript works in Mapbase:
After the PR was merged, we had a closed testing period involving a “VScript Focus Group“, which not only served as a testing team, but also as a way of researching what HL2 mappers would want out of it and training mappers who would benefit from it the most. We didn’t get many results out of this because most mappers thought it was too complicated and didn’t join the program, and the ones that did join it didn’t have much time.
Regardless, we were able to use this group to address most of the remaining issues with this implementation. Now, we’re ready for open testing, which we’re hoping will have more testers and yield more feedback.
Remember: VScript is not as complicated as it seems! I made a basic tutorial for creating a simple script that shows how simple VScript could be:
This implementation of VScript is still highly experimental, so it’s separate from the release build we normally distribute. Eventually, when there’s no remaining issues we need to address and we’re satisfied enough with the state it’s in, the open testing period will end and VScript will be merged with the main build, allowing all maps and mods running on Mapbase to use VScript.
If you wish to test or experiment with VScript in Mapbase, please download the VScript beta build here:
Please report all issues to the Mapbase’s Discord server, the comments of this article, or the comments of the build file. Any kind of feedback is welcome.