I made a bad object now, I can't get rid of it.

Discussion in 'Starbound Modding' started by Deathscythe45686, Sep 23, 2020.

  1. Deathscythe45686

    Deathscythe45686 Space Hobo

    So I tried to insert a custom object that automatically produces oil, script below. Obviously I got the object name wrong and it can't produce "oil" because that doesn't exist under that name, it did however make the trap and I was able to place it.. Whenever I get in to the same screen as said object, I'm then transported to my ship after the world server crashes.

    I figure, what needs to happen is that, I go in to the world file and delete the offending object so that I can continue. However, I'm unable to read the thousands of lines of script therein. This is the Log file error that's relevant, but I don't know how to find it in the world file.

    [00:38:07.904] [Error] WorldServerThread exception caught: (MapException) Key 'oil' not found in Map::get()
    [0] 1400aa213 Star::captureStack
    [1] 1400a8f9e Star::StarException::StarException
    [2] 140243b46 Star::MapMixin<Star::FlatHashMap<Star::String,unsigned char,Star::hash<Star::String,void>,std::equal_to<Star::String>,std::allocator<std::pair<Star::String const ,unsigned char> > > >::get
    [3] 1402443fd Star::LiquidsDatabase::liquidId
    [4] 1403ed600 Star::projectile::processAction
    [5] 1403ea02f Star::projectile::destroy
    [6] 14063e82a Star::WorldServer::removeEntity
    [7] 1406447cd Star::WorldServer::update
    [8] 14064a0a6 Star::WorldServerThread::update
    [9] 140649a8b Star::WorldServerThread::run
    [10] 1400a6d9e Star::ThreadImpl::runThread
    [11] 7770570d BaseThreadInitThunk
    [12] 7786385d RtlUserThreadStart
    [00:38:08.033] [Error] UniverseServer: World CelestialWorld:-155462676:739986987:-14808578:4 has stopped due to an error

    Please help. I would appreciate it greatly.

    /spawnitem ancientbouldertrap 1 '{"shortdescription":"Bottomless valve", "description":"An infinite source of liquid! Current attunement: oil.", "fireTime":0.25, "fireTimeVariance":0.05, "inaccuracy":0.1, "projectile":"watersprinkledroplet", "projectileConfig":{"damageTeam":{"type":"indiscriminate"}, "power":0, "speed":25, "actionOnReap":[{"action":"liquid", "liquid":"oil", "amount":4}]}}'

    I've already reached out to Chucklefish including logs and the offending world file on 9/10/20 and haven't gotten a reply.

    Thank you
     
  2. Iris Blanche

    Iris Blanche Pudding Paradox Forum Moderator

    As far as I am aware there is no way to edit a worldfile directly. The only solution I can see is either deleting said worldfile and reseting said planet that way or using a temporary mod which adds a liquid with the ID you used.
    I assume the mod solution would be the preferred one so I am moving the topic to the Modding section instead.
     
  3. The | Suit

    The | Suit Agent S. Forum Moderator

    If it crashes on loading the world only real option is to delete the world file
     
  4. Deathscythe45686

    Deathscythe45686 Space Hobo

    @Iris Blanche : Do you have any suggestions for a mod with that capability?
    @The | Suit : As I said the world crashes when the screen scrolls into range of the offending object.
     
  5. The | Suit

    The | Suit Agent S. Forum Moderator

    Ya there isn't much you can do because that area is corrupted. Its just easier to always test on a Barren planet.

    One time I made a mod that essentially spawned infinite projectiles by having one projectile spawn another projectile and each projectile dug through the ground essentially destroying the planet.

    The funny thing was I just wanted to make a new Mining Tool.
    The lesson being when testing something always do it on a fresh planet.
     

Share This Page