MongooseA text-based world full of questionable inventions.

All help topics · Link to this topic

Showing help on 'make-core-database'

Syntax: make-core-database

!!! NOTE:
!!!
!!! This is, by design, an extraordinarily destructive command,
!!! one NOT INTENDED to be run in the live instance of your MOO.
!!!
!!! While there are various safeguards to keep it from being run in
!!! situations where it looks like this might be the live instance of
!!! the MOO (e.g., >1 player connected), there are limits on how
!!! idiot-proof we can be.
!!!
!!! You have been warned.

The correct use of this command is in a separate process.
That is, once you have identified a database/checkpoint file from which you wish to extract a core, you

(*) Run a LOCAL moo process reading from that database file,

(*) Connect as $owner (usually $owner == #2).

(*) Invoke ($wiz:)make-core-database

Here "LOCAL" means you have open_network_connection() disabled (so that, e.g., spurious registration email doesn't go out) and you either run the moo on a port that is not accessible from the outside world or use one of the single-user/local configurations of the server (e.g., NETWORK_PROTOCOL = NP_SINGLE or -a 127.0.0.1 on the command line) so that no one else can connect while you're destroying the world (and perhaps mess with what eventually gets saved).

Once you type 'make-core-database', the actual extraction process then goes as follows:

(1) A particular set of objects, the "core objects" as determined by,
oddly enough, $core_objects(), is identified.

See 'help $core_objects' for details on the algorithm used.

(2) Any core object and any property/verb thereon that has a non-core owner
is chowned either to the (assumed wizardly) player or $hacker
according as the item in question is wizard-owned.

(3) All non-core objects are mercilessly recycled.

(4) Core objects are renumbered and max_object is reset,
so as to produce a contiguous array [#0..max_object()] of objects.

(5) All objects are moved to #-1.

(6) OBJECT:init_for_core is called on all objects having such verbs.
The sequence of calls is unspecified except in that an object
is initialized prior to any of its children.

See 'help init_for_core' for more on what these verbs should look like.

(7) The byte-quota statistics are redone

(8) The moo is shut down and the database is saved.