Engineering Office Report #7 – v3.4 Release (Command Units, Competitions, and More)

January 17, 2025

The Engineering Office did some baking over the holidays. Last month, we updated how gaming works in BFMS v3.3, and today, we are pleased to announce the launch of BFMS v3.4, which brings a complete overhaul to squadrons and divisions, a range of enhancements to competitions, numerous quality of life improvements, and significant infrastructure improvements.

Command Units

While it may not have been overly obvious to you as a user, squadrons and divisions in BFMS have historically been an “inferred” type. This is why they showed on your command rather than as a separate page, and why you had to manage aspects of them in your member profile rather than their own panel. While this allowed us to quickly deliver squadrons and divisions as a part of BFMS, it limited what we could do with them and how you could customize them. In this release, we are completely changing that, and now, you can manage your units from a new Command Units panel.

For the astute reader, you may have caught the “s” at the end of Command Units. That’s because, if you have the appropriate number of assets, you can now organize a large squadron into smaller divisions underneath it (a “Sub-Unit”). Additionally, for those who command a station, you can also split your station and supporting assets into its own unit (a “Station Unit”), and if you have any assets that operate independently, you can also just completely detach them and have them show up as independent rather than as part of your squadron. Updates have also been made to the Logistics Office to support this model, as well as to allow you to add custom designations to sub-units.

In addition that everything that went into this expanded system, even if you just have a division or you don’t want to divide your squadron into smaller sub-units, it’s still worth swinging by the Command Units page as we’ve also introduced the concept of a unit manifest where you can associate character with your unit, rather than a specific command, and that will make them available for use in any story across that entire unit. Command units now also get their own page, which shows this manifest, the commands associated with it, and other details you’ve chosen to include.

Competitions

In the past, no matter the type of competition you’re participating in, the submission process has been the same, either pasting in a link, pasting in text, and/or uploading an image. In this release, we have introduced a new set of competition types that natively link to BFMS elements. You can now directly select a character for a biography competition and a story post for a writing competitions, and you no longer have to submit a list of links for comment races, but rather all your qualifying comments will automatically be entered. In addition, ribbon races will now show participants and are no longer collated outside of BFMS.

From the competition organizer perspective, a lot has changed too. First and foremost, you no longer need to submit award nominations after selecting winners. These nominations will now be automatically submitted on your behalf. Additionally, for bio comps, story comps, comment races and ribbon races, competition organizers now have specialized screens designed to streamline their review process, and the winner selection screen now shows only participating members and it now shows them by their primary character and member ID for ease of use.

Finally, there are a number of other smaller changes that have been introduced to competitions, such as the ability to see all submissions to a competition after it’s closed and graded (and yes, you can opt out of this as an organizer, or as a submitter), but at risk of droning on and on, you can find those in the full patch notes below.

Other Changes

In addition to these two major system changes, we also packed a wide range of other changes into this release, including administrative functions, fixes for mobile, changes to commands and stories, updates to events and award nominations, etc., and we also made some significant updates to our infrastructure, including monitoring, performance tuning, storage optimization, and more efficient backup processes. Details on all of these can also be found in the patch notes below.

What Do I Need To Do Differently?

Because this update is an update that comes with some legitimate system changes, it makes sense to provide a list of a few key behaviors that have changed from prior to present:

  • When you organize a competition, you no longer need to submit award nominations. These will be automatically submitted on your behalf.
  • You no longer need to keep track of the comments to submit them to a comment race. These are now tracked automatically and submitted on your behalf.
  • To manage your squadron or division, use the new Command Units panel rather than how you used to manage your unit from within your member profile.
  • If you had a division/squadron before, go over to Command Units to add additional details such as a staff manifest. Additionally, you can now make a separate unit for your starbase, detach commands to make them independent of your unit, and purchase sub-unit slots from the Marketplace to further divide your squadron.
  • If you had a squadron already, and now you want to set up sub-units or a station unit, you need to disassociated the commands from your squadron that you plan to move. Once you do this, you will then be given the option in the Command Units panel to actually create the sub-unit and/or station unit.
  • If you only have one command (or none) today, when you get two commands, you will no longer get forced into having a division. Instead, you can go to the Command Units panel to set it up when you’re ready.

Patch Notes

Commands and Command Units

  1. A new data model has been implemented for command units.
  2. A new command unit panel has been introduced to administer a member’s units and sub-units.
  3. A member can set up a command unit once they have two or more commands.
  4. If a member owns a station and at least four commands, they may set up an additional unit for the station.
  5. If a member owns at least four commands, they may divide their mobile squadron into sub-units once they have purchased the sub-unit slot from the marketplace. A unit flagged by a station may not have sub-units.
  6. Command units are no longer automatically created when a member gets their second command. Instead, a member can go to the command unit panel to create their first unit if they would like to associate commands together within a unit.
  7. Commands can now be made independent from a command unit simply by unassigning them from a command unit, as long as the unit still contains at least two commands.
  8. In the case of a unit that is divided into sub-units, all sub-units receive the designation Division regardless of size.
  9. Command units include a staff manifest so that characters can be assigned to roles covering the entire unit rather than just an individual command.
  10. Member profile pages have been updated to display commands within command units, as well as independent commands.
  11. A member’s primary command, as shown under their name, is no longer forced to always be a unit if one exists. Instead, if a member sets their primary command as the flagship of a unit, the unit will show as their primary, while if they set it to a different command, the command will show as their primary.
  12. Command units now have their own page, separate from the command page, which shows summary information, commands attached to the unit, staff for the unit, and missions/stories from commands attached to the unit.
  13. Command pages have been updated to reflect the new command unit system.
  14. All existing personal units have been migrated into the command unit system.
  15. Tours have been removed from commands.

Competitions

  1. Structural changes to allow competition types with custom fields, including changes to setup, submission, and winner selection.
  2. Structural changes to allow competition types that members are automatically entered into through eligible activity, including changes to setup, viewing, and winner selection.
  3. New “Story Post on BFMS” competition type that allows members to select eligible posts directly when submitting their competition entry.
  4. New “Character Biography on BFMS” competition type that allows members to select eligible characters directly when submitting their competition entry.
  5. New competition completion screens have been implemented for “Story Post on BFMS”, “Character Biography on BFMS” and “Article on BF Wiki” competition types to assist the organizer with reviewing submission in a more native way.
  6. New “Ribbon Race” competition type that supports eligibility based on time, mission, and ribbon type, includes a scoring rubric, and automatically tallies all eligible ribbons upon the completion of the competition. Organizing a competition of this type is restricted to staff.
  7. New “Comment Race” competition type that supports eligibility based on time and mission, and where all comments are aggregated into a dashboard for the competition organizer to judge the submissions and total the results. Organizing a competition of this type is restricted to staff.
  8. When the organizer judges a competition and selects its winners, awards will now be automatically nominated on their behalf.
  9. Competitions now show submissions after they are judged, allowing members to see what everyone submitted. This feature can be disabled on a per-competition basis.
    When submitting to a competition where submissions will be shown, a member can opt out of having their submission shown.
  10. Competition winner selection now shows only members who are eligible to place in the competition, either because they submitted to the competition or, in the case of races, because they had activity that qualified for the competition.
  11. Competition winner selection now displays and allows searching for members in a more user-friendly way, namely by member ID and primary character name.
  12. The competition page has been rearranged for improved usability.
  13. The competition page no longer shows the winner selection button before the competition has ended.
  14. The competition page no longer shows the submission button to the competition organizer. Organizers are similarly excluded from automatically entered competition types like comment and ribbon races.
  15. The competition page now explicitly prevents BFSS members from submitting to a competition within a Fleet Action. This also applies to automatically entered competition types like comment and ribbon races.
  16. The competition page now shows winners correctly when members did not place in all three placement slots.

Prestige

  1. A new transaction type has been added to the marketplace for members to purchase sub-units for the command unit system.
  2. Prestige issuance from competitions has been updated to consider automatically entered competition types like comment and ribbon races.
  3. Command refunds are not permitted for the flag of a command unit as this would cause the command unit to be absent a flag. A member must first assign a different flag command or dissolve the command unit prior to requesting a refund.
  4. Command refunds will not allow a command unit to become smaller than two commands. A member must first dissolve the command unit or move another command into the command unit prior to requesting a refund.
  5. Command replacement purchases will cause the new command to replace the old command within the command unit in which it was assigned.
  6. Class change purchases cause an update to the command unit’s designation if the command of the class being changed in the flag of a command unit.
  7. Custom unit designations have been updated to support purchasing a custom designation for any specific command unit. If that command unit is subsequently dissolved, there will be no refund on the prestige to purchase this designation.

Stories and Missions

  1. Character selection in the writing panel has been updated to include characters listed as staff for any command unit that contains one or more of the commands in the story.
  2. Story post totals for missions now appropriately consider nested child missions.
    The story word count algorithm has been updated to be more precise between client-side estimated count and server-side recorded count.
  3. Performance improvements were made to reduce mission page load times in cases when there are a large number of child missions.
  4. Command images will no longer appear dim on the command page.

Events

  1. News articles can now be attached to events, and you can now view a feed of news that is specific to the event.
  2. Story post totals for events now appropriately consider child missions nested more than two levels deep.

Administration

  1. Staff activity summaries now support date-based aggregations rather than just aggregation since last award and rank.
  2. Staff activity summaries now track all competitions, including automatically entered ones like ribbons races.
  3. The award nomination and management backends have been updated to show primary character and member ID in all tables and fields for better usability.
  4. The award nomination and management backends have been updated to make them easier to use to review records.
  5. The management backends have been updated to allow administrators to change the mission for a story and the commands for a mission without requiring the Engineering Office.
  6. The staff position backend has been updated with a new configuration setting that specifies the Action Medal tiers for competitions hosted by a member holding the position.
  7. The staff position backend has been updated with a new flag that explicitly excluded members holding the position from participating in competitions associated with Fleet Actions, and this setting has been set for the BFCO, BFXO, BFJAG, and BFSS.
  8. The OCS backend has been updated to have a menu consistent with other menus in the system.
  9. AWOL functionality has been removed from the task force senior staff backend as this is now all handled automatically.

Miscellaneous

  1. A bug was addressed causing page sections to overflow on mobile.
  2. Delete functionality has been added to the gaming panel for draft submissions.
  3. Over 5,000 lines of deprecated functionality were removed from the codebase.
  4. Homepage stats are now recomputed automatically every day.

Infrastructure

  1. New monitoring infrastructure has been deployed for improved observability.
  2. A new alerting system has been put in place for real-time notifications when system health is degraded.
  3. Multiple changes have been made to reduce the impacts of bots and crawlers, which have increased in prominence with the rise of LLMs.
  4. Server configurations have been optimized to improve performance.
  5. Server storage footprint has been reduced by 18%.
  6. Multiple updates were made for code hygiene and development environments.