|
1 |
| -[](https://github.com/NeKzor/SourceAutoRecord/projects/3) |
2 |
| -[](https://github.com/NeKzor/SourceAutoRecord/projects/2) |
| 1 | +[](https://github.com/NeKzor/SourceAutoRecord/projects/3) |
3 | 2 | [](https://github.com/NeKzor/SourceAutoRecord/releases)
|
4 | 3 |
|
5 |
| -**SourceAutoRecord** allows automatic demo recording, automatic binding, demo parsing, session timing and [much more](#features). |
6 |
| - |
7 |
| -## Overview |
8 |
| -- [Supported Games](#supported-games) |
9 |
| -- [Features](#features) |
10 |
| - - [Automatic Demo Recorder](#automatic-demo-recorder) |
11 |
| - - [Automatic Binding](#automatic-binding) |
12 |
| - - [Demo Parser](#demo-parser) |
13 |
| - - [Session Timing](#session-timing) |
14 |
| - - [Summary](#summary) |
15 |
| - - [Timer](#timer) |
16 |
| - - [Average](#average) |
17 |
| - - [Checkpoints](#checkpoints) |
18 |
| - - [HUD](#hud) |
19 |
| - - [Optional](#optional) |
20 |
| - - [Stats](#stats) |
21 |
| - - [Cheats](#cheats) |
22 |
| - - [Movement](#movement) |
23 |
| - - [TAS](#tas) |
24 |
| - - [Routing](#routing) |
25 |
| - - [Unlocked](#unlocked) |
26 |
| - - [Config](#config) |
27 |
| -- [Mapping](#mapping) |
28 |
| - - [Start & Stop Triggers](#start--stop-triggers) |
29 |
| - - [With Checkpoints](#with-checkpoints) |
30 |
| -- [Credits](#inspired-by) |
31 |
| - |
32 |
| -## Supported Games |
33 |
| -- Portal 2 |
34 |
| -- Aperture Tag |
35 |
| -- Portal Stories: Mel |
36 |
| -- Portal |
37 |
| -- The Stanley Parable |
38 |
| -- The Beginners Guide |
39 |
| -- Half-Life 2 |
40 |
| - |
41 | 4 | ## Features
|
42 | 5 |
|
43 |
| -### Automatic Demo Recorder |
44 |
| -- `sar_autorecord <0-1>` keeps recording a demo when loading from a save |
45 |
| - |
46 |
| -### Automatic Binding |
47 |
| -- `sar_bind_save <key> [save_name]` binds automatically `save save_name` to the given key when loading |
48 |
| -- `sar_save_flag [echo_message]` appends `;echo message` to the save bind |
49 |
| -- `sar_bind_reload <key> [save_name]` binds automatically `save save_name;reload` to the given key when loading |
50 |
| -- `sar_unbind_save` unbinds the key and stops automatic binding for `sar_bind_save` |
51 |
| -- `sar_unbind_reload` unbinds the key and stops automatic binding for `sar_bind_reload` |
52 |
| - |
53 |
| -Save files will be named _2, _3, etc. |
54 |
| -File indexing will be synced automatically with the demo recorder when recording with demos. |
55 |
| - |
56 |
| -### Demo Parser |
57 |
| -- `sar_time_demo [demo_name]` parses a demo and prints some useful information about it |
58 |
| - - Passing an empty string will take the last played demo from the demo player |
59 |
| -- `sar_time_demo_dev` prints demo's console commands and packets when using `sar_time_demo` |
60 |
| - - Use `con_log [file_name]` to export the extra data into a file |
61 |
| -- `sar_time_demos [demo_name] [demo_name2] [etc.]` parses multiple demos |
62 |
| - |
63 |
| -### Session Timing |
64 |
| -- `sar_session` prints current tick count since the server has loaded |
65 |
| - |
66 |
| -##### Summary |
67 |
| -- `sar_sum_here` starts saving the total tick count of each session |
68 |
| -- `sar_sum_stop` stops counting |
69 |
| -- `sar_sum_reset` resets the counter |
70 |
| -- `sar_sum_result` prints the result of all saved sessions |
71 |
| -- `sar_sum_during_session <0-1>` counts current session too |
72 |
| - |
73 |
| -### Timer |
74 |
| -- `sar_timer_start` starts or restarts the timer, counting from invocation |
75 |
| -- `sar_timer_stop` stops timer |
76 |
| -- `sar_timer_result` prints result |
77 |
| -- `sar_timer_always_running <0-1>` doesn't stop the timer when disconnecting from server |
78 |
| - |
79 |
| -Mappers can use this for accurate timing, [see below](#mapping). |
80 |
| - |
81 |
| -##### Average |
82 |
| -- `sar_avg_start` starts calculating the average of the timer |
83 |
| -- `sar_avg_stop` stops calculation |
84 |
| -- `sar_avg_result` prints result |
85 |
| - |
86 |
| -##### Checkpoints |
87 |
| -- `sar_cps_add` saves current timer value |
88 |
| -- `sar_cps_clear` resets all saved values |
89 |
| -- `sar_cps_result` prints result of all checkpoints |
90 |
| - |
91 |
| -### HUD |
92 |
| -- `sar_hud_text <0-1>` draws given string |
93 |
| -- `sar_hud_position <0-1>` draws player's position |
94 |
| -- `sar_hud_angles <0-1>` draws player's view angles |
95 |
| -- `sar_hud_velocity <0-2>` draws player's velocity |
96 |
| -- `sar_hud_session <0-1>` draws current session value |
97 |
| -- `sar_hud_last_session <0-1>` draws value of latest completed session |
98 |
| -- `sar_hud_sum <0-1>` draws summary value of sessions |
99 |
| -- `sar_hud_timer <0-1>` draws timer value |
100 |
| -- `sar_hud_avg <0-1>` draws current average of timer |
101 |
| -- `sar_hud_cps <0-1>` draws last checkpoint value of timer |
102 |
| -- `sar_hud_demo <0-1>` draws current name, tick and time of demo recorder or demo player |
103 |
| -- `sar_hud_jumps <0-1>` draws total jump count |
104 |
| -- `sar_hud_portals <0-1>` draws total portal count |
105 |
| -- `sar_hud_steps <0-1>` draws total step count |
106 |
| -- `sar_hud_distance <0-1>` draws calculated jump distance |
107 |
| -- `sar_hud_trace <0-1>` draws tracer result |
108 |
| -- `sar_hud_velocity_peak <0-1>` draws velocity peak |
109 |
| -- `sar_hud_jump <0-1>` draws last jump distance |
110 |
| -- `sar_hud_jump_peak <0-1>` draws jump distance peak |
111 |
| - |
112 |
| -##### Optional |
113 |
| -- `sar_hud_default_spacing` space between HUD elements |
114 |
| -- `sar_hud_default_padding_x` additional padding on x-axis |
115 |
| -- `sar_hud_default_padding_y` additional padding on y-axis |
116 |
| -- `sar_hud_default_font_index` font index |
117 |
| -- `sar_hud_default_font_color` font color |
118 |
| - |
119 |
| -### Stats |
120 |
| -- `sar_stats_jumps` prints jump stats |
121 |
| -- `sar_stats_jumps_reset` resets jump stats |
122 |
| -- `sar_stats_steps` prints step stats |
123 |
| -- `sar_stats_steps_reset` resets step stats |
124 |
| -- `sar_stats_velocity` prints velocity stats |
125 |
| -- `sar_stats_velocity_reset` resets velocity stats |
126 |
| -- `sar_stats_reset` resets all stats |
127 |
| -- `sar_stats_jumps_xy <0-1>` saves jump distance peak as 2d-vector |
128 |
| -- `sar_stats_velocity_peak_xy <0-1>` saves velocity peak as 2d-vector |
129 |
| -- `sar_stats_auto_reset <0-2>` resets all stats automatically |
130 |
| - |
131 |
| -### Cheats |
132 |
| -- `sar_teleport` teleports player to a saved location |
133 |
| -- `sar_teleport_setpos` saves current location for teleportation |
134 |
| -- `sar_disable_challenge_stats_hud <0-1>` disables the challenge stats HUD in challenge mode (Portal 2) |
135 |
| - |
136 |
| -#### Movement |
137 |
| -- `sar_autojump <0-1>` enables tick-perfect jumping on the server |
138 |
| -- `sar_jumpboost <0-2>` enables ABH or HL2-Bhop movement on the server (Portal 2 Engine) |
139 |
| -- `sar_aircontrol <0-1>` enables more air-control movement on the server (Portal 2 Engine) |
140 |
| -- `+bhop` makes the player jump (The Stanley Parable) |
141 |
| - |
142 |
| -#### TAS |
143 |
| -- `sar_tas_frame_at <frame> [command]` adds a command frame to the queue at specified frame |
144 |
| -- `sar_tas_frame_after <delay> [command]` adds a command frame to the queue, relatively to last added frame |
145 |
| -- `sar_tas_frames_at <frame> <interval> <last_frame> [command]` adds command frame multiple times to the queue at specified frame |
146 |
| -- `sar_tas_frames_after <delay> <interval> <length> [command]` adds command frame multiple times to the queue, relatively to last added frame |
147 |
| -- `sar_tas_start` starts executing queued commands |
148 |
| -- `sar_tas_reset` stops execution and clears all queued commands |
149 |
| -- `sar_tas_autostart <0-1>` starts playing queued commands automatically on first frame after a load |
150 |
| - |
151 |
| -Here is a simple TAS of [Propulsion Catch](https://gist.github.com/NeKzor/5ba4fd9bafc80855a395b4a5f03f1c6e). |
152 |
| - |
153 |
| -#### Routing |
154 |
| -- `sar_trace_a` saves first location to measure a distance |
155 |
| -- `sar_trace_b` saves second location to measure a distance |
156 |
| -- `sar_trace_result` prints calculated distance between saved locations |
157 |
| -- `sar_velocity_peak` prints latest velocity peak |
158 |
| -- `sar_velocity_peak_reset` resets saved velocity peak |
159 |
| -- `sar_velocity_peak_xy <0-1>` saves 2D velocity peak |
160 |
| - |
161 |
| -##### Unlocked |
162 |
| -- `sv_bonus_challenge` (Portal 2) |
163 |
| -- `sv_accelerate`* |
164 |
| -- `sv_airaccelerate`* |
165 |
| -- `sv_friction`* |
166 |
| -- `sv_maxspeed`* |
167 |
| -- `sv_stopspeed`* |
168 |
| -- `sv_maxvelocity`* |
169 |
| -- `sv_footsteps`* |
170 |
| -- `sv_transition_fade_time` (Portal 2)* |
171 |
| -- `sv_laser_cube_autoaim` (Portal 2)* |
172 |
| -- `ui_loadingscreen_transition_time` (Portal 2)* |
173 |
| -- `hide_gun_when_holding` (Portal 2) |
174 |
| - |
175 |
| -*Flagged as cheat. |
176 |
| - |
177 |
| -### Config |
178 |
| -- `sar_cvars_save` saves important ConVar values to a file |
179 |
| -- `sar_cvars_load` loads saved ConVar values |
180 |
| - |
181 |
| -## Mapping |
182 |
| - |
183 |
| -### Start & Stop Triggers |
184 |
| -- Place a `point_servercommand` object anywhere in the map |
185 |
| -- Use two `trigger_multiple` objects for start and stop |
186 |
| - - Add `OnStartTouch` as output |
187 |
| - - Target the created servercommand object |
188 |
| - - Select `Command` as input |
189 |
| - - Use `sar_timer_start` as parameter |
190 |
| - - Do the same for the second trigger with `sar_timer_stop` |
191 |
| - |
192 |
| - |
193 |
| - |
194 |
| -### With Checkpoints |
195 |
| -- Use `trigger_multiple` object for start |
196 |
| - - Trigger `sar_timer_start` |
197 |
| - - Trigger `sar_cps_clear` |
198 |
| - - Enable checkpoint object |
199 |
| -- Use `trigger_multiple` object for checkpoint |
200 |
| - - Trigger `sar_cps_add` |
201 |
| - - Disable itself |
202 |
| -- Use `trigger_multiple` object for stop |
203 |
| - - Trigger `sar_timer_stop` |
204 |
| - |
205 |
| - |
206 |
| - |
| 6 | +- Automatic Demo Recorder |
| 7 | +- Automatic Binding |
| 8 | +- Demo Parser |
| 9 | +- Session Timing |
| 10 | +- HUDs |
| 11 | +- A lot of cheats |
| 12 | + |
| 13 | +## Support |
| 14 | + |
| 15 | +Game|Windows|Linux |
| 16 | +---|:-:|:-: |
| 17 | +Portal 2|✔|✔ |
| 18 | +Aperture Tag|✔|✔ |
| 19 | +Portal Stories: Mel|✔|✔ |
| 20 | +The Stanley Parable|✔|✔ |
| 21 | +The Beginners Guide|✔|✔ |
| 22 | +Half-Life 2|✔|✔ |
| 23 | +Portal|✖|✔ |
| 24 | + |
| 25 | +## Docs |
| 26 | + |
| 27 | +- [Issues & Troubleshooting](doc/issue.md) |
| 28 | +- [Mapping](doc/mapping.md) |
| 29 | +- [Maps](doc/maps.md) |
| 30 | +- [Showcases](doc/showcases.md) |
| 31 | +- [Tool-Assisted-Speedruns](doc/tas.md) |
| 32 | +- [Console Commands & Variables](https://nekzor.github.io/cvars/sar) |
207 | 33 |
|
208 | 34 | ## Inspired By
|
209 |
| -- [SourcePauseTool](https://github.com/YaLTeR/SourcePauseTool) |
210 | 35 | - [SourceDemoRender](https://github.com/crashfort/SourceDemoRender)
|
| 36 | +- [SourcePauseTool](https://github.com/YaLTeR/SourcePauseTool) |
211 | 37 | - [SourceSplit](https://github.com/fatalis/SourceSplit)
|
212 | 38 | - [cstrike-basehook-linux](https://github.com/aixxe/cstrike-basehook-linux)
|
0 commit comments