nyuuzyou/wikis huggingface dataset:
Sound and Music

Sound in Source can be processed in many ways. It can emit from a location in the world, have its pitch or volume altered, trigger behaviours from NPCs, and be lip synced.
== Entities ==
*ambient_generic — this is the basic entity to play a specific sound or soundscript, including music.
*ambient_music — audio in the music layer, overriding music queued by the AI Director. 
*env_soundscape — for playing background noises and ambience. (see Soundscapes)
*env_soundscape_proxy Point entity that acts like a soundscape but gets all of its sound parameters from another env_soundscape entity.
*env_soundscape_triggerable Point entity just like env_soundscape except that it works in conjunction with the trigger_soundscape entity to determine when a player hears it.
*trigger_soundscape Brush-based soundscape trigger. Does not need outputs, as it automatically triggers the soundscape specified by its Soundscape property. 
*env_microphone — detects sounds.
*env_speaker — plays sounds based on a set of Response System rules.
*scripted_sentence — used to make an NPC speak an idea.
*sound_mix_layer — used to set a mix layer to a specific value.
*logic_choreographed_scene — used for conversations and other sequences. See :Category:Choreography.
== Articles ==
*:Category:Sound System — how sound works in Source.
*Soundscripts — advanced sound usage in Source.
*Sound In Code
*Hammer Sound Browser — documents the Hammer user interface for browsing sounds.
*Soundscapes — background sounds and ambience.
*Sound sensitive trigger — how to trigger an event based on the loudness.
*Startup Music — one way to add music to a mod's title screen (alternatively, put it in a Menu Background Map).
== AI sounds ==
* AI sounds are not audible to the player; they are purely an AI construction. They can be placed in-map with the ai_sound entity.
== Music ==
* Creating your own music — composing and adding music to a mod.
* Soundtrack lists — for using existing music already included in the base game
== Materials ==
To specify the set of sounds for a custom material (the noises produced in response to hits, scrapes, etc), see Material surface properties.
== Notes ==
* To play music, use Hammer Sound Browser to search for keyword music.
* Many entities can have sounds assigned to them. For example, prop_door_rotating can be assigned sounds for opening, closing, swinging, being locked, and being unlocked. See the individual entities for details.
* To make audio files affected by the music slider, add the character before the file path when declaring (ex )
* Although Source supports surround sound, it cannot read audio files containing more than two channels. Surround effects should be either downmixed to stereo, implemented using soundscape targets or ambient_generic entities, or worked around using carefully placed scene actors.
== See also ==
* Level Design
* Left 4 Dead Soundscripts
== External links ==
* Custom sounds tutorial
Category:Sound System
Category:Hubs
Sound mix layer

It is an entity used to set a mix layer to a specific value.
__NOTOC__
== Keyvalues ==
== Inputs ==
==Mix layers==
More information regarding MixLayers can be found in pak01_dir.vpk: /scripts/soundmixers.txt
These are listed in the dev console commmand snd_list_mixers
*mobBeatingLayer
*mobRulesLayer
*zombatMusicLayer
*zombatMusic2Layer
*zombatMusic3Layer
*witchRageLayer
*safeRoomLayer
*unaliveLayer
*PZVOWarnLayer
*chargerAttackLayer
*commentaryLayer
*undeathLayer
*adrenalineLayer
*fluMusicLayer
*rainLayer
*stormLayer
*voipLayer
Entries listed under the dev console command snd_list_mix_groups may work with a "Layer" post-fix, but need further testing.
==External links==
Audio Mixing (recorded music) - Wikipedia article regarding technical aspects of audio mixing
Category:Sound System
Sound operator stacks.txt

// <game>\scripts\sound_operator_stacks.txt
start_stacks
{
	"<stack_name>"
	{
		// sound operators...
	}
	"<stack_name>"
	{
		// sound operators...
	}
	// ...
}
update_stacks
{
	"<stack_name>"
	{
		// sound operators...
	}
	// ...
}
stop_stacks
{
	"<stack_name>"
	{
		// sound operators...
	}
	// ...
}
The text file contains predefined operator stacks that one can use in their soundscripts using import_stack <stack_name>. The syntax of the file can be seen on the right.
The file and thus the operator stacks that one can import in their soundscripts varies depending on the game that the soundscript is for.
== Games ==
Sound sensitive trigger

This tutorial will explain the process of making a trigger that will detect sound levels in the surrounding area and go off. 
==Getting started==
First of all, you need a small area for this example. The area for this tutorial is a small courtyard, as shown on the right.
==Setting up the necessary entities==
We need something for the microphone to detect from. An info_target is what we will be using. Call it microphone1. In your map, it can be called anything you like. 
Then, create an env_microphone. This is the entity that will control the sound output level. Give it the following properties:
Classname : env_microphone
* Name : speaker In your map again, this can be anything at all.
* Measure Target : microphone1 Make sure this is the name of your info_target, otherwise the env_microphone won't do its sound checks correctly.
* Sensitivity : 2 This should allow you to not be detected by crouching, but will detect you when you run or shoot.
* Maximum hearing range : 512 This is the distance in units the env_microphone will hear.
* Spawnflags :
:* Hears combat sounds
:* Hears world sounds
:* Hears player sounds
:* Hears bullet impacts
:* Hears explosions
Now we need a logic_compare to test the sound levels. We need the following parameters for it:
Classname : logic_compare
* Name : spvol Our entity's name again, this entity checks the volume of the microphone and can trigger things.
* Initial value : 0 This is what the logic_compare will compare all values to, and can trigger an output depending on various states.
* Compare value : 0.5 This is the trigger level to trigger things from the sound level of the env_microphone.
Now we need to set up some of the entity I/O on our env_microphone. Add a new output to our env_microphone with the following options:
Object outputs: speaker - env_microphone
	My Output 	Target Entity	Target Input 	Parameter	Delay	Only Once
	SoundLevel	spvol 	SetValueCompare	<none> 	0.00 	No
==Making the trigger==
The final step now is to set up the output of the logic_compare to trigger something. This can be open a door, turn on a light, break a rope, anything that can take an entity I/O input. In this case we will rig up an alarm.
Output:
* OnGreaterThan: This gets triggered when the sound level is past the trigger level.
* OnLessThan: This gets triggered when the sound level is under the trigger level.
Now you should have a working sound sensitive trigger!
==External links==
* Example map
Category:Level Design
Category:Tutorials
Soundscape debug

A console variable that (when active) renders soundscape entities as purple cubes, each of them with a color-coded status line linking it to the camera.
It has three settings (0-2).
;soundscape_debug 0 : Off. Do not display any soundscape entities. (This is default.)
;soundscape_debug 1 : Displays all soundscape entities in the PVS.
;soundscape_debug 2 : Only display currently triggered soundscapes.
The status line is color-coded accordingly:
* Green - Currently being triggered.
* Yellow - Still active but not currently triggered.
* Red - Inactive.
== See also ==
* Soundscapes
Category: Sound System
Soundscaper

is a MAXScript utility added into Version 1.57 of the Wall Worm Model Tools. It will create a skeleton Soundscape.txt file for a level that you've designed in 3ds Max.
In a nutshell, it finds all your env_soundscape and env_soundscape_triggerable entities and uses them to generate the skeleton file.
== External links ==
* Soundscaper Docs
Category:Third Party Tools
Category:Sound System
Category:Level Design
Soundtrack lists

== Official games ==
=== ===
* Half-Life 1 (music also available in most GoldSrc games)
* Opposing Force and Blue Shift
* Counter-Strike: Condition Zero Deleted Scenes
=== ===
* Half-Life: Source 
* Half-Life 2 (music also available in most Source 2004 - 2013 games)
* Half-Life 2 Episodes
* Portal 1
* Portal 2
* Left 4 Dead 2
=== ===
* Half-Life: Alyx
== Third-party games ==
=== ===
* Black Mesa (Source)
* Postal III
* Vampire: The Masquerade - Bloodlines 
Category:ListsCategory:Lists of lists
SourceIO

is an addon for Blender (3.4+), made by REDxEYE, to import Source models, textures, and maps directly to Blender.
There are GoldSrc and Source2 import options as well.
== Use ==
In Blender, go to File > Import > Source Engine Assets
Here, you can see every file type you can import.
== Links ==
* SourceIO GitHub
* SourceOps + SourceIO Discord
Category:Blender
Category:Modeling
Category: Third Party Tools
Category: Third Party Source 2 Tools
SourceMod (server plugin)

is a server modification that gives server admins a much more powerful platform for scripting and administration. While mostly used for multiplayer games, it can be installed on any Source engine game. Many well-known server plugins are powered by it, such as Roll The Dice (RTD).
It has a lower-level system that needs to run alongside it, called MetaMod: Source.
==See also==
*SourceMod's website
*MetaMod's website
*How to install SourceMod
*How to install MetaMod: Source
*AMX Mod X A similar plugin for GoldSource.
Category:Third Party Tools
Category:Source
Category:Plugins
SourceShaderEditor/Preview usage

The shader editor offers different ways to preview shaders that you created with the flow graph. However not all preview modes will be suitable for every shader. To access the preview window, click on Toggle preview on the root panel.
== Object/World shaders ==
All shaders that are determined to be used on models, brushes or anything else that will be projected into the scene can be rendered onto a dynamic mesh or a model. The latter will only work as expected if your shader supports at least skinning for studio models and you may not use certain input semantics in a shader that is rendered onto a model.
When you're using the shader preview on the panel, it will be updated automatically every time you change the shader after a successful compilation. You can however toggle automated compiling off if your system is too slow and continuous re-compiling causes framerate issues for you. To enable/disable automated compilation, open the editor configuration panel by selecting Editor config in the File menu and (un-)check Compile enabled.
Furthermore you can load textures to use as a background image in the preview window. Selecting a cubemap file will render it as such and replace the texture used by all Texture sampler nodes that are using the Envmap parameter with the appropriate file.
It's possible to apply new shaders at runtime onto geometry in the scene, to do so make sure that you finished a Full compile first. If you haven't already, select Full compile in the Shader menu. Now load a map and go into halfscreen mode by pressing , make sure that the object you want to apply the shader on is visible on the right side. Select Paint world in the Shader menu and click with the left mouse button somewhere on the scene to apply the shader.
Should you apply a shader onto geometry that does not support it, the mesh may disappear, you might see errors in the console or the games stability may suffer.
You can also quickly update all materials in the scene that have the current shader applied by selecting Inject shader into world in the Shader menu. This will affect materials that use the current shader through their vmt and everything you painted by hand as described above.
== Post processing shaders ==
Load a map if you haven't already and select post process in the dropdown menu of the preview window. The shader will now be rendered as a fullscreen quad if you followed these steps properly. As above, this preview shader will update automatically when you alter the shader in the editor, a Full compile is only necessary if you want to use the shader through vmts.
Category:SourceShaderEditor
SourceShaderEditor/Ref color codes

There are several situations in the shader editor where a certain color is used to visualize the state of an object on the canvas, this list provides an overview.
== Flowgraph tabs ==
* green - HLSL graph
* red - Post processing graph
== Nodes ==
* Outline color
** black - All inputs defined without issues.
** light green - The node has been solved and is currently declaring a new variable itself.
** light blue - Missing inputs.
** red - One or more inputs show errors or the parent node is erroneous.
* Base color
** green - Node has been solved successfully.
** blue - Node is a child of a container node and currently unsolved.
** grey - Node cannot be solved due to missing or wrong inputs.
== Bridges ==
* black - Bridge is valid.
* light blue - Input is undefined.
* red - The target node has an error.
== Canvas outline ==
* invisible - The current preview shader matches the shader setup on the canvas.
* grey - The preview shader is currently outdated.
* flashing red - There was a compiler error.
Category:SourceShaderEditor
SourceShaderEditor/Ref controls

Use to toggle visibility on the editor root panel, will toggle the size between half- and fullscreen and allows you to change whether the input is directed towards the editor or the game in halfscreen mode.
== Tabs ==
* Hold down or while creating a new graph through the 'New' dialog to open it in a new tab.
* Hold down or while loading a file to open it in a new tab.
* Hold down or while using the tab '+' to create a new post processing graph in the new tab.
* Double click with left mouse button on the tab bar to open a new tab.
== View controls ==
* Click and drag with the right mouse button to pan the view.
* scroll mouse wheel to change the zoom level.
* Use the button View reset (bottom left corner) to center the view on all nodes.
== Context menu ==
Use the right mouse button somewhere on the canvas to open the context menu.
* Spawn a new node by selecting the desired operation in the New node submenu.
* Copy, cut and delete will perform the respective operation on all currently selected nodes.
* Paste will duplicate any copied nodes at the cursor position.
* Disconnect will remove all bridges from the currently selected nodes.
* Properties will open a node-specific options dialog.
== Node interaction ==
* Select a node with the left mouse button.
* Click and drag with the left mouse button over the canvas to select nodes with a selection box.
* When selecting nodes, use to add nodes to the current selection or to toggle the selection status on the respective nodes.
* Press to delete all selected nodes.
* Click and drag with the left mouse button on a node to drag the current selection. When pointing on the boundaries of a container node, this operation will allow you to change the size of the container.
* Doubleclick a node with the left mouse button to open its properties dialog.
* Click and drag with the left mouse button on a jack to create a new bridge. Let go of the button while pointing on the destination jack to finalize the operation.
* Use the right mouse button on a jack to destroy all of its bridges.
== Preview controls ==
* Click and drag with the left mouse button to rotate the view.
* Click and drag with the middle mouse button to pan the view.
* scroll mouse wheel to zoom in and out.
* Click and drag with the right mouse button to rotate the light around the view axes. 
== Code editor ==
* + to select everything.
* + to copy code (copies a CR/LF compatible string to your clipboard).
* + to paste code.
* + to cut code. You can cut a whole line & following linefeed if you use this without having text selected.
* + or or or to select code with the keyboard.
* + or to move the cursor by the next word.
* or to jump to the beginning or end of the current line respectively.
* + or to jump to the beginning or end of the whole text respectively.
* + scroll mouse wheel or or or to change the text size.
* + to undo the prior change.
* + + to redo the prior change.
* + to open the autocomplete dialog.
* left mouse button on a selected entry in the autocomplete dialog or to apply the selected string to your code.
Category:SourceShaderEditor
SourceShaderEditor/Ref nodes PPE

This article will provide an overview of post processing nodes of the shader editor. Like it behaves for HLSL nodes, you can hover with your mouse pointer over them to show a tooltip with some more information ingame. The executable flow on a post processing graph cannot be forked. This constraint is realized through the 'master' connections of each node.
== Master nodes ==
Post processing input
:This is the initial node of a post processing graph. You must connect your first node to this one, it does not have any specific configuration options.
Post processing output
:The destination node of a post processing graph. Your graph needs to end here or it will be deemed invalid and won't get drawn.
== Rendering nodes ==
Draw material
:Draws a material onto the current Rendertarget. The reference input RTs are used for automated scaling and viewport correction, they do not represent input and output 'textures'. You can furthermore perform custom corrections in the nodes properties and also push the target reference RT onto the stack automatically, this means, that the material will be drawn onto that RT.
Clear buffers
:Clears the current color and or depth buffer. You must not try to clear depth if the active setup uses a 'no depth' RT, doing that will make this operation fail.
Render view
:Renders the current scene with a custom draw setup onto the current RT. The rendering operations of this node are defined in the client code, you can create arbitrary drawing operations there.
Update FB
:Copies the current content of the backbuffer onto the framebuffer copy texture, that's the texture that shaders reference by the 'Framebuffer' parameter for textures.
== Viewport nodes ==
The current entry of the viewport stack defines which Rendertarget and depth buffer to target for rendering. It also allows you to only select a sub rect of that RT.
Push viewport
:Pushes a specified RT onto the stack and sets its full dimensions for the viewport. This node must be followed by a Pop viewport node.
Pop viewport
:Pops the last RT and viewport from the stack, the earlier one will become active. This nodes must be preceded by a Push viewport.
Set Rendertarget
:Overrides the current RT with the specified one. The last RT will be lost.
== Resource nodes ==
Create Rendertarget
:Find an RT by name or select one from the combobox.
Create Material
:Create a material unique to the graph (allocated procedurally) or load a vmt. Both can be edited ingame, saving the node while having a vmt loaded will save to the vmt too!
Copy Rendertarget
:Blits the current RT to another one.
SourceShaderEditor/Ref vocabulary

== Bridge ==
Links two nodes together. You can draw multiple bridges from an output jack, while an input jack can only have a single bridge.
== Canvas ==
The workspace that contains all flow graphs for every hierachy.
== Datatypes ==
The following datatypes are supported:
* float
* float2
* float3
* float4
* float3x3
* float4x3
* float4x4
Many nodes will take a variable datatype as input, in these cases it's often possible to use two different datatypes, at least if one of them is a float.
For example adding a float and float3 together will add the value of the float to each component of the float3:
float( 1 ) + float3( 0, 0, 2 ) == float3( 1, 1, 3 )
== Hierachy ==
There are three different hierachies on the canvas: vertex shader, pixel shader and undefined. You may not connect nodes between the vertex and pixel shader hierachy and some nodes will be entirely exclusive to either. Having multiple hierachies in a container node will cause the node to show an error.
== Jack ==
They represent the inputs and outputs of every node. Some jacks will have locked datatypes while other ones can take variable input. You can toggle datatype rendering in the Editor config panel which can be found in the File submenu.
== Node ==
A node usually represents a certain arithmetical operation. They often have multiple input and output jacks, all input jacks must be defined properly before the node will work. Some nodes will internally call source specific functions.
Container nodes are capable of surrounding other nodes, those nodes will become their children.
== Token channels ==
This system allows you to enter a string with basic arithmetical operations, channel and constant literals to define values for up to 4 components of the target node and offers an HSV color picker. You can identify text entries which support this kind of input by their pale yellow background.
Recognized symbols (case insensitive):
Operators: 	- + / *
Channel literals: 	x, y, z, w or r, g, b, a
Brackets supported: 	( )
Math constants: 	pi, e
Normalize prefix: 	n
Overlapping function suffix:	$
If you want to solely use channel literals, no spaces are required to distinguish each channel. Using any kind of constant will require you to seperate channels with at least a space, you can still type in more spaces in between any operations, but make sure to not seperate a minus sign from a value or literal that is supposed to negate it.
The normalize operator can be used at the beginning of the string, it will normalize all channels at the very end of all operations. Channel literals will be ignored.
If you want to manipulate all channels with an equal operation, append your operations after a $ character at the end of the string. This will internally surround every channel with extra brackets and append the global operation at the end.
Examples
Input string 	Output 	Components
rgba 	rgba 	4
0 g b 1 	0 g b 1 	4
360 / pi -1 x $*2	229.183105 -2 x 	3
n1 -1 	0.707107 -0.707107	2
Category:SourceShaderEditor
Source 2/Docs/Filmmaker

==Getting Started==
* Getting Started
* Source 2 Filmmaker Theory
* Changes in Source 2 SFM
* Source 2 SFM FAQs
* Source 1 Filmmaker Wiki
==Lighting==
* Lighting Fixes and Crashes
* Working with Source 2 Volumetrics
==Advanced==
* Using In-Engine Constraints
* Porting Source 1 Content to Source 2
Category:Source Filmmaker
Category:Source 2
Source 2/Docs/Filmmaker/Getting Started

With the release of the Half-Life: Alyx Workshop Tools, Valve has released the latest version of the with them, allowing users to take advantage of the high quality assets and maps that has, as well as the growing list of assets available on the Steam Workshop.
== Getting Started with the Half-Life: Alyx SFM ==
To get started, you're first going to need to own Half-Life: Alyx on Steam. Then, you must follow the steps for installing the tools and creating your first addon. The addon you create will be where your content will live, so make it something memorable like or (this is equivalent to the mod name with the old tools, if you remember that.)
As an aside, all your addon content will exist in , so i.e. .
You can open the by opening your addon in the workshop tools, and clicking the Source Filmmaker icon.
== Next Pages ==
Getting Started with the Source 2 Filmmaker can be a bit tricky, especially if you're only used to Source 1 Filmmaker. Please read onto these next few pages to learn more about using the Source 2 Filmmaker to it's fullest potential:
* Source 2 Filmmaker Theory
* Source 1 Filmmaker Wiki
* Fixing Game Lighting
* Changes in Source 2 SFM
* Source 2 SFM FAQs
Category:Source 2
Category:Source Filmmaker