Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all \x3Cpre>\x3Ccode> blocks (function() { function addCopyButtons() { document.querySelectorAll('pre code').forEach(function(codeBlock) { if (codeBlock.parentElement.hasAttribute('data-copy-added')) return; codeBlock.parentElement.setAttribute('data-copy-added', 'true'); var btn = document.createElement('button'); btn.textContent = 'Copy'; btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;'; btn.onmouseover = function() { this.style.opacity = '1'; }; btn.onmouseout = function() { this.style.opacity = '0.7'; }; btn.onclick = function() { navigator.clipboard.writeText(codeBlock.textContent).then(function() { btn.textContent = 'Copied!'; setTimeout(function() { btn.textContent = 'Copy'; }, 1500); }); }; codeBlock.parentElement.style.position = 'relative'; codeBlock.parentElement.appendChild(btn); }); } addCopyButtons(); // Re-run on dynamic content var observer = new MutationObserver(addCopyButtons); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); } })(); (function(){ try { var __m = "github.com"; var __re = new RegExp('^' + "github\\.com" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Map Compilers · mapbase-source/source-sdk-2013 Wiki · GitHub
Skip to content

Map Compilers

Blixibon edited this page Aug 6, 2020 · 3 revisions

Mapbase has its own custom map compilers. In order to compile maps in Mapbase, users are required to use either Mapbase's custom map compilers or Slartibarty's Slammin' Source mapping tools. This is because both sets of tools have the required adjustments to recognize custom shaders, but the original Source 2013 compilers do not.

The recommended setup for compiling maps in Mapbase is to use Mapbase's custom vbsp.exe while using Slammin' Source for all of the other tools. This is because Mapbase's VRAD, VVIS, etc. are barely different from Source 2013's regular compilers while Slammin' Source's tools are much more powerful and advanced. Mapbase's VBSP is an exception; it supports almost everything Slammin' Source's VBSP supports and supports features unique to Mapbase, like parallax corrected cubemaps or the buildcubemaps fix.

Download Mapbase Compile Tools:

Mapbase Compile Tools


Here's an actual list of changes Mapbase makes to the compile tools:

All

VBSP

  • Removed warnings for occluders straddling multiple brushes, as this is believed to have only been a problem in 2004-2006 versions of Source
  • Fixed func_detail smoothing groups (from ValveSoftware/source-sdk-2013 #391)
  • Applied various manifest fixes (from DeathByNukes/source-sdk-2013)
  • Allowed all models with $staticprop to be used as prop_static (replicated from Slammin' Source)
  • Parallax corrected cubemap support (from the VDC article)
  • -leaktest enabled by default and replaced with a -noleaktest command (replicated from Slammin' Source)
  • %compileNoShadows command (replicated from Slammin' Source)
  • Areaportal leaks terminate VBSP, just like regular leak testing (disabled when -noleaktest is used)
  • Default cubemaps not generated by default due to an in-shader alternative used by Mapbase; new -defaultcubemap command to reinstate behavior (was previously just -nodefaultcubemap, which was replicated from Slammin' Source)
  • Raised limits based on research from ficool2:
    • Raised maximum VBSP entities from 8192 to 65536 (Not in-game entities! This is for static props and other internal entities)
    • Raised maximum VBSP worldlights from 8192 to 65536
    • Raised maximum VBSP overlays from 512 to 8192

VVIS

  • N/A

VRAD

Using other compilers

The main reason Mapbase maps cannot be compiled using the original compile tools is because the original VBSP does not recognize custom shaders and therefore cannot mark faces with them for lightmap compilation. This is fixed by changing the way the material system is initialized in VBSP so it loads mod shaders. Mapbase and Slammin' Source compilers already use this fix, so they're usually said to be the required tools, but technically all you need is a version of VBSP which uses this patch.

For more information, please see this issue reply on the original Source 2013 repository.

Clone this wiki locally