Post subject: Source TASing (Portal & Half-Life 2) explanations
Joined: 6/14/2014
Posts: 47
Hello, I am PackSciences, A lot of people made new threads on tasvideos.org to publish "TAS" which weren't TAS, these were called "Time-scale assisted" which is not the same thing. If you are too lazy to read all that's below, here is a video I made about it. There is a tool called Source Pause Tool, which has a lot of commands that make TASing possible in OrangeBox Engine (Portal, Half-Life 2, Half-Life 2: Episode One, Half-Life 2: Episode Two, and their mods) games. Unfortunately, we don't have yet the tools to manipulate the RNG which makes our TAS unconsistent on some points. What is NOT consistent in TASing :
    Objects that acts freely in the air (a cube that falls from a cube dropper will not have the same result every time you run the TAS) Objects that you hold and that meet a wall or another item (which makes propclipping glitch impossible in TAS) Non-playable characters
So all glitches are possible in TAS except propclipping glitch and NPC teleports.
I want to run a TAS on my own computer, can I ?
Sure, grab the latest version of SPT (currently v0.8) and place it on your game folder. You need the game, from SteamPipe or the SourceUnpack, both works. Then download the .cfg file AND the .sav file (that are used currently for TASing). Place the .cfg file in your game folder/cfg and the save file on your game folder/save. Then type the following (I bind my keys to 1 and 2 to run the TAS) :
plugin_load spt
bind 1 "load <savename>"
bind 2 "exec <cfgname>
Finally press 1, wait for the loading screen and SPT should pause automatically then press 2 and the TAS will run.
I want to understand how it works, can you explain, please ?
Sure, here is an example from Half-Life 2: Sniper's Episode :
// sv_cheats 1
// host_framerate 0.015
// fps_max 60
// load TAS19

echo Hi Fnzzy, thanks for encoding
echo Would you like some coffee or tea ?
unpause
-attack
-attack2
-duck
-back
-moveleft
+moveright
_y_spt_pitchspeed 0
_y_spt_yawspeed 0
+forward
-back
-jump
-use
_y_spt_setangles 0 -90

record TAS_Pack_Sniper
echo Hi Fnzzy, I am using TAS_Pack_Sniper as a demo name
echo Due to the fact Chinese_Soup's mod doesn't have a proper end, please let the demo run and then stop
_y_spt_afterframes_reset

_y_spt_afterframes 25 "+jump"
_y_spt_afterframes 90 "-jump"
_y_spt_afterframes 91 "+jump"
 _y_spt_afterframes 110 "+use"
_y_spt_afterframes 112 "-use"
_y_spt_afterframes 150 "-moveright; -jump; _y_spt_setangles 0 -63"
_y_spt_afterframes 180 "-moveright; +jump; _y_spt_setangles 0 -70"
_y_spt_afterframes 200 "+duck; -jump; +forward"
_y_spt_afterframes 203 "-forward"
_y_spt_afterframes 210 "_y_spt_setangles 0 -180; -forward; +moveleft"
_y_spt_afterframes 230 "-moveleft; +forward; _y_spt_setangles 0 -169; +moveright; -duck"
_y_spt_afterframes 280 "_y_spt_setangles 0 170; +moveright; +forward"
_y_spt_afterframes 305 "+forward; -duck; +moveright; -jump; _y_spt_setangles 3.72 -70.21"
_y_spt_afterframes 400 "+forward; -duck; +moveright; +jump; _y_spt_setangles 3.72 -70.21"
_y_spt_afterframes 400 "+forward; -duck; +moveright; -jump; _y_spt_setangles 3.72 -70.21"
_y_spt_afterframes 460 "+forward; -duck; +moveright; +jump; _y_spt_setangles 3.72 -70.21"
_y_spt_afterframes 500 "-forward; -duck; -moveright; -jump; _y_spt_setangles 4.05 -59.40"
_y_spt_afterframes 505 "+attack; echo Last input frame 505"

First, I remind me that I should use framerate command for video rendering, because I always forget.
// sv_cheats 1
// host_framerate 0.015
// fps_max 60
// load TAS19
Then, I insert some jokes with the "echo" command (it prints a string on the console command) and I like to play with my fabulous video encoder, Fnzzy. Then, I unpause the game (which is logical because you should unpause the game to play) and sets all my inputs for the frame 0.
unpause
-attack
-attack2
-duck
-back
-moveleft
+moveright
_y_spt_pitchspeed 0
_y_spt_yawspeed 0
+forward
-back
-jump
-use
_y_spt_setangles 0 -90
The inputs commands are commands that are in the game, not in SourcePauseTool Then, you need to use "reset frames" command to start your TAS.
_y_spt_afterframes_reset
Finally, you need to use the afterframes command. It works like that :
_y_spt_afterframes <frame> "<commands>" 
// will exec the commands set in <commands> after tick <frame>
_y_spt_afterframes 25 "+jump" 
// will jump after 25 ticks
The SourceEngine uses the "tick" as the unit of time, not the frame. Then, you have to ask someone who is really good at video editing, like Fnzzy to make a video encode of your TAS. And here comes the result : Link to video If you have any questions, feel free to ask and I let you with some TAS work. https://www.youtube.com/watch?v=loTWcyLt_x8 https://www.youtube.com/watch?v=leYNMGk3M6M https://www.youtube.com/watch?v=xgkCTGl5w40 https://www.youtube.com/watch?v=CNCafnyhzP0 https://www.youtube.com/watch?v=iLSibfBbF4k https://www.youtube.com/watch?v=GzXI0MDYM5M I also made a tutorial in French about that : https://www.youtube.com/watch?v=ytB2z7KSd6Q And I made an other video but it's a bit outdated : https://www.youtube.com/watch?v=8rH8L1yBuKY Bye PackSciences
DwainiumB
He/Him
Player (58)
Joined: 2/2/2013
Posts: 316
Location: Where the world can see me.
Perception is the greatest deception. nitrogenesis: 04:43:04: but TAS is life nitrogenesis: 04:43:23: TAS everyday MKWii TAS Discord: https://discord.gg/z5bu44H MKWii TAS Records: https://goo.gl/ZrGKgt Currently Trying to TAS: On Hold: The Incredibles (GC) The Incredibles: Rise Of The Underminer (GC) Future: (GC) Egg Mania: Eggstreme Madness (Wii) The Adventures of Tintin: The Secret of The Unicorn Mario Kart Wii 32 Track GP
Joined: 6/14/2014
Posts: 47
Changed