What is ZNC? The official wording is probably best placed to describe it "ZNC, an advanced IRC bouncer that is left connected so an IRC client can disconnect/reconnect without losing the chat session."
Basically IRC only delivers messages whilst you are connected. ZNC is something you have running on an always on server (for example a home server or even a Raspberry Pi), that keeps you connected to the IRC server and allows you to connect in at will so you don't miss out on any of the conversation.
I used a couple of resources to get this working which are listed at the bottom of this guide but I've tried to take the best parts of each one as well as add any Halloy specific parts that are required.