Tutorial: Non-coding workarounds for your mod Last edited 11 months ago2023-10-22 13:11:38 UTC

NOTE: This guide is a work in progress, which means that you might find it very short, lacking of information, poorly done or with terrible spelling. If you have any suggestions, ideas or you know any workarounds, please go to the comments section.
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.
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.

UI/Menu

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.
Main MenuMain Menu
Loading screenLoading screen
This can be achieved by modifying the file YourMod/resource/BackgroundLoadingLayout.txt, 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 background folder:
ImageImage

Music in the main menu

This one is pretty popular. Adding a music file named gamestartup.mp3 to the folder YourMod/media 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.

Mapping/Level editing

Dynamic Lights

Image by WindawzImage by Windawz
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.
Loading embedded content: Vault Item #6204

Screen tint

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.
Normal Screen picture by MotaNormal Screen picture by Mota
Tinted Screen picture by MotaTinted Screen picture by Mota
Warning: Copypasted text up ahead!

The tint effect is achieved by having an env_fade (screen_tint) repeatedly triggered by a trigger_multiple (mexico) 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: When the player crosses the border, this is what happens: The map with its respective source can be found here.
Loading embedded content: Vault Item #6681

Models

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:
PickupsPickups
MonstersMonsters
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: 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: 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.
Loading embedded content: Vault Item #6409

Misc

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 YourMod/skill.cfg file, you can change a weapon´s damage points or an NPC's health value. Example:
// Barney
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.

6 Comments

Commented 1 year ago2023-08-13 10:23:31 UTC Comment #105469
All of the features shown in Mapping are included in Advanced Half-Life FGD by default. Thus, there is no need to turn off the Smart Edit and add relevant keyvalues every time.
User posted image
User posted image
Even scientists with different pitches using the same head bodygroup can be created.
User posted image
Body and Skin keys are already included as long as they are supported on almost most monster_* entities.
User posted image
All func_* entities include the effects key by default.
User posted image
User posted image
Of course, this FGD did not become popular because it didn't get enough attention, and everyone is still making maps with the outdated Half-Life FGD.
Commented 1 year ago2023-08-13 21:38:29 UTC Comment #105470
User posted image
Commented 1 year ago2023-08-14 05:00:13 UTC Comment #105471
我曾经在ka_airtrain里使用func_conveyor的时候,也出现了光照效果,即使我并未有任何非常规操作。
When I once used the func_conveyor entity in ka_airtrain, it also compiled with a light effect in the map, even though I didn't do anything unconventional with it.
Commented 1 year ago2023-08-14 21:05:10 UTC Comment #105472
Interesting, could you please elaborate further?
Commented 1 year ago2023-08-15 10:14:12 UTC Comment #105476
很难说,因为这个实体很久以前就被我删除了。
It's hard to say because this entity was deleted by me a long time ago.
Commented 1 year ago2023-09-04 16:41:42 UTC Comment #105523
Here to clarify what "loading screen" means. It's the moment after the game entered fullscreen and before the main menu shows. It's actually not the time when the maps are loading (I tested) so you're actually only seeing it for a fraction of a second tops. No wonder nobody bothers making a custom one.

You must log in to post a comment. You can login or register a new account.