Bundles are the way you modify Ranvier's functionality without having to touch the core code. They let you modify basically everything about the game: how commands are interpreted, commands themselves, channels, items, rooms, NPCs, quests, login flow, and spell effects.
Ranvier comes with a set of bundles that provide a base level amount of functionality expected in most Diku-style MUDs.
core-areas- Small example area demonstrating diku-style rooms, NPCs, items, and quests.
core-channels- Set of example channels: say, tell, yell, and chat
core-classes- A basic example of classes, skills (active and passive), and spells
core-combat- Basic diku style real-time auto combat
core-commands- Set of basic diku style commands: movement, look, get, drop, wear, who, etc.
core-effects- Set of example spell effects
core-input-events- Diku-style implementation of login flow with accounts and Diku-style command interpretation
- Warning: Disabling this bundle is ill-advised unless you have studied well the Events documentation
core-player-events- Example implementation of experience/leveling for the player
debug-commands- Commands useful while debugging (
- Warning: It is highly recommend that you disable this module for your live server as it would otherwise effectively give players access to cheatcodes
These bundles are not required to be enabled but some of the
core- bundles do have interdependencies. If you would like to modify one of the core bundles it's recommended that you disable the bundle you wish to modify, copy it to your own bundle and modify that. This way you can safely pull in updates without worrying about conflicts.
Enabling & Disabling Bundles¶
To enable or disable a bundle simply add/remove the bundle name from
bundles in the
ranvier.json config. You can see an overview of that file in the Server Config section.
Creating a Bundle¶
Each individual bundle is a standalone modification to the game, think of them like a Skyrim mod. A mod could add a single item or it could completely transform the game. Unlike Skyrim mods load order does not matter.
To create a new bundle simply create a new directory underneath
bundles/. Inside your bundle directory you may have any or all of the folders/files below.
What's in a Bundle¶
A bundle can contain any or all of the following children though it's suggested that you keep your bundles as modular as possible. Click on any of the items below to see an in-depth tutorial.
areas/ Areas contain items, rooms, NPCs, and quests. behaviors/ Behaviors are scripts that are shared between entities of the same type (rooms, items, NPCs) classes/ Player classes commands/ What it says on the tin, commands to add to the game effects/ Effects that can be applied to characters (NPCs/Players) help/ Helpfiles input-events/ Input events are events that happen on the socket, this involves login and command interpreting. Warning: Because of input events' important role it is generally not advised to load more than one bundle with input events skills/ Player skills (Spells are just skills with the SPELL type) channels.js Communication channels player-events.js Basically everything the player does triggers an event on them that can be attached to and perform functionality such as experience, leveling, combat, and time based calculations