1RECOVER(6)                       Games Manual                       RECOVER(6)
2
3
4

NAME

6       recover - recover a NetHack game interrupted by disaster
7

SYNOPSIS

9       recover [ -d directory ] base1 base2 ...
10

DESCRIPTION

12       Occasionally,  a  NetHack game will be interrupted by disaster when the
13       game or the system crashes.  Prior to NetHack v3.1,  these  games  were
14       lost  because  various information like the player's inventory was kept
15       only in memory.  Now, all pertinent information can be written  out  to
16       disk,  so  such  games  can be recovered at the point of the last level
17       change.
18
19       The base options tell recover which files to process.  Each base option
20       specifies recovery of a separate game.
21
22       The -d option, which must be the first argument if it appears, supplies
23       a directory which is the NetHack playground.  It  overrides  the  value
24       from NETHACKDIR, HACKDIR, or the directory specified by the game admin‐
25       istrator during compilation (usually /usr/games/nethack).
26
27       For recovery to be possible, nethack must have been compiled  with  the
28       INSURANCE  option  (this  configuration  was),  and the run-time option
29       checkpoint must also have been on.  NetHack normally writes  out  files
30       for  levels as the player leaves them, so they will be ready for return
31       visits.  When checkpointing, NetHack also writes out the level  entered
32       and the current game state on every level change.  This naturally slows
33       level changes down somewhat.
34
35       The level file names are of the form base.nn, where nn is  an  internal
36       bookkeeping  number  for  the  level.  The file base.0 is used for game
37       identity, locking, and, when checkpointing, for the game state.   Vari‐
38       ous  OSes  use  different  strategies  for  constructing the base name.
39       Microcomputers use the character name, possibly truncated and  modified
40       to  be  a  legal  filename  on that system.  Multi-user systems use the
41       (modified) character name prefixed by a user number to avoid conflicts,
42       or  "xlock"  if  the number of concurrent players is being limited.  It
43       may be necessary to look in the playground to  find  the  correct  base
44       name of the interrupted game.  recover will transform these level files
45       into a save file of the same name as nethack would have used.
46
47       Since recover must be able to read and delete files from the playground
48       and create files in the save directory, it has interesting interactions
49       with game security.  Giving ordinary players access to recover  through
50       setuid  or  setgid  is  tantamount  to  leaving  the  playground world-
51       writable, with respect to both cheating and messing up  other  players.
52       For  a  single-user system, this of course does not change anything, so
53       some of the microcomputer ports install recover by default.
54
55       For a multi-user system, the game administrator may want to arrange for
56       all  .0  files  in  the  playground  to be fed to recover when the host
57       machine boots, and handle game crashes individually.  If the user popu‐
58       lation  is  sufficiently trustworthy, recover can be installed with the
59       same permissions the nethack executable has.  In either  case,  recover
60       is easily compiled from the distribution utility directory.
61

NOTES

63       Like  nethack  itself, recover will overwrite existing savefiles of the
64       same name.  Savefiles created by recover are uncompressed; they may  be
65       compressed  afterwards if desired, but even a compression-using nethack
66       will find them in the uncompressed form.
67

SEE ALSO

69       nethack(6)
70

BUGS

72       recover makes no attempt to find out if a base name specifies a game in
73       progress.   If  multiple  machines  share  a  playground, this would be
74       impossible to determine.
75
76       recover should be taught to use the nethack playground  locking  mecha‐
77       nism to avoid conflicts.
78
80       This  file  is  Copyright  (C)  Kenneth  Lorber  and  was last modified
81       2018/04/25 (version NetHack-3.6.0:1.9).  NetHack may be  freely  redis‐
82       tributed.  See license for details.
83
84
85
86NETHACK                        14 December 2015                     RECOVER(6)
Impressum