292 Commits

Author SHA1 Message Date
Aaron Suen
db5707abf9 Put the description in the modpack conf too 2023-11-14 21:29:20 -05:00
Aaron Suen
c82ab7bb58 CDB uses webp but apparently doesn't "support" it yet 2023-11-14 20:23:02 -05:00
Aaron Suen
30bd2311ba New logo/cover images 2023-11-14 20:11:16 -05:00
Aaron Suen
13c0caf4fe Document where the MOTD file goes 2023-11-13 21:28:27 -05:00
Aaron Suen
b0e30ee64b Fix stealth mangling a server motd
Apparently the one-line motd from the MT conf file gets inserted
as a second line at the end of the status line rather than being
sent as a separate message.
2023-11-13 21:27:42 -05:00
Aaron Suen
7a075c7913 Safety against seppuku in /destroy_player, document basics content 2023-11-13 08:01:28 -05:00
Aaron Suen
1cba816a35 Actually check for readme, clean up code 2023-11-13 07:28:28 -05:00
Aaron Suen
cbba0215ec Make mod names in CDB desc hyperlinks to each mod README 2023-11-13 07:26:52 -05:00
Aaron Suen
feb8ae08c8 Move minute features into a "basics" mod 2023-11-11 10:17:46 -05:00
Aaron Suen
0fc497dc48 Retire szutil_revokeme
The functionality is now 3+ years old in base so there
is no longer any excuse for needing a polyfill.
2023-11-11 10:05:40 -05:00
Aaron Suen
5e79e17b89 Try to fix tracking HUD location issue
Seems there must be some kind of cache
poisoning or something happening...?
2023-11-04 20:40:31 -04:00
Aaron Suen
88ee4858c0 Remove explicit nodecore compat code
NodeCore, for a while now, has automatically and
transparently handled item dropping on teleportation
without the need for support from external mods,
and we should let it use its own internal logic.
2023-11-04 00:34:44 -04:00
Aaron Suen
86957cf569 Auth caching invalidation fix from NodeCore 2023-10-28 20:20:40 -04:00
Aaron Suen
a5e5760905 Don't grant szutil_restart_ignore automatically on /grantme all 2023-10-11 19:54:34 -04:00
Aaron Suen
859c513c32 Seprate authcache hack, extracted from NodeCore for other game use 2023-06-20 18:24:15 -04:00
Aaron Suen
dc622f2438 Fix a severe perf issue due to cache faults 2023-06-20 08:30:54 -04:00
Aaron Suen
425fee02eb Minor readme formatting change
Add horizontal rules to separate lists a bit better.
2023-06-20 07:35:21 -04:00
Aaron Suen
d32a2c856c Build mod summary list automatically
Instead of maintaining the short description of each sub-mod
manually in a giant README file, distribute the short descriptions
into each relevant mod, and then build the README listings
automatically at deploy time.

This should:
- Make it harder to forget to add/remove mods in the list
- Prevent them from being out of alphabetical order
- Ensure each mod has a description for in-menu use
2023-06-20 07:30:35 -04:00
Aaron Suen
6f292ea869 Reorganize readme to make special prereqs easier to parse 2023-06-20 06:32:41 -04:00
Aaron Suen
2be093014f Fix line wrapping 2023-06-20 06:27:36 -04:00
Aaron Suen
1a88d282b7 Support all games 2023-06-20 06:21:15 -04:00
Aaron Suen
60808b1d83 Remove todo item 2023-06-16 06:45:51 -04:00
Aaron Suen
e8c578150d Reintroduce tracking HUDs to offlinepos
Apparently it was broken due to using a "return" instead of
a "continue/next" (which Lua doesn't actually have) due to a
function body being inlined into a loop.  Break it back out
into a function again to make the early return work right.

This reverts commit be7e70a09e992314a92c8349594e4070ff525528.
2023-06-16 06:42:30 -04:00
Aaron Suen
1e5c07f81c Stop overusing "action" log level 2023-06-12 20:40:14 -04:00
Aaron Suen
fdce76e605 More fine-grained control of logtrace
Allow watchers to subscribe to only specific event
levels (or higher) instead of having only firehose mode
or nothing.
2023-06-12 20:34:17 -04:00
Aaron Suen
9e5a090776 Fix some errors with offlinepos teleportation 2023-06-10 23:54:04 -04:00
Aaron Suen
cd44c7fc2d Allow individual exceptions to MOTD agree closure 2023-06-10 16:51:28 -04:00
Aaron Suen
9c1dcb41c7 Add new runas mod 2023-06-10 14:24:14 -04:00
Aaron Suen
bd5473c3b0 Fix up docs 2023-06-10 13:18:50 -04:00
Aaron Suen
ec997a63bd Add restart countdown to server status line 2023-05-16 21:00:48 -04:00
Aaron Suen
9728a3e64c Fix restart-always logic with other request sources
Don't block restart requests for other reasons just because an
"always" restart is already pended; track these in a separate
system so they don't interfere with other triggers.
2023-04-22 19:55:12 -04:00
Aaron Suen
3b7cbf4142 Fix con/chat sockets with mod security
Now these apparently load correctly, at least under docker, as
long as the mods are in secure.trusted_mods, disabling mod security
is no longer necessary.
2023-04-21 07:25:42 -04:00
Aaron Suen
9da5d074d6 Fix startup warning 2023-04-21 07:23:54 -04:00
Aaron Suen
70ee9bacc7 Restart "always" feature and other improvements
- Always pend a restart on player join, so empty servers are
  always freshly restarted for optimal RAM conservation.  This
  would kill uptime/availability stats for a public server, but is
  ideal for private server that are often empty, e.g. when running
  multiple private servers on "standby" for a smaller pool of
  local players.
- Improve logging of restart triggers.
- Don't announce restarts extremely far into the future, so that
  the "pend restart on join" feature doesn't cause undue chat
  noise and scare players away who habitually quit to restart upon
  seeing a "restart in..." message.
2023-04-21 07:00:48 -04:00
Aaron Suen
ad22551d23 Merge notes 2023-04-04 06:52:05 -04:00
Aaron Suen
49320176e6 Merge notes 2023-04-04 06:32:59 -04:00
Aaron Suen
b1e05064c1 Increase waypoint dedupe distance 2023-01-14 10:52:03 -05:00
Aaron Suen
dc22af9e61 Make cinecam idle waypoints runtime-manageable
Waypoints can be added/removed via chat
commands.  This makes it easier to adapt to
various "points of interest" that may evolve over
time with the world.
2023-01-14 10:43:53 -05:00
Aaron Suen
20d97f7bf4 Fix crash on missing block 2022-12-30 16:23:49 -05:00
Aaron Suen
de4ffb0a29 Migrate szutil_usagesurvey to mod_storage
Finally mod_storage is actually efficient enough,
when using sqlite3, to ditch the old file-based
storage, which is a nightmare for backups.  This
mod now effectively requires that sqlite3-based
mod storage be used for worlds of sufficient
scale, but that's probably a fair requirement for
using this rather obscure mod anyway.
2022-12-30 15:57:43 -05:00
Aaron Suen
f600ae9178 Add simple lag mod
Adapted from methodology used in
hopcheat, which was the first time I
got it working fully reliably.
2022-12-09 17:58:34 -05:00
Aaron Suen
16fa1fc6df Hide status message for cinecams by default
By default, players joining the server who are
configured to act as cinematic cameras only
should not see the server status message ...
unless specifically configured to see it.
2022-11-05 16:37:40 -04:00
Aaron Suen
c11c2b9956 Fix missing default config values 2022-11-05 16:07:44 -04:00
Aaron Suen
f0062239d1 Add szutil_namehud mod 2022-11-05 16:04:23 -04:00
Aaron Suen
7175f51921 Maintain our own last-seen timestamp for players
We actually want to prune accounts based on the
last time they were used or seen online at all, not
just the last time they successfully joined the
world.  Keeping track of our own timestamp should
catch scenarios like players sucessfully authing
but failing to complete joining the world, or players
who log in and then play for a long time after
login.  This also makes it safer to use with much
shorter timeout periods and longer-running
servers.
2022-11-05 13:52:15 -04:00
Aaron Suen
1a2d41b0b3 Handle authed but not joined players
Further tighten the race condition gap between
players authing and finishing joining.  The
meaning of last_login is apparently officially the
last join time, but if the last successful auth time
was later, use that as the known account age.
2022-11-05 13:36:27 -04:00
Aaron Suen
8d607b360c Don't defer account pruning deletion
It's possible for a player to log in right as the
check scan is happening, causing the decision to
delete the account happening, then the player
successfully authing, then the account being
actually deleted from the queue, and then the
player completing emerge and running joinplayer
callbacks.  One of the joinplayer callbacks tries to
update the last_login, which fails if the account
was deleted while the player was emerging.
Rather than redo the checks, just perform all the
deletion stuff inline.
2022-11-05 13:31:10 -04:00
Aaron Suen
802c0bfda1 Add more checks player deletion races 2022-11-05 13:22:42 -04:00
Aaron Suen
e47ae06561 Don't crash on missing player in pruneplayers
pruneplayers can race with other mods (e.g.
motdagree) to delete a player.  If the player was
already deleted when the check runs, don't crash,
just skip the player this pass.
2022-11-05 13:19:48 -04:00
Aaron Suen
83ec874634 Clear up some todo items 2022-11-05 11:50:26 -04:00