Brax's Stacks: Infinite Zorkmids + a Letter to Gaslamp

Discussion in 'Bugs' started by ClawtheBard, Apr 14, 2024.

  1. ClawtheBard

    ClawtheBard Member

    This is a universal glitch to get infinite zorkmids, in most cases easily outpacing Bankster's Zorkmid gains turn over turn. I was messing around with Mathemagic and Fungus and went to go grab an Inky Hoglantern from a pedestal, and Brax did nothing. I checked and found it had added itself to the stack in my inventory. I proceeded, nonplussed, to clean out the store. Later, I got to thinking about that interaction, and with several stacks of Mushrooms decided to experiment.

    What you can do, I discovered, is:
    •Use an empty pedestal, or a pedestal that you Picked Up the item from, setting the item down somewhere in the store,
    •Alt+Click an item stack in your inventory to remove one item from the stack, placing the single item elsewhere in your inventory,
    •Sell the rest of the stack to Brax,
    •Pick Up the stack from the pedestal,
    •Repeat, cooking until golden brown and adding salt and pepper to taste.

    This does not anger Brax, so long as you put the item you displaced back on the pedestal, or buy it with your freshly minted Zorkmids. It works for the same reason adding fresh supply to a stack of overencrusted throwable weapons works to add the encrusts onto them, I would guess, though it works with any stackable item. Being an inventory trick, rather than abuse of a specific skill, this is USABLE IN ANY RUN. That said, if you have a skill that spawns items, like Fungal Arts or Piracy, you'll have a much steadier supply to use earlier on. Crafting skills work great too, to give you a stack of something to start and to craft throwables (wands excepted). Burglary also can get lucky snagging stack fodder from vending machines, though that's assuming you're using this glitch instead of robbing Brax outright with teleportation.

    My suggestion, once you get going with your first stack, target vending machines. For Floor 1 first go for Throwing, and Makeshift Bombs. That'll snowball into more expensive Arrows, Squid Bolts or Bolts of Mass Destruction if you're lucky. Of course, if something valuable appears in, say, the Archery Range room, use that.

    Pros of this glitch: you can have all the gear and items you find, and the extra turns mean more monster spawns, so you can get extra XP.

    Cons of this glitch: It breaks the game balance, but then all's fair in love and war Going Rogue. It's also very grindy, which is why I wrote the following AutoHotKey script to exploit it and save your clicking fingers much strain.

    Script setup: Install AutoHotKey, a free open source scripting program for Windows. Alternativeto.net suggests, for Mac users, Hammerspoon, or Repeat for Windows/Mac/Linux as programs that enable use of macros and task automation. Copy and paste the script below into a text editor and swap out KEYCOMBINATION1, KEYCOMBINATION2, and KEYCOMBINATION3 to ideally a combination of two buttons that will activate the three macros provided. (On an English QWERTY keyboard I have comma+semicolon as the first, comma+apostrophe as the second, and comma+V for Vending machine as the third. In copypastable terms, , & ' as the first, , & `; as the second, , & v as the third. The spaces and tick mark in the one with the semicolon is for purposes of the programming language.) LButton can be changed to RButton or something else if you typically use a lefty mouse or use some other input as your primary click.

    The coordinates I have listed are for a 1440 x 900 resolution. Several aspects of the game have static UI elements that cannot be moved, so just using barebones coordinates works for these. Use Window Spy, an application installed alongside AutoHotKey, to find coordinates that work with your preferred resolution.

    The script is set up so the macros will only activate with Dredmor as the active window

    To use: clear a pedestal the tile to the north of the player character. Make sure the store isn't on the extremes of the map! The script uses coordinates measured on screen, and cannot follow the PC when they go towards the edge of the screen. Putting the item you're clearing off the pedestal on the floor is good if you have a full inventory. Clear one space in your inventory, and again the floor space is there if need be. Put the stack of items one square above the lower left corner of the inventory, which will be empty at this point. The inventory coordinates the script uses are where the inventory appears every time the game loads and before you click and drag it to where you usually have it. It might be a good idea to Save And Exit the game at this point to reset the Inventory position.

    Disable Click To Move. Use KEYCOMBINATION1 to separate one item from the stack, and use KEYCOMBINATION2 to at once Sell it and Pick it Up off the pedestal directly to the North. It matters that it's a two step process because sometimes the stack doesn't separate, due to computer stuff I don’t know enough about, likely processing delay/desync.

    Go to a Vending Machine you have a targeted item/stack you want to get from, get it,

    start snowballing, use KEYCOMBINATION3 thereafter,

    Step 4: ????

    Profit.


    My thoughts on this and the state of the game in general:

    Were this to be patched, and I have no doubt if there were an active dev team it would be, my solution would be by making everything bought from Brax “Secondhand,” or prevent Brax from buying stackable items, which is where the glitch gets its potency from. Gaslamp Games having gone defunct is unfortunate, and I thus have the question of where the money from purchases goes to nowadays. As far as I know, all of the members/employees of the company are still alive, and hopefully there’s residuals going where they’re deserved, but as to how much money is actually changing hands I don’t know. Clockwork Empires no longer being available for purchase on Steam, and the fact that Gaslamp Games is no longer operating as an entity makes me wonder.

    The other thing about the game itself is that it’s getting old, and as I migrated laptops recently, going to a new resolution made me resize everything and go to a different resolution with which to play Dredmor, and become frustrated anew at just how much of the UI is static. Icons for Quests, Inventory, etc do not change if bound to different keys, going full Wizard trees results in more spell slots than the hotbar can hold, and scrolling between those layers requires use of mouse feathering over the now especially tiny icon. Binding those UI bits to a key has to be done through a scripting/macro program. I did that, and put a post on Reddit with my resulting UI upgrades, but there is only so much that can be fixed with that. https://community.gaslampgames.com/threads/modding-requests.1926/ These fantastic ideas are stuck in limbo, and things like the ECSRII: Electric Bungalow version of Mage Training capstone attempting to buff 100 Haywire until a spell is cast (like The Prince’s :buff_brittle: defense brittle or Berserker’s Killing Blow :buff_attack: attack brittle but for magic, a cast brittle if you will) (I imagine the icon next to the buff being a little green wand snapping) or even being able to zoom out and in to take advantage of :sight: bonuses without buff icons being in the way, or just collapsing the buffs into a tab you can bring up (cause if you have enough buffs/curses you can’t see how many hits are left on the Celestial Aegis :buff_brittle: counter, and hey you know being able to reorder those buffs would be nice) are at this moment just daydreams. The fabled mobile port is vaporware. Seeing this happen, or something resembling this draft I made


    is never going to be fully iterated without go-ahead, Open Dredmor aside.

    On top of this, as things stand there is an objectively best build in the game. Survive early floors and you are literally invincible at high enough levels. 1 Daggers 2 Dual Wield 3 Unarmed/Swords/Polearms 4 Something that gets you 3 or more :trap_sense: (Tinker, Perception, Tourist, Burglary, Archaeologist+Egyptian Magic, Hunter if you include my fiddling with the Electric Bungalow
    to give Hunter’s Lure :trap_sense: because a good hunter can spot traps and lure prey into them) 5 Antimagic (Mage Training, Magical Law, Geology, Emomancy) 6/7 Free square, Mathemagic’s teleport is especially good if you don’t have Magical Law or Geology’s obstacle-bypassing antimagic, Archaeologist+Egyptian Magic/Killer Vegan/Fungus/Assassin/Blood Magic/Ley Walker/Rogue Scientist are all acceptable choices. With the right item drops (Ring/Wreath of Iron Thorns, Shrike’s Ring, Diggle Ring of Digglish Torment, etc, in essence, :counter:) and proper use of antimagic and positioning you can completely shut down every threat in the game, from Angry Diggles to Vlad Digula. Counter invalidates or at the least completely surpasses Dodge in how good it is as a stat. The game is solved. It’s done. We beat Dredmor, everybody. Other builds doing well is just gravy, but this is outright cheese. Making Counter interact with Dodge instead of directly conflict with it would invalidate this strat and better balance the game imo, but without the engine changing that’s not happening.
     
  2. ClawtheBard

    ClawtheBard Member

    Code:
    
    #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
    ; #Warn ; Enable warnings to assist with detecting common errors.
    SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
    SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
    SetTitleMatchMode, 1
    Coordmode, Mouse, Client ; Open up Window Spy to get these coordinates for your functions. Uses Client coordinates.
    
    #IfWinActive Dungeons of Dredmor
    KEYCOMBINATION1::  ; take item in bottom left inventory slot, sell, and pick up again.
    MouseMove 786, 241  ; inventory bottom left, further optimization of this would be using Findclick() to locate the bottom left corner of the inventory and use coordinates offset from that for the operations
    SendInput {LButton}
    MouseMove 766, 469  ; pedestal to south: (764, 597) pedestal north: (766, 469)
    SendInput {LButton}
    Sleep 80
    MouseMove 575, 581  ; sell button
    SendInput {LButton}
    Sleep 80
    MouseMove 766, 469  ; pedestal
    SendInput {LButton}
    Sleep 120
    MouseMove 836, 580  ; pick up button
    SendInput {LButton}
    return
    
    #IfWinActive Dungeons of Dredmor
    KEYCOMBINATION2::  ; alt click item in leftmost second-to-bottom inventory slot and put the stack in the corner, a separate key to repeat as necessary
    MouseMove 790, 210  ; inventory second to bottom left
    SendInput {LButton}
    Sleep 20
    MouseMove 790, 240  ; inventory botton left
    SendInput {LButton}
    Sleep 20
    SendInput {Alt down} {Click}
    Sleep 20
    SendInput {Alt up}
    Sleep 20
    MouseMove 790, 210  ; inventory second to bottom left
    SendInput {LButton}
    return
    
    #IfWinActive Dungeons of Dredmor
    KEYCOMBINATION3::  ; A function to clear out a vending machine. Activation is the same button I used for the shop manipulation buttons, and v for vending machine
    ; Get within one square of the machine, move your mouse over it, then hit the hotkey.
    MousegetPos, Dredx, Dredy ; stores coordinates of where your mouse is for later
    Row := 1
    Col := 1
    VendArrx := [610, 682, 760, 830] ;X coordinates of the vending machine columns
    VendArry := [415, 485, 555] ;Y coordinates of the vending machine columns
    while (Row<4) {
        while (Col<5) {
            Click, %Dredx%, %Dredy%
            Sleep 40
            Click, % VendArrx[Col] "," VendArry[Row]
            Sleep 40
            ++Col
        }
        Col := 1 ; reset to left most x coord
        ++Row
    }
    MouseMove, 868, 301 ; coordinates of the exit button on the vending machine menu
    return
    
    

    AND SO: Dear Gaslamp Games,

    Thank you very much for making Dungeons of Dredmor. I never played Clockwork Empires, but it had nice aesthetics at the very least. Dredmor is a very fun and unique game! It is one of the most amusing roguelikes I have ever played, and indeed quite a delightful frolic of a game in general. I really dig the Skill Line system, the random button, and all the silly text, on top of the deep strategy in finding great interactions between skills and strategies between floors. Having those Roguelike Dev Blog Posts (TM) up is great insight and perspective on many design decisions. The tutorials are good, though the hidden buttons like Alt+4 could have been listed somewhere, and the game flows pretty nice on NTTG, item dearth aside. I and I imagine others would like to see one of our favorite games be made better.

    Please, in the path of many a roguelike game (Dungeon Crawl, Pixel Dungeon, NetHack, Cardinal Quest, et al) give us the source code, or at least your blessing and the secret baseline formulas for how the system works (baseline floor sizes and code on how to not make rooms collide/generate overlapping each other, how the combat calcs go through e.g. EDR vs Dodge assumptions, order of things, etc) so we can rewrite the engine if necessary to make it a much more fluid experience of a game and not run into legal trouble when/if it gets distributed. I know how you folks have ranted about the Dredmor custom-built engine being an outright mess. That said, the Modding system and aspect of the game is just a treat! Seeing all these fan-made skills, taunts, items, monsters, and rooms appear in game and some even being given the treatment of being an official patch to the game is a marvelous way to enhance our time gaming, explore new challenges, and build community. I would love to tinker with this game in some of my downtime and give it extra bells and whistles, like the Mario Kart item sounds and slot machine-esque anims when you hit the button to select Random skills, or Achievements like The Emperor’s New Armo(u)ry (equip nothing but the Invisible Shield and Invisible Dagger) or taunts that only appear when you have a certain skill/face a certain enemy/both (“Wrong brain, Igor!” for Golemancers, “Oh no, my weakness! It’s small knives!” for Daggers, “ANGERY” for Berserkers, “But can you do the Geese Pretzel?” for Unarmed, “Dredmor would like to access your echolocation” for Vampires, “I’ll make you eat those words!” from Deep Diggle Chefs, “Relax and let’s get baked” from the Potato/Tuber line of Vegetable enemies, I got pages worth of more). Dungeons of Dredmor and its DLCs are over a decade old now, and meantime ideas for its continuation and improvement have been cooking, simmering, and/or growing and popping up like so much Sporification. CAN WE HAZ PLS?

    Much love and appreciation,
    -ClawtheBard