Is there any way I can unlock all scans for use in the Pixel Printer?

Is there any way I can unlock all scans for use in the Pixel Printer? - Serious female office worker using printer in workplace

I like making new characters in Starbound from time to time, but it becomes a real chore trying to re-scan absolutely everything just to be able to print it with the Pixel Printer. Is there any way to unlock everything all at once, without needing to resort to scavenging the whole galaxy or enabling /admin mode?

The closest thing I can find is manually using /spawnitem to cheat an item in, scan it, and subsequently destroy it, but this is an awful lot of busywork, since I need to do it with every single printable item. I’d like to find a way to unlock everything at once.

Obviously, doing this is “cheating”, so I don’t particularly care what the method is, as long as it isn’t too laborious. An in-game command to run, a mod to install, or even a particular file to edit would all be acceptable solutions. That said, I don’t consider /admin mode an acceptable solution, since I don’t want to be in /admin mode! I want to still play the game and be able to take damage and consume energy, I just want to skip the grind (that I’ve already done before).



Best Answer

I am a former developer of Starbound.

Not without save hacking.

The list of scanned objects is saved to your player file.

First, a little bit on how player files are structured. They are custom serialized binary data that when expanded becomes a JSON file. The actual structure of the file is not fresh in my memory, and it may have changed since I last had access to the game. There may be save editing utilities for Starbound out already, I would suggest checking if those exist.

The data you want to modify is located under the "log" object in a list of strings named "scannedObjects".

The entries in this list are objectNames. You can find each one you want by unpacking the assets.pak file and browsing through the .object files within. The "objectName" string is the string you want to use. For instance, this is the apexaquarium2.object:

{
  "objectName" : "apexaquarium2",
  "colonyTags" : ["apex","apexvillage","pretty"],
  "rarity" : "Common",
  "category" : "Decorative",
  "price" : 60,

  "description" : "An empty aquarium. How lonely.",
  "shortdescription" : "Empty Wooden Aquarium",
  "race" : "apex",

  "apexDescription" : "An Apex may only replace his fish once every 3 years.",
  "avianDescription" : "This fish has flown the nest.",
  "floranDescription" : "Ssssomeone got here firsst.",
  "glitchDescription" : "Neutral. An empty tank.",
  "humanDescription" : "I wonder what happened to the fish...",
  "hylotlDescription" : "Memories of home wash over me.",
  "novakidDescription" : "It's for keepin fish. But there ain't no fish in it.",

  "inventoryIcon" : "apexaquarium2icon.png",
  "orientations" : [
    {
      "dualImage" : "apexaquarium2.png:<color>.<frame>",
      "imagePosition" : [-16, 0],
      "frames" : 8,
      "animationCycle" : 1.0,

      "spaceScan" : 0.1,
      "anchors" : [ "bottom" ],
      "collision" : "platform"

    }
  ],

  "soundEffect" : "/sfx/objects/aquarium1.ogg"

}                                                                                                                                                                   

By convention, we've tried to make the file name the same as the objectName, but there's no enforcement of this convention by the game engine.

Alternatively, you could enable admin only to print objects and then turn it right back off again when you're done. If you really, really care, you can buy it with admin, scan it, throw it away, and then buy it again legit.

While annoying, both of these options seem somewhat easier than attempting to hack your player file.

If you really want to get your arms dirty, you may be able to perform this action via the lua scripting engine using a custom mod. The .player file is what is known as a versionedJson internally. There is a lua command called loadVersionedJson and another called makeCurrentVersionedJson. Hopefully, your task is as simple as making a mod that calls a lua function that loads a copy of your character's player file, modifies it by iterating over all the objects and adding it to the log.scannedObjects key, then stores it back to another file. Then you can move that file to your regular player file, and Bob's your uncle.

You may have to play around with various lua contexts to find one where both of these commands are available though.




Pictures about "Is there any way I can unlock all scans for use in the Pixel Printer?"

Is there any way I can unlock all scans for use in the Pixel Printer? - From below of diverse lost travelers with backpacks exploring woodland and searching way in cellphone
Is there any way I can unlock all scans for use in the Pixel Printer? - Crop unrecognizable man cleaning computer system unit
Is there any way I can unlock all scans for use in the Pixel Printer? - Green and Yellow Plastic Clothes Pin





Fix Print and Scan Problems Using HP Print and Scan Doctor | HP Printers | @HPSupport




Sources: Stack Exchange - This article follows the attribution requirements of Stack Exchange and is licensed under CC BY-SA 3.0.

Images: Andrea Piacquadio, Kamaji Ogino, Anete Lusina, MART PRODUCTION