GAMES MAG TYCOON Deutsch

Reference · October 2026

Mods for Games Mag Tycoon

Are games missing? Do you think a score is wrong, a release date inaccurate, a publisher misattributed? Then add to or replace the data. The game loads all content from open JSON files, and a mod lays its own versions on top without touching the installation.

This page describes how the game finds and combines mods, what the fields of the game data do and how to publish a mod in the Steam Workshop. It assumes you are comfortable with JSON and file paths.

1 Structure of a mod

A mod is a folder with the same structure as StreamingAssets in the game directory. A file with the same relative path replaces the shipped one or is merged with it (section 3); a file that does not exist in the game is added.

my-mod\
  mod.json            description and mode
  preview.png         preview image for the Workshop, at most 1 MB
  workshop.json       created by the game after the first upload
  Data\               game data (JSON)
    games.json
    publishers.json
    texts\            program texts, key → text
  grafix\             images (PNG, JPG)
WherePath
Local mods%USERPROFILE%\AppData\LocalLow\oLabAndI\Games Mag Tycoon\mods\<Name>\
Workshop modsinstalled by Steam; every subscription counts as soon as Steam has downloaded it
Original data<game directory>\Games Mag Tycoon_Data\StreamingAssets\ (in Steam: Manage → Browse local files). Read only: updates overwrite it.
Field referenceStreamingAssets\Data\readme.txt describes the fields of all data files.
Session log%USERPROFILE%\AppData\LocalLow\oLabAndI\Games Mag Tycoon\log\sessions\

Loading and order

  • Mods are determined once when the program starts. Every change to files, subscriptions, on/off or order only takes effect after a restart.
  • The mod list is on the start screen under “ADD-ONS”: a switch per mod, order with the arrows. Hovering over a row shows which files the mod adds, replaces or extends with entries.
  • If several mods bring the same file, the upper one wins. A newly found mod is switched on and placed at the top; without your own sorting, local mods come before Workshop mods.
  • If you subscribe to your own mod, the subscription is ignored as long as a local folder carries the same Workshop number in its workshop.json. You work on the local folder.

2 mod.json

Optional. Without the file, the mod is named after its folder and works in override mode. All fields are text; the case of field names does not matter.

{
  "title": "Games 1986–1990, extended",
  "author": "Name",
  "description": "Adds missing games and corrects scores and release dates.",
  "mode": "merge"
}
FieldMeaning
titleName in the mod list and in the Workshop. Default: folder name.
authorShown in the mod list.
descriptionShown in the mod list and as the description in the Workshop.
modeoverride (default), merge or patch, see section 3. Any other value counts as override.
languageTurns the mod into a language mod (e.g. fr). It only counts when the game runs in that language and does not appear in the mod list.
cultureLanguage mods only: format of numbers and dates, e.g. fr-FR.

If the file is not valid JSON, the mod list marks the mod with “MOD.JSON BROKEN”; it is then loaded with the defaults.

3 Replacing and merging

Images are always replaced or added by file name. For data files in Data\, mode decides:

ModeEffect on data files
overrideThe mod's file replaces the one below it completely. What is not in it does not exist in the game. For your own data sets and complete overhauls.
mergeThe file contains only the entries that change. An entry with an existing Id replaces the existing entry as a whole, one with a new Id is appended. For corrections and additions.
patchEach entry of the file contains only the Id and the fields that change. All other fields stay as they are. Nothing is added. For single values such as a name or a score.

Rules for merge

  • Identity is the field Id, regardless of case. Exception: in flufftexts.json, Source and Tone together form the identity. Entries without identity are always appended.
  • There is no field-by-field merge. An entry replaces the existing one completely: missing fields fall back to their default, not to the original value. To change single fields only, use patch.
  • Several mods are merged in the order of the mod list from bottom to top; with the same Id, the upper mod wins.
  • New ids with a prefix (e.g. gm86_) prevent collisions with other mods and with later extensions of the game.
  • Text files in Data\texts\ are layered key by key regardless of mode. A mod only contains the keys it changes there.
  • Language: Texts in your entries (name, description) appear in every game language exactly as you write them.

Rules for patch

  • Every entry needs the Id of an existing entry, regardless of case. Entries without an Id or with an unknown one are skipped and reported in the session log.
  • A field replaces the value as a whole, a list such as PlatformIds as well. A field the entry does not have yet is added.
  • New entries and files are never created by patch; that is what merge is for.
  • Several mods work from bottom to top as with merge: if two mods set the same field, the upper one wins.

Error behaviour

  • A data file of a mod that is not valid JSON is skipped and reported in the session log; the rest of the mod is loaded.
  • If loading the data fails as a whole (for example because of a field with the wrong type), the game starts with the shipped data without mods and reports the error in the log.
  • Numeric values outside 0 to 1 are clamped to that range, ids are lowercased.
  • References are not checked: a PlatformId or PublisherId that does not exist leads to gaps in the game, not to an error message.

4 Game data

games.json contains the games from 1986 to 2010, each with a fixed release date. They decide what arrives in the editorial inbox, what readers expect and what the editors' scores are measured against.

Fields

FieldTypeEffect
IdTextUnique identifier, lowercased. Also the file name of a custom cover image (grafix\covers\games\<Id>.png or .jpg, portrait 720 × 1020, without text).
NameTextTitle as it appears in the magazine and on the cover.
DescriptionTextShort description in the game's profile.
GenreIdIdGenre from genres.json: action, adventure, rpg, simulation, strategy, sport. Decides which editors like to review the game, which reader groups it interests and which genre trends affect it.
PlatformIdsListPlatforms from platforms.json. The game only arrives in the inbox if the player owns a test device for at least one of them.
ReleaseDateDateISO 8601, e.g. 1988-05-01T00:00:00. Decides the issue in which the game comes out. Before that it can be announced as a preview, afterwards it stays reviewable for one more issue, with less reader interest.
Quality0–1The score the game deserves: 0.85 means 85 %. Editors hit it more or less precisely depending on skill and knowledge; the magazine's credibility and accuracy are measured against it.
Popularity0–1How eagerly readers wait for the game. Decides its pull on the cover and how strongly a review, or its absence, affects readers.
Size0–1Scope of the game. Decides the appropriate length of a review (up to 8 pages), the work needed for tips and the space needed on the cover mount.
PublisherIdIdPublisher from publishers.json (or a new entry of your mod). Decides relationship, exclusive reviews, demos and advertising around the game.
ReviewTextTextCurrently not used; the game writes the verdict of a review itself.

Which games an issue gets

For each issue the game takes all games from games.json whose ReleaseDate falls in the period of the issue. The number is tied to the page count readers expect in that year: if there are more than a third of that (at most 60), a random but reproducible selection is made; if there are fewer than 0.3 games per expected page, invented games from games_filler.json fill the gap. Games from mods count as real. Filling a thin period with real games therefore displaces invented ones; adding more to a busy month only enlarges the pool that is drawn from.

Example: add a game

mod.json with "mode": "merge", plus Data\games.json:

[
  {
    "Id": "gm86_examplegame",
    "Name": "Example Game",
    "Description": "Racing game by Ocean.",
    "GenreId": "sport",
    "PlatformIds": [ "c64", "amiga" ],
    "ReleaseDate": "1988-05-01T00:00:00",
    "Quality": 0.74,
    "Popularity": 0.6,
    "Size": 0.4,
    "PublisherId": "ocean"
  }
]

Example: correct a score

mod.json with "mode": "patch", plus Data\games.json:

[
  { "Id": "<Id of an existing game>", "Quality": 0.81 }
]

Your own data set

With "mode": "override" your games.json replaces the shipped one completely. Make sure every issue has enough games; the game fills gaps with invented games. An empty games_filler.json in the same mod switches invented games off, and thin months stay thin.

Related files

FileContent
publishers.jsonPublishers with Friendliness (willingness to grant exclusive reviews and demos) and Showmanship (how much the publisher talks up the quality of its games). Logo as grafix\publishers\<Id>.png or .jpg.
platforms.jsonPlatforms with release date, price of the test device and reader potential per year (ReaderPotentialByYear). Image as grafix\platforms\<Id>.png, 128 × 96, transparent.
games_filler.jsonTemplates of the invented games (without platform and date; the game assigns both).
hardware.jsonHardware for the hardware office. In the description, {pid:<Id>} inserts the name of a platform from platforms.json, e.g. "The best joystick for the {pid:c64}".
magazines.jsonCompeting magazines with period, platforms and circulation per year. Cover pictures as grafix\magazines\<Id>\<YYYY-MM>.jpg.
editors.jsonEditors. characterId points to the character folder under grafix\characters\editors\.
fairs.json, historicalnews.jsonTrade fairs and world events in the ticker. The headlines name games, companies, platforms and fairs through placeholders: {gid:<Id>} (game), {pubid:<Id>} (publisher), {pid:<Id>} (platform), {fid:<Id>} (fair), e.g. "{pubid:sega} launches the {pid:genesis} in Japan". So the headline follows every mod that changes the name.

5 Other files

PathNotes
Data\texts\*.jsonProgram texts, one file per area, key → text. Keep the placeholders {0}, {1}.
Data\flufftexts.jsonSentence pools for reader voices, publisher, newsstand. Identity for merge: Source + Tone.
grafix\logos\Logos to choose from in the new game setup, PNG with transparency, 512 × 512. Every file becomes selectable automatically.
grafix\characters\player\<id>\Player characters; every folder becomes selectable automatically. Strips of 128 × 128 frames (idle.png, idle_N.png, walk.png with 12 frames, elevator_wait.png), for each strip a JSON list of frame durations in ms, portrait.png 256 × 256, front.png 316 × 480. Facing right, feet at y = 126. PNG only.
grafix\characters\editors\<characterId>\Editor characters, structure as above; needs an entry in editors.json.
grafix\covers\Cover styles (styles\<id>\layout.json), cover images per genre (motifs\<GenreId>\), cover images per game (games\).

Images: PNG or JPG; with the same name PNG wins, so a PNG also replaces a shipped JPG. SVG is not supported. Rooms, interface, rules, music and sound effects are part of the program and cannot be modded.

6 Testing and troubleshooting

  • Read the session log. The newest file under log\sessions\ lists every active and every skipped mod with the reason at startup, as well as every file left out.
  • Test with a new game. Saves do not yet remember which mods they were created with. If a game, publisher or editor a save refers to is missing after switching a mod off, the save may have gaps.
  • Look at a specific period. The starting year can be chosen in the new game setup. For games of a platform, the matching test device has to be selected.
  • Validate your JSON before starting. Trailing commas in a list are not allowed; save files as UTF-8.
  • Is the mod in the right place? The mod folder has to be directly in mods\, with mod.json and Data\ directly inside it.

7 The mod workshop

You can create and edit mods without a text editor. In the mod list of the start screen, MOD WORKSHOP opens a small program that you use in your browser (no internet needed, it only runs on your computer; a console window stays open, closing it ends the workshop). The game does not have to run: you can also start ModEditor\ModEditor.exe in the game folder yourself.

  • New mod: choose title, author, description and mode, plus the files the mod should contain. With override they are copied completely, with merge and patch they start empty. A preview picture preview.png for the Workshop is made from the title as well.
  • Preview picture: saving a new title draws it again; CREATE PREVIEW PICTURE redraws it at any time. To use your own picture, simply put it in its place (1 MB at most), it then stays when you rename the mod.
  • Editing entries: take entries from the game or create new ones and change fields in the form. With patch only what you tick is saved.
  • Program texts (Data\texts) appear as a table with the original text beside them.
  • Check when saving: valid JSON, ids present and unique, field types as in the original, with patch the id has to exist in the game.
  • What this mod changes lists new, replaced and changed entries per file.
  • New or changed mods take effect after the game restarts. Images go into the mod's grafix folder by hand.

8 Steam Workshop

Local mods can be uploaded from the mod list. The game has to run via Steam; uploads use the account that is logged in.

  1. Set title and description in mod.json, optionally put a preview.png (at most 1 MB) into the mod folder.
  2. In the mod list, choose “UPLOAD” for the local mod. The game first checks mod.json and all data files for valid JSON and shows the size.
  3. The new item is private. If Steam asks you to accept the Workshop agreement, its page opens. The item's number is then written to workshop.json in the mod folder.
  4. Set the visibility in the Workshop itself. “UPDATE” later uploads the current state of the folder into the same item; the visibility stays.

Error messages from Steam appear in the mod list as a sentence, the original code is in the session log. “Access denied” usually means the item belongs to another account: if you base your mod on someone else's mod folder, delete its workshop.json, and “UPLOAD” creates a new item.

This reference describes the state of October 2026. Data formats may still change before Early Access.