You don't pick up the sparks themselves, the sparks are the "universal energy" contained inside whatever collectible the world builder chooses to use. Or possibly "sparks of creativity contained within a shell of effort". Or pieces of souls. Or all of the above!
Anyway, I thought of possibly making a cost for things, but I would rather make the cost after the world is created. The reason for this is because, due to the flexibility of the function system, room size is actually a very poor indicator of how "big" a world actually is. It is perfectly possible to make, for instance, a shoot-em-up with a scrolling background that can be a whole game inside a single small "room". Likewise, limiting object placement is pointless when it is simple enough to make an object that spawns the other objects after the room is loaded. The real cost to a world is data, but it's hard to estimate how much data a world takes until it is actually compiled.
Force-quitting will happen at some point (obviously you're not going to be playing the game forever) but if people regularly quit from the same world, it probably is a good indicator that that world has issues. There might be a means of storing specific details about quitting, such as location (I already made a method for determining if the player quit during an infinite loop, which can happen if a function is poorly programmed) and maybe send feedback to the world's creator if a bunch of people quit in the same general area. There will probably be some means of saving your game, and most likely once this is in traveling to a new world will auto-save.
Disconnecting isn't as big of an issue as you might think; BoundWorlds is actually very rarely "connected" to the server at all - pretty much only when saving or loading a new world, and some object lists in the world builder like the Gate tags and file system. I might want to add some checks to discourage hacking but on the whole it's not a huge priority; BoundWorlds is essentially a single-player game and a means of creating and distributing single-player games (or game fragments). If I ever do go multiplayer (it's come up, but isn't in the plans) that will obviously change.
Corruption is the "Prime Evil" of the BoundWorlds story. I won't get into too much detail except to say it was inspired by Zalgo. It tries to eat worlds and is driven back by sparks, either earned by or invested in those worlds. It is also responsible for deleting garbage worlds. The exact details will be worked out later.
The main point of items will be saving data across sessions; in most other respects they are essentially glorified variables. Where it gets complicated is making items globally accessible. They will be tied to packages (which makes sense; package a creature's "loot" along with the creature) but allowing the "owner" of an item to limit its distribution, while making it accessible to other players, is tricky business. Since they are, as stated, glorified variables, anyone who has permission to edit an item's value can do whatever they want with it; give the player a million of them or take them all away, nothing is stopping them. Giving them a cost in sparks could work, limiting the ability of a player to take too many away from a world, and it can also allow there to be "hard-coded" shops that buy items for set prices. You also run into the issue of the item's owner changing its value while players are already carrying them around. I have a few ideas but it's all pretty up in the air right now.
There will most likely be several kinds of items depending on their use (key items that can only be edited by the owner and are used to save progress in that world's "story", vendor trash dropped from enemies and basically functions as flavored sparks, and stuff that runs a function when "used" but only in worlds that have imported that item, so you can't use your "kill everything on the screen bomb" unless the world builder allows it.)