User blog:Windyplains/Garrison Recruitment System

It's been some time since I last sat down to write about a new system being added to the mod and that is largely due to taking a summer vacation away from modding. Today I'd like to touch on the new garrison recruitment system coming with v0.19's release, how it works, what shaped its design and its future refinements.

One of the more tedious aspects of managing a kingdom in Warband during the mid-late game is stocking the garrisons of castles or towns that you acquire. Not only do you need to find sufficient recruits from the neighboring lands, but you also need to transport them back to the desired fief which means leaving enough space in your traveling party to accommodate this and having the time to see to it. This always seemed like the kind of task that your local Captain of the Guard should be responsible for overseeing, not the lord or king himself. With this update, that becomes the case and should add a lot of convenience in the way you oversee taking new locations.

Once per week each location under your control will attempt to hire soldiers of a specific type and tier based upon available recruits, mounts (as needed) and the funding you've allowed. In order to make this occur the following things need to be set up: Now that we've set up the above, every week your fief should hire as many soldiers from the queue that it can while staying within your set budget. You will not receive any updates or messages telling you that troops have been hired unless a fief tries to spend money towards the queue and is unable to due to insufficient treasury funds. In that event you'll be notified of that condition each week until you entire disable recruitment or allocate more funding to that fief.
 * Garrison recruitment needs to be enabled. This can be done by visiting the Garrison Queue UI and checking the aforementioned box. This is enabled automatically whenever you allocate treasury funds towards recruiting.
 * The fief's treasury must have funds available to support the budget. Funding used to support recruitment is done from the fief's treasury instead of pulling directly from the player and I'll explain why below.
 * The queue needs to be populated with requests. Hopefully this part is obvious, but you'll need to tell the queue what you want hired and in what quantities. This is accomplished by visiting the Garrison Recruitment UI.
 * A spending plan needs to be set. This is your choice of using a Focused or Split spending plan for the queue and will be explained in more detail below. For now just know that it defaults to the Split Spending design.

Setting up the funding from your fief's treasury to its garrison recruitment can be done in two places. The first is through the Center Finance UI that can be found when visiting the "manage this town" -> "Finances" link. Here you will find a new slider added on the right of the screen that allows you to set up how much you want budgeted to that fief's recruitment efforts on a weekly basis. You may also note that the bottom of the finances list now splits showing how much money is saved to the treasury each week and what is sent to you.

The second method is by visiting the Garrison Queue UI where you'll find a similar slider right under the menu toggle for changing budget spending types. In each case you need to set the slider to the value you desire and then click the "Apply" button that appears whenever you move the slider. This will cause the change to take effect.

The reason that garrison recruitment pulls from the treasury instead of your player funds is two-fold. One, I intend to eventually move everything over to each fief's treasury with only the excess being sent to you to make things simpler. Two, and more importantly, consider that you could have multiple fiefs spread across Calradia under your control. Generally this system is designed so that you can setup an initial purchasing plan of perhaps hundreds of troops and then let the recruitment system handle that for you. Even one location could easily drain your funding, but several could do so quicker than you would have intended so having it pull from the treasury and you needing to fund the treasury makes it a conscious decision to spend that money. You can make this easier by allocating funds to the treasury on a weekly basis which is done by using the +/- 250 buttons underneath the Treasury slider or by simply making a single deposit. As long as there are sufficient funds in the treasury the recruitment system will pull what it is allotted so you can manually limit this by only making deposits if you wish.

In order to add troops to the queue you'll need to visit the Garrison Recruitment UI. This will present you with a list of available troops that can be hired at this fief. Just as the main recruitment interface changes at each location so will this list. * To add new troops you simply need to change the "Amount:" number box to the value you wish to add and then click the "Add to Queue" button for that troop. There is no upfront cost associated with adding troops to the queue. They will only be hired if their prerequisites can be met so it is important that you pay attention to those when queuing troops.
 * To remove troops from the queue you similarly change the "Amount:" number box to the value you wish to remove and then click the "Remove from Queue" button for that troop. The current number of queued troops for that type can be seen listed underneath the troop's portrait and if you select a value greater than this to remove it will simply limit your request to how many are queued.
 * If you want to inspect a troop's equipment you can simply click on the troop's portrait.

The Focused Budget option tells the recruitment system to focus on hiring the top troop type in the queue until all of the requested troops have been hired. This becomes more useful when you simply need a specific type of troop hired as quickly as possibe. In the example shown to the right: This leaves the I1 Militia at the top of the queue next week with a remaining request of 10 troops. This purchasing setup left 6 denars over from our budget of 1518 denars and that amount is applied to the next week meaning our budget will become 1524 denars for that week only.
 * 12 C2 Khudan Mounted Archers were hired for 996 denars first. This met all of the requested quantity.
 * 20 I1 Recruits were hired for 280 denars second. This met all of the requested quantity.
 * 15 I1 Militia were hired for 240 denars last. This only met 15 of 25 of the requested quantity.

The Split Budget option tells the recruitment system to spread out the budget across each requested type of troop in order to get as diverse a hiring progression as possible. This is useful to keep your garrison balanced between melee and ranged soldiers without having to micro-manage the hiring process yourself. In the example shown to the right: The remaining 159 denars will now be saved for next week causing our recruiting budget for that week to be 1677 denars (1518+159). As you can see this setup allows for a better assortment, but slowly whittles away at the queue vs. driving it from the top down. As it is the more flexible purchasing plan it is the mod's default, but you can change the spending plan for any fief individually.
 * 2 C2 Khudan Mounted Archers were hired for 166 denars. This is only 2 of 12, but keeps us under the mini-budget of 217 denars. The excess 51 denars are applied to the next troop causing their mini-budget to expand to 268 denars (217+51).
 * 19 I1 Recruits were hired for 266 denars. This is only 19 of 20 requested, but keeps us below our temporary mini-budget of 268 denars. The remaining 2 denars are applied to the next troop raising the mini-budget to 219 denars (217+2).
 * 13 I1 Militia were hired for 208 denars. This is only 13 of 25 requested, but keeps us below our temporary mini-budget of 219 denars. The remaining 11 denars are applied to the next troop raising the mini-budget to 228 denars (217+11).
 * 1 I3 Footman was hired for 131 denars. This is only 1 of 13 requested, but keeps us below our temporary mini-budget of 228 denars. The remaining 97 denars are applied to the next troop raising the mini-budget to 314 denars (217+97).
 * 2 A3 Crossbowmen were hired for 288 denars. This is only 2 of 14 requested, but keeps us below our temporary mini-budget of 314 denars. The remaining 26 denars are applied to the next troop raising the mini-budget to 243 denars (217+26).
 * 1 I4 Sergeant was hired for 300 denars. This is only 1 of 13 requested and exceeds our temporary mini-budget of 243 denars. This is done to ensure at least one of these troops gets hired if there is still money left in the initial 1518 denar budget. What happens here is that a single troop is hired and that extra cost is then passed onto the next troop.
 * 0 C5 Knight was hired. At this point only 159 denars of our initial 1518 denars remains and this is insufficient to hire even a single knight at 466 denar cost each.

I know this has already been a long blow, but I'd like to address one last aspect before wrapping it up and that is what I still would like to add to this system. In the future I plan on adding a couple of additional interfaces to this sub-group: As these two additions are modular in nature they can come down the road when they're ready.
 * Training will become relevant when troops are given the option to upgrade to higher tiers again and this interface will allow you to control that process and how much money is allocated towards it.
 * Reordering will allow you to shuffle the fief's garrison order around manually instead of having to remove and replace troops in order to push a certain type higher in the list.

Thanks for taking the time to read all of this and I hope it answers any questions you may have regarding this new addition to Silverstag. As always, I appreciate the support and encouragement everyone's given and will continue to make updates along these lines until the mod reaches the goals I have planned for it.