Conversation
MrKraken's text mod, from Settings, on a click. It rewrites the game's English localisation so contracts that award blueprints are tagged, item names are shorter, contracts show the reputation they pay and the mining guide is sorted by rarity. The app fetches their release, says when a newer build is out, and can take it back out again. It is entirely their work. Nothing of theirs is vendored, altered or re-hosted: the download comes from their own GitHub releases, and they are credited in the card itself, on the About page, in the footer and in docs/credits.md with what was taken and what was not. This is also the first thing in the app that writes outside its own data folder, so it is built as an exception. The archive is judged by where each entry RESOLVES, not by what it claims - two paths accepted, anything else refuses the whole install before a byte is written, and "Data/Localization/../../Bin64/StarCitizen.exe" is caught by that even though it starts with an allowed prefix and lands inside the game folder. Every file written is recorded with what it displaced, so removing restores exactly that and touches nothing else. "Installed" means the files are still on disk, because a patch can drop the original back without telling anyone. Updates compare publish dates: the project publishes every build to a tag called "latest", so a version string would compare equal forever.
Reputation is not in the logs. Checked the same way the kill events were: across all 148 backups the only mention is the gRPC channel being opened to sc.external.services.reputation.v1.ReputationService. Not one faction, value or delta - the numbers live on the far side of that channel. So the app counts the thing that moves standing instead. A table per issuer of contracts taken, finished, abandoned, the rate, and how long you have been working for them: 16 factions and 205 contracts on this install. Two spellings of one faction are one row, because the game writes both "Red Wind" and "Redwind"; only spacing and one known abbreviation are merged, since guessing that two names mean one faction is how a page ends up quietly wrong about who you have worked for. And the second route, which is the interesting one: the game logs a contract's DISPLAYED title, and that title comes from the localisation file StarStrings replaces. The mod writes the reward into the title - [150 Rep], [BP] - so with it installed the log carries the number in the only place the game was ever going to put it. Read off the title, shown as a chip on the contract, summed per faction. Its coverage is small and the app says so rather than implying otherwise: 25 tagged titles in ~90,000 lines, one family matching the 178 distinct contract titles here. A faction with nothing annotated shows a blank, never a zero - nobody wrote it down is not the same as it pays nothing.
The game prints one line for every bed - "Medical Bed: The bed has restored your health and reset your BDL" - whether it is the clinic bed you crawl into after a fight or the hab bed you log out and wake up in. Every login was therefore a medical bed visit, which is why Port Tressler looked like a hospital. Nothing in the text separates them, so the kind is read from what surrounds the toast: a bed within three minutes of leaving the menus with nothing having happened to you is waking up; a bed within fifteen minutes of a death or an incapacitation is treatment; anything else is a bed used. The window is measured from leaving the frontend rather than from the start of the log, which was the whole difference: the log starts at the launcher, so a wake-up landed nine minutes in and looked deliberate. Measured from the world, it is 78 seconds. That change alone moved 19 more visits into "waking up" - 27 in total here, and Port Tressler drops from 68 to 54. The section is "Beds used" now, the logins are still reported rather than hidden, and beds used after a casualty are marked. Cached summaries carry a new payload version so every install re-reads its logs once.
The place directory carries has_clinic per station, so a bed used somewhere with no clinic had no clinic bed to use - whatever the toast said. That is the only direction this evidence runs, and the first cut of it got that wrong: it counted a bed at a place that HAS a clinic as a clinic visit, and Port Tressler has habs and a clinic, so 106 beds were labelled medical on the strength of the building having one. Now a place with no clinic rules the bed out, a place with one proves nothing, and a place the directory does not carry says nothing at all. Three flags travel with the directory that did not before - clinic and habitation - so an install that fetched it earlier has to refresh that feed before this can sort anything. The page says so instead of showing an unexplained pile. On this install it rules out nothing: every bed was used at a place with a clinic, so the honest answer stays "could be either" for 118 of them. It will matter for anyone who sleeps at outposts.
While adding the bed split I wrote a middot as a wide character, which perl emitted as a lone 0xB7, and then "repaired" it with a substitution that looked at the byte AFTER each 0xB7 to decide whether it stood alone. The tail of a perfectly valid middot - C2 B7 followed by a space - matched that test, so 64 good separators became C2 C2 B7 and rendered as the replacement glyph: "on <?> fetched 48m ago" through the Settings feeds, and the same wherever else a middot separates two words. Repaired by dropping the doubled lead byte, which restores all 64 and leaves the 69 originals alone. Every file under web/ and docs/ now passes iconv as valid UTF-8, and there is no double-encoded sequence anywhere in the tree. The lesson, since this is the second encoding accident in two days: byte surgery on a text file needs the whole sequence in the pattern, not one byte of it, and the check afterwards is iconv rather than eyes.
0.6.13 never got a release of its own - v0.6.12 is the last tag - and the release workflow lifts only the section matching the version being tagged. StarStrings would have shipped in v0.6.17 without appearing anywhere on the release page. Every other version between releases was already accumulated into the released section; this one was the exception. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
peans99
added a commit
that referenced
this pull request
Aug 28, 2026
0.6.17 - beds told apart from bunks, standing, and StarStrings
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Six versions since v0.6.12, released together as 0.6.17.
What changed
text mod, fetched and removable from the app. The only thing here that writes
into the game folder: two files, anything else in the download refused
outright, whatever was there copied aside first and put back on removal.
taken/finished/abandoned and the span. 16 factions, 205 contracts, 62%
finished on this install. Two spellings of one faction are one row.
installed, titles carry
[150 Rep]and[BP]and the app reads them off.Explicitly not your reputation - the logs carry no rep value.
bed, so every login counted as medical treatment. Told apart now by context:
27 of them here, and Port Tressler drops from 68 bed visits to 54.
directory on, a bed somewhere with no clinic is ruled out of being medical -
never ruled in, because a place with both stays ambiguous and the app says so.
matched the tail of every valid middot too, doubling the lead byte. All 64
repaired, every text file checked as valid UTF-8.
Release notes
The final commit folds the
### 0.6.13section into### 0.6.17. The releaseworkflow lifts only the section matching the tag, and 0.6.13 never had a
release of its own, so StarStrings would have shipped unmentioned.
Testing
dotnet test -c Release- 392 passing, 0 failing (301 core + 91 web).Tagging
v0.6.17on the merge commit cuts the release; the workflow checks thetag against
Directory.Build.props, which already declares 0.6.17.🤖 Generated with Claude Code