I noticed that a lot of people have been having problems with warlocks involving the skeletons leaving squads even when they're in range of the pylons. I had a look at the code and made a few changes. I didn't really test it, so it might not work, but it should help the issue, at least until an official solution is found. However, it relies on the undeads not being opposed to life by default. Not sure if that's a practical problem.
It requires the following interactions:
[INTERACTION:OTL_STOP]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:WARLOCK_CIV:ALL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:OTL_STOPPED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME][IE_TARGET:A][IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:OTL_STOPPED]
[CE_SPEED_CHANGE:SPEED_PERC:100:START:0:END:16800]
[INTERACTION:OTL_POWER_PYLON]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:CRYSTAL:ALL]
[IT_FORBIDDEN:SUPERNATURAL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:POWERED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME]
[IE_TARGET:A]
[IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:POWERED]
[SYN_AFFECTED_CREATURE:CRYSTAL:ALL]
[CE_FLASH_TILE:TILE:80:3:0:1:FREQUENCY:2000:1000:START:0:END:5600]
[CE_CAN_DO_INTERACTION:PROB:100:START:0:END:5600]
[CDI:INTERACTION:POWER_PYLON]
[CDI:TARGET_RANGE:A:25]
CDI:VERB:hum:hums in a low frequency and powers nearby pylons:NA
CDI:TARGET_VERB:starts to hum:starts to hum powered by another pylon
[CDI:MAX_TARGET_NUMBER:A:1]
[CDI:WAIT_PERIOD:300]
[SYNDROME]
[SYN_CLASS:POWERED_CONTROL]
[SYN_AFFECTED_CREATURE:CRYSTAL:ALL]
[CE_CAN_DO_INTERACTION:PROB:100:START:0:END:15600]
[CDI:INTERACTION:OTL_STOP]
[CDI:TARGET_RANGE:A:25]
[CDI:MAX_TARGET_NUMBER:A:1]
[CDI:TARGET:A:LINE_OF_SIGHT]
[INTERACTION:TURN_OTL_START]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:WARLOCK_CIV:ALL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:TURN_OTL_START]
[IT_CANNOT_HAVE_SYNDROME_CLASS:OTL_STOPPED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME][IE_TARGET:A][IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:TURN_OTL_START]
[CE_CAN_DO_INTERACTION:START:4200:END:8400]
[CDI:INTERACTION:TURN_OTL_READY]
[CDI:TARGET:A:SELF_ONLY]
[CDI:WAIT_PERIOD:0]
[CDI:FREE_ACTION]
[INTERACTION:TURN_OTL_READY]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:WARLOCK_CIV:ALL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:TURN_OTL_READY]
[IT_CANNOT_HAVE_SYNDROME_CLASS:OTL_STOPPED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME][IE_TARGET:A][IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:TURN_OTL_READY]
[CE_CAN_DO_INTERACTION:START:4200:END:16800]
[CDI:INTERACTION:TURN_OTL_WARN]
[CDI:TARGET:A:SELF_ONLY]
[CDI:WAIT_PERIOD:0]
[CDI:FREE_ACTION]
[CE_CAN_DO_INTERACTION:START:8400:END:16800]
[CDI:INTERACTION:TURN_OTL_ACTIVATE]
[CDI:TARGET:A:SELF_ONLY]
[CDI:WAIT_PERIOD:0]
[CDI:FREE_ACTION]
[INTERACTION:TURN_OTL_WARN]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:WARLOCK_CIV:ALL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:TURN_OTL_WARN]
[IT_CANNOT_HAVE_SYNDROME_CLASS:TURN_OTL_ACTIVATE]
[IT_CANNOT_HAVE_SYNDROME_CLASS:OTL_STOPPED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME][IE_TARGET:A][IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:TURN_OTL_WARN]
[CE_FLASH_TILE:TILE:'?':5:0:1:FREQUENCY:250:500:START:0:END:250]
[INTERACTION:TURN_OTL_ACTIVATE]
[I_SOURCE:CREATURE_ACTION]
[I_TARGET:A:CREATURE]
[IT_AFFECTED_CREATURE:WARLOCK_CIV:ALL]
[IT_CANNOT_HAVE_SYNDROME_CLASS:TURN_OTL_ACTIVATE]
[IT_CANNOT_HAVE_SYNDROME_CLASS:OTL_STOPPED]
[IT_LOCATION:CONTEXT_CREATURE]
[I_EFFECT:ADD_SYNDROME][IE_TARGET:A][IE_IMMEDIATE]
[SYNDROME]
[SYN_CLASS:TURN_OTL_ACTIVATE]
[CE_ADD_TAG:OPPOSED_TO_LIFE:START:0:END:1200]
And in the creature file, ghouls and skeletons should have [OPPOSED_TO_LIFE] removed and be given the following interaction in place of REMOVE_OPPOSED_TO_LIFE:
[CAN_DO_INTERACTION:TURN_OTL_START]
[CDI:TARGET:A:SELF_ONLY]
[CDI:FREE_ACTION]
[CDI:WAIT_PERIOD:0]
while warlocks should have their remove_opposed_to_life interactions replaced by
[CAN_DO_INTERACTION:OTL_STOP]
[CDI:TARGET:A:LINE_OF_SIGHT]
CDI:VERB:warlock control:takes control over the undead servant again:NA
[CDI:TARGET_RANGE:A:50]
[CDI:FREE_ACTION]
and change the name of POWER_PYLON to OTL_POWER_PYLON.