Help with AssetBundles and self patching???

Hey! So I’ve been working on a project for the past about year, and we’ve done some extensive work on it but I plan to update and add content after its released (as well as, of course, fixing bugs and the like). My problem is that i’d rather not have my userbase have to re-download the game by hand every time there’s an update! that would be a pain!!!
Now, i’d like to preface this with the fact that i HATE using pre-made code from other unity users. Im sure their work is fantastic! its just not for me. I prefer to learn and create, as i go, as opposed to just taking the easier way out and using something someone else made. that said: there often comes a time where i will then need to ask advice. anywho:

my goal is to be able to create a custom “updater” either internally or via a launcher (im fine with either). My current problem is i honestly don’t really know where to start with this whole task. My first instinct was to look at AssetBundles however i don’t fully understand them and the unity documentation wasn’t a great help.

the updates will very likely contain script changes, prefab changes, and much object editing (by way of inspector variables being changed). so my concern is that AssetBundles aren’t a great way to change things but instead Add things. If im wrong let me know!

So basically im asking if i can do the updates i need to with the AssetBundles system, how hard will it be?, and what is the best way to go about it?

thanks for the assistance!!!

Assetbundles are a good way to update content(Modles textures and more) but not scripts.
You can include scripts into the asset bundles but you need reflections to call the code… not a nice way to handle that.
You would have to download whole resources files for the level(s) or generate different / patch files that contain only changed parts of a file and you would have to combine the original file with the patch file yourself.

Note that some platforms (like iOS) don’t allow you to download additional code (e.g: scripts).