I'll give you the basic idea behind mine.

I have a text file on my server that has each file name and its version number.
When I check for updates I check this file for the versions that are on the script. If any version number is greater or there is something on the server that isnt on my script it says there is an update available.

When you download, I read those .mrc files and overwrite the files in my script. Starting by write -c the file in my script.

This means I need to manually keep that text file on my server up to date. Then in each script.

on *:unload:/remini mirc.ini version $nopath($script)
on *:start:/writeini mirc.ini version $nopath($script) 1

This is where the version information is kept. This shows version 1.