Tilemap Town is very permissive with its maps, where anyone can place tiles and delete tiles, whether or not they're logged in. I like that, because someone can hop on without even making an account, wander the world, and leave a mark on it by building something neat.

That obviously means there's a lot of room for vandalism, but in practice I've only had to clean up bad stuff from the map a total of twice. But I'd still feel better about things if there were some tools beyond just restoring from backups (which I make every time I notice something new has been built, or just every so often).

A long time ago I wanted to keep a log of actions that get performed on maps, so you could figure out who's responsible for something, but when guests can build that's probably not actually too useful since they'd be anonymous, aside from their IP which I suppose I could still ban. There's some database tables set up for map change logging, but now that I'm thinking about it now it could honestly be fine to just write map changes to a text file or something, and I can just pull that up and look at it.

I've been keeping manual backups, but it would be nice if there were automatic backups that happen in response to map changes. And if that was in place, it'd be cool to have a map tool where you can click and drag to select an area, and then click to revert to an earlier backup, and keep going to revert to an even earlier backup if required.

An undo feature would be very good for accidental deletions, but sounds potentially very complicated. For a simple implementation, maybe the server could save what was in the map rectangle you most recently deleted, and provide a command to put it back? It's tricky if you delete, someone builds over it, and then you undo the delete, but in that situation maybe the server could just refuse to undo (or require some sort of confirmation that you do want to overwrite the new stuff). I don't expect that to come up very often.

One system that could help is adopting Second Life's concept of parcels, where a map could have areas defined within it that have different permissions set. That way I could protect builds on a map, and let the original creator continue to change it (and anyone else who should be able to) but lock off changes for other people. Parcels would be a good idea for other purposes too, like having some graphical effects or music that plays within specific areas on the map.

One very simple anti-vandalism tool I put in awhile back is the /getturf and /getobj commands. These copy the tile you're standing on into your inventory, so if a build was made using custom tiles you don't have, you can easily give yourself the tools to patch up missing pieces of it.

Previous Post Next Post