Stratsims HC Platform Editor

Home / Coming from the Access editor

Coming from the Access editor

If you have used the old MS-Access Platform Editor (pfBuild2005.mdb over pfData2005.mdb), most of what you know still applies: same 16 annexes, same ids, same soft cross-references. What changed is almost everything about how you get from opening the database to shipping a change. This page is that diff.

One app, not two files and a batch script

The Access editor never touched a .RES file itself. It ran against a CSV working set that start_edit.bat and end_edit.bat produced and consumed around it, and the front-end's own forms were bound to linked tables in pfData2005.mdb, a separate data file from the one holding the forms. Getting from a commondb.res to an editable record meant running Import first, and getting an edit back out meant running Export, then closing the loop with the batch file that copied the rewritten commondb.res and commondb.rsr back into the battleset directory.

This editor skips that whole pipeline. It reads a commondb.res (or its own .hcpe.json project file) directly, and Export .res writes a commondb.res directly — there is no CSV directory, no start_edit.bat/end_edit.bat, and no separate db_make / res_implode / hcompress step to run afterwards. The menu item runs the same preflight checks the game itself would fail on, then builds the container bytes itself. See Getting started for the whole open-edit-export loop end to end.

Nothing is committed until you say so

The Access editor's forms were bound straight to the linked tables, and a new record got its id from GetNextID the moment you started one — before it had a name, before you had decided to keep it. This editor's create form works the other way around: opening Add on an annex grid renders a blank form and writes nothing. The record only exists once you press Add to database, which parses the form, appends the record, and logs one create entry, so nothing typed can be half-saved. An empty name is refused rather than added. Leave the screen before pressing it and nothing happened at all.

That save can finish more than the bare record. A mount's weapons-carried grid renders on the create form itself, so a mount and a mixed load — the same find-or-create Z2 multi-mount the stored mount editor produces — go in as one Add, not a record you go edit afterwards to give it something to carry.

What stayed the same, and what did not

In the Access editorHere
New records get an id from GetNextID: the lowest free slot in the annex's 4096-id window. The exact same window and the same lowest-free-slot rule — shown on the create form before you press Add, not after.
db_make could write ids in a "fudge-mode" hex form. Export always writes plain decimal ids. There is no fudge mode.
A dangling reference surfaced as a line in tMessageLog during the next Import, if anyone read the report. A dangling reference is not a database error at any point: 65535 always means "none", and a reference to a missing record is a Check finding — blocking or advisory depending on what it would actually do to the game — not something that stops an Import or an Export on its own.
dComponentUsers, "who uses this component", was a dialog you opened yourself. Every record's own screen carries a "Used by" section, folded away when nothing refers to the record. Delete shows you the same list before it lets you remove anything.
Merging duplicate records (dMergeRecord) redirected every reference to the survivor — except for ships, where it was turned off. The guided merge on the Duplicates screen works the same way on every annex, ships included.
tPlatformHistory logged every edit under a single-timestamp primary key, which could collide if two edits landed in the same second. Every change-log entry carries its own generated id, not a timestamp, so two edits in the same second are still two entries. Each is independently revertable from History.

A quirk fixed rather than carried over

Not everything unfamiliar here is a design choice — some of it is a bug in the old schema that this editor does not repeat. A ship's six armor sectors, Engineering, Bridge, Deck, Hangar, Cargo, Sensors, all decode against the same armor-class lookup in this editor. In the Access schema, ARMHangar had no such lookup at all: a mis-built constraint had been duplicated onto ARMSensors instead, leaving the Hangar sector as a bare number with nothing to check it against. See Armor in the ship field reference for the fixed, six-sector field.

What this one does not have

Being straight about the gap: the Access editor's switchboard offered a rCountrySummary report, a platform count broken down by country. There is no equivalent screen here yet — the closest you can get today is an annex grid's Country column, filtered to one country at a time from its header funnel.

The Access editor also shipped satellite tools solving a problem this editor does not have: AccessChecker detected whether a compatible Access was installed at all, and, if not, offered to install the Access 97 Runtime just so the front-end could open. This editor is a native program for Windows and Linux: unpack it and run it, so there is nothing to detect, license, or install first — that whole category of setup problem does not carry over because there is nothing on the other side of it to be missing.

For everything else, the destination is the same as it always was: a commondb.res the game loads. Getting started walks the open-edit-export loop, and Tools covers Find, Check, Duplicates, Compare, replacing references, and the change log in full.