What are the leaked "hl3.txt" and "rpg.txt" files all about?

-smash-

Content Director
Joined
Aug 27, 2004
Messages
1,823
Reaction score
340
Surprise! Seven years and 364 days after Half-Life 2: Episode Two was released as part of The Orange Box (a total coincidence), SteamDB has brought to light some leaked Half-Life 3 content that was released through today’s Dota 2 update.

The leak doesn’t contain any game assets, but instead it has some text files that define some game assets - similar to what Valve’s FGD does.

Of note are three files that have new information, named hl3.txt, rpg.txt, and lights.txt. We’ve gone ahead and compiled what we think are the more relevant pieces of information from these files, and that’s detailed below...

hl3.txt - View Source File

Most of the definitions in this file are old and can be found within Source 1, suggesting that they’re being ported over to Source 2 with some slight changes.

For starters, the base AI definitions inside hl3.txt, such as for companions, squad following, attack/cover, scripted sequences, and more, are from Half-Life 2. And, there are procedurally generated spawn points for items and enemies that could be a child of Left 4 Dead’s system. Finally, spawns are controllable, which could stem from Left 4 Dead 2’s AI Director.

But, there’s obviously some completely new things that are defined.

There’s some type of “quest” system which we don’t think was in Valve’s dictionary in Half-Life 2/Source 1. Quest dialogue, quest goals, and quest NPCs, such as hunters, citizens, and ceiling turrets, are all found in hl3.txt. Quest citizen is a quest member that’s “neutral to Combine, and don’t take damage from their weapons.” “Quest” and “Combine” in the same attribute - is this suggesting that Half-Life 3 is or at one point was a shooter with role playing elements? There’s also some definitions for VR involving the Chaperone system (only patented March 2015) and a movement system. Ziplines, too!

rpg.txt - View Source File

This is a base for defining some RPG elements in Source 2, so it’s all new to us. There’s actually a lot of engine, as well as gameplay-related, definitions, but nothing specific to any actual game title.

Most everything in here is typical to your classic RPG game. Item stats, item pickups/drops.

lights.txt - View Source File

Here there are definitions that describe some of the lighting characteristics. There’s your typical definitions for angles, offsets, targets, colors, light types… But then there’s new “Realistic Day/Night Cycle” attributes that can be adjusted by time, date, timezone, and length of the day.

--------------

So, it’s important to realize that there’s absolutely no information as to exactly when or where these definitions come from. Meaning some or all definitions could be years old, used in some early iterations of projects that may or may not have died internally at Valve. Or, these are precisely what Valve is using, today, in some future title. Stay tuned as always...
 
Last edited:
I think the VR definitions may make the hl3.txt much newer than I thought after first reading this, despite the source 1 stuff still being there. Though with Valve, this could range from recent to bloody ANCIENT

(well, maybe not that old, but you get the idea)
 
I sincerely believe, that there is some kind of HL3 development going on in Valve - but without emphasis on ever being released.

The naming hl3, however, pretty much just suggests "Source 2" for me (just like GoldSrc games were "hl.exe", and many of Source games were "hl2.exe").
 
This has to be something recent(earliest when they first started work on source 2). There's no way valve would have thought they could pull off an RPG on Source 1
 
This has to be something recent(earliest when they first started work on source 2). There's no way valve would have thought they could pull off an RPG on Source 1
You need to see VTM: B and Dark Messiah, amazing Source RPGs.

I feel like this has to be old, doing HL3 as an rpg would be dumber than holy hell.
 
Here is my summary of the files (special thanks to Marphy for helping me write this message): These are the "help file entries" to instruct the level designers how to use the entities defined in the "game configuration files" (*.fgd files) used by the Source 2 version of Hammer, the level editor. They can't be used to build a level for a game. The files were made public, possibly unintentionally, by Valve on October 9, 2015, a day before the 8th anniversary of The Orange Box’s release in 2007.

hl3.txt

Most of the code data is from Half-Life 2, and it was ported over to Source 2 with changes and additions. Here are some of the features:
> Base AI functions from Half-Life 2 (companions, squad following, scripted sequences).
> Possible quest system (info_quest_dialog, point_quest_goal).
> Virtual reality settings in the map properties (enable VR Chaperone, VR Movement).
> Character entities are: npc_quest_citizen, npc_hunter_invincible, npc_turret_ceiling_pulse (Combine Pulse Ceiling Turret).
> Other entities are: props_zipline, item_generic.
> "HL3 only" prefix is used two times in the document.

Possible Left 4 Dead style AI Director for procedural generated enemy placements. It is similar to the version used in Left 4 Dead 2. The level designers have more control over the spawns.
> Feature: Level designers can create a spawn template and reuse it.
> Feature: Spawn radius (inside or outside the player's radius), spawn limit.
> Feature: Visibility requirement (to prevent the enemy spawning in front of the player).

Name (in the code): Attribute.item_generic.associated_player_counter
Name (in the help file): Associated PlayerCounter Name (HL3 only)
Explanation: This is an option for “item_generic”. The “playercounter” is a possible hint of a game mode with multiple players.

Name (in the code): Attribute.item_generic.pickup_prevents_respawning
Name (in the help file): Pickup prevents respawning (HL3 only)
Explanation: This is an option for “item_generic”. Another possible hint of a game game mode with multiple players. This option is used to disable to prevent the item from respawning.

Name (in the code): Attribute.npc_quest_citizen.is_quest_member
Name (in the help file): Quest Member? (Neutral to Combine and doesn't take damage)
Explanation: This is an option for "npc_quest_citizen" entity. When enabled, the character becomes friendly/neutral towards to Combine units and doesn't take any damage from their attacks.

Name (in the code): Attribute.npc_quest_citizen.beckon_approach_enabled
Name (in the help file): Beckon and approach the player

Name (in the code): Attribute.npc_quest_citizen.beckon_radius
Name (in the help file): Beckon the player if they come within this radius

Name (in the code): Attribute.npc_quest_citizen.approach_radius
Name (in the help file): Approach the player if they come within this radius

Name (in the code): Attribute.npc_quest_citizen.combat_enabled
Name (in the help file): Allow this citizen to participate in combat

rpg.txt

This appears to be a base for a single player (keywords: client, globalname) role-playing game. It is not related to hl3.txt since it has its own definitions for map properties. There are generic character and item spawners, but no game data is present. It might be a base for a cancelled/unannounced Valve game or an experiment. There is also a navigation system, similar to the one used by the bots in Team Fortress 2 and Left 4 Dead games.

Entity: rpg.unit
Description: A generic character with basic AI functions. They can work in squads like Half-Life characters. They have a feature called “lurking behaviour”.

Entity: rpg_item_spawner
Description: Generic item spawner.

Entity: rpg_prop_itemdrop
Description: This appears to be a breakable prop the characters can interact with. When destroyed, it leaves rpg_physical_items behind.

Entity: rpg.spawner
Description: It is used for spawning entities.

Entity: rpg.trigger
Description: It is used for triggering entities.

Entity: rpg_gamerules
Description: It is used to edit the rules of the game.

lights.txt

This is a “base file”, a special type of file that contain the base entities (i.e. func_wall) used by the engine, and it must be used with a “game configuration file” to create a map for a game.

Entity: timeofday
Description: To set the time of the map
Note: This is a base feature of Source 2. It doesn’t mean it is used for Half-Life 3.

Entity: realisticdaynightcycle
Description: For creating realistic day and night cycles. You can set the day/month/year, the length of the day. It is similar to the technology used in the Grand Theft Auto games.
Note: This is a base feature of Source 2. It doesn’t mean it is used for Half-Life 3.

ai_basenpc.txt

Another base file used for AI functions ported from Half-Life 2.
Entities: ai_addon, ai_addon_builder

These entities are possible related to the Half-Life 2 code references (see below) found in the leaked Dota 2 client from 2011. ai_addon_builder (similar to npc_maker, but more complex) appears to be an entity that can spawn characters with addons (items). ai_addon is a definition file for the items.

dota/staging/src/game/server/hl2/addon_basecombatweapon.cpp
dota/staging/src/game/server/hl2/addon_baseshooter.cpp
dota/staging/src/game/server/hl2/addon_bomb.cpp
dota/staging/src/game/server/hl2/addon_brain.cpp
dota/staging/src/game/server/hl2/addon_dartgun.cpp
dota/staging/src/game/server/hl2/addon_minigun.cpp
dota/staging/src/game/server/hl2/addon_mortar.cpp
dota/staging/src/game/server/hl2/addon_propeller.cpp
dota/staging/src/game/server/hl2/addon_rpg.cpp
dota/staging/src/game/server/hl2/addon_saw.cpp
dota/staging/src/game/server/hl2/addon_shield.cpp
dota/staging/src/game/server/hl2/addon_thrownprojectile.cpp
dota/staging/src/game/server/hl2/ai_addon_builder.cpp
dota/staging/src/game/server/hl2/ai_addon_factory.cpp
 
wasnt there rumors like 1 or 2 years ago that Half-Life 3 will be an open world game with quests and RPG elements?

On one hand it would be very interesting to see what kind of RPG Valve will do, on the other hand it would be ****ING STUPID. Make a new IP if you want to make an open world RPG, not that hard.
 
The fact that hl3 has been in development since source 1 is backed up by this old leak that was proven to be true:

BfAu1NwCIAEk_2h.png
 
well Source 1 isnt that old is it, so it shouldnt be unlikely

Edit: The screenshot you posted is a Source 2 folder btw.
 
Last edited:
I think the VR definitions may make the hl3.txt much newer than I thought after first reading this, despite the source 1 stuff still being there. Though with Valve, this could range from recent to bloody ANCIENT

(well, maybe not that old, but you get the idea)
We know exactly why VR code is in with HL3.
 
We know exactly why VR code is in with HL3.

I might be a tad thick headed here, but how exactly?

wasnt there rumors like 1 or 2 years ago that Half-Life 3 will be an open world game with quests and RPG elements?

On one hand it would be very interesting to see what kind of RPG Valve will do, on the other hand it would be ****ING STUPID. Make a new IP if you want to make an open world RPG, not that hard.

I don't see how it'd be "****ING STUPID", a more open Half-Life game would be a lot more fun, and open world games can still deliver a story really well.
 
Last edited:
wasnt there rumors like 1 or 2 years ago that Half-Life 3 will be an open world game with quests and RPG elements? On one hand it would be very interesting to see what kind of RPG Valve will do, on the other hand it would be ****ING STUPID. Make a new IP if you want to make an open world RPG, not that hard.

Did you even read the thread?
 
This is incredibly interesting, but it in essence tells us only one thing.
Valve wanted this found.

We have no other information. Valve wanted us to see this. Asking why can only lead to more questions and no answers. Is this current HL3 development code? Is this old code? Is this scrapped code? Is this a teaser for more to come? Why have they shared these specific lines? Why have they decided now to share at all?

We know nothing. Maybe they leaked this to show us they are currently still working. Maybe this is leaked to show us one of their ideas. Maybe it was released to show us one of their failed ideas.

With our current information intent is impossible to ascertain. This code is interesting, but it tells us nothing about the development state of HL3 or the gameplay.
 
maybe this leaked by accident

Did you even read the thread?

I dont understand what you mean. I read the thread of course. Not what YOU posted though because it is really long :p

Edit: Oh I guess I made a connection between hl3.txt and rpg.txt for no reason
Edit2: Maybe I made that connection because I first thought RPG.txt refers to the rocket launcher from Half-Life games :)
 
The screenshot you posted is a Source 2 folder btw.
It's a Source 2 folder but there's a hl3_imported (alongside dota 2, tf2 and l4d2) folder which clearly suggests that HL3 was imported into Source 2 from Source 1, proving that HL3 has been in development since before Source 2.
 
Maybe it's not a big deal or it's already known about. But I found a file in the DOTA 2 files called face poser_app.png that had the lambda symbol in it beside a ace marginally resembling Alyx, in my opinion. Heres the dir for anyone who wants it (I assume you know how to get to the DOTA 2 files):

dota 2 beta>core>tools>images>hlfaceposer>face poser_app.png

That was is the one of the folder on the way to these txt files. Maybe it's just a coincidence?
 
Maybe it's not a big deal or it's already known about. But I found a file in the DOTA 2 files called face poser_app.png that had the lambda symbol in it beside a ace marginally resembling Alyx, in my opinion. Heres the dir for anyone who wants it (I assume you know how to get to the DOTA 2 files):

dota 2 beta>core>tools>images>hlfaceposer>face poser_app.png

That was is the one of the folder on the way to these txt files. Maybe it's just a coincidence?
That's the icon for the Faceposer developer tool that has existed and has had the same icon since HL2. Nothing new nor related to HL3.
 
More likely an accidental leak than a deliberate one. How many Valve followers (let alone HL fans) actually dig into code? How many of those actually share this information with most of the players who don't?

But... I nitpick.

I'll say what I said in the other thread. Boring leak is boring. We've been here before multiple times. IMHO there is literally no reason for excitement anymore.

I will await the official public and commercial release of HL3, then I will expend the energy caring.
 
Back
Top