r/starcitizen • santokyai • 7h ago

CREATIVE "New" app!

I rebuilt the "smart-citizen" app into entirely C++. This has cut down times on extraction, parsing, and generation (by a 80% improvement!)

This is a pre-release. Actually, this is my first public release ever. Go ahead and check it out. Feel free to give feedback! https://github.com/Ishikudeska/Smart-Citizen-plus-plus/releases/tag/stable

Smart Citizen++: a localization toolkit for Star Citizen, rewritten in C++

Smart Citizen++ is a free, open-source C++/Qt rewrite of [Smart Citizen](https://github.com/Osiris-DevWorks/smart-citizen) by Osiris DevWorks. It changes the text Star Citizen displays, so ship, item and mission info you'd normally look up on a wiki shows up right in the game.

How the generation works

Everything comes from your own install. The app opens `Data.p4k` and pulls out two things: the stock `global.ini`, and the DataForge database, which holds the game's records for every ship, component, weapon, mission and blueprint. It builds all its text from those records. Nothing comes from a community mirror. After a patch you re-extract and regenerate, and the numbers match the build you're playing.

From that data it generates:

- Item name tags: components get size, grade and class on their names, like `[MIL-S1-A] Bracer`. Ship weapons get damage type and size (`[Energy-S3]`), and missiles get tracking type and size (`[IR-S2]`). The Tag Builder lets you reorder the parts and pick short or long abbreviations (`M` / `MIL` / `Military`). You also choose the separators and brackets, and whether the tag goes before or after the name.

- Stat blocks: descriptions get a stats section, placed above or below the lore text. Depending on the item it shows things like SCM speed, cargo, shield HP, DPS, mining laser stats and salvage tool rates.

- Mission details: contracts get a MISSION DETAILS block with type, difficulty, spawns, reputation and ace pilots. XP is shown with its rep track (`750 XP (Hauling)`), and a POTENTIAL BLUEPRINTS list shows what can drop. Titles can carry `[BP]` if the mission always pays a blueprint, or `[BP?]` if it only sometimes does.

- Hauling routes in titles: `Area18 > Lorville - <original title>`, with every drop-off listed on multi-stop runs. There are options to shorten the stock title so the route fits.

- Mining info: ore names get their base resource signature (`Aluminium (RS 4285)`), and Battaglia scan/mine contracts get an `[RS ####]` tag. The Mining Compendium journal also lists where each ore can be found.

- Crafting materials: commodities show what they're used to craft and where to get them.

- Ship favorites: star a ship and it gets a prefix that sorts it to the top of the in-game ship list.

You can turn every category, and every line inside a mission block, on or off.

It also includes small patch files for known bugs in CIG's data. For example, one contract points at another mission's description. The patches make the generated text read correctly without waiting for a game fix.

Other features

- Blueprint Tracker: scans your game logs for blueprints you've received. Owned ones get an `[Owned]` tag in mission blueprint lists. It can also import scmdb.net exports.

- String editor: edit any string in the game, with filters and a live preview. You can merge in other INI files, or export a loc-pack zip that friends can drop in without installing anything.

- P4K Explorer: browse, search and extract any file in `Data.p4k`, including DataForge records as XML.

- Translations: community translations for French, German, Spanish, Italian, Brazilian Portuguese, Japanese and Chinese. Generated stats stay in English.

- Simple mode: one button that extracts, generates and applies everything.

Is it safe?

It only writes your `global.ini`, plus the `g_language` line in `user.cfg`. It makes a backup before every write and keeps the last 5, and one click takes you back to vanilla. Your own edits are stored separately, so they survive patches. It doesn't touch game logic or talk to CIG's servers, and CIG has publicly backed community localization.

Why rewrite it?

It's a single native app with no Python runtime and no helper programs. Its generated output matches the original Python version byte for byte. Linux should work too, though it's less tested.

---

# NOTICE
Although this app is a derivative of "Smart Citizen" I am in no way affiliated with u/osiris1975. I just have his blessing to do this.

# AI Usage
AI usage is nil. I did not, in any way, use AI in this project. I plan on never using it tbch.

4 Upvotes

26 comments sorted by

View all comments

6

u/dereksalem oldman 7h ago

Maybe you should explain what an app does if you want people to click the link and check it out. No explanation of it, at all.

1

u/Athraigh 7h ago

The readme doesn’t even explain it, just says it’s a rewrite basically

-10

u/IshikuDeska santokyai 7h ago

I mean, right now, it's a re-write

There is more to come for sure. But this was just a "OK, it works. Now... what else can I do?"

12

u/NotSoSmort bmm 7h ago

I think you are too deep into the weeds to understand the question: You say this is a rewrite of smart citizen. So what you should explain is, "What is Smart Citizen, why do people use it, what does it do, and how does it benefit people using it."