Modding Discussion is there a way to unlock a tech other than by upgrading the ship?

Discussion in 'Starbound Modding' started by C0bra5, Jan 3, 2015.

  1. C0bra5

    C0bra5 Oxygen Tank

    i've been working on my modpack lately but i've hit a massive wall. before the i was able to give the tech chip to the player so that he would be able to unlock it. but now since the tech chip system is gone... i'm i have no idea of what to do.

    i've tried this so far:
    • giving it to a piece of armor:

    Code:
    Start logging at: 2015-01-03 16:50:51.343
    [16:50:51.343] Info: Star::Root using bootstrap file 'C:\Program Files (x86)\Steam\SteamApps\common\Starbound\win32\sbboot.config'
    [16:50:51.343] Info: Star::Root using storage directory 'C:\Program Files (x86)\Steam\SteamApps\common\Starbound\storage_unstable'
    [16:50:51.343] Info: Preparing Star::Root...
    [16:50:51.345] Info: Detected mod 'The Pony Modpack' at '../mods\The Pony Modpack V1.10\.'
    [16:50:51.345] Info: Loading Configuration with config file: 'starbound.config'
    [16:50:51.345] Info: Loading Star::Configuration from '.\../storage_unstable\starbound.config'
    [16:50:51.348] Info: Pre-loading Star::Root with 3 assets sources
    [16:50:51.348] Info: Loading Star::Assets from: '../assets/packed.pak'
    [16:50:51.372] Info: Loading Star::Assets from: '../assets/user'
    [16:50:51.372] Info: Loading Star::Assets from: '../mods\The Pony Modpack V1.10\.'
    [16:50:53.396] Info: Done preparing Star::Root.
    [16:50:53.396] Info: Client version 'Beta v. Upbeat Giraffe - Update 1' Protocol: 662
    [16:50:53.396] Info: Initialized SDL
    [16:50:53.415] Info: Initialized SDL Video
    [16:50:53.477] Info: Initialized SDL Joystick
    [16:50:53.478] Info: Initialized SDL Sound
    [16:50:53.535] Info: Opened default audio device with 44khz / 16 bit stereo audio, 2048 sample size buffer
    [16:50:53.538] Info: Finishing loading Star::Root...
    [16:50:53.540] Info: Initializing SDL Window
    [16:50:53.896] Info: Writing Star::Configuration to '.\../storage_unstable\starbound.config'
    [16:50:55.339] Info: Created initial window 1000x600
    [16:50:55.350] Info: Renderer initialized
    [16:50:55.355] Info: Renderer destroyed
    [16:50:55.355] Info: Initializing SDL Window
    [16:50:55.400] Info: Writing Star::Configuration to '.\../storage_unstable\starbound.config'
    [16:50:56.335] Info: Re-created window 1366x716
    [16:50:56.366] Info: Renderer initialized
    [16:50:56.406] Info: Writing Star::Configuration to '.\../storage_unstable\starbound.config'
    [16:52:37.986] Info: Done loading Star::Root.
    [16:52:37.995] Info: Renderer destroyed
    [16:52:41.334] Info: Creating default Star::Configuration
    [16:52:41.468] Info: Renderer initialized
    [16:52:55.175] Info: Renderer destroyed
    [16:52:55.363] Info: Acquiring universe lock file
    [16:52:55.622] Info: UniverseServer: Loading world db for world -25749585:487303078:-130364487:3:5
    [16:52:56.962] Info: UniverseServer: client connection made from local
    [16:52:57.005] Info: UniverseServer: Sending Handshake Challenge
    [16:52:57.010] Info: UniverseClient: Sending Handshake Response
    [16:52:57.054] Info: UniverseServer: Client 'Sweetie Wing' <1> (Fifo <0x1f357f38>) connected
    [16:52:57.081] Info: UniverseServer: Loading ship world received from client <User: Sweetie Wing>
    [16:52:57.083] Warn: Recovering SimpleDatabase at device: <unnamed temp file>
    [16:52:57.098] Warn: Recovery finished
    [16:52:59.433] Info: Creating default Star::Configuration
    [16:52:59.987] Info: Renderer initialized
    [16:53:01.167] Warn: Could not load tech module '/tech/dahs/dash.tech' reason: (TechDatabaseException) No such tech '/tech/dahs/dash.tech'
      TechDatabase::tech(String)
      TechController::setupTechModules(List<tuple<String, Map<String, Variant, unordered_map<String, Variant, hash<String, void>, equal_to<String>, allocator<pair<String, Variant> > > > >, deque<tuple<String, Map<String, Variant, unordered_map<String, Variant, hash<String, void>, equal_to<String>, allocator<pair<String, Variant> > > > >, allocator<tuple<String, Map<String, Variant, unordered_map<String, Variant, hash<String, void>, equal_to<String>, allocator<pair<String, Variant> > > > > > > >)
      TechController::setLoadedTech(StringList)
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.329] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.406] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.494] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.610] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.688] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.770] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.851] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:01.926] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:02.005] Error: Exception caught in client main-loop: (MapException) Key '0' not found in Map::get()
      MapException::MapException(string)
      TechController::loadModule(TechController::TechModule)
      TechController::tickMaster()
      Player::tickMaster()
      WorldClient::update()
      UniverseClient::update()
      ClientApplication::updateRunning()
      ClientApplication::update()
      StarApplicationBase::run()
      _SDL_main
      _console_main
    
    [16:53:02.005] Info: UniverseClient: Client disconnecting...
    [16:53:02.015] Info: Client received world stop packet, leaving: Removed
    [16:53:02.909] Info: UniverseServer: Client 'Sweetie Wing' <1> (Fifo <0x1f357f38>) disconnected
    [16:53:02.956] Info: NetSocket read loop shut down: (FifoClosedException) Fifo::read called on closed Fifo
    [16:53:02.956] Info: NetSocket read loop shut down: (FifoClosedException) Fifo::read called on closed Fifo
    [16:53:04.463] Info: Renderer destroyed
    [16:53:04.463] Info: Application quitting!
    [16:53:04.463] Info: Client shutdown gracefully
    [16:53:04.881] Info: Shutting down Star::Root
    

    • finding a part of the lua that could help me. nope nothing on that side,
    • trying to find a way to unlock the tech by an other item.
    • giving myself the item, it gave me the icon of the tech, as an item and it does nothing.

    sooooooo...... ya i'm stuck... does any one has any idea on how i could do this?
     
  2. Olxinos

    Olxinos Scruffy Nerf-Herder

    Best Answer
    I can come up with a weird complicated way: add a quest to an npc in the outpost (or create one Edit: you may even spawn it, that would be funny to find a "gravity-bubble-tech-scientist-spawner" in a chest) which enables an aicommand which unlocks the tech.
    There's certainly much simpler, but i didn't find anything else (without having to recreate another character if you have already unlocked the upgrades/completed the existing quests).
     
    Last edited: Jan 4, 2015
  3. C0bra5

    C0bra5 Oxygen Tank

    well i will give it a try...
     
  4. C0bra5

    C0bra5 Oxygen Tank

    you're a genius, it worked!
    since i give the tech at the start of the adventure, i created a quest at the creation of the character, and added a quest trigger to the upgrateship1.aicommand called ai.rebooted which is the trigger for completing the quest. the quest unlocks the ai command and allows me to create a command where the player will be able to activate the tech by simply going into his safe and taking a blank tech card to unlock the tech.... i would still apreciate a way to unlock a specific tech with a specific item... but i doubt that this is possible.
     
    Last edited: Jan 10, 2015
  5. Olxinos

    Olxinos Scruffy Nerf-Herder

    If you plan to give the tech at the beginning of the adventure (instead of allowing an already existing player to get it) you can also directly add your custom aicommand in ai/ai.config:/enableCommandsAtLevel/0/-.
    Don't forget you can add costs for the aicommand to be used, also quests may be able unlock the tech without any help of an aicommand but i'm not sure.
     
  6. C0bra5

    C0bra5 Oxygen Tank

    as good as your idea is, it wouldn't work in my case since i'm working on a mpdpack where some species get some custom tech at the start. i don't want to give it to all the races because they are fairly op. and no you can't unlock a quest that is a tutorial for a specie.
     
  7. ThirdEyeGuercio

    ThirdEyeGuercio Void-Bound Voyager

    If I understand it correctly, the mighty @aMannus gave me a very simple alternative.
    Create an item. Give this item a quest on pick-up/crafting: the condition for the quest is the item itself (so instant succes once you have the item) and the reward is the tech (using "enableTech" on the .questtemplate file).
    It works perfectly.
     
    G.Xyon likes this.

Share This Page