Found in the cross-plugin Bedrock/Floodgate audit. ChestShop is Bedrock-aware but its default config is Bedrock-hostile — this is a config-verification task (the live server config likely needs/has these set; confirm).
Two default settings break Bedrock if not overridden:
VALID_PLAYERNAME_REGEXP default ^\w+$ (Properties.java) — applied to the buyer/seller's live name (InvalidNameIgnorer) AND the sign owner line (SignParseListener). . isn't in \w, so a Bedrock player .FiftyNine595 cannot buy or sell at any shop and a Bedrock-owned sign parses as invalid. Needs e.g. ^\.?\w+$ (allow an optional leading Floodgate prefix).ENSURE_CORRECT_PLAYERID default true (NameManager.getOrCreateAccount) — rejects accounts whose UUID .version() ≠ the server's (4 in online mode). Floodgate UUIDs are not v4, so a real Bedrock Player is rejected from owning shops. Needs false (correct for an online-mode + Floodgate server).Action: confirm the live ChestShop/config.yml sets a Floodgate-friendly VALID_PLAYERNAME_REGEXP and ENSURE_CORRECT_PLAYERID: false. If we'd rather not rely on per-server config, change the fork's shipped defaults (Properties.java) since it's our vendored fork — but per the "live server is configured separately" note this may already be handled; verify first.
(Firm-owned B:/b: shops are unaffected — they resolve via Treasury, and the name regex is skipped for business owners. Only individual Bedrock player-owned shops and Bedrock buyers are hit.)