Skip to main content

Vanilla

346 vanilla Minecraft actions, events, objectives, facts, audience filters and NPC activities.

Freev1.4Utilities
RequiresTypeWriter0.9Basic extension (TypeWriter)Quest extension (TypeWriter)Entity extension (TypeWriter)RoadNetwork extension (TypeWriter)PlaceholderAPIoptional

Overview​

Vanilla connects standard Minecraft mechanics to TypeWriter. It is a library of 346 entries: actions that change the player (attributes, health, experience, gamemode, velocity...), events that fire when something happens in the game (a bell rung, a trade made, a bucket filled...), objectives that count those events for quests, facts that read the player state, audience filters that match a player state, and NPC activities that make an NPC react to the people around it.

Nothing is configured in a file: you add the entries you need in the web panel and link them like any other TypeWriter entry. Most entries are small and have few fields, so the entry pages are mainly a catalogue; this page explains the families and the few concepts that are shared by many entries.

Features​

  • Player attributes — 26 actions that set one Minecraft attribute each (movement speed, max health, scale, gravity, reach...).
  • Player state actions — heal, feed, damage, set air, fire, flight, god mode, gamemode, experience and level, spawn point.
  • Inventory and utility actions — clear the inventory, open a crafting table, anvil, ender chest, disposal bin, repair or condense ores.
  • Game events — 105 events, from block and container interactions to trading, fishing, raids and player input.
  • Objectives — 73 quest objectives that count in-game actions with a counter fact.
  • Facts — 26 read-only facts for health, hunger, level, time, weather, dimension, light level and more.
  • Audience filters — 48 filters that keep players by state: sneaking, moving, in water, time of day, coordinates, tool in hand...
  • NPC activities — 20 activities for NPCs: follow or avoid players, patrol, orbit, detect players by sight, hearing or smell.
  • NPC camera bound — lock the player's camera on an NPC during an interaction.

Installation​

  1. Install the official TypeWriter extensions Basic, Quest, Entity and RoadNetwork (they are declared as dependencies of Vanilla).
  2. Download VanillaExtension from the GitHub releases (button above) and put the JAR in plugins/Typewriter/extensions/.
  3. Restart the server. The log shows VanillaExtension has been successfully initialized.

The extension targets Paper and Folia. PlaceholderAPI is not required; it is only used when a text field contains %placeholders%.

Getting started​

Make the player stronger when they finish a ritual, and count how many barrels they open for a quest:

  1. In the TypeWriter web panel, open a sequence page and add an action such as Set Max Health. Set amount to 30 (the attribute is set to this value, it is not added to the current one).
  2. Link it from a dialogue or another entry through triggers so it runs when the player reaches that step.
  3. To react to a game event, add an event on a manifest page, for example Bell Ring Event, and put the entries to run in its triggers.
  4. For a counting objective, first create a counter fact (for example a permanent fact from the Basic extension), then add Barrel Objective on a manifest page. Set quest, fact to the counter, amount to 5 and display to the line shown in the quest tracker.
  5. Link onComplete to a reward sequence, or fill onCompleteModifiers to change facts when the objective is done.
  6. Publish and test.
Attribute actions are absolute

An attribute action sets the base value of the attribute. It does not stack with a previous call and is not reset on its own. Use the vanilla default values to undo it: for example movement speed is 0.1, max health is 20, scale is 1.

How it works​

  • Events are plain triggers: add one on a manifest page and fill triggers. Most of them have no field at all and fire for every matching event of every player. Some have filters (for example weather_event has a world and a condition, on_player_input has an inputType and a heldItem).
  • Objectives need a counter fact in fact. Each time the game event happens for a player in the active quest, the fact is increased by one. The objective is complete when the fact reaches amount. Because the progress lives in a fact, you can also change it from anywhere else.
  • Facts are read-only: use them in criteria, objectives and dialogue conditions. They cannot be written to.
  • Audience filters keep a player in an audience while the state is true, and can be inverted. Put entries below them to show them only to those players.
  • Activities run on an NPC instance and are described below.

What it covers​

Attributes​

26 actions, each setting one attribute of the player to the amount you give. Movement and combat: Movement Speed, Sneaking Speed, Attack Damage, Attack Speed, Knockback Resistance. Body and world: Max Health, Scale, Gravity, Step Height, Block Reach, Camera Distance.

Health, hunger and experience​

Heal, Heal All, Damage, Feed, Set Hunger, Set Saturation, Set Absorption, Set Air, Set Fire, Freeze, Add Experience, Set Level, Suicide.

Movement, physics and modes​

Set Velocity (absolute or added to the current velocity), Flight, God Mode, Gamemode, Mount Vehicle, Dismount, Eject Vehicle, Wake Up, Set Spawn Point, Top.

Inventory and items​

Clear Inventory, Repair, Durability (main-hand item), Hat, Condense Ores (turns 9 ingots, raw ores, gems or coal into the matching block), Ender Chest, Disposal (opens a 54-slot bin), Craft, Anvil, and Inventory See / Ender Chest See to open another player's inventory by exact name.

World, effects and UI​

Create Explosion, Spawn Lightning, Launch Firework, Spawn Tree, Start Raid, Set World Time, Open Book, Open Sign, Clear Title, Grant Advancement and Revoke Advancement.

Events​

105 triggers on the game: workstations (Anvil Repair, Enchant, Smelt, Brewing Stand Brew), containers and blocks (Barrel Open, Bell Ring, Jukebox Play, Sign Change), the player (Player Teleport, Player Respawn, Toggle Sneak, Player Input), animals and trading (Entity Breed, Villager Trade, Piglin Barter), vehicles, raids, fishing, items and the world (Weather).

Objectives​

73 objectives mirroring the events: Gather (items in the inventory), Craft, Consume Item, Villager Trade, Harvest Crop, Statistic Reach, Level Reach, Tame Entity, Sleep, Raid Complete and checks on a fact: Cachable Fact Check and Readable Fact Check.

Facts​

Player Health, Player Hunger, Player Level, Game Mode, Armor Value, Current Dimension, Time of Day, Weather, Light Level, Total Play Time, Time Since Death, plus on-fire, in-water, sleeping, freezing and in-raid flags.

Audience filters​

Player state: Sneaking, Sprinting, Moving, Swimming, Gliding, Riding, On Fire, Low Health, Has Effect, Has Armor, Tool in Hand, Weapon in Hand. Place and time: Coordinate, In Specific Dimension, Daytime, Nighttime, Time Period, During Rain, Near Beacon. View: Looking At Entity, Looking Up, Looking Down, and the key filters Forward, Backward, Left and Right.

NPC activities​

Follow Player, Avoid Player, Orbit, Hearing, Smell, Equipment Detection, Health Detection, Line of Sight Obstructed, and the field-of-view family: Visibility Detection, Look Close, Patrol, Random Patrol, Spin.

Camera bound​

Lock NPC Camera keeps the player's view on an NPC while an interaction (a dialogue) runs.

Configuration​

Vanilla has no configuration file. The objectives that count (most *_objective entries) show their progress in the quest tracker with the TypeWriter snippets advancedQuest.display and advancedQuest.completed, and Gather uses quest.gather_objective.display and quest.gather_objective.completed. They use the placeholders <display>, <current> and <required>.

Entries​

The list below contains every entry of the extension, grouped by kind.

346 entries, generated from the extension source.

Actions73
Events105
Objectives73
Facts26
Audiences48
Activities20
Interaction bounds1

Troubleshooting​

An attribute action seems to do nothing, or the effect stays forever. The action writes the base value of the attribute and nothing resets it. Run the same action with the default value (for example 0.1 for movement speed) to undo it. Minecraft limits some attributes (for example scale), and an out-of-range value is refused with an error in the server log.

An objective never completes. It needs a fact that is a counter (a writable cachable fact such as a permanent or session fact), a quest that is active for the player, and criteria that match. Read-only facts (every entry in the fact folder) cannot be used as the counter.

A repeated cachable fact check event keeps firing. Cachable Fact Check Event re-checks every checkIntervalSeconds (default 10) and triggers each time the fact still matches. Set a modifier that changes the fact, or use it with a one-shot guard. A value of 0 disables the periodic check, and a negative interval is rejected with an error in the log.

A visibility activity never detects the player. The NPC must be seen as an entity instance with the activity set, the player must be within radius (or visionRadius) and inside the fov of the NPC's facing, and no block can be in between. Detection triggers once when the player enters the field of view and again only after they leave and come back. Turn showDisplay on to see the cone in flame particles.

An event fires for everyone. Events without fields (most of them) are not filtered: every matching event triggers the linked entries for the player who did it. Use criteria on the entries they trigger to restrict them.

Opening another player's inventory does nothing. Inventory See and Ender Chest See need the exact name of an online player in target. An empty target opens the player's own inventory, and an unknown name does nothing.