On this tutorial we will review a lot of workarounds that will help to add some features to your mod without coding.
The main problem of no-coding workarounds
Some of the workarounds presented in here may not be what you want. Besides, this workarounds are very limited. An example would be that you can´t add a new weapon or NPC. These are all based on leftover content and "exploiting" already existent features, so don't get too excited.
However, the advantage of using these workarounds is that it will make your mod stand out of the crowd, or at least look less plain.
Without further adieu, lets start.
Different loading background
Half-Life uses a single background image both for the menu and when the game is loading. However, you can add different backgrounds for the loading screen and menu.
This can be achieved by modifying the file
, and adding your new background files. A recommended way to organize the backgrounds is putting the files in different folders, rather than putting everything in the
Music in the main menu
This one is pretty popular. Adding a music file named
to the folder
adds music to the main menu. However, the music plays in a loop and does not play again when the player leaves the game or disconnects from a server.
This one was found in a Russian server by the user Windawz
. If you add the parameter "effects" to a brush or point-based entity with the value of 8 or 4, it will emit dynamic light.
An example can be found here
This one was created by the user Mota
. The original map presents a México-yellowish tint, but you can change this to other colors to fit your needs.
Warning: Copypasted text up ahead!
The tint effect is achieved by having an env_fade
) repeatedly triggered by a trigger_multiple
) covering the whole area it's supposed to affect.
Both the fade's "Hold Fade" time and the trigger's delay before reset are set to 1 second, so the fade gets re-triggered every second while the player stays inside the trigger.
That would be enough for a continuous tint that fades away when the player leaves the area, but if you also want it to fade in smoothly, it'll need a more complex setup - especially if the player can move freely between areas like in this example.
For the smooth transition, I used:
- A second env_fade (
screen_tint_start) with "Fade From" disabled
- A second trigger_multiple (
mexico_border) at the threshold between areas with a 0.5 second delay before trigger
- Two pairs of trigger_changetarget, named
When the player crosses the border, this is what happens:
- The threshold's trigger_multiple,
mexico_border, targets the pair of trigger_changetarget called
change1 after a delay of 0.5s
- Meanwhile, the area's trigger_multiple,
screen_tint_start, as that is its initial target
change1 pair activates, making it so
mexico now targets
screen_tint every second from now on, and
mexico_border now targets the
- If the player walks back through the border,
mexico_border will now trigger the
change2 pair, which reset both
mexico_border to their initial targets so this whole sequence can be repeated
The map with its respective source can be found here
Different models for a single entity
You can make variations of pickups, monsters, etc. by adding a bodygroup to the model and adding the "body" property in a map editor:
You can also add "limitless" body/skingroups to entities that already use them like HECU grunts or scientists. I wrote "limitless" because there is still a limit on every model. According to The303.org
, the limits are:
- 32 submodels
- 32 skingroups
A problem with this workaround is that some entities like Barney doesn't work as intended. In this case, Barney´s model has 3 bodygroups:
- Holstered gun
- Unholstered gun (in-hand)
- No gun
If the model is modified, Barney will change to a different variation on certain actions, like when unholstering his gun or dying. However, it seems that Barney is the only affected by this problem, and skingroups work fine.
An example can be found here
, by UrbaNebula.
Damage and HP
This is not a workaround but I'm still adding it here since a lot of people don't know this. By editing the
file, you can change a weapon´s damage points or an NPC's health value. Example:
sk_barney_health1 "35" // Health on Easy mode
sk_barney_health2 "35" // Health on Normal mode
sk_barney_health3 "35" // Health on Hard mode
You can also change how much points does a battery
or a medkit
heal, this including pickups and wall chargers.
When developing a mod you will often run across the no-coding issue, which consists in you trying to implement a feature but not being able to do so since you don't know how to code, there are no programmers on your mod team or you just simply don´t want to code. This can be a problem for the development of the mod.