Skip to main content

Migration from 0.10

Back up your Typewriter pages folder and the plugins/Typewriter/ data before updating. Entries are read as they are: existing pages load, but several things behave differently.

Removed​

WhatReplace with
aggroMultiplier on the Dungeon InstanceNothing. It was never read and is gone.
/typewriter dungeon start/typewriter dungeon enter <instance>.
The partyLobbyArtifact linkNothing. It is unused: lobbies are no longer restored after a reload or a restart. The entry Dungeon Party Lobby Artifact still loads but is inert, and is planned to be removed in a later version.
Joining a lobby creating a party in MMOCore or PartiesParties are read only. The whole party of a player joins the lobby with them.

Behaviour that changes​

  • allowedDungeonIds on a Dungeon NPC Instance. It is now a list of references to dungeon instances (same field name, same stored data, so old pages load). An empty list now means every run of every dungeon. In 0.10 the NPC was never shown at all. A list that contained ids keeps working when the ids still exist. The group default is now the members of the run.
  • Dungeon NPC Instance is shown. In 0.10 it never appeared. If you used a chest anchored to an NPC of another extension as a workaround, you can now anchor to this one.
  • criteria on category slots are evaluated per player. In 0.10 any criterion locked the slot for everybody. Remove criteria you used as a hard lock.
  • Dungeon criteria and damageMultiplier are now applied (damageMultiplier default 1).
  • cooldownSeconds: 0 or empty means no time limit.
  • Rooms now fire. onEnter, onLeave, modifiers and criteria of a Dungeon Room run. Rooms that overlap are all entered, the higher priority first. verticalMargin is new, with a default of 2.0 blocks: a player now counts as inside from 2 blocks below the lowest node to 2 blocks above the highest, for every room. Set it to 0 to keep the exact height you had. A tall room (a big hall, a tower) may need a larger value, so that a jump or a vehicle stays inside.
  • Facts. indungeon and indungeon_instance return real values.
  • Statistics are written. They start at zero.
  • Isolation. The new isolation field is AUTO by default: SLIME_CLONE with Advanced Slime Paper, otherwise WORLD_PER_RUN (a copy of templateWorld, deleted after the run). In 0.10 plain Paper used the template world itself and removed every non-player entity from it. To keep sharing a world, set SHARED_WORLD_SLOTS and build the dungeon in every slot. See Runs and world isolation.
  • The party menu is chosen by its dungeonInstance field, and an empty one serves any dungeon no other menu names. It was "the first menu found".
  • Loot Chest Trigger ONCE is once per run, not until the server restarts.
  • Runs survive a reload if a runtimeArtifact is linked (else runs.json). A server restart ends them.
  • Dungeon Enter and /typewriter dungeon enter check the group size, the criteria, the entry cost and the run limit.
  • Mobs of the extension (new): none are made unless you add Dungeon Mob Spawn entries.

New snippets and fields​

All the texts that players read in the menus, lobbies, sidebar, loot chests and launch refusals are now Typewriter snippets (content.dungeon_menu., content.dungeon_lobby., content.dungeon_run.sidebar., content.dungeon_chest., content.dungeon_launch.). Their defaults are the texts the extension already showed, so nothing changes until you edit them. The list is in the index. The replies of the admin commands are snippets as well (content.dungeon_command.).

Two groups of fields are new, with defaults that keep the old behaviour:

  • lobbyIdleKickSeconds on the Dungeon Instance (default 120, the former fixed 2 minutes).
  • On Loot Chest Trigger: triggerSoundVolume, triggerSoundPitch, triggerParticleCount, triggerParticleSpread, triggerParticleSpeed (defaults 1, 1, 30, 0.5, 0.1). broadcastMessage now accepts colour codes.

Data compatibility​

  • The runs journal is read from version 1 to 3. It is written as version 2 while no generated run is in it, and as version 3 as soon as one is (it also gains the optional mobs and mobsOwed lists). Going back to an older build is therefore safe only while no generated run was saved; do not downgrade after using generated dungeons. An artifact that cannot be read is never overwritten.
  • The MarkerKind list of a room template gained NPC and MOB at its end. Existing room templates keep their identity and are unchanged.
  • The id of the entity entry dungeon_npc_instance is unchanged.

Checklist​

  1. Back up your pages.
  2. Update the JAR and start the server. Read the log for warnings about a missing runtimeArtifact or party menu.
  3. Check each dungeon's isolation.
  4. Review allowedDungeonIds on your NPC instances.
  5. Review criteria on category slots and verticalMargin on rooms.
  6. Replace uses of /typewriter dungeon start.