nyuuzyou/wikis huggingface dataset:
Half-Life: Alyx Workshop Tools/Level Design/Map Extensions

A Map Extension lets you add map content to an existing compiled map. For example, add new geometry to a map that ships with the game.
== Limitations ==
Map Extensions have the following limitations:
* It cannot modify anything in the parent map (Particularly: they cannot remove entities or affect baked lighting.)
* Static objects in the extension map won't cast shadows from static lights in the parent map.
* It can reference entities in the parent map via I/O, but must use the "final" fixed-up name rather than the Hammer name of the entity (use ent_text to find it).
== Construction ==
First, create a new map in Hammer with File → New.
To have a good frame of reference, add a prefab that references an existing shipping map (find them in content/hlvr/maps/release/*)
----
IMPORTANT STEP: Select the prefab, expand the Transform group and check Editor Only and Transform Locked.
:;Editor Only
:: Allows you to see the parent map in Hammer without compiling it into your map. If compiling your map takes a long time, you may have forgotten this!
:::
:;Transform Locked
::Improves editor performance and prevents you from accidentally offsetting your guide (and the rest of your map) from the parent map.
::
----
Save and compile your map.
Restart the Workshop Tools and goto "edit addon info..." on the addon selection screen.
:
Link your parent/extension maps together.
:(Ignore the Playable Maps section. It is for new, full featured maps only.)
:
Re-run the game, and load the parent map using the 'addon_tools_map' command in the console:
addon_tools_map a2_pistol
You should see your extension map loaded and overlaid on top of the original map:
Half-Life: Alyx Workshop Tools/Level Design/Navigation Mesh

== Introduction ==
This tutorial will teach you how to create a Navigation Mesh so NPCs can walk around by their own.
== Setup ==
Create a test room with a couple walking NPCs of your choice. For this tutorial, I've added two npc_combine_s (hlvr).
Click on the Navigation button . The Nav Mesh Editing panel should appear on the left side of the screen. Click Create Walkable Seed and drag a block into the first walking area you want to create. It should create a func_nav_markup mesh entity.
To generate the navmesh, the game will flood fill outwards from walkable seeds. You do not need to cover all walkable space in a walkable seed. There may be cases where the flood fill does not reach areas that you wish to be marked walkable. In this case, create more walkable seeds for those areas. Use the preview button to generate a navmesh and preview the navmesh to confirm that all areas that NPCs can go are marked as walkable.
== Finishing up ==
Compile your map, the navmesh will be generated and added to your map ingame automatically. You can visualise the navmesh in-game use the command nav_edit 1. In Hammer it is possible to hide nav markup entities in the auto visgroups in if they get in the way when working on other parts of your map.
The basic_setup template contains an example of a walkable seed.
Half-Life: Alyx Workshop Tools/Level Design/Rapidfire

Category:Half-Life:_Alyx_Workshop_Tools
Category:Half-Life:_Alyx_Workshop_Tools/Level Design
Category:Half-Life:_Alyx_Workshop_Tools/Weapons
== Introduction ==
This tutorial will teach you how give the player the SMG, or Rapidfire.
== Making it pickable ==
Create a test room. Insert a item_hlvr_weapon_rapidfire entity. You can set the initial ammo via the property Spawn Ammo.
You can spawn ammo by inserting an item_hlvr_clip_rapidfire point entity.
== Giving it on spawn ==
Insert an info_hlvr_equip_player entity. Set the following properties:
Key 	Value
Equip on Map Start	✓
Rapidfire 	✓
You can set the initial loaded ammo with the following property:
Key 	Value
Loaded Rapidfire Ammo	30
You can set the backpack ammo amount with the following property:
Key 	Value
Rapidfire Ammo	30
Half-Life: Alyx Workshop Tools/Level Design/Runner Headcrab

== Introduction ==
This tutorial will teach you how to add a runner headcrab or "Lightning Dog" to the map, and allow the runner headcrab to revive zombies.
== Setup ==
Create a test room. Insert a npc_headcrab_runner
Create a Navigation Mesh. The Runner Headcrab should now be able to walk around.
== Reviving Zombies ==
In order to allow it to revive entities you have to enable NPC Properties > Can Be Revived on each npc_zombie (hlvr) that will be able to be revived. You can also use Reviver Group in order to specify which runner headcrab can revive which zombies.
== Finishing up ==
Compile and run your map, and you should have a working Runner Headcrab along with zombies that can be revived.
Half-Life: Alyx Workshop Tools/Level Design/Shotgun

Category:Half-Life:_Alyx_Workshop_Tools
Category:Half-Life:_Alyx_Workshop_Tools/Level Design
Category:Half-Life:_Alyx_Workshop_Tools/Weapons
== Introduction ==
This tutorial will teach you how give the player the Shotgun.
== Making it pickable ==
Create a test room. Insert an item_hlvr_weapon_shotgun entity. You can set the initial ammo via the property Spawn Ammo.
You can spawn ammo by inserting an item_hlvr_clip_shotgun_single, item_hlvr_clip_shotgun_shells_pair or item_hlvr_clip_shotgun_multiple point entity.
== Giving it on spawn ==
Insert an info_hlvr_equip_player entity. Set the following properties:
Key 	Value
Equip on Map Start	✓
Shotgun 	✓
You can set the initial loaded ammo with the following property:
Key 	Value
Loaded Shotgun Ammo	7
You can set the backpack ammo amount with the following property:
Key 	Value
Shotgun Ammo	7
Half-Life: Alyx Workshop Tools/Level Design/Sound

== Custom Sounds ==
Custom sounds can be added to your maps by adding .wav or .mp3 files to `content\hlvr_addons\<addon name>\sounds\`. Create this directory if it doesn't exist.
When a sound file is added to that directory, the Workshop Tools will automatically convert them into .vsnd files. For example, if you add a file named "hello.wav" to your sounds folder, it will be converted to "hello.vsnd". You can even preview this file from within the Asset Browser.
== Sound Events ==
If you want sounds to play from scripts or triggers, you can use sound events.
As an example, add a `point_soundevent` entity to your map. In the Object Properties panel, look for the Sound Event Name property. Use the picker to browse through the list of available sound events.
To use your own custom sound events, start by creating a directory in your addon named `soundevents`. Within it, create a file named `soundevents_addon.vsndevts`.
File:Vsndevts_example.PNG
The parameters are mostly the same as described in the SteamVR tutorial, however, the types allowed are different.
For a 3D sound source, you would write `type = "src1_3d"`.
Make sure the `vsnd_files` parameter references the .vsnd file, not the original WAV/MP3. 
Once you save this file, go back to the Asset Browser to recompile it. 
You'll know if you've set up your resource file correctly if you can find it in the Sound Event Picker.
File:Soundeventpicker.PNG
Select your custom sound event.
== See also ==
* Soundevents Tutorial for SteamVR
Half-Life: Alyx Workshop Tools/Level Design/Temporary Ragdolls

== Introduction ==
Temporary ragdolls are a feature of Half-Life Alyx. NPCs are able to temporarily enter a ragdolled state and then recover from it either automatically or through an I/O input.
When they come out of the ragdolled state, the game will try and automatically blend them into an animation that will make it look natural for them to get up from their ragdolled position.
This feature is best used on zombies and headcrabs. Combine soldiers should not be made to use a temporary ragdoll as they lack animations for getting up and will teleport to the map origin upon doing so.
== Ragdoll and Remain Ragdoll ==
The "ragdoll and remain ragdoll" option will cause the NPC to spawn in a ragdolled state and remain that way until they receive either the StopTemporaryRagdoll or the StopTemporaryRagdollAndSetEnemy input.
This mode is very useful for spawning zombies in a "sleeping" state and waking them up later by spawning them in this mode and then sending an appropriate input.
StopTemporaryRagdoll will cause the NPC to simply get up from their current position.
StopTemporaryRagdollAndSetEnemy will cause the NPC to attempt to face a target when getting up, determined by the input parameter (this would usually be the !activator).
You can cause an already living NPC to go into this state using the BecomeTemporaryRagdoll input.
== Ragdoll and Get Up When Settled ==
The "ragdoll and get up when settles" option will cause the NPC to spawn in a ragdolled state and get up as soon as their physics settles.
This option is not very useful for NPCs that spawn on map load but can be used to great effect with NPCs spawned through other means such as npc_maker.
For example, setting a zombie to this mode, placing them above a hole and then spawning them in when the player approaches will create the effect of the zombie naturally falling through the hole and then getting up after they land.
== Posing ==
You can use Hammer's physics simulation tool to help with posing NPCs who use this feature, particularly those in Ragdoll and Remain Ragdoll mode.
When in physics simulation mode you can press Start Simulation or press Space to start simulating the NPC's ragdoll from their current position in the editor.
You can also drag the NPC's model in the 3D viewport to influence and somewhat pose the ragdoll into a desired position.
Using the Place Pin button you can pin part of the NPC which will keep them in place in a specific area. This can be very useful when attempting to pose ragdolls.
If you wish to reset the NPC's position back to the default, use the Reset To Bind Pose button.
Half-Life: Alyx Workshop Tools/Level Design/Trigger Detect Bullet Fire

== Introduction ==
This tutorial will teach you how detect if a bullet passes a volume.
== Setup ==
Create a test room. Insert a trigger_detect_bullet_fire mesh entity. If you only want to detect player fire, check the property Player Fire Only.
In the outputs, add the following output:
My Output 	Target Entity 	Target Input	Parameter	Delay
OnDetectedBulletFire	<targetEntity>	<input> 	 	0.00
== Finishing up ==
Compile and run your map, and you should have a trigger that, whenever a bullet passes it, it will output OnDetectedBulletFire.
Half-Life: Alyx Workshop Tools/Level Design/Trigger Detect Explosion

== Introduction ==
This tutorial will teach you how detect an explosion inside its volume.
== Setup ==
Create a test room. Insert a trigger_detect_explosion mesh entity.
In the outputs, add the following output:
My Output 	Target Entity 	Target Input	Parameter	Delay
OnDetectedExplosion	<targetEntity>	<input> 	 	0.00
== Finishing up ==
Compile and run your map, and you should have a trigger that, whenever an explosion happens inside it, it will output OnDetectedExplosion.
Half-Life: Alyx Workshop Tools/Level Design/Trigger Player Out Of Ammo

== Introduction ==
This tutorial will teach you how detect if the player is out of ammo or out of a specific ammo.
== Setup ==
Create a test room. Insert a trigger_player_out_of_ammo mesh entity. In its properties, select the Ammo Type: All, Energy Gun (Pistol), Shotgun or Rapidfire (SMG).
In the outputs, add the following output:
My Output 	Target Entity 	Target Input	Parameter	Delay
OnPlayerOutOfAmmo	<targetEntity>	<input> 	 	0.00
== Finishing up ==
Compile and run your map, and you should have a trigger that, whenever the player enters it or is inside it without the selected ammo, it will output OnPlayerOutOfAmmo.
Beware, if you remove the ammo from your backpack and there is nothing left there and in your trigger, it will fire the output.
Half-Life: Alyx Workshop Tools/Level Design/Vort Energy Gloves

Category:Half-Life:_Alyx_Workshop_Tools
Category:Half-Life:_Alyx_Workshop_Tools/Level Design
Category:Half-Life:_Alyx_Workshop_Tools/Weapons
== Introduction ==
This tutorial will teach you how change the player hands to use Vortigaunt Energy Gloves, seen at the climax of Half-Life: Alyx. Make sure you have the latest SDK Tools.
== Setup ==
Create a test room. Insert a info_hlvr_equip_player entity and check at least the following keys:
Key 	Value
Equip on Map Start	✓
Grabbity Gloves 	✓
Insert a logic_playerproxy entity and, for this tutorial, set it's name to playerproxy.
Insert a logic_auto entity. In the outputs, add the following output:
My Output	Target Entity	Target Input 	Parameter	Delay
OnNewGame	playerproxy 	HapticPulseHands	 	0.00
== Charging the gloves ==
=== Using an input ===
You can charge the gloves with a logic_relay or similar entity with the following output:
My Output	Target Entity	Target Input 	Parameter	Delay
<output> 	!player 	GiveVortEnergy	 	0.00
=== Using energy rings ===
Insert a point_vort_energy entity and rotate it accordingly. Make sure Start Enabled is checked:
Key 	Value
Equip on Map Start	✓
Grabbity Gloves 	✓
If you want it to charge the glove only once, add the following output:
My Output 	Target Entity	Target Input	Parameter	Delay
OnEnergyPulled	!self 	Disable 	 	0.00
You can recharge the energy ring by using the following input:
My Output	Target Entity	Target Input	Parameter	Delay
<output> 	<entity_name>	Enable 	 	0.00
== Finishing up ==
Compile and run your map, and you should have the Vortigaunt Energy Gloves and working Energy Rings.
You can download the example map here [].
Half-Life: Alyx Workshop Tools/Level Design/ Point Template

== point_template ==
=== Introduction ===
The point_template is an entity that can be used to spawn other entities when triggered. In Half-Life: Alyx, point_templates can be properly used to prepare NPCs for when a player passes a trigger, 
to spawn certain items such as ammo or puzzle items when the player interacts with something, among other things. Each point_template can have up to 64 other entities tied to it. 
 *It is important to note that each entity tied to the point_template must be named, as well as the point_template itself.
=== Setup ===
This section will teach you how spawn, & set-up a proper point_template. In this example, 3 combine soldiers will spawn when the player passes through a trigger.
*Place down an Entity using Shift + E. Change the Entity class to a point_template
*Give the point_template a suitable name. This example will use the name "template_3combine"
[Insert Image Here]
*Spawn in the combine soldiers with the Entity class npc_combines_s. Give each a unique name. (Note: each soldier will spawn where you place them in the editor, NOT where the point_template is!)
*In the point_template properties (double click on it), designate each combine soldier as one of the templates by putting in their names in each field (Ex: Template 1 - "otis")
[Insert Image Here]
*Create a brush where you want your trigger to be, and once created press Crtl + T to turn the brush into a trigger entity.
Designate the class as a trigger_once. This is to prevent spawning of the combine multiple times (unless you want this to happen!). Name the trigger.
Category:Half-Life:_Alyx_Workshop_Tools/Level_Design
Category:Half-Life:_Alyx_Workshop_Tools
Half-Life: Alyx Workshop Tools/Lua Scripting

Half-Life: Alyx, like the previous Source 2 titles and features the VScript scripting system using the Lua programming language. It provides the ability to use Lua scripts natively when building custom levels using the Hammer editor. 
Scripts can be used for a variety of things including creating new game modes, weapons and other types of complicated logic. 
== Introduction to Source 2 VScript ==
* Getting started with Lua for Half Life: Alyx.
* Hello, Gordon: Introduction to Entity Script Integration With Hammer for Half-Life: Alyx.
* [Video Introduction to Setting Up Lua Scripts in Half-Life: Alyx].
* [Video Tutorial for Teleporting Entities using Lua Scripts in Half-Life: Alyx].
* [Video Tutorial for Creating Think Functions using Lua Scripts in Half-Life: Alyx].
* [Video Tutorial for Spawning Entities using Lua Scripts in Half-Life: Alyx].
* [Video Tutorial for Setting Barnacles to Drop Random Items using Lua Scripts in Half-Life: Alyx].
== Resources ==
* Scripting API
* Making API calls from Lua Scripts.
* General VScript documentation
* Dota 2 VScript documentation
* SteamVR Home VScript documentation
Category:Modding
Category:Scripting
Half-Life: Alyx Workshop Tools/Lua Scripting/Getting Started

== What is VScript? ==
Scripting in Half-Life: Alyx is done using Lua, an easily embeddable scripting language developed by PUC Rio. Source 2 and some branches of Source 1 implement an abstraction layer known as "vscript", which allows Valve to enable scripting for games in a variety of languages including: Lua, Squirrel, GameMonkey and Python. The vscript API for Half-Life: Alyx is much more limited than that of SteamVR Home, but in the future Valve may add new functions and API features. For now, it can be rather cumbersome to add new weapons or tools.
== Installation ==
1. Find your hlvr addon folder 
* The path should looks something like: C:\Program Files (x86)\Steam\steamapps\common\Half-Life Alyx\game\hlvr_addons\<your_custom_addon_name>, depending on where you installed it.
2. Create folders
* Create a folder called: scripts. Inside that folder create another folder called: vscripts. 
* you should now be in a directory that looks similar to this: C:\Program Files (x86)\Steam\steamapps\common\Half-Life Alyx\game\hlvr_addons\<your_custom_addon_name>\scripts\vscripts
== Next Steps ==
At this point, you can begin writing scripts. 
In order to load them, you'll need to move the scripts into the vscripts directory. Now they can be loaded using the script_reload_code and cl_script_reload_code console commands, which take a path to your script relative to the vscripts directory.
== Starter Examples ==
These basic examples will show you how to connect the game world to the scripts that you write:
1. Hello Gordon: The classic example.
== See More Examples Here ==
 Lua Scripting 
Category:Source 2
Category:Scripting
Half-Life: Alyx Workshop Tools/Modding

Modding can be basically done in two ways. The official method is to use the Steam Workshop, by creating addons. The legacy method, reenabled with source2mod, is by creating a mod folder, with the same structure of hlvr, and modifying its contents. Check out the documentation of both methods below.
== General ==
* Installation of source2mod
* Installing a Mod
* Creating a Mod
* Saving Maps Ingame
* Setting a Steam Library Icon
== Main Menu ==
* Chapter Creation
== Publishing ==
* Releasing a mod
== Workshop ==
* Creating addons for Half-Life: Alyx
__NOTOC__
Half-Life: Alyx Workshop Tools/Modding/Source2mod

Source2mod is a tool that enables mods to run the old-fashioned way without being published to the workshop. Instead of being loaded as an addon to Half-Life: Alyx, mods can be run with source2mod.exe using the -game parameter. Mods can be stored both inside the Half-Life: Alyx directory, and inside the source2mods folder in steamapps.
== Installing ==
Download the latest version of source2mod here. Extract the contents of the compacted file to:
* Steam\steamapps\common\Half-Life Alyx\
== Usage ==
Mods can be run either by just executing source2mod.exe and manually selecting the mod, or by executing source2mod.exe with the -game parameter. For example:
* source2mod.exe -game mysource2mod
== Finishing up ==
Now you are able to play Half-Life Alyx standalone mods by running source2mod.exe
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Chapter creation

== Creating the configuration ==
To create chapters that will show up in the New Game menu, create a chapter*.cfg file inside source2mods\yourmodfolder\cfg\, where * is the integer number of your chapter:
* chapter*.cfg
The file content should be:
* map mapname
== Creating the chapter image ==
Insert your chapter image, in png format, inside source2mods\yourmodfolder\materials\vgui\chapters, with the file name equal to your chapter cfg file name, except for the extension:
* chapter*.png
== Creating the background image ==
Insert your chapter background image, in png format, inside source2mods\yourmodfolder\materials\console, with the file name equal to your chapter cfg file name, except for the _widescreen at the end and the extension:
* chapter*_widescreen.png
== Finishing up ==
Run your mod and your chapters will now appear on the New Game menu.
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Creating a mod

== Setting up the directory ==
If you haven't done this already, create the folder source2mods inside your steamapps directory:
* Steam\steamapps\source2mods
Inside the source2mods, create a folder, without special characters, representing your mod content. For example:
* Steam\steamapps\source2mods\mysource2mod
== Copying the required files ==
In order to get the barebones of your mod working, copy the cfg and the webui folder from Half-Life Alyx\game\hlvr, and the files gameinfo.gi and gameinfo_branchspecific.gi to your mod folder.
== Editing the gameinfo.gi ==
=== Title ===
Open the gameinfo.gi file. Change the title keyvalue to the name of your mod.
=== Screen mode ===
Below the first keyvalues, add a screenmode key with one of the following values:
* vr_only: It will only run in VR.
* flat_only: It will only run in flat mode.
* both: It can be run both in VR and flat modes.
=== File system ===
In the filesystem group, insert in the first line a new Game key and set its value exactly like your mod folder name. Modify the Mod and Write values to also match your mod folder name.
== Finishing up ==
Your mod now can run with source2mod. Start source2mod.exe and select your mod, or run source2mod.exe with the -game parameter and the name of your mod folder.
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Installing a mod

Run source2mod at least once, to create the required directories. Extract the mod folder to Steam\SteamApps\source2mods. Run source2mod.exe at least once and select the mod you just installed. Restart Steam and the mod should show up in the Steam listing. Keep in mind you still can run the mod using the source2mod.exe file, or by creating a shortcut to source2mod.exe with the -game parameter.
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Releasing a mod

== Copying the required files ==
Copy the entire directory of your mod from the source2mods directory. 
== Copying the required files ==
Publish your mod in the your desired website.
=== Suggestions ===
* ModDB
* GameBanana
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Saving maps ingame

== Usage ==
To allow games to be saved by the user through the UI, insert this prefab into every map of your mod.
== Trivia ==
Source 2 no longer supports the -hijack command, so the UI creates a hijack.cfg inside the cfg directory and this prefab keeps trying to execute that hijack.cfg. Once it's executed, the UI detects it and erases afterward.
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding
Half-Life: Alyx Workshop Tools/Modding/Source2mod/Setting a Steam Library icon

== Copying the required files ==
Copy your .ico file into resource\.
== Editing the gameinfo.gi ==
Open the gameinfo.gi file. Change the icon keyvalue to the path of your icon relative to the gameinfo directory, without the file extension.
== Finishing up ==
Run your mod with source2mod, and then restart Steam. Your mod should now successfully show up in the Steam Library with the custom icon.
Category:Half-Life:_Alyx_Workshop_Tools
Category:Modding