A (relatively) simple guide on how to set up and use the Hammer editor for E.Y.E
So you’ve decided to start your adventure with mapping for E.Y.E: Divine Cybermancy. I get it, we all make mistakes in our lives at some point. Before we start, allow me to inform you that mapping for E.Y.E has its quirks and as it’s basically a mod for Half-Life 2 gone too far- it may or may not have SOME glitches and bugs present. Our E.Y.E .fgd file also does not contain ALL custom entities used by StreumOn (especially for Battle Royale and Team Artifact, although Raeg recently uploaded an updated .fgd, see Part 7).
The Hammer Editor is a troublesome beast to tame; if you have had experience with it already you know the pain of it just refusing to work correctly, the constant unexplained crashes, and the file corrupting bugs. Well… here it is no better. It’s all that with added new, potentially even jankier entities on top of what was already there.
Also, we do not work on the newest, more polished version of Source that was released in 2013, here it’sback to 2007 lads.
I hope that all of that won’t discourage you from making maps for E.Y.E though; even if there are moments when it seems like all logical possibilities have been exhausted and there’s no way out, there’s always an unexpected Interlopers post or a Valve Developer Community page which can provide answers and (hopefully) solutions.
If you’re interested in pre-existing custom maps for E.Y.E, you can visit the E.Y.E Gamebanana – [gamebanana.com] page, or look for the MEGA link to all known maps on steam forums
Part 1: Downloads
Go to your Steam library, go to the upper left corner and select the “Games” button. When the dropdown menu will appear, select “Tools.” In the tools tab install:
- Source SDK
- Source SDK Base 2007
Part 2: Setup
Fire up Source SDK. When its launcher appears, go to the “Engine Version” box near the bottom and select “Source Engine 2007.”
Under the Utilities section, click on “Create a Mod.”
Out of the four options present, select “Start a Multiplayer mod from a template (advanced users).”
On this screen, you can choose the directory for the “mod.”
Leave all of the options alone on this screen, just click Next >
Go to your E.Y.E directory. The default path should look something like this:
From there, copy the models, materials and sounds folders to <Steam directory>/steamapps/sourcemods/<your mod name> folder that was made automatically for you.
Now it’s time to fire up the Hammer editor and configure it. Go to the SDK Launcher and double click Hammer in the Applications section.
When Hammer opens, go to Tools ► Options…
In Game Data files delete all .fgd files. Click Add and go to EYE\modding\eye.fgd
Change Game Executable Directory to $SteamUserDir\eye
Change Game Directory to $SteamDir\steamapps\SourceMods\<your mod name>
Go to the Build Programs tab. Change the Game executable to $SteamUserDir\EYE\EYE.exe
Change Place compiled maps in this directory(…) to $SteamUserDir\EYE\EYE\maps
Close the Hammer Editor and fire it up again, it should be configured and ready to go.
Go to File ► New. Hammer should have a grid in at least 3 windows and a 3D view like this:
If you can’t see the grid, it can mean few things: either you’ve made some error during the setup (most likely related to changing paths in Hammer’s settings) or you’ve encountered one of those magical, trademarked Hammer Moments. These can be a result of things like:
- Installing hammer on C:\
- Using Windows 10 (works on my machine)
- Using Windows 7 x64 (doesn’t work on VODKA’s machine, does work on Raeg’s)
- Hammer may just hate you.
Known fixes include switching the drive which Hammer is installed on, switching to Windows 7, or using SourceMultiTools (which can provide its own set of problems).
Part 3: Getting Started
Now that you have Hammer up and running, it’s time to learn the basics.
As writing something that has been written hundreds of times over would be quite counterproductive, here are some links to useful starter tutorials which can get you started with making basic maps.
Here is a great video by the one and only 3kliksphilip – [youtube.com] explaining the very basics of using Hammer.
The whole playlist – [youtube.com] with his Hammer videos is a great starting point for complete newbies in the Hammer world.
Another great source for the Hammer related videos/tutorials is TopHATTwaffle’s – [youtube.com] channel.
His tutorials are much longer and a little less digestible, but they contain far more information about the presented topics.
One of the most useful links I can provide is the Valve Developer Community/Wiki – [valvesoftware.com] which contains descriptions of pretty much every hammer entity available, alongside examples of their usage and known bugs and errors which will can occur while using them. EXTREMELY useful.
Note: Remember that E.Y.E doesn’t have the default textures of Half-Life 2, so when browsing textures in Hammer, type eyemat in the Keywords field.
Note 2: Also, some of the entities discussed in TopHATTwaffle’s videos are absent in E.Y.E’s .fgd file as it uses an older version of Source. This includes things like working mirrors or basic vehicle entities (excluding tank_track etc.).
Note 3: It is quite important to remember that when you press F9 and bring up the “Run Map” window, DESELECT $game_exe in the “Compile/run commands” section. Your map will run if it’s selected, but for some reason E.Y.E doesn’t like that, and the map may run incorrectly (alternatively, your save/character may be screwed when the map loads).
Part 4: E.Y.E-Specific Entities
E.Y.E possesses a list of unique entities made by StreumOn. Most of them can be found in FGD_guidelines.pdf in your EYE/modding folder, alongside basic instructions on how to set up Hammer.
The most important ones that you should pay attention to are:
info_player_solo1 – Not REALLY an exclusive to E.Y.E, but it is mainly used as a spawn point for players in coop missions. You don’t have to use info_player_solo2, info_player_solo3… etc. for the rest of the spawns. You can use multiple info_player_solo1’s so players won’t spawn on or inside each other when they load into the game.
game_weapon_manager – Controls the number of ammo pickups which can be present at once in the map. This is extremely important if your level has working spawners with humanoid enemies, as the game can start lagging and eventually crash if there are too many physics objects (namely ammo boxes) present.
EYE_point_hack – An entity which appears in the hacking menu and can be hacked to trigger an output. Criminally underused, I am guilty of it too.
dial_npc – An entity that is linked to an NPC which can start a dialogue with player. Contrary to what the guidelines pdf says, you CAN write dialogue text into the dial_npc entity itself. It has to be short though, if not it will display an error in the console and will not work properly.
It is also important to add material to each dialogue message, as missing material can and will cause the whole entity to not work at all. Also remember to make the NPC in question friendly/neutral towards the player. If not, you won’t be able to start the dialogue.
You should not add symbols like ” and – to the messages as they can cause whole .vtf file to corrupt due to some random ♥♥♥♥♥♥♥♥ an unexpected ” symbol in line 285837 -type of error. The same goes for entity names in general.
Also, if you select the type of dialogue/message to be “Fire entity,” you MUST add the same interaction in the I/O, that is, add it in the dial_npc’s output tab!
BUG: The dial_npc entity can crash Hammer upon being created. The easiest fix is to open up example maps in your EYE/modding/samples folder, and copy a dial_npc from there.
npc_randomise_maker – The main entity responsible for spawning “waves” of enemies in game. Take note that it requires a pre-defined path_track for the spawned NPCs to work properly.
Also worth noting, after adding this entity, setting up path_tracks and info_node’s it is really important to type “ai_norebuildgraph 0” into the console so the game will rebuild movement graphs for the AI so they include the newly added entities, tracks and nodes.
NOTE: Some older maps like Farming Alpha 23 and Sermomancies use different methods of spawning NPCs. Farming Alpha 23 uses npc_maker, which is technically not a supported entity but it still works. Sermomancy uses npc_template_maker.
Part 5: Hammer Sins, or what NOT to do…
The Hammer Editor is quite a unique application, in a sense that it possesses tools that can ensure its self destruction. In this section I’d like to address some of these well-known traps.
One of the beginner’s traps and more controversial tools available to the mapper. At its most basic functionality it is a really useful tool that can speed up certain actions. However, it can prove itself to be really problematic in the long run, as its carving can lead to really unoptimized levels which take a very long time to compile.
Making objects from level geometry / Sculpting with the level geometry
A cardinal sin, you’re going to the naughty corner for that one. Hammer’s visibility compiler vvis.exe can get very busy with really complex shapes that it counts as level geometry. Additionally, such complex shapes can have an immense impact on the game’s performance. If you HAVE to carve objects like this, use Propper – [valvesoftware.com] to turn them into props, which will be far more digestible for the engine.
[VODKA]: And if you gonna do this sculpting with brushes, make them later as 1 brush entity (like func_detail or func_brush), they will not break optimisation so hard. And if you will make to tiny brushes, hammer will not like that, be ready to encounter some troubles.
Somehow making shapes with faces smaller than 1 hammer unit (hu)
Hammer really doesn’t like it when you go and carve such small details. Generally never do this if possible.
Leaving entities in the “void”
Even if those entities work correctly initially, they are a ticking bomb. Hammer doesn’t like if anything but level geometry touches the outside of the level. Props, logic entities and LIGHTS need to be placed inside of the level. Especially lights. Remember that those won’t spew out compile errors if you’re not doing compiling with vrad.exe (a.k.a. going fullbright). Most of the time, if you have a problem with your map, it’s due to an unexpected AND SOMETIMES NOT REPORTED BY THE COMPILER?? HOW?? leak on the map.
[VODKA]: To find leak, use pointfile (somewhere in top bar), if this file not exist, its means what map not have leaks, if do, follow the red line and fix problem with world geometry here . If you use NODRAW textures outside of map you can see holes in map easier.
Leaving “corrupt faces” in the level
They can cause a variety of issues in the level, even causing some major lighting glitches in unexpected areas. What causes them? Good question. I don’t think Hammer’s developers know.
A good way of finding and eliminating them is using Cordon Tool – [valvesoftware.com] .
Refusing to use NODRAW textures on the sides facing the void
NODRAW – [valvesoftware.com] is the ultimate way of optimizing the level, and it’s also the easiest one. It’s good practice to set it as a default texture or to make brushes with this texture by default. Without it, levels start chugging down resources far earlier than they should.
[VODKA]:Use NODRAW everywhere, where player cant see face of brush.
Embedding music tracks into the map as .wav files
This is a good way to needlessly bloat the filesize of the map. Not that it matters in terms of the download speed/capacity of the individual users, it’s more about being able to download the map directly from the server without E.Y.E crapping itself. Make it an .mp3 file instead. Use ambient_generic – [valvesoftware.com] and add # before the sound name so that it is recognized as music and can be controlled with the in-game music volume slider.
Usage of the Hammer++ software with E.Y.E
Technically speaking Hammer++ does not support SDK 2007, but you CAN use it for few things like physics simulation of the derbies and such, compile it as solids and port it to the “normal” hammer.
Hammer++ link if you’re feeling brave: https://ficool2.github.io/HammerPlusPlus-Website/ – [github.io]
Part 6: Most Common Bugs, Glitches, and Mistakes
We all make little mistakes or encounter common bugs while mapping for the first time. Here are some tips on how to resolve them.
Help! My map looks super-bright!
That’s most likely due to a leak being present in your map. To find a leak after identifying it, go to the Map -> Load Pointfile… It should show you a red line going from the nearest entity and to the void, outside of the map through a gap in your brushes. If the red line goes straight through the wall then check if the wall is not a brush that does not seal the map like a func_detail or a displacement. If the red line continues to go straight through the brush, then delete it and make it again.
If it still goes through after that, you might have more leaks on the map.
Alternatively, there’s a chance that you just need to type mat_fullbright 0 into the console to fix the fullbright issue.
[VODKA]: It’s also can be problem with cubemaps. Some textures “reflect” area near them. It could happen if you use different type of skybox texture, no built cubemaps (place some of these entities and when you on your map type “buildcubemap” or like that in console)
Props I put into my map disappear!
Each prop has a different “type” you have to set it as. Animated ones are usually “prop_dynamic”, props that are breakable are “prop_physics”. Rest can be most likely used with “prop_static”. When in doubt check the info tab of the prop in the model viewer.
[VODKA]: If you want make some static props physical, use prop_physics_override. Also for optimisation of usual physics props you can use prop_physics_multiplayer, but some of props will works uncorrectly (not affects by player’s +use, disappear if shoot in prop), in that case use normal prop_physics.
Part 7: Advanced Mapping Cybermancy
The almighty technomancer Raeg – [steamcommunity.com] has graced the E.Y.E mapping community (a few bums in the back alley of New Eden doing cyber crack including himself) with the much needed update to the E.Y.E’s .fgd file.
The updated .fgd contains re-added entities and various fixes.
▶️▶️▶️Link to the Gamebanana page – [gamebanana.com] ◀️◀️◀️
In the words of the absolute legend himself (yes, I copied it from the Gamebanana page):
MAXIMIZE YOUR CYBERMANCY TODAY
Adds multiple missing/obsolete entities back into the .fgd, and fixes a few other things.
- info_player_battle: the Battle Royale player spawn. Place 16+ of these in your maps to be safe.
- info_player_culter and info_player_jian are spawns for their respective teams in Team Artifact. Shoot for 8+ per team in your maps.
- info_artefact is the spawn for Team Artifact’s namesake, the cyberfootball you chase around.
- trigger_artefacteater is the brush entity for Team Artifact’s goals.
- item_cyber is the research briefcase spawn.
- env_ar2explosion is copied directly from Half Life 2’s .fgd. Makes a big explosion.
- Point_EYESaintDoor, only fires its unique output (OutSaintDoor) when you have all three gate spells from the campaign. Doesn’t work on maps not prefixed with cc, and you need to have either been in the warp map or zxdivine_cybermancy to set a Master of Fate, otherwise it won’t work, thus limiting its functionality in custom maps.
- Point_Suppabonus gives achievements based on the value of its unique input, AttribBonus.
- reward_giver gives Xp and Brouzouf in amounts that do not correspond to the values you enter, and might be influenced by your character’s level. Can be used to subtract Brouzouf instead of awarding it with negative values.
Added a point entity for Betty Boom (weapon_betty_boom) which was previously missing.
Corrects the model for the Arrancadora (weapon_arrancadora) so it isn’t a big red ERROR in Hammer any more.
A few misspellings of “light” were also corrected.
Added the amounts of Xp and Brouzouf given by point_EYEStealthMissionReward in its help section, but I’ll put that here too for good measure:
1: 480 XP, 300 Brouzouf
2: 1,440 XP, 900 Brouzouf
3: 2,400 XP, 1,500 Brouzouf
4: 3,456 XP, 2,160 Brouzouf
5: 4,416 XP, 2,760 Brouzouf
6: 5,472 XP, 3,420 Brouzouf
7: 6,000 XP, 4,020 Brouzouf
8: 6,000 XP, 4,680 Brouzouf
9: 6,000 XP, 5,280 Brouzouf
10+: 6,000 XP, 5,940 Brouzouf; values greater than 10 give the same amount as 10.
Ways of Coping with Hammer Editor Crashing
[VODKA]: If hammer says what exactly cause crash (bad line, coordinate etc), you can try fix it with any notepad program, and try find thing what cause this problem (funny *e****** numbers).
If it’s just crash and without any error, hope you prayed for Secrets and have autosave/backup.
This is all for E.Y.E: Divine Cybermancy Basic Mapping and Gameplay Tips hope you enjoy the post. If you believe we forget or we should update the post please let us know via comment, we will try our best to fix how fast is possible! Have a great day!
- Check All E.Y.E: Divine Cybermancy Posts List