Broken after the May update

2026-05-07 10:29:11.933 +04:00 [WRN] Failed to compile AutoDemoRecordLite.cs - 'BasePlayer' does not contain a definition for 'StartDemoRecording' and no accessible extension method 'StartDemoRecording' accepting a first argument of type 'BasePlayer' could be found (are you missing a using directive or an assembly reference?) (L: 112 | P: 20) | Removing from project

They got renamed to: StartServerDemoRecording and StopServerDemoRecording

Find them on line 112, and 123 and change them.

@firingLaserz Thanks, I tried doing that. Let's see if it works.

 

UPD: The plugin did indeed load without any errors. After sending a report to Discord, a message appears indicating that recording has started, and then 15 minutes later (that’s how I have it set up) a message appears indicating that recording has stopped, but nothing is saved in the demos folder on the server... The server logs are empty, there's simply nothing there

I also discovered another issue, but it’s most likely related to the fact that the player left the server and the recording didn’t stop after they left

Failed to run a 900.00 timer in 'AutoDemoRecordLite v1.0.82' (NullReferenceException: Object reference not set to an instance of an object)
at Oxide.Plugins.AutoDemoRecordLite.StopRecording (BasePlayer player, Oxide.Plugins.AutoDemoRecordLite+ARReport report) [0x00089] in <91a38cc2b0a24e67bda64800f28d7e0a>:0

at Oxide.Plugins.AutoDemoRecordLite+<>c__DisplayClass15_0.<StartRecording>b__0 () [0x00000] in <91a38cc2b0a24e67bda64800f28d7e0a>:0

at Oxide.Core.Libraries.Timer+TimerInstance.FireCallback () [0x00018] in <15f61ddda771464d8246ebdce8ff4811>:0

All in all, I think this plugin really needs an update after five years of stable operation.

The methods just got renamed, their should be no change as to the demos themselves. When a player disconnects the demo should stop immediately, and you would see that in console or the servers logfile. It's a simple plugin relying on the hooks umod keep updated and the server demo recording itself, just because it's old doesn't mean much.

You could be on to something about the NRE error though. Try this quick fix adding a if "player is null" check into the StopRecording method. It should stop the NRE and print the Puts instead (just remove the Puts() if you want to ignore it all together) - You wont get a Discord_Notify_RecordStop but I assume that's already the case in this instance. Another hook method would need to be added but that's not even a guarantee because some players disconnect in a weird way that hooks don't even know.

void StopRecording(BasePlayer player, ARReport report) {
	if (player is null) { Puts("player null, disconnected before StopRecording could run"); return; }
	var msg = string.Format(GetMsg("Recording Ended"), player.UserIDString, config.AR_Report_Length);
​