diff --git a/scripts/replay-combat.js b/scripts/replay-combat.js
index c2c0e1a..09c6f28 100644
--- a/scripts/replay-combat.js
+++ b/scripts/replay-combat.js
@@ -91,7 +91,7 @@ async function main() {
const encounterId = crypto.randomUUID();
await storage.setDoc(getPath.campaign(campaignId), {
- name: 'Replay Campaign',
+ name: `Replay Campaign (${new Date().toLocaleString('en-US', { hour12: false })})`,
playerDisplayBackgroundUrl: '',
ownerId: 'replay',
createdAt: new Date().toISOString(),
@@ -121,7 +121,7 @@ async function main() {
];
await storage.setDoc(getPath.encounter(campaignId, encounterId), {
- name: 'Big Boss Replay',
+ name: `Big Boss Replay (${new Date().toLocaleString('en-US', { hour12: false })})`,
campaignId,
createdAt: new Date().toISOString(),
participants,
@@ -184,7 +184,9 @@ async function main() {
const p = enc.participants.find(x => x.id === id);
return p ? `${p.name}:${p.initiative}` : id;
}).join(',');
- console.log(` turn ${totalTurns} (round ${enc.round}): ${actorName} | order=[${ordStr}] cur=${enc.currentTurnParticipantId}`);
+ // Also dump participants[] order (display source). Diverge from order = sync bug.
+ const pStr = enc.participants.map(p => `${p.name}:${p.initiative}`).join(',');
+ console.log(` turn ${totalTurns} (round ${enc.round}): ${actorName} | order=[${ordStr}] parts=[${pStr}] cur=${enc.currentTurnParticipantId}`);
// 1. damage: actor hits a random living, active target.
if (actor) {
diff --git a/src/App.js b/src/App.js
index 64934f5..9b2e697 100644
--- a/src/App.js
+++ b/src/App.js
@@ -2284,6 +2284,11 @@ function AdminView({ userId }) {
{campaign.encounterCount === undefined ? '...' : campaign.encounterCount} Encounters
+ {campaign.createdAt && (
+
+ {new Date(campaign.createdAt).toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit', hour12: false })}
+
+ )}