Moving Bases - Vanilla-Expanded/VanillaExpandedFramework GitHub Wiki
With the moving bases system, you can make faction bases that don't stay stationary in the world map, but move around over time.
The system is handled through a Def, MovingBaseDef, which inherits from WorldObjectDef, therefore having all the fields from that, plus its own:
	 public FactionDef baseFaction;
 	 public int ticksPerMove = 3300;
 	 public IntRange initialSpawnCount;
	 public bool initialSpawnScalesWithPopulation;
 	 public string attackConfirmationMessage;You need to make a Def in an xml file. For example, here are the merchant guilds in VFE Medieval 2:
<VEF.Planet.MovingBaseDef>
		<defName>VFEM2_MerchantGuildCaravan</defName>
		<label>merchant's guild</label>
		<description>A group of traveling people.</description>
		<baseFaction>VFEM2_MerchantGuild</baseFaction>
		<worldObjectClass>VFEMedieval.MerchantGuild</worldObjectClass>
		<texture>MapIcons/TradingGuild</texture>
		<useDynamicDrawer>true</useDynamicDrawer>
		<expandingIcon>true</expandingIcon>
		<expandingIconTexture>MapIcons/Expanding/TradingGuildExpanding</expandingIconTexture>
		<expandingIconPriority>10</expandingIconPriority>
		<initialSpawnCount>6</initialSpawnCount>
		<initialSpawnScalesWithPopulation>True</initialSpawnScalesWithPopulation>
		<attackConfirmationMessage>You are about to attack the Merchants' Guild, which will make that faction hostile. Are you sure you want to do that?</attackConfirmationMessage>
</VEF.Planet.MovingBaseDef>Bear in mind that extra functionality for it is provided in its custom worldObjectClass, which you can see here