Source Engine Demo Tool (SEDT) - Cancelled


Hey there,
while doing a segmented Portal run, i was sick of either overwriting my Demos all the time or having to rename the demos after each run. So I wrote a small tool that changes the demo filenames and can even put them in a new subdirectory to the usual Portal Folder.
This allows you to count the number of demos you recorded, prevents accidental overwriting of successful demos and so on.
Id like to share the Project (which is still way Alpha) with any Source Runner.
Please tell me what you think, id be happy to add new features to it.

PLEASE NOTE: The Program is still in a very early stage. Use it thoughtfully, you can get it to crash thousandfold, so why even try? Try to get it working before trying to crash it. :wink: I am planning a full rewrite which should be fool-proof.
I can supply the sources (C++) if you like, please note here that the code is probably the worst ever written. As I said, full rewrite upcoming.

A readme is included.


  • Create demonames via a format specifier.
  • Creates subdirectories if required.
  • Unique demonames - no file gets overwritten (as long as your format is correct :wink: )
  • Logging (for debug purposes)
  • Wonderful GUI :smiley:
  • NEW! Format specifiers for map, player name, and time! Save your successful demos in the sourceruns naming scheme


  • Update tool
  • GUI (done)
  • Changing parameters while the app is running (started)
  • A Button (or global hotkey) to automatically save successful demos with another naming format (done)
  • Easier installation, maybe an installer (probably unecessary)
  • Demo playback support + demo browser
  • Save backup + demo matching

Any Questions, just ask.
If the tool does not work, read the readme. If it still doesnt work after having done the installation as described in the readme, please pm me with the following information:

  • OS (Win XP, Vista, Win7)
  • The log file generated (If there is)
  • Your config.cfg file
  • Additional information, such as error messages etc.
  • Has the SEDT.cfg been created?

This helps alot. Thank You.

cu, CBenni


I’m at work right now, so I’m unable to try it out right now. Still, this is a very nice initiative and something that could really come in quite handy. I love it when people do things like these. Thanks <3


Oh wow, this sounds great! Once I get home, I definitely need to try this out. This would also be neat to implement into blamod, whenever we finish that. I went ahead and stickied this.


I guess this works in any Source Engine game that supports demo recording. Cannot try it tho, as the only source engine games are Portal 1 and 2.
Anyone wanna try it for Half-Life? thx.
cu, CBenni


It seems it cant read all symbols. I enter “location=C:\Half-Life\valve” in config.
However, only “C:\Half” shows up in the program.


This is a known bug, caused by the config File parser. It will be fixed in the next Update.
Sorry about that. And thanks for testing!
cu, CBenni


GUI is done, download here

I have tested it on my secondary PC, it worked fine. Hope the same thing counts for true for you.
cu, CBenni


Hello fine sir. Could I get the source for this application?


I will send it to you as soon as i get home.
I rewrote the entire thing yesterday as i was facing unsolvable Exceptions -.-

Now it is all wonderful and OOP :smiley:
May I ask what you intend to do with it?

cu, CBenni


Update 2.1:
Full rewrite of the program and new features:

  • Save the last Demo to a different folder+name via a Button/Global Hotkey (default: ALT+S)
  • Now requires way less CPU power (quite embarrassing tbh)
  • When SEDT isnt running, trying to record a demo wont overwrite the last recorded demo after 2 segments, it will show a message ingame and record to defaultdemo.dem
  • Changed config file setting names (Requires you to Update the config.cfg, im sorry)
  • Added an awesome taskbar notification area icon and a notification bar inside SEDT :wink:

This release definitely isn’t bugfree, I havent been testing every part of it. On top of that I probaby threw in a hundred bugs by hardcore coding for 11 hours straight yesterday :smiley:

cu, CBenni


Tried it for Half-Life 1, no problems at all.

Next step would be to backup save-files as well. and put matching saves and demos in same folder.


Added to Roadmap. Thanks for that inspiration!
New things to add:

  • Demo playback support, demo browser
  • Save backup + demo matching
  • Support for multiple games/game profiles

Oh, and I am rewriting that thing again -.- C++/CLI SUCKS. I continue on using C#, which means the next Update will come in at least 1 week, maybe even more. Uni is a lot of work atm.
cu, CBenni


Ive had this lying around on my HDD for a long time now, here it is (finally)
The final version of SEDT.
I am not gonna work on it for the next time (as long as there arent any bugs making it impossible to use). So, bugfixes, no more.

  • Added options editor
  • Added support for multiple profiles (e.g. Portal, hl2, or whatever you like)
  • Added support for saving and loading savegames
  • Tons of bugfixes
  • Added tons of bugs

… i guess that basically it.


cu, CBenni


Just recently, I found out about the .dem file header in a valve developer wiki. This should make it easy to add the possibility to add the length of the demo into the filename, when saving (=copying and renaming) a sucessful demo!

Great news, keep tuned; new update coming as soon as I have finally written my next exam.

cu, CBenni


Thanks for making this, but I’ve got a slight problem. I can record demos and save games OK (in Portal 2) but the load function isn’t working. The SEDTload.cfg file is not being created in the cfg folder, only SEDT.cfg and SEDTsave.cfg are appearing.


Hi, I’ve found another slight problem. When trying to save a game to the path custom%n%t%n%u.sav, it won’t save. I get an invalid filename error in the console. I think the reason for this is that SEDT is trying to save relative to the default Portal 2 save directory, so it’s trying to save in portal2\SAVE[my portal save dir]\custom%n%t. The custom directory isn’t there, it’s in the portal2 dir, so it won’t save.

I can get around this by removing the “custom%n%t” part from the save path in the SEDT options. When I do this, the game is saved in my Portal 2 save directory where all my standard Portal 2 saves are (quicksaves and autosaves etc). But unfortunately, I can only save 1 file there, as the %u parameter doesn’t seem to be included in the filename of the save file, even though I have the filename set to be %n%u.sav in the options. It just saves it as %n.sav, so it overwrites the previous save each time I save.

Sorry about all this. Thanks if you can help.


I have tested it on my computer now, and I found the error:
The save basepath (in SEDTOptions) has to be exactly the folder in which a savegame is saved when entering “save asdf” in console. For me, that is
SAVE/[very long number]
Using this path worked perfectly for me.
Happy to know someone actually USES SEDT :smiley:

cu, CBenni


That’s very helpful, thank you.

Thank you for making SEDT, I’m not sure how everyone else records demos, but it seems easier using this.


Ok, the new update is here, as requested. I have updated the successful demo saving and format specification. The tags are no longer called %a,%b,… but instead, speaking names such as [name], [date], [counter].
On top of that, you can now include the tags [map], [player], [ticks], [time] and [jumps] for successful demos, which allows you to save your demos to, for example:

Format specifier: name]-[map]-[player]-[ticks]ticks
Example result: PDPest-escape_01-cbenni-123ticks.dem


Upon urgent request, I updated again:

  • Lots of bugfixes
  • Try pressing the “Analyze Demos” button :wink: