Forum posts

Posted 2 weeks ago2024-11-14 08:10:03 UTC
in env_camera / trigger_once not working Post #349339
You said the trigger_once has a target, but you didn't specify if the target is the trigger_camera. Does it target the camera directly, or indirectly through other entities?

What sort of entity is the camera's target?

Have you double-checked if all targets and targetnames are correct and have no spaces or special characters in them?
Posted 1 month ago2024-11-01 21:37:26 UTC
in Three quick questions Post #349306
There are many ways to create custom textures, but The303 has a pretty extensive guide on his site here.

For custom sounds you can check out Tutorial: Making Custom Sounds
Custom sentences can only be made for mods, you can read more about it in the sentences.txt page I already linked you before.

And don't forget you have tons of resources over at Goldsource Tutorials and Entity guides.
Posted 1 month ago2024-10-31 13:59:23 UTC
in Three quick questions Post #349299
  1. Sound environments is achieved with env_sound. Each entity defines a sphere with a radius, that when entered permanently changes the sound environment (meaning that for two areas with different sound environment, you want a pair of env_sound at each entrance/exit between these two areas). The speaker entity (often multiples of it) can be used to play random sounds from sentence groups (sentences.txt) to add to a soundscape, such as combat soundscapes in Forget About Freeman.
  2. A trigger_hurt volume with Radiation damage type and positive damage will trigger a player's geiger counter when they're in proximity of the trigger volume. Even an 1x1x1 unit cube is enough.
  3. Tying brushes to func_rotating with a single brush covered entirely in ORIGIN texture to define the axis can be used to make rotating geometry, such as fans. As for parts of the worldspawn that rotates, that's not possible. The worldspawn BSP model is just a single, static mesh.
  4. Simple AND gates can be made using multisource, but more advanced/complex setups can be made with clever use of trigger_changetarget, for example. Though exact solutions would depend on the sort of logic you're trying to achieve.
Posted 1 month ago2024-10-31 08:05:21 UTC
in Coding problems. Post #349293
Or even better, upload here directly by copy&pasting the images into the text editor.
External hosting services can be unreliable.
"HLOP" is a very strange way to abbreviate Opposing Force. It's more common to use "Op4" or "OF" :p

But back to the topic at hand, the base game does not provide any way to change monster relationship, but you can either use a mod/SDK that already provides this functionality as the base for your mod, or use a SDK with Op4 code such as Op4 Updated SDK and either modify the Classify() method on the monsters or write in the functionality to override the Classify() value using a keyvalue.

The easiest would be using the Featureful SDK as kimilil suggested, as it already comes with Op4 monsters and allows one to invert the monster entities' player relationship (i.e. from friendly to enemy and vice versa).
Posted 1 month ago2024-10-06 16:13:20 UTC
in Warning: === LEAK in hull 0 === Post #349233
"The entity listed in the error is just a helpful indication of where the beginning of the leak pointfile starts..."
From the error message itself. It could be outside the map, or it just happens to be the entity nearest a possible leak location. Following the How to fix those leaks tutorial explains the steps to find and fixing the leak(s).
Posted 1 month ago2024-10-06 06:08:06 UTC
in error: map not found on server Post #349228
That's not the only WAD it couldn't find.
The compile tool used shouldn't matter, what matters is your editor's configuration has been set to use hlof.wad, hlbshift.wad and zhlt.wad, all under the ambiguous directory "/Program Files/" (it's ambiguous because the directory doesn't specify the drive, and both game and compile tools are on different drives).

If these WADs aren't used or don't exist, you can remove them from the game configuration and compile again.

If they do exist, you can try either placing them on the same drive as the compile tools (or vice versa), or edit the MAP file's "wad" property and add in the drive letter for each WAD path.
Posted 1 month ago2024-10-05 13:55:50 UTC
in error: map not found on server Post #349222
Do a text search for "error" in the compile log to find error messages.
There's several errors you should deal with in CSG.
Posted 1 month ago2024-10-04 07:48:37 UTC
in Warning: === LEAK in hull 0 === Post #349218
There's a tutorial specifically for finding and fixing leaks: Tutorial: How to fix those leaks
Posted 2 months ago2024-09-26 08:45:24 UTC
in How to hide HL player models from mods? Post #349184
Opposing Force doesn't hide the HL1 playermodels, those are included in the playermodel dropdown in options.

Games like Ricochet and Counter Strike uses nomodels "1" in liblist.gam as DaSalba said, and players instead choose playermodels elsewhere.
You'll need to code some GUI for the players to choose your mod's playermodels when using this, though.
Posted 2 months ago2024-09-23 20:19:03 UTC
in Post your screenshots! WIP thread Post #349181
Amazing work, loving the hazy atmosphere!
Posted 2 months ago2024-09-16 05:26:16 UTC
in Jack won't compile bsp Post #349165
Firstly, JACK doesn't do any compilation, it just calls the compile tools that do it.
Secondly, compile logs and their error messages are humanly readable. You do not need any special expertise to read them, let alone depend on strangers online to read it for you.

Now check your compile log, and compare the map name that the compile tools see with the map name in the console error message you posted earlier.
Very much at the very top for me, something that makes me not even click past the thumbnail, is seeing it's a mere content replacement pack.
"Edgier zombie mod". "Realistic MP5 mod". Stuff like that. It has been over 25 years since HL came out, and any novelty any such packs could bring is long gone. Past that, there's nothing interesting those packs bring to the gameplay value.
Posted 2 months ago2024-09-08 22:15:52 UTC
in Need help with monstermakers!!! Post #349136
Not possible either, in vanilla.

Since you mentioned it's an endless battle but that weapons are piling up somehow, then I assume it means you're providing the player with constant supply of ammunition.
If you insist on staying vanilla, then perhaps getting rid of this ammunition supply could help towards staying within the entity budget, by forcing the player to collect the dropped weapons for ammunition. Not the perfect solution, but might be the best you can do without code changes.

Either that, or replace the human soldiers with monsters that don't drop anything on death.
Posted 2 months ago2024-09-08 17:06:08 UTC
in Need help with monstermakers!!! Post #349134
As far as I'm aware there's no option to disable weapon drop by monsters in vanilla HL/Op4.
That would need some game code changes.
Also please don't make duplicate threads. People will reply when and if they can help.
(Previous thread: https;//twhl.info/thread/view/20845)
Duplicate thread is gone now - Urby
Posted 3 months ago2024-08-29 20:37:43 UTC
in How realistic would be making money just by modding? Post #349113
As you say, there is not much demand.
Though there are people out there still willing to pay for getting modding work done, it's just a matter of finding them (or getting found by them) and prove to them your skills are worth it.

A good start would be building up a portfolio, a collection of work you've done to show off your skills.
Posted 3 months ago2024-08-29 07:50:25 UTC
in Why are there sparkle things around monster_zombie? Post #349110
The pollen effect is a visual indicator used by the game to show that a monster is stuck in geometry, e.g. in a wall or, as in your case, in the floor.
I guess you could create a flag m_fInBurst (set to false in Spawn()) that you set to true in PrimaryAttack() if m_iBurst is equal to m_iMaxBurst, and set to false if m_iBurst is zero.
If m_fInBurst is true, set m_flTimeWeaponIdle to 0.1.

Then in WeaponIdle() do something like
void CMP5::WeaponIdle()
{
    if (m_fInBurst && m_iBurst > 0)
    {
        PrimaryAttack();
        m_flTimeWeaponIdle = 0.1;
        return;
    }
    // ... rest of code
Essentially use PrimaryAttack() to start the burst fire, and let WeaponIdle() as a loop to call PrimaryAttack() until the burst count is exhausted.

Again, I'm just guessing here.
Hi and welcome to TWHL!
Now I haven't dabbled much in the weapons related game code so I'm sure someone else might have a better way of doing it than I.

The way I'd do it is to give new members of type int to CMP5's header; int m_iMaxBurst and m_iBurst and initialise both of these to 3 in CMP5's Spawn() method.

Then in the PrimaryAttack() method, add a decrement to m_iBurst just below the m_iClip decrement, and further down add a check for if m_iBurst is exhausted, and if it is then add a 0.5 second delay to the next fire property and reset m_iBurst to m_iMaxBurst.

At the top:
void CMP5::PrimaryAttack()
{
    // don't fire underwater
    if (m_pPlayer->pev->waterlevel == 3)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

    if (m_iClip <= 0)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

    m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
    m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;

    m_iClip--;
    m_iBurst--;

    // ... rest of code
At the bottom:
    // ... rest of code

    m_flNextPrimaryAttack = GetNextAttackDelay(0.1);

    if (m_flNextPrimaryAttack < UTIL_WeaponTimeBase())
        m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;

    if (m_iBurst < 1)
    {
        m_flNextPrimaryAttack += 0.5;
        m_iBurst = m_iMaxBurst;
    }

    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat(m_pPlayer->random_seed, 10, 15);
}
You'd then need to make a check if the fire button had been released in the middle of a burst to reset m_iBurst back to m_iMaxBurst.
Posted 3 months ago2024-08-26 21:12:58 UTC
in Help with JACK. Post #349086
Just as I thought, an invalid character in the path.
These old tools don't play nicely with non-ASCII characters :p
Posted 3 months ago2024-08-25 20:59:09 UTC
in Help with JACK. Post #349077
These decompiled map files you downloaded, were those in a different directory from the ones you decompiled yourself?
Because that question mark in the path from the error message implies there is an invalid character in that directory name.
Awesome! Good job! 🙌
I'd recommend converting from the RGB images the 8-bit images came from, if possible, for better colour quality.

As for software for doing the conversion I can highly recommend IrfanView. It's free and does the best job of colour preservation when reducing an image's bit depth that I'm aware of.
Using Wally they've likely become indexed 8-bit images, while GoldSrc uses 24-bit TGA (AKA RGB True colour).
The dimensions being 256x256 is correct though.
This post was made on a thread that has been deleted.
Posted 3 months ago2024-08-05 08:20:50 UTC
in The release of my HL1 mod. Post #349034
To be fair, model packs are mods (specifically, a sub-category of mods), but just as Urby says they're very unpopular, especially for a game as old as Half-Life.

Model packs, and other content-replacement packs such as texture replacement and audio replacement, don't bring any new experiences to the game. The game might look or sound different, but the gameplay is identical and any novelty introduced with the pack quickly fades to boredom.

However, if you made a series of maps that fit the mood of the models, and bundled all that together, now that would be a far more interesting mod!
Posted 4 months ago2024-07-14 20:24:12 UTC
in MESS 1.2.3 is now available Post #348988
What are you planning, Kimilil? 😃
Posted 4 months ago2024-07-14 15:25:07 UTC
in MESS 1.2.3 is now available Post #348985
Awesome, fantastic work! 🥳
Posted 4 months ago2024-07-10 07:54:47 UTC
in Is there a way to make a toggleable looping circuit? Post #348973
In your typical multi_manager loop, you set the Multi-threaded flag and have it target whatever is supposed to repeatedly trigger, and after some delay it'll trigger itself.
User posted image
Triggering the multi_manager again will only create more loops, so instead of a button to start the loop we can use a trigger_auto to start it from the beginning of the map, and instead of triggering the target directly we can use a trigger_relay, but we'll leave the relay's target empty to begin with.

To connect the target to the loop, we let the button target a trigger_changetarget (we can name it turn_on) to change the relay's target to our env_blood. We can use another trigger_changetarget (sharing the same name as the first) that will change the button's target to turn_off.
Now we create another pair of trigger_changetarget, both named turn_off. One will change the relay's target back to empty, and the other will change the button's target to turn_on.
User posted image
It might be a bit complicated, but here's an example map for such a toggled loop:
Loading embedded content: Vault Item #6924
Posted 4 months ago2024-07-08 18:48:57 UTC
in Improving accuracy of collisions with pushables? Post #348967
I'm sorry, I was wrong. My brain must have had a hiccup last night. Of course changing the pev->movetype to MOVETYPE_STEP won't help, and monsters uses the cliphulls as well for entity-to-world collisions.

Maybe you could force it to use the pointhull, and do your own collision checks using its bounding box. The performance won't be as good as with cliphull-based collisions, of course.
Posted 4 months ago2024-07-08 12:28:02 UTC
in Map Optimization Question Post #348965
There's no reason for hollowing out solid brushes for "performance" reasons.
If the hollow volume is big enough, it'll even produce more clipnodes as Urby says, just wasting away the clipnode budget for no good reason.

If those brushes are world brushes, it's even less reason to do so as any outside and unseen faces will be stripped out by the compilers automatically anyway.

Manually NULLing faces is an optimisation step you only should do if you need to. Otherwise you're just wasting time that could have gone to actually building the map.
Posted 4 months ago2024-07-08 09:33:01 UTC
in Random ambient sounds? Post #348961
You could take a look at the speaker entity. It plays a sentence from sentences.txt at a random interval between 3 and 10 minutes. Using a sentence group (sentences with the same name but different number suffix) will make it choose a random sentence from the group.

It's used a lot in the original Half-Life campaign where it adds random background noises. In these cases multiple speaker entities are used together to make the sounds play more often. An example would be c2a5c, where four speaker entities set to play the FAR_WAR sentence group to add an ambiance of distant combat.

If you're mapping for HL, you can take a look at predefined sentence groups in sentences.txt and see if any fits your need. If you're making a mod, you could create a new custom sentence group that fits exactly your need.
Posted 4 months ago2024-07-07 21:36:58 UTC
in Improving accuracy of collisions with pushables? Post #348959
Your guess of it having something to do with the HULL sizes is correct.
While player-on-pushable collisions uses the pushable's bounding box, the pushable's collisions with the level uses clipping hulls instead.

Clipping hulls date back to Quake. Essentially, instead of continuously testing mesh-on-mesh collisions (very expensive), the player and pushables are simulated as a single point, and collision hulls are pre-calculated by expanding the solid level geometry by an appropriate amount (e.g. 16 units horizontally and 36 units vertically for HULL1). This way collisions are tested using point-on-mesh instead, which is computationally very cheap. It performs better, and that's why the engine uses this instead of bounding boxes.

It might be possible to force it to use bounding box instead, I'm guessing changing the pev->movetype to MOVETYPE_STEP should get it to use similar collisions as monsters, though it's not guaranteed to be better.
Posted 5 months ago2024-07-02 22:31:59 UTC
in Creating a texture swap for a mod Post #348944
The process is exactly the same as any custom content for the mod: Place the custom assets in the corresponding folder in your mod's folder.

If you've already started working on your mod, you should have a folder at .../Steam/steamapps/common/Half-Life/<your_mod>.
Any custom models should then be placed in .../Steam/steamapps/common/Half-Life/<your_mod>/models.
This way when you launch the mod, it'll use the custom models instead of the vanilla models.

You can check out Tutorial: Setting up a Mod: Part 1 - Mod directory and liblist.gam (Steam) for more information about setting up a mod.
No problem! It's easy to miss things, sometimes all you need is another pair of eyes to take a look 🙂
I haven't tried TB yet, but I suspect that the CSG lacking a checkmark to the left of it, unlike the BSP just below it, in that screenshot might tell us that CSG is disabled.
The problem is that you're missing the CSG compiler at the start of the compilation process, you're only running BSP, VIS and RAD.

It should have been CSG -> BSP -> VIS -> RAD.
Posted 5 months ago2024-06-22 14:33:33 UTC
in sven co-op widescreen problem (again) Post #348913
The Sven Co-op engine (AKA Svengine) is a modified version of GoldSrc.
Even if it had the same engine, it's still a standalone game with its own executable and settings separate from Half-Life.

So, did you try out the advice you got in the other thread for Sven Co-op specifically?
Posted 5 months ago2024-06-21 12:48:50 UTC
in sven co-op widescreen problem (again) Post #348908
Did you try out the advice you got in the last thread for Sven Co-op as well?

Sven Co-op and Half-Life are two different games using separate executables and settings, so fixing the problem in one game won't affect the other.
Posted 5 months ago2024-06-12 07:50:31 UTC
in Playermodel hovering Post #348871
When you made the model replacement, did you shift the origin up to the center (36 units up from the bottom of the model)?

Most prop and monster models have the origin placed at the bottom/feet, but playermodels specifically has the origin at the center of the player bounds.
Posted 5 months ago2024-06-04 22:20:57 UTC
in I made a wad but some textures don't show up. Post #348851
Is the valve/aleph.wad the same WAD package that has been updated, or is your Game Configuration in JACK pointing to a different WAD file?
Posted 6 months ago2024-06-02 08:13:50 UTC
in why decals doesnt show up Post #348849
Both the Apply Decals tool and the infodecal entity it creates can only use textures from decals.wad. Any other textures won't work.

To create signs using textures from any other WAD, such as halflife.wad, you can instead create a very thin brush with the chosen texture and tie it to func_detail.
User posted image
Set the Passable (zhlt_noclip) keyvalue to Yes (1) and then the player won't be able to collide with it.
Posted 6 months ago2024-06-01 21:13:24 UTC
in How do i run a map Post #348847
Congrats! 🥳

Keep it up!
Posted 6 months ago2024-06-01 15:24:05 UTC
in How do i run a map Post #348843
The compile tools are fine, the Run Dialogue are finding them and launching them without issue, as you can see from the compile log (again, you should read it).

The problem now, as you can easily find by reading the compile log, is that the WAD file /Users/marii/Documents/1compiletools/tools/sdhlt.wad is not found. You should change the entry for this WAD in the Game Configuration, to point to its location on the X:/ drive.
Posted 6 months ago2024-05-31 21:11:26 UTC
in How do i run a map Post #348838
Hi, and welcome to TWHL!

Please don't be intimidated by the compile log, it has a lot of useful information about the compile process and learning how to read it will be very helpful in the long run.
If you look near the end of the log, you will see the text
"There was a problem compiling the map."

When you see that, or a BSP was for some reason not produced, open the compile log in a text editor and search for the keyword "Error".
Compile logs like this will produce lines starting with "Error: " that will tell you what went wrong and oftentimes how to fix it.

Try it out yourself before continuing.

In this case the error is:

Error: Could not open wad file /Users/marii/Documents/1compiletools/tools/sdhlt.wad
Error: Could not find WAD file
Description: The compile tools could not locate a wad file that the map was referencing.
Howto Fix: Make sure the wad's listed in the level editor actually all exist

Unfortunately this one can be a bit cryptic. I noticed your compile tools and game directories are in two different drives (C:\ and X:\). The compile tools tend to have issues with finding files that are on a different drive, so I recommend moving the compile tools to the same drive as the game installation.
Posted 6 months ago2024-05-31 16:02:30 UTC
in How do I rotate sprites? Post #348836
Most sprites in GoldSrc already automatically rotate on their own, to face the player camera. This is known as Parallel Orientation. It is one of 5 Orientation types:
  • Parallel - Most common default type; image always faces camera
  • Parallel Upright - Locked to z-axis so only rotates to face camera (best for things that need to be placed on ground, for example trees or fire effect)
  • Oriented - Does not rotate to camera; has a fixed orientation defined in hammer (not for use with env_glow)
  • Parallel Oriented - Faces camera just like Parallel but can be rotated in hammer (not for use with env_glow)
  • Facing Upright - Lesser used mode that works just like Parallel upright, but rotation aligns with player origin instead of camera. (can be buggy at close distances, would only recommend for a specific effect)
- From The303's GoldSrc Sprite Tutorial
What you might want to use is the Oriented type. In vanilla HL1 you're not able to set a sprite's Orientation type through mapping, it must be done by editing the sprite file itself. You can use Half-Life Texture Tools to do this, either when creating a new sprite or when editing an existing one.

After that the sprite will obey the Entity Attribute: Pitch Yaw Roll (angles) keyvalue.
Posted 6 months ago2024-05-12 21:34:55 UTC
in Is it possible? Post #348796
By "particle" you likely mean sprite, which are 2D image objects in the game, and yes these can be attached to a playermodel and turned on/off based on various conditions such as when a flashlight is turned on/off.

Both making the sprite turn on/off, and limiting its use to only specific weapons, should be possible to code in CBasePlayer::FlashlightTurnOn() and CBasePlayer::FlashlightTurnOff() methods. Of course, you'll need to use programming for this using the SDK.
Posted 6 months ago2024-05-09 11:01:46 UTC
in Sven Co-op Repair men Post #348785
By "repair men", do you mean Gus?
Gus (forklift.mdl)Gus (forklift.mdl)
If so the model name is forklift.mdl and it's one of Half-Life standard assets (so this version from Half-Life/valve/models can be used in your mod).

On the other hand, if you mean some player model then there's /models/player/HL_Construction/HL_Construction.mdl and /models/player/HL_Gus/HL_Gus.mdl from Sven Co-op and these are specific to SC, which means that you should ask for permission to use these in your mod, and possibly need to do some conversion as the player skeleton and/or sequences are different between HL and SC.
As for using assets from the main games (such as Half-Life, Blue Shift and Opposing Force), it's generally fine to do so for a HL/BS/Op4 mod. So re-using a main game texture in your mod's WAD is all good.

It's only a problem if you lift these assets out of these games and put them in another non-Valve game.
Posted 7 months ago2024-04-29 18:10:07 UTC
in How to change hand texture throughout maps Post #348761
I remember seeing this being done in some mod, could it have been Azure Sheep?

If I recall correctly, there was basically a duplicated set of weapons, one that used the uniform-clothed hands and another with the hands wearing the HEV suit. Then at some point in the campaign you would be stripped of your weapons and find yourself a HEV suit before being given the HEV-variants of the weapons.

This is of course a game code change, not something that can be done purely through mapping.