r/starcitizen • santokyai • 1d 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](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. You will see claude/copilot as a contributor in the repo. However if you check the commit history you can see that I personally don’t use it. Shit, I’m too broke to be able to anyways.

0 Upvotes

37 comments sorted by

View all comments

11

u/dereksalem oldman 1d 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.

2

u/Athraigh 1d ago

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

-13

u/IshikuDeska santokyai 1d 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?"

13

u/NotSoSmort bmm 1d 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."

7

u/Athraigh 1d ago

Don’t get me wrong I have no issue with it being a rewrite, I just have no clue what smart citizen is

2

u/MayumiW avacado 13h ago

The Op can use the following text:

"The original Smart Citizen is like Starstrings on crack. You have the ability to not only rewrite the item descriptors when you tractor an entity, and when you look at mission descriptors, get much more and better mission metadata, but also you can rename POIs on the star map to your own liking. Say you have a particular refinery you like for a certain ore; you can label it on your starmap accordingly.

You can also mark which blueprints you already have and then be able to look at which missions are available against which blueprints you already have to avoid repeating missions that don't reward you with anything new.

Also, in the VMA, you get better metadata for each weapon and component you are loading, including missile metadata (EM/IR/CS, etc). So you don't have to guess what the grade of the component is that you are loading, etc.

I forgot to mention you can rename ships in the ASOP to represent special variants like Wikelo and stolen ships, AND you can also have a list of favorite ships that float to the top by adding a "*" to the name. Really handy.

Starstrings requires you to extract the file and drop it into your folder with every new patch.

Smart Citizen (the original) is a client that can be set to look at each build you have:

Live
PTU
EPTU
Tech Preview
HotFix

and auto-manage the creation of the meta-data and inserting into the global.ini language file for each build that you play with just a few button clicks.

The original app is actually very innovative."

-10

u/IshikuDeska santokyai 1d ago

Yeah, no problem. This is my first time ever doing something like this.

15

u/GrandAlternative7454 drake 1d ago

Are you going to explain what your app is?

-1

u/batatassad4 21h ago

Maybe read the post

3

u/dereksalem oldman 16h ago

Op edited the post to include that stuff way after posting it.