NIFE Updates Shatterloop Game Projects Shatterloop Updates
Other Projects Blog    


(Loose Ends)

Posted 6 Months ago by Xhin

I'm throwing everything in here that's related to a "finished" project, including UX fixes, integration, etc.

Page 1
  • Prop Splitting
  • Towns v1 Stuff
  • Shop distribution
  • Maps v0
  • Materials UX Update
  • Terrain Configurations Finalization
  • Quantum Planes v2 Issues

    Page 2
  • Quantum Planes v2 Testing Framework
  • Post-Melange-Update Game Progression (Monad stuff)
  • Dungeon Issues
  • Farming Loose Ends
  • Minor Code Update

  • There are 18 Replies

    Prop Splitting checklist

    Originally a single UX point, but needs its own checklist.

  • Implement a "formula" datapoint in a recipe that gets split to recipe and props datapoints.

  • Alter the grappling rope recipe accordingly

  • Alter it again so it splits this way: (rope_type goes to rocks/bones, rope_value goes to twine, durability/max goes to the scales)

  • Get these properties split out correctly in a crafting.init() function -- hook this into the main init.

  • Find the correct endpoint for property splitting. Propgen{}? Crafting{}? Hard to tell.

  • Get the property list hooked into there.

  • Split according to this list and the ingredients used. May be tricky and may require its own checklist.

  • Make sure wisdom-based property splitting works right as well.

  • Over 1 Year ago
    Sky's the limit

    Additional Towns v1 stuff

    This list are some ideas I came up with while working on the towns v1 finishing project + some of the stuff in there that fits better on this list.

    Stuff from the list above that's better off here

  • Comb through the integrity.furniture_loot() list, distributing those functions into the furniture as needed.

  • Comb over the furniture loot list and make some items appear more than once in furniture (like extractables, dyes, potion ingredients)

    Money distribution

  • Find the hook for item amounts (seem to have forgotten it)

  • Distribute small_money, med_money and big_money.

  • Create rand_money that will give a random money of the three, with small_money more likely

  • Distribute this across areas where money would likely appear

  • 11 Months ago
    Sky's the limit

    Get one of each type of shop appearing in the starting province Checklist

    Need a full checklist for this because it's a bit tricky.

  • Create an "all" index in inside.init()

  • In towngen.gen(), pull the premade_types variables back out into the object and hook back in. Might be tricky with the random one. I hope I don't need yet another checklist.

  • Find the hook for how many houses are in a town max and make that also accessible in a similar way.

  • In province.init(), run province.assign_houses() right before the loop: run a function that distributes the inside.index.all[] into nationgen.index.all[], forming a new variable called "distributed_houses" that assigns the nonad kee to the house types -- this should be stored in province{} directly.

  • Don't assign houses if you're not in region 0.

  • Also in province.assign_houses(), make sure the maximums for the #/houses in a town and the premade types are respected during distribution.

  • In towngen.gen(), append province.distributed_houses{} to the premade_types via the nonad kee.

    That should ensure that the starting province has one shop of every type.

  • 11 Months ago
    Sky's the limit

    Maps v0 Checklist

    I combined all the maps points into this.

    Basic stuff

  • Alter notes{} so that there's hooks for nonad-based notes

  • Fullscreen infrastructure (pull from the equipment submenu and generalize)

  • Give the province map a fullscreen option.

    Map Notes

  • Make it so that each cell of the map is clickable. Clicking it should open up a menu at the bottom that says the name of the thing there, coordinates, and opens a textarea/submit for notes.

  • Hook these back into the notes{} function.

  • The coordinates should be a link. Clicking it should point you in that direction and give you a distance.

    Mark Map

  • Have an input area and button to mark current location as something.

  • This should do something with notes{} to store it. and then rerender the map.

  • In the map rerender function, create links for these stored notes.

  • Clicking them will point you in that direction, highlight the nonad, and give a distance.

  • They should also have an "x". This deletes it from the notes{} and rerenders the map.

  • 6 Months ago
    Sky's the limit

    Materials UX Update

    Combines all my materials v3 checklists into one.


  • Insects and Rocks need to go into the "raw materials" category. Update this anywhere where they're rendered. -- The rocks change will mess with geologists and other shop types; the insects change will mess with the current version of fish. May want to wait.

  • Brush should have a different naming scheme than trees. Also need to do a lot of naming changes in general.


  • Having 20-30 for each individual item is way too much -- I should alter the surface materials functions (and all hooks) so I can (optionally) custom-set amounts for each material type.

  • Extend simplification to all other tercos -- symbiotic/harmonic, anything screen-based, changing the orders of everything so hierarchy is respected. All submerged variations should appear as well. It's important that I wait on this update until after the metals update.


  • I need a new discoveries tab for terrain configurations. Should probably just fake something out for now (and integrate terco_help in whenever that's working). This should make it easier to see everything in the terco and terco_reverse objects so I can locate specific materials to test or balance them better.

  • Rarity colors for different configurations -- reflective in the new discoveries tab.

  • Loot should be reflective of materials v3 -- trickier to do then just generating tree names beforehand.

  • 6 Months ago
    Sky's the limit

    Terrain Configurations: Still TODO

    This project is also still open.

  • Get all the help systems working.

  • Get all the generators working appropriately.

    Other things related to this megaproject

  • Get Caves Materials integrated.

  • Rocks v2

  • 6 Months ago
    Sky's the limit

    Quantum Planes v2


  • There are diagonal gaps in the line_between function. Fix them by allowing for partial coordinates, using 0.5 in the main function. This should fill in any gaps.

  • Being able to have even scopes would be nice -- 2 would be better than 3 starting out.

  • Activated pivot circles need to be layers -- they're erasing 'quantum'-tagged changes (like exotic matter creation).

  • Each upgrade should have maxes (chromodynamo distance should be 10), these should be settable, displayed, and functionality should work, including turning the button into "maxed out".

  • Get rid of worldlocking -- it breaks the flow of the new systems.

  • 6 Months ago
    Sky's the limit

    Quantum plane testing framework

  • For the sake of sanity, I need to build out the help functions for quantum functions.

  • And also the help framework.

  • reset_defs() should show all the definitions along with the appropriate help in that section.

  • Each one should also have a "highlight" button.

  • This should run the definition through the prospect functionality to highlight that on the screen appropriately, or show 0 if none exist.

  • Go ahead and pull out the rand.chance(33) code on exotic matter spawns -- it's a reroute around this set of features that are lacking.

  • Now I should be able to test if exotic matter is being rendered correctly or not.

    Final features (way later)

  • Highlighting is useful here -- maybe make it cost a settable amount of exotic matter. (20 by default). Add an upgrade that decreases the amount by 2, and costs 20. Obviously these values are customizable on my end as well.

  • Don't forget to get rotate functionality in the help framework -- idk if I want to do it during this update, after it, or when getting to the terco help update in general.

  • 6 Months ago
    Sky's the limit

    Post-Melange-Update Game Progression

  • Add a key item called "Monad".

  • When the game starts, seed the game seed and generate a recipe that involves 3 each of 2 types of melange materials and 3 Myr Triads and assign it to the Monad recipe.

  • When you get the Monad recipe, add a monad power to the melange warp area.

  • Rename the melange warp area to "Elements".

  • Have a button for "Warp" and one for "Use" -- Monad does not have a Warp function.

  • Only warping should cost 200/0 Aether. Use costs 10.

  • IDK what the Use buttons actually do -- some kind of lore-centric easter egg eventually probably. Add a TODO and move on with your life.

  • Monad use should redirect through .monad() (which is in mana_shrine{} now I think) and do what it used to do.

  • 6 Months ago
    Sky's the limit

    Aggregating my various checklists here, since this project is apparently underway until completion.

    Dungeon Issues

  • Have a "Boulder Attachment: ON / OFF" button? on the boulder menu. If attached, act like normal. If not, let you push boulders around without being able to pull or rotate around them.

  • Get various shape properties in there optionally -- I like the standard ones a lot too, so maybe 50/50 chance. -- Most of these aren't working a normal way; fixing them is just as hard

  • Store salt totals and reference it in the salt table -- Tricky. count: true is set but requires some finagling of shape{} properties and maybe some ruingen_storage work.

  • Inactive dungeons should have variations on how they appear. Might require its own checklist.

  • Dungeon Salts aren't returning the right thing in all cases, need to test and diagnose. Might want to change the terrain pattern of the multiple-hallway one -- there's more fixtures around now.

  • Drop D Salt functionality, replace with something else -- I have some ideas, like one that lets you go into the BG the appropriate amount but teleports you perpendicularly some amount as well.

  • Salts that you've picked up shouldn't prevent ruin power travel. This is going to require some finagling with entypes.

  • There should be a minimum runestone spread size for smaller dungeons

  • Exiting a dungeon should re-index runestone locations so you can warp around freely again. There might be other stipulations of this as well.

  • If there are no movement buttons, don't show the warp table at all - testing this requires creating a single runestone.

  • Runestone menus should stay open when you warp, allowing you to warp more -- this will require some index lookups though to reopen the menu correctly -- might want to put the coord in the title to get a good idea of this.

  • Remove the property that tells dungeon rooms to not overlap -- sometimes they're way below the minimum size. Or alternately max out the number of fixtures that can spawn in a room relative to its size or expand the room size into hallways/etc.

  • Portals should work in dungeons.

  • You should be able to access the dungeon crafting menu from your base via a special fixture that requires dungeon materials to make.

  • Fixture limits should be reflected by the room size.

  • Facing the runestone from a different direction gives off a different seed.

  • Door opens and tetradshard/core/etc pickups should turn into the room or margin color -- basically whatever was under it first.

    Essential Issues Fixes

  • Some shapes can't have doors work with them right (like some pinwheels).

  • There should be a property for rendering hallways *after* rooms -- this will make inactive dungeons look normal again.

  • Runecore directions ain't right

  • Entering a dungeon lets you move with runestones, then when you exit you still can with the runestones there. Make it consistent.

  • Lowering the cost of the artifact upgrades requires sink keys, not sinkcore keys.

  • You should be able to move around rune doors in a similar way to runestones

  • You shouldn't be able to interact with another boulder while still attached to one.

  • Acid tiles should delete themselves if they don't exist in the world, and they definitely shouldn't spread.

  • Ruin power upgrade cost lowering needs to transfer to other parts of the nonad. Same deal with whether you have the artifact or not.

  • Overworld runestones need to be destroyed permanently via ('eternal') -- Tricky. Need to rewrite the whole build framework or rethink this, since there's no way of untagging the old tag -- which means it gets erased despite being tagged another way. Set the tag indexes by region & kee.

  • Inactive runestone lines are screwy.

  • Search recipes should be e1cores and e2cores, no other elemental cores.

  • Dungeons should spawn out into the hallways or voids even when they lack rooms needed for the amount of fixtures they have.

  • However, you shouldn't be able to go over the room size when adding fixtures via mana keys.

  • The amount of mana keys needed to add stuff should be lower -- 1-3 maybe?

  • Removing all the items or manacores out of furniture should erase it -- furniture in dungeons that is.

  • Acid shouldn't happen in third-tier rooms (wind doors for example). Probably irrelevant if it ends up being enemies that cause acid to spawn.

  • Having issues with boulders once you push a boulder out into the void -- needs to no longer be the active boulder so you don't warp back there when you interact with a new boulder.

  • Reversible crafting menus -- both dungeon keys and dungeon scraps recipes need to be reversible.

  • Can't destroy a boulder until you first move it.

  • 6 Months ago
    Sky's the limit

    Farming Loose Ends

  • Make sure the terrain configuration matches when you assign a specialty, or throw an error and tell you to prospect. Tricky Fix.

  • Different farming outputs should have different input costs -- this is probably the best way to balance the existing system. Insects are fixed.

  • A genetics system makes an increasing amount of sense for organic farming - could also influence the properties that come from extracts or even what you can extract, including really crazy things like rock extracts. Besides, this is something I wanted in the system from the beginning. Will need to think this through more, and also maybe have wayyy more information stored in the itemgen or propgen -- things like fuel_value or compost_value aren't rendered that way right now. Will probably be a pretty big project.

  • Right now, can't mine both surface rocks and cave rocks due to different itemgens and no distinction between them - needs to be fixed before this feature goes live. Surface rocks also aren't extractable rocks yet, so this is locked down to mining exclusively. Making them separate extracts would make the most sense, especially since the types are different between them anyway.

  • There should be input and output limits (I had this set to 50 in my notes originally). Will need a separate update for this, along with however fixtures are upgraded.

  • The speed on farming fixtures is still ticking up even after the fixture is stopped -- Tricky fix most likely.

  • The farming output should be the base item, not the embryo.

  • Like feeds, compost should go automatically into your inventory.

    More Loose Ends

  • Cave resources and surface resources aren't knowable at the same time -- this will impact the procgen crafting system, and maybe other stuff as well. Whenever I fix this, I should also update the farmables{} functions for it and I guess anything else too.

  • Farming fixtures need to be crafted via the procgen crafting system -- already have a TODO in farming_fixtures{} as well.

  • animal tercos should be way simpler since animal spawns are a lot rarer -- maybe repurpose quantum configurations since they might be scrapped from there. Needs to be more easily predictable though -- maybe based on nonad information and water color? Or could add some more period terrain patterns to inform this and other tercos systems.

  • Pool size should be relevant to fishing tercos.

  • 6 Months ago
    Sky's the limit

    Minor Code Update

  • Migrate all inventory.add functions to inventory.add_obj ones so that itemgen is respected everywhere.

  • 6 Months ago
    Sky's the limit

    Tetrad Keys

  • Craft 3 tetradshards of the same type into a Tetrad Key.

  • Feed overworld runestones a tetrad key to produce more runestones -- lets you get new seeds.

  • 2 Tetrad Keys will also give you the artifact.

  • Tetradshards, artifacts and other miscellaneous recipes should go in a different crafting menu since the other two will be reversible all the way through.

  • Tetrad keys should also do useful stuff with conjuncts and/or the quantum and entropic planes.

  • 5 Months ago
    Sky's the limit


  • It might make sense to make Torches upgradeable the way Ropes will be and Fishing Rods are. This would make the exploration / resource collection gameplay loop more useful, particularly if the upgrades are coming from caves. Or it might belong on the metals system, idk.

    This would limit the first crafting system to Bombs, Jewelry, Weapons, Lockpicks, Potion Ingredients, Pets. Though I guess you're also doing things like Composting or Atomizing.

  • 5 Months ago
    Sky's the limit

    Melange Constraints

    I think I have this checklist item somewhere, but idk.

  • Melange itemgens should have some constraints per melange type -- melange dimension drops, melange cabinets, melange crates, melange fishing, I might be missing some here.

  • 6 Days ago
    Sky's the limit

    General Misc

  • Dungeon templates (based on the nonad as usual) should have different concentrations of water/lava/slime/void.

  • Same deal with the likelihood of various fixtures.

  • Probably other stuff as well.

  • Idea: Randomized shop services. A bit like magic that you pay for -- will have to wait until I know what I'm actually doing with that system.

  • 6 Days ago
    Sky's the limit

    Province Travel Update

  • Void Skips routes are free.

  • Town-based travel is distance-based.

  • The highway system is a mostly-flat rate based on whether you're going town-to-town, town-to-nexus, etc. It is also based on distance but to a much lesser extent.

  • Nexus-to-city/town travel is based purely on 1% of distance, so pretty cheap. This wasn't intentional but I like it!

  • Distances are shown on town travel.

    Loop Expansion

  • Loops range in size from 1 to 10,000x, with each order of magnitude equally likely. The starting province is always size 1.

    Should make town travel a lot more strategic.

  • 3 Days ago
    Sky's the limit

    Quick dungeon improvement

  • Runestones in dungeons should spawn surrounded by a random color, which is also paired to the runestone datapoints. This can't erase a door or salt, but anything else is fair game.

  • This means that the "Move" function is no longer required.

  • This also means that different parts of the dungeon are more distinguishable.

  • The "warp" colors should also match the runestone colors.

  • Core doors should also do this, except have it match the floor color -- they currently lack a move option.

  • 1 Day ago
    Sky's the limit

    Reply to: (Loose Ends)