BattleTech: My Own Character Generator

CozyVTT Character Generator
Table to contents for this article!

Recently i dipped my toes into Battletech, I know, it’s a lot of number crunching and calculations. I do not understand myself most of the things. But, things can get better! I bring you BattleTech Character Generator! <3

What Character Generator?

Lately I was toying with CozyVTT. It is Virtual Tabletop project. Fully OpenSource and free. Before I was trying to work with FoundryVTT, but I found it over complicated and annoying to deal with.

My biggest issue with FoundryVTT was, that it was quite complicated for me to modify and add new features to it. I’m no code expert, but with help of LLM, I was able to modify CozyVTT to be quite good character generator for BattleTech.

Maybe my brain got lazy, as I’m getting older, but I always got bored during calculating stats. All those traits and attributes old fashioned way. Excel? Hell naw!

So, I made my own Battletech character generator, where you can click your character rather easily. Tt checks things for you and you can even modify character sheet based on game you are playing.

The whole thing is around BattleTech: Time of War, so if you are playing this book, this might get handy for you.

Warning

I must warn you though, this is not even ALPHA release. I created this generator for my friends and for myself, so expect bugs. Also, if I will see you guys doing bad stuff with it, I will turn it private again and no BattleTech character generator for you! 🙁

There is even possible to play campaign in it like in any other VTT, I added hexes support, which is not in vanilla CozyVTT and some sample mechs into NPCs …,but it’s far from finished. Now mainly, it’s just character generator.

NOTE: After register I need to approve you, if your approval doesn’t come within day or two, poke me on my emails. You can find them on the bottom of the Home Page.

After selecting modules, my stats didn’t show in sheet!

You need to first hit Apply build to sheet, and then Save.

Distribution

For those interested in hosting this Battletech Character generator on your own server, contact me, I can send you files (at least I will try).

Enjoy!

BattleTech Character generator showcase

Battletech Character Generator  Selection
Character Creation selection
Battletech Character Generator  Life Modules
Life Modules selection showcase
Battletech Character Generator  Rules Verification
Rules verification check
Battletech Character Generator  Inventory
Inventory Management
Finished Character sheet

Features included in Battletech Character Generator

1. BattleTech: A Time of War game system

Added a new native game system:

BATTLETECH_ATOW

Integrated across:

  • campaign creation
  • character creation/editing/viewing
  • campaign invitations
  • roster
  • character-sheet selection
  • game-system badges
  • backend validation
  • Prisma/database enum
  • templates and rules helpers

This allows a campaign to behave as a dedicated AToW campaign instead of using a generic or D&D-oriented character system.


2. Full AToW character sheet

Added a dedicated BattleTech AToW character sheet with support for:

  • Attributes
  • Skills
  • Traits
  • equipment
  • C-bills
  • notes
  • fatigue damage
  • standard damage
  • portrait
  • character-specific BattleTech data

The sheet integrates with the existing CozyVTT character infrastructure rather than creating a separate character database.


3. AToW Life Module character creator

This was one of the largest additions.

Added a Life Module-based character generator implementing the AToW character creation structure.

Features include:

  • Stage 0 universal package
  • Stage 1 childhood/background
  • Stage 2 education
  • Stage 3 higher education / schools
  • Stage 4 careers
  • repeated Stage 4 modules
  • flexible XP choices
  • Skill Fields
  • fixed and selectable skills
  • opposed Trait cancellation
  • age tracking
  • automatic XP calculation
  • 4,500 XP normal starting pool
  • 5,000 XP Clan-warrior support
  • automatic 850 XP universal package
  • negative-Trait XP checks
  • optimization of partially purchased Skill/Trait levels
  • build validation
  • persistent audit trail

The builder can apply the finished Life Module build directly back into the character sheet.


4. Expanded affiliation and faction backgrounds

Stage 0 affiliation choices were greatly expanded.

Added support for numerous subfactions under:

  • Capellan Confederation
  • Draconis Combine
  • Free Worlds League
  • Lyran Alliance
  • Free Rasalhague Republic
  • Major Periphery
  • Minor Periphery
  • Deep Periphery
  • Terran factions
  • invading Clans
  • Homeworld Clans

Clan caste packages were also added, including things such as:

  • MechWarrior
  • Elemental
  • Aerospace
  • ProtoMech
  • Scientist
  • Technician
  • Merchant
  • Laborer

Each affiliation package can contribute its own XP, skills, traits and flexible allocations.


5. Master Schools and Officer Candidate School

Implemented AToW education rules for Master Schools, including correct Basic / Advanced / Special Fields.

Supported schools include:

  • Technical College
  • Trade School
  • University
  • Solaris Internship
  • Police Academy
  • Intelligence Operative Training
  • Military Academy
  • Military Enlistment
  • Family Training

Also added an Officer Candidate School system with:

  • eligibility checking
  • required qualifying schools
  • Basic + Advanced Field requirements
  • Officer Training Field
  • 550 XP base cost
  • Field Cost calculation
  • +1 year age effect

6. Age and aging system

Added AToW aging milestones:

21
31
41
51
61
71
81
91
101

The system can automatically apply:

  • Attribute changes
  • Trait changes
  • age-based XP effects
  • Clan reputation exceptions
  • Slow Learner effects
  • Glass Jaw effects

The character sheet shows a visible breakdown of what aging changed.

Existing characters can also be recalculated through the Life Module creator without permanently stacking aging effects repeatedly.


7. Character portrait system

Added portrait support to AToW characters.

Features:

  • image upload
  • crop
  • resize
  • conversion to 512×512 WebP
  • portrait stored with character data
  • larger portrait presentation on the character sheet

The same portrait can now also be reused by the platoon-management cards.


8. AToW equipment catalogue

Added a substantial personal equipment catalogue.

Features include:

  • hundreds of equipment entries
  • categories
  • purchase/sell functionality
  • C-bill tracking
  • mass
  • custom gear
  • direct integration into the AToW character sheet

This gives AToW characters an actual equipment-management workflow rather than a freeform text field.


Tactical BattleTech additions

9. Hex-grid support

Vanilla CozyVTT originally centered around square grids.

Added:

square
hex-flat
hex-pointy

Support covers:

  • map creation
  • map editing
  • grid preview
  • map renderer
  • backend persistence
  • token snapping

Hex dimensions are treated consistently between visual rendering and snapping.


10. Hex-aware token snapping

Added proper geometric hex snapping rather than approximating a hex map with square coordinates.

Tokens now snap to the actual center of the nearest:

  • flat-top hex
  • pointy-top hex

This also works when placing tokens from campaign rosters and other map interactions.


11. Grid calibration

Added a major map-alignment system for scanned or pre-printed BattleTech maps.

The generated CozyVTT grid can now be calibrated independently over the background image.

Controls include:

  • drag grid overlay
  • X offset
  • Y offset
  • ±1 pixel nudging
  • proportional scaling
  • independent X/Y scaling
  • aspect-ratio lock
  • reset calibration
  • calibration preview

Persistent map settings:

gridOffsetX
gridOffsetY
gridScaleX
gridScaleY

Most importantly, calibration affects both the displayed grid and snapping calculations, so tokens continue to land on the actual printed hexes.

Existing maps default to:

offset 0 / 0
scale 100% / 100%

so installation does not disturb old maps.


12. BattleTech unit facing

Added BattleTech-style facing to tokens.

Facing snaps to:

0°
60°
120°
180°
240°
300°

Features:

  • visible facing arrow
  • selected facing highlight
  • Q/E keyboard rotation
  • on-screen rotation controls
  • persisted token rotation
  • DM can rotate units
  • players can rotate units they control

This was added specifically because facing changes are mechanically important in BattleTech.


13. Terrain marker system

Added BattleTech terrain directly to maps.

DMs can place terrain markers snapped to hexes and click them to open rules cards.

Current terrain includes:

  • Clear
  • Scrub
  • Light Woods
  • Heavy Woods
  • Ultra-Heavy Woods
  • Jungle
  • Elevation 1
  • Elevation 2
  • Slope
  • Blocking / Steep Slope
  • Rough
  • Rubble
  • Very Shallow Water
  • Depth 0 Water
  • Depth 1+ Water
  • Pavement / Road
  • Urban / Building
  • Ice
  • Mud
  • Sand
  • Magma

Terrain is stored using normal CozyVTT object tokens with BattleTech metadata, so it did not require a separate terrain database.

Automatic LOS/movement penalties are not yet implemented; currently the markers primarily provide visual and rules-reference functionality.


BattleTech Unit Library

14. Generic BattleTech unit system

Vanilla CozyVTT’s NPC/unit creator was replaced for BattleTech campaigns with a dedicated BattleTech unit library.

Supported top-level types:

Infantry
Ground Vehicle
Aerospace
Mech

Examples of subtypes include:

Infantry

  • Individual
  • Squad
  • Platoon
  • Battle Armor

Ground Vehicle

  • Tank
  • Tracked
  • Wheeled
  • Hovercraft
  • VTOL
  • Naval
  • Artillery
  • Support

Aerospace

  • Conventional Fighter
  • Aerospace Fighter
  • Small Craft
  • DropShip

Mech

  • BattleMech
  • IndustrialMech

Unit records can contain:

  • tonnage
  • pilot
  • Gunnery
  • Piloting
  • Walk / Run / Jump
  • armor
  • structure
  • heat
  • weapons
  • ammunition
  • status

Units can be placed onto maps and damaged/repaired through the existing CozyVTT creature/token infrastructure.


15. BattleTech preset browser

Added a searchable unit-preset browser.

Features:

  • Custom Unit / Choose Preset
  • search
  • unit-type filtering
  • tech-base filtering
  • weight-class filtering
  • tonnage filtering
  • stat-block preview
  • source book/page metadata
  • clone preset into editable custom unit

No artwork from the sourcebooks was embedded.


16. TechManual example presets

Added a number of example units derived from TechManual worked examples, including:

  • infantry
  • BattleMechs
  • Combat Vehicles
  • aerospace units

These serve both as usable units and as examples for the Unit Library.


17. Record Sheets: Succession Wars BattleMechs

A very large number of BattleMech presets were transcribed from Record Sheets: Succession Wars.

The added catalogue includes:

  • complete light BattleMech section, pages 5–72
  • medium/heavy records from pages 73–160
  • heavy records from pages 161–180

Examples include:

  • Assassin
  • Cicada
  • Clint
  • Blackjack
  • Hatchetman
  • Vindicator
  • Centurion
  • Crab
  • Hunchback
  • Trebuchet
  • Dervish
  • Griffin
  • Shadow Hawk
  • Wolverine
  • Dragon
  • Grand Dragon
  • Lancelot
  • Merlin
  • Quickdraw
  • Bombardier
  • Catapult
  • Exterminator

The preset catalogue now contains well over a hundred BattleMech variants.


Platoon management

18. Platoon Board

Added the beginning of a dedicated BattleTech Platoon Manager.

This is intentionally designed more like a card table than a traditional spreadsheet.

A character created in the AToW character generator becomes a soldier card automatically.

Cards can show:

  • portrait
  • character name
  • relevant Skills
  • status
  • weapons
  • squad assignment

Soldiers can be dragged between:

  • available personnel
  • squads
  • HQ
  • sections
  • reserve

Groups can represent:

  • Squad
  • Section
  • Fireteam
  • Crew
  • Support
  • HQ
  • Custom Group

The board layout and membership are persistent.


19. Platoon accessibility

Originally the Platoon Manager was reachable through:

Campaign → Roster → Platoons

It was then expanded so BattleTech platoons can also be accessed directly from the main Dashboard, making the feature much easier to reach.


20. Soldier status and casualties

Platoon members can carry states such as:

ACTIVE
WOUNDED
INCAPACITATED
KIA
MIA
EVACUATED
RESERVE

Only active soldiers contribute to the active combat calculations.

This means removing or incapacitating a soldier immediately changes platoon statistics without deleting the underlying AToW character.


21. Squad/platoon Skill averaging

The Platoon Manager calculates collective infantry skill values from the individual AToW characters.

This includes:

  • Small Arms / shooting averages
  • Anti-‘Mech / Climbing-derived values
  • squad-level averages
  • platoon-level averages

Missing required Skills are reported rather than silently inventing a value.


22. Infantry motive type

Platoons can now select their conventional infantry movement type:

Foot
Motorized
Jump
Mechanized Hover
Mechanized Tracked
Mechanized Wheeled

The choice affects:

  • movement mode
  • MP
  • speed
  • legal size
  • terrain restrictions
  • support-weapon movement penalties
  • Anti-‘Mech eligibility

For example, conventional mechanized infantry cannot make Anti-‘Mech attacks, so the manager marks that appropriately.


23. Live platoon speed

The manager displays BattleTech movement and the corresponding AToW tactical distance.

Examples:

3 Ground MP
45 m / 5 seconds

or:

5 Hover MP
75 m / 5 seconds

Jump infantry separately displays jump and ground movement.


24. Support weapon system

Platoons can now be equipped with infantry support weapons.

Current support catalogue includes things such as:

  • Support Machine Gun
  • portable/semi-portable MGs
  • Light Mortar
  • Heavy Mortar
  • Corean FarShot LRM
  • infantry SRM launchers
  • Light SRM
  • Heavy SRM
  • Light Recoilless Rifle
  • Medium Recoilless Rifle
  • Heavy Recoilless Rifle
  • Infantry MRM
  • LAW
  • V-LAW

Support weapons are assigned to squads rather than just being freeform equipment.


25. Crew requirements and weapon legality

The manager understands that support weapons need operators and sometimes additional crew.

It checks things such as:

  • crew requirement
  • squad size
  • support weapon limit
  • whether enough personnel exist
  • whether the current loadout is legal

An under-crewed support weapon can therefore be identified automatically.


26. Support weapons affect movement

TechManual support-weapon encumbrance rules are incorporated.

For example, depending on motive type, carrying the maximum secondary support weapons can:

  • reduce MP
  • make Foot infantry Move-or-Fire
  • leave Mechanized Tracked infantry unaffected by that particular movement penalty

So the displayed platoon speed is not merely a static motive-type value.


27. Dynamic infantry damage

The manager is beginning to act as the conversion layer between individual AToW soldiers and the single conventional-infantry unit used in BattleTech.

The calculation considers:

  • active personnel
  • primary weapons
  • support weapons
  • operators
  • support-weapon damage
  • current casualty count
  • motive type
  • support-weapon effects

The platoon therefore loses combat effectiveness automatically as soldiers are killed or removed from active duty.

This is one of the core goals of the platoon system:

Individual AToW soldiers
        ↓
Squads / equipment / weapons
        ↓
Calculated conventional infantry platoon
        ↓
BattleTech tactical-map unit

The final direct deployment/conversion into a tactical infantry token is still a future phase.


Database / backend changes

Vanilla CozyVTT’s database has also been extended to support these features.

Major additions include:

  • BATTLETECH_ATOW game system
  • map gridType
  • grid calibration fields
  • Platoon
  • PlatoonGroup
  • PlatoonMember
  • Phase-2 platoon configuration/support-weapon fields

All production schema changes have been handled through Prisma migrations and prisma migrate deploy.