Skip to content
/ games Public

Misc game-related tweaks and tools that I tend to write

Notifications You must be signed in to change notification settings

mk-fg/games

Repository files navigation

Games

Just a collection of accumulated stuff in no particular order, to be able to link or remember stuff occasionally.

Scripts here pretty much always have some -h/--help option/output, with purpose/usage and all options documented there, as tend to write these down to avoid forgetting them myself.

Likely to be out of date to a various degree for most games/mods that get updates.

Repository URLs:

Sometimes needs a bunch of fixes and/or balancing tweaks for whatever weird and unexpected game scenario you end up with, though extra content mods are nice too.

Mods are for post-2.0 era.

  • Fast Cyborg Assimilation

    Cybernetic assimilation mechanics were clearly developed for either gestalt consciousness empires which have no politics, or egalitarian ones that have all species rights granted by default.

    Don't work well for authoritarian/xenophobe slavers, as this sets all assimilating pops "free" for a long time, and keep resetting rights for assimilated pops to "full citizenship" for no good reason.

    Simple workaround implemented in this mod is to make process fast enough to be less painful - more of a quick disruption than decades-long PITA.

  • Strike Craft as Fleet Support

    Rebalance mod for strike craft in Stellaris 2.0, making them into general "jack of all trades, master of none" fleet support weapon, good against all ship types without straight-up countering anything.

  • Microwarpdrives

    Adds technology and ship module similar to MWDs in EVE Online - hypercharged afterburners that have some combat penalties at the expense of even higher speed.

    Here they're mostly for logistical purposes - redeploy support ships faster between starbases or chase down pirates with an overwhelming fleet of lighter ships.

  • Glavius AI Sector Development Edicts

    Tweak for Glavius's Ultimate AI Megamod to allow more control over some annoying Sector AI decisions via empire/planetary edicts.

  • Free Sector Resource Drain

    Another simple (and likely temporary) tweak to fix weird cost on clicking "transfer resources" button for AI-managed sectors, making them less of a nuisance.

  • Tech Tier Numbers on Laser Icons

    Also a tiny graphics fix for tech icons on one branch missing proper tech tier identifiers.

  • Tech Tier Numbers on Tech Icons

    Icon tweak similar to previous one, adding tech tier number to icons for most techs that have a linear upgrade path.

  • Shadowrun Name List

    Extensive Name List from The Sixth World of Shadowrun cyberpunk dystopia universe.

    Pulled/generated by scripts from shadowrun.itemcards.com name generator.
    Scripts are in the repo alongside resulting list.
  • Sector AI Building Edicts

    Toggleable empire/planetary edicts which allow to veto some of the sector AI building decisions, e.g. prohibit it to build farms everywhere or on some subset of planets where it doesn't make sense.

  • track-mod-changes.py

    Script to run before starting Steam to track changes in all subscribed and local mods.

    Useful to spot recent mod changes that can potentially break the game or might be the cause for whatever weirdness suddenly happening there, as well as tracking whether these get up-to-date with the mainline patches.

  • combine-music-packs.py

    Script to parse all .asset/.txt/.yml files in music mods and combine all tracks from these into one mod, with track names having "mod-name :: title" format in in-game player.

    Using that with hundreds of tracks from mods will break in-game music player, as it turns out (will render overflow as blank playlist) - definitely not designed for that many :)

Great game, but found large-scale production required in late-game a bit too slow or tedious to setup or debug without bunch of repetition.

Easy to fix with mods though, which are one of the best parts of the game.

  • Will-o'-the-Wisps updated

    Compatibility update (for Factorio 0.16.x) and bunch of tweaks to Will-o'-the-Wisps mod by Betep3akata, which seem to be abandoned since 0.15.x. Pretty alien fauna mod with some challenge elements and couple unique mechanics.

  • Moon Logic

    Fork of Sandboxed LuaCombinator by IWTDU and LuaCombinator2 by OwnlyMe, allowing to pretty much just script game in Lua from within it, with a bunch of QoL and usability enhancements and updates for modern factorio.

  • Biter Detector Sentinel Combinator

    Easy-to-use alarm and detector/counter for biter enemies within range.

  • Vehicle Cruise Control

    Adds GUI panel with buttons to toggle acceleration and brakes, so that you don't have to hold W or S.

  • Circuit Power Measurement Combinator / Circuit Power Measurement Pole

    Power grid production/consumption measuring mods, outputting signals to circuit network, which were curiously absent until now.

  • Configurable Roboport Range

    Small tweak to change Roboport building ranges.

  • Switch Button 1.0

    Compatibility update and fixes for a simple circuit network on/off button mod.

  • Color Combinator Lamp Posts

    Adds small always-on smart lamp posts with built-in color selection on click.

  • Wildfire

    Mod that starts forest fires on the map randomly.

  • Burner Drill 4x4 Area

    Changes Burner Mining Drills to have 4x4 resource search area instead of default 2x2 (right under), and nothing else.

  • mod-portal-reverse-dep-check.py

    Script to lookup what depends on specific mod using Factorio Mod Portal API.

    Does as much caching as possible to allow running many lookups.
    Run with -h/--help option to get usage info.
  • mod-list.yaml - list of mods from when I last played (should include base game version number) and backed it up.

  • lua-combinator-code.txt - some code snippets for lua combinator mod(s) mentioned above.

  • doomeer-factorio-calc.index.html - replacement index.html for online doomeer/factorio production-chains calculator to fix only major issue I had with it - filled-in fields visually lost among pointless pre-filled "0" values or just empty ones (filed as doomeer/factorio#75).

Useful companion links for the game:

Factory Planner and similar mods do a good enough job with in-game GUIs and data these days, so above calculators aren't really necessary, even with non-modded game.

Great sci-fi city builder, kinda like Outpost games of old, but with much lighter tone, and on Mars.

Minor quality-of-life and balancing lua tweaks, most of which only live in repo history, obsoleted by official game updates:

  • cheaper-consumer-items

    70% cheaper Art and Electronics shop consumables for crowded domes, as they really slow production down needlessly otherwise.

  • university-entrance-exams

    Bars mentally challenged colonists from studying in Martian University, leaving them in service jobs forever, where they can do relatively little harm.

  • no-border-scrolling

    For some reason it's extremely sensitive and annoying here, though maybe because I tend to move cursor from the window to tweak lua way too often.

  • place-mark-at-cursor

    Adds hotkeys to place colored hexes to mark locations anywhere on the map.
    Useful to remember or temporarily mark various building reach areas to plan stuff.
  • disable-maintenance-button

    Adds button to toggle whether drones will patch building up when maintenance is required.

  • green-mars-terraforming-lightmodel

    Covers mars terrain and atmosphere with greenish bioluminescent microbiotic life.
    Simple lightmodel switch, was made before DLC with the same name came out.
  • polymers-production-buff, unlock-oval-dome, quick-cash-refund

    More small local balancing hacks and local tweaks to other mods.

  • console

    Mod Editor console extension with a bunch of useful tools, like recursive pretty-printers, dumping stuff to files, running lua scripts from files and such.

    Requres bootstrap via initial console via c.init(load) command, to give access to full _G env for all subroutines there, c.h() for more info on all the tools there.

  • sm-music-pls.py

    Script to reshuffle music files extracted from HPK archives (e.g. via nickelc/hpk tool), producing game-radio-like playlist with radio blurbs/talks interspersed with music.

Same as with other PDS games, it badly needs fixes after every major patch and in general.

  • Missing hairstyle randomizer [Steam, PDX Plaza]

    Fixes an issue with most characters in the game going bald when loading 1.2.x game after 1.3.0 patch - very simple and purely aesthetic one-off bugfix.

Darkest Dungeon: darkest-dungeon-save-manager.py

Cheat tool to backup DD save games, as it's too hardcore, random-bs and grindy for my tastes.

So simple fix is just to allow some (minor) save-scumming, which is what this tool does - allows to copy saved game state to multiple slots, like with any less hardcore game.

Usage:

% ./darkest-dungeon-sm save
% ./darkest-dungeon-sm save some-slot-name

% ./darkest-dungeon-sm list
% ./darkest-dungeon-sm   # same thing

% ./darkest-dungeon-sm restore   # latest slot
% ./darkest-dungeon-sm restore some-slot-name
% ./darkest-dungeon-sm restore any-name-part
% ./darkest-dungeon-sm restore .5.

% ./darkest-dungeon-sm remove -n10   # show 10 oldest slots to cleanup
% ./darkest-dungeon-sm remove -n10 -x   # actually remove stuff

Remove some tension from the game for sure, if you know that the save is not that far-off, but at least it's playable that way.

Satellite Reign: sat-reign-pick-clone.py

Simple script to find clone id in savegame xml by specified parameters.

Mostly cosmetic thing - allows to transplant some game-important parameters into clone/agent with specific appearance, which was (maybe still is) cool because there are all sorts of fancy cyberpunk character models in that game, but you can't switch these for agents without sacrificing stats.

Usage:

  • Pick whatever clone you want to use ingame, remember their stats.

  • Run tool to find id of that clone in savegame by stats:

    ./sat-reign-pick-clone.py 'h: 5, s: 9, hr: 0.05, e: 0, er: 0' sr_save.xml
    
  • Find that id in xml, paste stats from current (up-to-date) agent clone into weak clone with that id and appearance, so it'd be viable to use.

  • Load game and swap agent into that clone.

City layouts and production chains, as that's pretty much all there is in that game, plus pretty graphics ofc.

  • layout-*.png

    City layout templates, probably nicked from wikia.
    For early techs this is kinda important, as costs are quite high there.
    Usually use large corridor layout for sprawling non-tech cities.
  • production-chains-best.{png,xcf}

    Production chain ratios, space requirements (production "field" count/size), and numbers for how much demand they satisfy, as getting them right through trial and error is very wasteful and hard to remember them all.

Bunch of delta-V and aerobraking maps, along with some outdated mod tweaks.

Useful online resources:

Extensive total conversion for OpenXCOM, and one of the best strategies of its type, if complexity, longevity and rather slow pacing is your thing.

Fair warning though - art/text in that mod can get a bit weird.

  • piratez-melee-calc.html

    Web-based calculator tool for quick item comparison, mainly for melee item stats' calculations, as these get complicated quickly in this mod.

    Can be used with json cache file comitted in the repo via link above, otherwise just put html and generated json cache (see below) into same path and run html via browser.

    Intended use is to search and pick any number of currently-available weapons for comparison table, then plug unit stats at the top and pick whatever is best based on rough "dpu" value (power * accuracy / tu cost).

    Can calculate power/accuracy/dpu for ranged weapons that have formulas as well, but without taking range and all penalties associated with it into account.

    Based on an earlier curses-based linux console python calculator tool (which can be found in the repo history), translated to web-based to not be linux-specific.

    Uses json cache file generated from multiple ruleset/localization files of the mod by piratez-melee-calc.py script.

  • piratez-melee-calc.py

    Generates json cache files like piratez-melee-calc.json next to it in the repo.

    See -h/--help output there for option info, but basic usage goes something like this:

    % ./piratez-melee-calc.py cache.json \
      -r user/mods/Piratez/Ruleset/Piratez.rul \
      -m user/mods/Piratez/Ruleset/'Gun CqC'.rul \
      -l standard/xcom1/Language/en-US.yml \
      -l user/mods/Piratez/Language/en-US.yml
    

    piratez-extract-rulesets.sh helper script next to it basically does that for all XPiratez dirs under current one, extracting versioned/cleaned rulesets (to run diff on them) and creating json caches for each.

  • oxce-loadout-manager.py

    Script to save/restore armor + loadouts for all soldiers from/to a specific save file.
    Useful for mass-switching loadouts for when diff missions require diff armors (e.g. land, sea, infiltration).
  • battlescape-save-end-cheat.py

    Tweaks battlescape save file to make all enemies on the map surrender or get stunned.
    Quick and dirty fix for "find last enemy" problem, which can often be pointlessly tedious.
  • remove-map-block-lights.py

    Edits specified map block to remove all light/glow from tiles used in it by patching light-byte in mcd files.
    Intended for removing craft cabin lights, as these can make starts on night missions really annoying.
    Usage: ./script --dry-run -d user/mods/Piratez user/mods/Piratez/Ruleset/Piratez.rul 'crafts type=str_fatsub'

Misc Scripts

Helper scripts not related to specific games.

  • gog-unpack.sh

    Script to unpack GoG (gog.com) linux archives without running makeself and mojosetup.

    They seem to have [ N lines of makeself script ] || mojosetup.tar.gz || game.zip format, and script creates *.mojosetup.tar.gz and *.zip in the current directory from specified .sh pack, using only grep/head/tail coreutils.

    Usage: ./gog-unpack.sh /path/to/gog-game.sh

    Note that zip can have configuration and post-install instructions for mojosetup in it (under "scripts/"), plus misc assets like icons and such.

  • faketimectl

    Trivial Py3/Gtk3 app to control libfaketime rate via global hotkeys (using libkeybinder3) and display it.

    Idea is to run a game with e.g.:

    LD_PRELOAD=/usr/lib/faketime/libfaketime.so.1 FAKETIME_CACHE_DURATION=3 \
    FAKETIME_XRESET=1 FAKETIME_TIMESTAMP_FILE=/tmp/faketime.rc ./game/start.sh
    

    And have this script adjust its running speed via these keys, kinda like Cheat Engine "speedhack" tool does on Windows, allowing to play fast games at a more chill pace easily.

    Run script with -h/--help option to get a list of default hotkeys and other options/usage info.

    Rate adjustments are picked-up after FAKETIME_CACHE_DURATION seconds, when libfaketime re-reads that file. FAKETIME_NO_CACHE can be used to remove that delay entirely, at the cost of extra file read/parsing on every time-related call - probably not ideal.

About

Misc game-related tweaks and tools that I tend to write

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published