All Projects → LandOfTheRair → Landoftherair

LandOfTheRair / Landoftherair

Licence: gpl-3.0
A high-fantasy MORPG.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Landoftherair

Gameproject3
游戏服务器框架,网络层分别用SocketAPI、Boost Asio、Libuv三种方式实现, 框架内使用共享内存,无锁队列,对象池,内存池来提高服务器性能。还包含一个不断完善的Unity 3D客户端,客户端含大量完整资源,坐骑,宠物,伙伴,装备, 这些均己实现上阵和穿戴, 并可进入副本战斗,多人玩法也己实现, 持续开发中。
Stars: ✭ 655 (+1771.43%)
Mutual labels:  multiplayer, rpg, mmorpg
Openmmo
OpenMMO - Groundwork
Stars: ✭ 115 (+228.57%)
Mutual labels:  multiplayer, rpg, mmorpg
VXA-OS
Most complete and secure free 2D online game creation tool from RPG Maker.
Stars: ✭ 14 (-60%)
Mutual labels:  rpg, multiplayer, mmorpg
broken seals
An open source third person action RPG with multiplayer support.
Stars: ✭ 223 (+537.14%)
Mutual labels:  rpg, multiplayer
KingNetwork
KingNetwork is an open source library to facilitate the creation and communication of clients and servers via TCP, UDP, WebSocket and RUDP sockets.
Stars: ✭ 78 (+122.86%)
Mutual labels:  multiplayer, mmorpg
HeroesArena
A turn-based arena multiplayer role-playing game
Stars: ✭ 16 (-54.29%)
Mutual labels:  rpg, multiplayer
Reldens
Reldens - You can make it - Open Source MMORPG Platform
Stars: ✭ 130 (+271.43%)
Mutual labels:  multiplayer, mmorpg
FFXIVPocketGuide
A collection of mobile friendly guides to help players navigate group content in Final Fantasy XIV.
Stars: ✭ 16 (-54.29%)
Mutual labels:  rpg, mmorpg
Crystalshire
Legacy VB6 open-source ORPG
Stars: ✭ 24 (-31.43%)
Mutual labels:  multiplayer, mmorpg
Dot-World-Maker
Online web role playing game (RPG) engine let you build your own game directly from your browser.
Stars: ✭ 25 (-28.57%)
Mutual labels:  rpg, multiplayer
Servuo
An Ultima Online server emulator written in C# .NET
Stars: ✭ 378 (+980%)
Mutual labels:  rpg, mmorpg
Game
⚔️ An online JavaScript 2D Medieval RPG.
Stars: ✭ 388 (+1008.57%)
Mutual labels:  rpg, mmorpg
dungeonz
Everything for the game Rogueworld.
Stars: ✭ 88 (+151.43%)
Mutual labels:  rpg, mmorpg
LandOfTheRair
Land of the Rair is a full-blown MORPG styled like the MUDs of olde, featuring hours upon hours of gameplay.
Stars: ✭ 20 (-42.86%)
Mutual labels:  rpg, multiplayer
Magicallife
A 2d game that aspires to be similar to Rimworld, with more depth, magic, and RPG concepts.
Stars: ✭ 145 (+314.29%)
Mutual labels:  multiplayer, rpg
MMORPGMaker-MV
Plugin to transform RPG Maker MV to MMORPG Maker MV
Stars: ✭ 67 (+91.43%)
Mutual labels:  rpg, mmorpg
Stendhal
Stendhal is a fun friendly and free multiplayer online adventure game with an old school feel.
Stars: ✭ 194 (+454.29%)
Mutual labels:  rpg, mmorpg
Trinitycore
TrinityCore Open Source MMO Framework (master = 9.1.5.41488, 3.3.5 = 3.3.5a.12340)
Stars: ✭ 7,074 (+20111.43%)
Mutual labels:  multiplayer, mmorpg
Egameplay
一个基于Entity-Component模式的灵活、通用的战斗(技能)框架,配置可选使用ScriptableObject或是Excel表格
Stars: ✭ 239 (+582.86%)
Mutual labels:  rpg, mmorpg
Rpg Js
Create your browser RPG and MMORPG in your browser !
Stars: ✭ 656 (+1774.29%)
Mutual labels:  rpg, mmorpg

Land of the Rair Build Status

A high fantasy MORPG inspired by the MUDs of olde.

Requirements

  • Node.js (recommended: 8.0.0+)
  • npm (needed: 5.x+)
  • MongoDB (recommended: 3.4.4+, or a hosted service, like MLab)
  • Redis (or a hosted redis service, like Redis Lab)

Install

  • npm install
  • npm run setup
  • npm start (or run npm run start:client and npm run start:server separately)

Environment Variables

First, create a .env file in the root. Then, populate it with these values:

  • MONGODB_URI - the URI that leads to a mongodb instance (for example: mongodb://localhost:27017/rair)
  • REDIS_URL - a URI that leads to a redis cache (for example: redis://localhost:6379)

If you want to use Auth0, you can set this value (if you don't, see the section Authenticating Locally below):

  • AUTH0_SECRET - Auth0 server secret

If you want strict validation of users (ie, if you're doing anything sensitive like taking payments), set these values:

  • AUTH0_JWKS_URI - the URI that leads to the Auth0 JWKS JSON file

If you want to test Discord integration, you can also add:

  • DISCORD_SECRET - the discord secret for your discord bot
  • DISCORD_GUILD - the discord guild for your discord bot
  • DISCORD_WATCHER_ROLE - the watcher role for your discord bot (default: "Event Watcher")
  • DISCORD_VERIFIED_ROLE - the role for a user to get when they connect their discord (default: "Verified")
  • DISCORD_MUTED_ROLE - the role for a user who is muted in game (default: "Muted")
  • DISCORD_SUBSCRIBER_ROLE - the role for a user to get when they subscribe (default: "Subscriber")
  • DISCORD_ONLINE_ROLE - the role for a user who is "always online" (default: Online In Lobby)
  • DISCORD_CHANNEL - the id of the channel for your discord bot to talk in
  • DISCORD_BOT_CHANNEL - the id of the channel for your discord bot to listen for commands in
  • DISCORD_BOT_NAME - the name of the bot as it was set up (default: "LandOfTheRairLobby")

Also, your bot will need a role that can assign roles.

If you want to test Stripe, you need to add:

  • STRIPE_TOKEN - the Stripe secret key

If you want to test GameAnalytics, you need to add:

  • GAMEANALYTICS_GAME_KEY - the GameAnalytics game key
  • GAMEANALYTICS_SECRET_KEY - the GameAnalytics secret key

Setup

Initial Setup

For initial setup, run this:

  • npm run setup

Content Creation

For subsequent updates and specific changes, you can run these instead:

  • npm run seed:items - this will populate the database with items
  • npm run seed:npcs - this will populate the database with npc data
  • npm run seed:drops - this will populate the database with drop table data
  • npm run seed:recipes - this will populate the database with recipe data
  • npm run task:macros- this will generate the macro icon metadata. If you add new icons, please only take from my repository.

Authenticating Locally

If you do not want to use Auth0 for some particular reason, you can bypass it by adding ?username=myusername to the URL. This does not work in production mode.

Making Yourself a GM

If you want to do any debugging, you'll need to make yourself a GM. To do that, you'll want to set your account to be a GM. Open up a mongo shell or run this query through an external tool:

db.accounts.update({ username: 'YOUR_ACCOUNT_NAME' }, { $set: { isGM: true } });

You only need to do this once.

Testing Outside Of localhost

By default, the client is configured to connect to localhost. If you want to connect somewhere else (say, you're using a VM), you can change src/client/environments/environment.ts to reflect the location of your server. For example, if you're developing in a VM, you probably want to change the two instances of localhost to be the IP of the VM.

Server Debug Routes

Some routes are enabled for debugging purposes and are otherwise unused. You can visit:

  • /server for server stats
  • /premium-stats for premium buying stats
  • /item-stats for avg. item stats
  • /item-csv for the item database dumped to a CSV
  • /logs for server logs (log entries expire after 6h)
  • /maps to see all of the maps in the game presently

Commands

Some commands are hidden and don't really need to be used by players, but should be used when testing out moderation features. Commands have varying prefixes, such as:

  • ~ - an internal command used by the UI
  • ~~ - a debugging command for players
  • ^ - a command for testers (and GMs)
  • @ - a command for GMs

Internal Commands

  • ~clear - clear the command buffer
  • ~drink - drink a potion from your potion slot
  • ~interact - called when clicking on something interactable
  • ~look - look at the ground (only used by ~search)
  • ~move - called when clicking on the map to move
  • ~restore - be dead no more
  • ~say - talk to other players nearby
  • ~search - search corpses on the ground, then look
  • ~talk - called automatically when doing xxx, message - will trigger appropriate dialog for an npc if it has any
  • ~trait - buy traits
  • ~unapply - unapply a buff by name
  • ~use - use an item

Debugging Commands

  • ~~bonuses - see the current map bonuses
  • ~~pos - get your current x, y, and map
  • ~~reset - reset your buffs and additionalStats
  • ~~items - count the number of items in the world
  • ~~mobs - count the number of mobs in the world
  • ~~ping - check your ping
  • ~~flagged - check your flagged skills
  • ~~lag - run pos, items, mobs, and ping
  • ~~combatlogstart <maxentries=1000> - start logging combat data (this will clear any existing combat log data) - more than 1000 entries is not recommended
  • ~~combatlogstop - stop logging combat data
  • ~~combatlogdownload - download a CSV of your combat log data
  • ~~togglefov - toggle the FOV (dark spaces) on/off

Testing Commands

Certain accounts designated as testers get access to several in game commands:

  • ^gold <gold> - gain <gold> gold
  • ^loadout <level> - generate a loadout for your class level
  • ^level <level> - set your level to <level>
  • ^owts <boost> - increase all of your worn/held gear with an Owts enchantment by <boost>
  • ^hp <newhp> - set your hp to <newhp>
  • ^mp <newmp> - set your mp to <newmp>
  • ^regen <newregen> - set your hp/mp regen to <newregen>
  • ^skills <level> - set your skills to <level>
  • ^stats <level> set your stats to <level>
  • ^traits - reset your traits and gain 1000 TP

GM Commands

As a GM, you get access to several commands in the lobby:

  • /motd <motd> - set the MOTD in the lobby
  • /resetmotd - unset the MOTD
  • /alert <msg> - alert every player with a certain message (very annoying!)
  • /subscribe <period> <account> - set the account on a trial subscription lasting for period days
  • /unsubscribe <account> - remove the accounts subscription
  • /silver <silver> <account> - give silver silver to the target account
  • /tester <account> - make account a test account
  • /kick <account> - kick account from the lobby
  • /festival <festivalish> - update the global festival data using festivalish (settings that can be changed are GameSettings, see below)

You also get access to some commands in-game:

  • @allegiance <allegiance> - change your allegiance to allegiance. If GM is specified, then you will be non-hostle to everything, and they will be non-hostile to you
  • @gold <num> - create gold on your tile
  • @currency <type> <num> - give yourself num of type currency
  • @item <item name> - create a particular item on your tile
  • @itemdupe - copy your right hand to your left hand
  • @copyplayer <name> - copy the stats, skills, gear, and traits of player
  • @examine <nothing|npcish> <nothing|prop> - if npcish is specified, will examine an npc (if prop is specified, it will print only that prop). Otherwise, it'll examine your right hand item
  • @itemforge propsish - create an item using props syntax, for example: sprite=1 type=Hammer stats.str=1
  • @mapnpcstat propsish - modify the stats of all NPCs on the map by propsish
  • @skill <skillname> <xpgain> - gain xpgain skill for skillname
  • @tp <tpgain> - gain tpgain trait points
  • @axp <axpgain> gain axp AXP
  • @xp <xp> - gain xp XP
  • @intercept <target> - you will see log messages as this target (as well as your own).
  • @kill <target> - will instantly kill target
  • @lootvortex <radius> - pull every item in radius tiles to the current one
  • @itemmod propsish - modify your rightHand item based on props specified, for example: ounces=10
  • @npcmod npcish propsish - modify the npc based on propsish
  • @partyjoin partyname - automatically join partyname if it exists, regardless of leader visibility
  • @respawn lairname - respawn lairname on the current map
  • @searchitems itemname - search all the items for itemname
  • @searchnpcs npcname - search all the items for npcname
  • @spawnnpc npc.npcId="NPC Internal ID" spawner.*=* - spawn a monster of the given id, with optional spawner props
  • @summon playerish - summon any player who matches playerish
  • @teleport <x> <y> [map] - teleport to X,Y, and if map is specified, you'll also change maps
  • @teleporttile <x> <y> <map> - create a teleport tile to X, Y, Map that anyone can use
  • @teleportto npcish - teleport to an npc matching a name like npcish
  • @sight - give yourself the ability to see through walls

Game Settings

Internally, there are a large handful of game settings that control how players gain anything. They are pretty self-explanatory:

  • xpMult - the xp multiplier, default 1
  • axpMult - the ancient xp multiplier, default 1
  • skillMult - the skill multiplier, default 1
  • goldMult - the gold multiplier, default 1
  • itemFindMult - the item find multiplier, default 1
  • numberOfRandomStatsForItems - the number of random stats an item can generate with, default 0
  • randomStatMaxValue - the max value a random stat can be on an item, default 0
  • randomStatChance - the chance of an item generating with a random stat (1-1000000), default 0
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].