Set up and manage Train rosters
Configure Push and Save rules, preview the next seven days safely, publish today's roster, and record or repair historical rosters.
Train turns a saved set of rules into a daily conductor, VIP or Guardian, and wagon roster. The key distinction is that Save under This Week is a weekly strategy, while Save Schedule writes configuration. Train does not use snapshots.
Enabling Stronger player as on an unconfigured pool starts with Alliance default. For the pool’s Strength metric, choose Alliance default to follow Settings → General → Preferred strength metric when placing the stronger player as conductor or VIP / Guardian. Without an alliance preference, this option uses THP. Explicit Power and Total hero power (THP) choices keep using their selected field; existing active strength-order rules with an omitted metric continue to use THP. Changing the preference does not regenerate a saved roster.
Enable Train and choose the week strategy
Open Train from the alliance navigation. On a new setup, use Enable Train System. Once enabled, choose the current strategy under This Week:
- Push uses the Push Week rules intended to maximize VS points.
- Save uses the Save Week rules and can target a specific score.
Changing Push or Save takes effect immediately for the current week. It does not rebuild an assignment that already exists for today; use Regenerate after finishing any related schedule changes.
Configure and save the schedule
Open Schedule and work from top to bottom:
- Under Train Configuration, enable only the positions you want filled. Conductor is always enabled; VIP / Guardian and the four wagons are optional.
- Under Week Types & Settings, keep Push Weeks enabled and enable Save Weeks if you use them. Enter Target Score (Save Weeks) before using Closest to Target.
- Under Rotation Pool Requirements, optionally limit a position to selected roles or members with a minimum VS total over 7, 14, or 30 days. Add a position cooldown to prevent repeats until a chosen number of full weeks has passed; for example, use 5 for Conductor and 3 for VIP. The Top VS ranking window can independently use 1, 7, 14, or 30 days. No selected role means all roles.
- Select each enabled position and set its daily method. Quick apply to all days is the fastest starting point; adjust individual days below it. Use Manual only when an officer will pick that position each day.
- Review Rules to save and click Save Schedule.
Cooldowns apply to This position by default. To prevent a recent conductor from becoming VIP or guardian, choose Conductor and VIP / Guardian under Cooldown applies to in the VIP / Guardian rule's pool. Enable the same scope in the conductor rule's pool to prevent repeats in the other direction. Each rule uses its own pool's number of weeks; exactly that many full weeks after an assignment, the member becomes eligible again. Saved past assignments and earlier days in Week Ahead count toward the cooldown. Wagons keep separate position cooldowns, and officers can still make an explicit manual override.
Use Minimum VS points last week and Minimum donations last week for Train reward requirements that differ from your alliance goals. Both use the previous completed calendar week, based on the alliance's week start. VS uses the recorded weekly total when available, otherwise the daily scores from that week's six VS days. Missing records do not meet a positive minimum; a blank field or zero disables that minimum. These settings are independent of the ranking window. If Require last week's VS and donation targets is also enabled, members must meet those targets as well. Choose different pools for Push and Save rules when their reward minimums differ. Week Ahead recalculates the previous week for each train date; historical simulations use the selected score week.
Schedule edits stay in the browser until Save Schedule succeeds. Saving replaces the stored Train rule set with what is currently configured, so check both Push and Save columns before leaving the page.
Set reward goals for the scoring week
Use Train reward goals by scoring week to record the VS and donation totals needed to earn a Train reward for a particular week. It opens on the previous completed week using the alliance's week start and server reset. The arrows select other weeks, and Reload goal fetches the selected week's saved values. A week without a goal stays unconfigured; goals are never copied to other weeks automatically.
Choose Push preset: 100M VS / 50k donations or Standard preset: 45M VS / 30k donations, then edit the label and amounts if needed. Save reward goal stores the label and both amounts together for that week. Clear reward goal removes that week's goal. The reward goal is separate from the destination week's Push / Save Train strategy, Target Score (Save Weeks), and individual or alliance participation targets.
In a pool's Reward minimum source, choose Scoring week's saved reward goal to require that scoring week's VS and donation goal. Regular forecasts use the previous completed week for each Train date; simulations use the selected scoring week. The alternative Fixed previous-week minimums keeps the existing pool-specific requirements. Changing the source clears the fixed inputs so only one of these modes applies. Require last week's VS and donation targets remains an additional requirement when enabled.
If the scoring week's goal is missing, Today and Week Ahead show the affected week instead of silently treating everyone as eligible. Save that week's goal, then use Reload assignment or Reload forecast to fetch fresh eligibility. An officer can still use Choose outside the selected pool for an explicit manual override. Saved rosters keep their existing choices until you deliberately regenerate or replace them.
Preview the next seven days
After saving the schedule, open Week Ahead. Forecast starts selects the first of seven dates. Use Starting today for the rolling forecast or Next week to start on your alliance's configured week-start day. For an alliance whose week starts Monday, this lets you prepare Monday–Sunday on Sunday without changing the alliance's week-start setting.
Each forecast date uses its own week's saved Push or Save strategy. The dated rule-set controls above the preview let officers choose the strategy for that specific week, including a future week. A week without a saved strategy uses Push and shows a notice. The selector at the top of Train still applies to the current game week, which changes at the 02:00 UTC reset; it does not choose next week's strategy.
The forecast advances a temporary copy of rotation so consecutive days remain realistic. Loading it does not create assignments or change History. After choosing the strategy and reviewing the names, complete any Manual positions and use Save week to record unsaved dates. Existing rosters marked Saved keep their selections when the strategy or schedule changes. Copy All copies the displayed seven dates for sharing, using the stored UTC dates consistently across browser timezones.
Historical score simulations remain read-only. Return to the regular forecast before saving a strategy or assignments.
Create today's roster
Open Today to load today's saved assignment. If none exists and the current day has a usable Conductor rule, FarmOps generates and saves the roster while loading the tab. If it cannot, the empty state explains why and offers Generate Assignment.
When a position uses Manual, choose the Conductor, VIP or Guardian, or up to five members in each manual wagon, then click Save Assignment. A manual Conductor is required before the button becomes available.
Use Regenerate when you changed the week strategy, schedule, defender pool, or member availability after today's assignment was created. Regenerate overwrites today's roster using the current settings; it is not a preview. Use Copy Roster to copy the announcement shown in Announcement Preview.
Set defenders and temporary exclusions
Turn on Defender Rotation, then open Defenders. Add members to the Defender Pool and use the arrow buttons to put them in the order you want. The next eligible defender in that order guards the train. If VIP / Guardian is enabled in the schedule, Guardian Rotation can use the same pool for that slot.
For a temporary absence, open the member from Members, edit them, and set Skip train until with an optional reason. They stay out of Conductor, VIP or Guardian, Defender, and wagon selection through the day before that date, then return to the pool on the selected date. Clear the field to restore them sooner. Regenerate today's roster if it was already created.
Record, review, or clean up history
The History tab keeps generated and manually saved assignments. Expand a row to review all positions or use its copy button to reuse the announcement.
Owners, managers, and admins can use Add historical entry, even when History is empty, to record a roster from before FarmOps was set up or correct an existing day. Choose the actual date (today or earlier in UTC), its Push or Save strategy, and the conductor. Add a VIP or Guardian, a separate defender, and the known wagon seats as needed. Former alliance members are available and marked Former member. Current rotation rules, exclusions, and eligibility requirements do not limit historical choices.
Leave unknown positions blank. Wagon and seat numbers are preserved, including gaps; a separate defender can also occupy a seat. Click Review entry to check the proposed roster. If that date already exists, compare the current and proposed rosters, then explicitly choose Replace entry. Replacement records the complete proposed roster, so omitted positions become blank. Saving rebuilds rotation from the recorded history without generating other dates. The activity log records who saved or replaced the entry at the actual save time.
If a save fails, retry the same roster; the retry does not create a second entry or activity record. If someone changed that date during your review, use Reload this date, review the latest roster, and make your correction again.
Owners, managers, and admins also have two permanent cleanup tools:
- Delete entry removes one incorrect or experimental assignment and rebuilds rotation state from the history that remains.
- Clear history deletes every Train assignment and resets rotation state after you type the alliance name to confirm. Schedule rules, defenders, and Train settings stay in place.
There is no undo. Prefer deleting one entry when correcting a single test or bad day; use Clear history only when you deliberately want a fresh rotation.
Import and export historical CSV
Open Import historical CSV in History, including when History is empty. Download blank template contains only the CSV headers. Download fictional example shows a conductor, Guardian, separate defender, and sparse wagon seats; replace its fictional names before importing. Download member IDs in History lists current and former members, their status, and recorded alternate names. Officers can download member IDs and export history even when their access or alliance is read-only; recording and importing still require write access.
Each CSV row records one occupied position. Use CONDUCTOR, INVITE, DEFENDER, or a wagon seat such as WAGON:1:3. Rows with the same date form one roster and must agree on weekType (PUSH or SAVE). An INVITE row requires inviteType (VIP or GUARDIAN). Prefer memberId; it identifies the member even if the informational name differs. Name-only rows must exactly identify one current or former member by their current name or a recorded alternate name. Unknown or ambiguous members need correction and are never created automatically.
Choose a CSV file or paste its contents, then click Preview CSV. Files are limited to 2 MiB, 2,300 data rows, and 100 dates per import. The preview shows each date as New, Unchanged, Replace, or Needs correction, with current and proposed rosters. Fix every error and preview again before saving; one error blocks the entire batch. A file version mismatch asks you to review the current saved roster.
All new dates are included. Check Replace the complete roster only for existing dates you want to replace; unchecked existing dates stay as saved, and unchanged dates are skipped. The import button shows how many dates will be saved. Omitted positions stay empty in new and replaced rosters, including gaps between wagon seats. The separate defender duty can overlap a train position. Importing rebuilds rotation from recorded history without regenerating other dates.
If a network or server error occurs, retry the same reviewed batch. A retry returns the original result without another write or activity record. If history changed during review, the preview is cleared: preview again and review the latest rosters before saving.
In History, Export latest 100 history dates downloads up to 100 past or current dates, including member IDs and saved versions. If older dates remain, Export older dates (up to 100) downloads the next page into a separate file. Repeat that action for further pages; no additional files are downloaded automatically. Keep these exports as backups or edit them and preview them before restoring selected dates.
Recover from common setup problems
- No assignment was generated: confirm System Enabled, check that This Week matches a configured Push or Save column, enable a Conductor method for today, and click Save Schedule before returning to Today.
- Week Ahead is empty: the forecast only reads saved rules. Save at least a Conductor method for the selected week strategy, then reopen the tab.
- Save Assignment is disabled: a Manual Conductor rule requires a selected Conductor. Fill that picker first.
- The wrong or unavailable member appears: update the method, pool requirements, Defender Pool, or Skip train until, save where needed, then Regenerate.
- Train asks for a manual member: the configured roles, VS minimum, or position cooldown removed every automatic candidate. Pick an explicit override for today or loosen the pool requirements, save, and regenerate.
- Rotation still looks wrong after a test: delete that test assignment from History so Train rebuilds rotation without it.
- Loading fails: use Try Again after restoring your connection. Avoid repeated Regenerate clicks while a request is still running.
Use Train on mobile or in the PWA
Train is available directly in the mobile bottom navigation. On small screens its tabs are icon-only: 📅 Today, ⚙️ Schedule, 🛡️ Defenders, 📜 History, and 🔮 Week Ahead. Position selectors scroll horizontally, and daily schedule rows become stacked cards.
The installed PWA still needs a connection to load, generate, regenerate, or save Train data; there is no offline save queue. Wait for the saved status or updated roster before closing the app.
Copy Roster, History copy, and Copy All use the device clipboard and can be blocked by browser or PWA permissions. If that happens, long-press and select the text in Announcement Preview. In a non-English interface, the Announcement in English switch changes the copied roster labels and remembers that preference on the current device.