Yeah I'm not really the expert on scripting and variables and things, but yeah it is a bit odd that they conflict. Looking at both routines, they don't seem to overlap at all.
No you don't need to do that. You just need to set the variable to 0x1 before you want to make a pokemon unable to run. It automatically sets to 0x0 at the end of a script already I believe.
Ok, but things like giveitem 0x0 msg_find and other scripts also changes the value for the variables from 8000-800E. Meaning I have to add the "setvar 0x8000 0x0" after every giveitem or script events. Is there a way bypass this or I'll just have to suck it up and add the setvar 0x8000 0x0 to the end of every script?
Just in case, for toggle runaway. To change the variable. All I do is change the 0x8000 to something else, right? (so 5001 if I want the variable to be 5001).
.align 2 .Variable: .word 0x020270B8 + (0x8000 * 2) @change to var of your choice if you want
Can't. I tried setting the variable for Toggle Runaway to 5000, 5001, 8003, 8005, etc. It wouldn't work in conjunction with Shiny Charm Asm. In fact, the shiny charm 8002 0xFF (which garantees shiny) becomes "can't runaway" routine instead.