I'm sorry to bring you bad news, but unfortunately it's not really possible to prevent cheating client-sided. Anything which runs on the client is under the control of the client. You can use some commercial anti-cheat tool which spies on the users personal files looking for cheats, but those are expensive, ethically questionable and can not really prevent cheating either. They can make it harder, but anti cheat tools are also software which runs locally and thus can be hacked by a determined user.
But speed hacks and flying hacks are easy to fix server-sided by a simple heuristic which detects when players move in ways they are not supposed to.
Wallhacks can be partially prevented by changing your network protocol to do some visibility calculations on the server and not send position updates about objects to clients which should be unable to see them.
Automation hacks like aimbots are pretty hard to prevent, because a sufficiently advanced aimbot is indistinguishable from a very good player. But you can at elast try to detect naive aimbots by a server-sided heuristic which detects unnatural rotation movements (when the rotation change per tick is low, then suddenly very fast for just a single tick, ends up pointing exactly at an opponent and is then very slow again, then that's very suspicious). After your first couple bans, the cheat programmers will get creative and try to make the movements of their aimbots more natural (which will also make them perform worse). You can make it a lot harder for them to figure out how much they need to nerf their aimbots when you don't kick people immediately but wait a couple days.